Lachlan's misadventures in games programming

Wednesday, 29 June 2011

Prototype Graphics

6/29/2011 12:52:00 am Posted by Lachlan No comments

I've heard it said before that most people who attempt to make indie games are generally either Artists (of some form), or Programmers. When they're people like me - making games by themselves, that generally involves loving one and struggling through the other - Programmers need art for their games to look pretty (unless they're making a Roguelike or Old-School Interactive Fiction), and Artists need programming to bring their pieces to life. Unfortunately, I lean towards being a programmer, and I'm not particularly good at either. Except music - and even then, generally outside the realm of Video Game music.

I've got a few ideas for what I'd like to make next. Unfortunately, they inevitably involve needing artwork of people. So - I've made the first version of my Prototype Dude. He's made in inkscape in a nice, scalable vector format. He is simple to edit, and simple to change, and simple to modify to new purposes. I think I'll use him when programming these learning things, and the prototypes of games to see whether they are fun or not. If I decide to go all the way with one, and try to make it commercial, then I'll either embrace the simplistic style or replace the graphics with more complex art - which may, or may not be done by me.

So far, I've done a Walk-cycle. Its an old-school 3 frame walkcycle - which doesn't look great at higher resolutions but is certainly passable. I might bump it up (particularly the side walking) to 5 or 8 frames later.

This is him so far. He may be updated, but its a start. If anybody would like me to put up the SVG for you to use, let me know.

Saturday, 18 June 2011

The (Lite) Night The Martians Came Released! (v0.1)

6/18/2011 09:18:00 pm Posted by Lachlan 1 comment

My fully playable space invaders... tribute "The (lite) Night The Martians Came" is now playable by you. They get harder, they get faster. Staying alive will be an issue for you :). Feel welcome to post your high scores here - which may be a challenge 'cause each level gets faster too.

To install, just download, and unzip, and run 'The Lite Night The Martians Came'. Mouse or arrows move the ship. Clicking or pretty much every button except escape or f fires. Escape pauses, f goes to full screen.

You can download it from here.

I've seen this more then anybody... obviously


I've implemented almost every feature that I think needs to be implemented for a playable, and remotely enjoyable game. I might still add a few things, or make some changes but that's why I'm calling this the beta. I've learned a lot about C++ but the code itself whilst not buggy, is in a sorry state from having not really designed it. It'll be a pain to long term maintain - though there are distinct chunks of it I'll be able to use again. The code bounces all over the place, and isn't really well split into classes. But the thing works.
The source is an absolute mess - but I may release it too. Just not today.

Again, you can download it from here.

Update: 19/06/11 1:02AM

Something appears to be screwy when on XP. Everything points to a missing DLL but I can't figure out what it is. It should work if you have the VC++ 2010 Runtime installed, but I'm not convinced. If anyone has a clue how to fix it, please let me know.

Update: 19/06/11 12:15PM
I fixed the problem. Something related to manifests etc - and at least one library compiled against Visual Studio 2005 runtimes. I've updated the download - it should work on XP.

Tuesday, 14 June 2011

Space Invaders - Progress Report

6/14/2011 06:27:00 pm Posted by Lachlan , No comments
Shooting and...

Destroyed!
I've made progress in my space invaders clone. I now have invaders. They don't move, they don't regenerate, they don't shoot, and they can't add to your score, but they can die. They can be destroyed, with a satisfying explosion. There is some light at the end of the tunnel.

The Codebase itself is an absolute mess and is probably best described as an example of how not to force old-style procedural programming upon classes, which in themselves are poorly split, highly interdependent and full of data and gameplay - not always related.

But, I'm still learning C++, and that is the goal. I need to learn more patterns, and be stricter with how I apply it. I'm finding that one of the hardest things to grasp in C++ has been the STL, but really, its a fantastic resource - particularly having object oriented lists, arrays and (as I'm loving) maps directly available. Whilst this is simultaneously over-engineered and under-engineered, I'm beginning to get a better idea of the types, classes and features available to me - as opposed to simply programming in ObjectPascal with C++ syntax. Whatever comes next may have to be more planned then this was, but I've got a better idea of the language now for when I do the planning. However, this code may be properly considered a casualty in my lessons. If I want to expand the feature set, there is a genuine chance I'll need to refactor the code considerably. I'll make a playable game (rather then a shooting gallery, without a score and stationary targets), and then see how much I care about extending its rather pitiful life. But a useful learning exercise nonetheless.

Sunday, 12 June 2011

Martians Update

6/12/2011 10:00:00 am Posted by Lachlan No comments
OK - Progress Update:
I've got a nice, generic chunk of code for making menus. It works, it plays sound, you can see it above and

I've finally started actual game programming (between studying for exams). This is the ship, shooting bullets (with sounds), that is controllable by the mouse. Next is to add enemies, and we'll start having something playable!