After playing my game with the three of us who made it for well over an hour and a half, I think I can call this a success. It was probably the project I’ve put the most effort in in my life so far. And I had so much fun making this game. Its also really nice seeing other people enjoy playing it aswell. I hope to invite a few friends over with laptops so I can actually try out the 8 player mode. Playing with three players is mad enough. I’ll see how more then that goes.
I’m not going to do a day by day breakdown of how the game progressed, but rather talk about all the major parts of it and give a brief discussion of how I overcame all the problems I faced. Mainly for my own purpose because although I can look through the git logs to see what was done when, its nice to put it in a better form of english.

The code took a very long time to get to a state which was properly playable. I’d never written a game with SFML before but I found it to be a very well thought out and consistent game library. Before I’d always used SDL but because I needed pieces to be able to rotate, SDL wasn’t going to do the job, unless I started using OpenGL directly. And I wasn’t going to do that yet. I did try but that didn’t work out very well. Also, the SFML networking module was truly my saving grace and without the sf::Packet class I don’t think this game would’ve been possible.

At the beginning I wrote my own GUI library on top of SFML. It was a complete flop and very short lived. I lost a few hours to making that and replaced it with SFGUI. I future versions, I’m probably going to re-replace that with my own code so that I can have more control over it, and save the extra dependency (I have a feeling it increased the binary size by about 4MB). But thats for the future, for now it helped a lot quickly forming the game joining screen.

My friend Jake drew all the tiles in one sitting! I think he was expecting the game to pop out of thin air at about the same speed as he could produce the graphics for it. I wish! So anyway, he had other commitments later on in the week so when I rang him to say that I’d finished the game on Monday, he was very surprised. The other friend who was helping me with graphics, Tom, he did all the drawings of the minions. Initially, he was very disappointed by how small they were and that his work wouldn’t be visible, but that thought was quickly banished when he attacked me with his army of 3500 of them.

When I started out, I really wanted there to be epic battles with hundreds of units all fighting. And now, well, as you can see from the screenshot, you can see that thousands is much more common. Unfortunately, due to me not play testing enough, the path finder wasn’t really up for it. But that was due to the fact that I was massively underestimating H in my A* algorithm. So in the post compo version, I now overestimate (I’ll upload that tomorrow, its getting late here). The paths your minions take is still of a high quality, and the path finding no longer takes for ever. Yay :).
The network code was a nightmare to get working. But once I’d written a base code for it, the commands I sent over the network were easy to manage. I had a few bugs, but they were easy to sort out because they caused really obvious desynchs.
The way the game manages the network code is by running a full simulation on everyones computer, and sending messages for command the player issues. That way, the game is really easy to hack because there is no validation on the commands sent, so you can move your opponents minions should you want to. But I thought that the game is designed to play on LAN with friends so that doesn’t really matter.
The code is probably the worst in the world. The update method when you’re playing is 350 lines long. I don’t think that that is how its supposed to be done. But after 2 days, I really didn’t care any more, and just went for it. It managed to stay pretty stable with 4000 guys walking around, so I’m quite happy about that.

All in all, 20% of the game is the tile, 20% is the hats, 20% is the gameplay, 20% is the number of minions you get and 20% is the ridiculousness of the collision resolution algorithm I wrote.
I could write this much again, but I think I’ll leave it here.
(See the entry here http://www.ludumdare.com/compo/minild-44/?action=preview&uid=2430)