About Gwilym

Entries

 
Ludum Dare 36 Warmup
 
Ludum Dare 31
 
7dRTS
 
Ludum Dare 19

Gwilym's Trophies

Gwilym's Archive

Day One Complete

Posted by
Saturday, December 6th, 2014 2:15 pm

Due to timezoney stuff, the theme was released here at 3am. So I got up at 7:00 ready to start.

Had set aside 2 hours to get a minimalistic idea ready, and it took my about an hour. I already had some form of prototype by 9:00am and by 11:00am had most of the core mechanics done.

To be completely honest, the online high scores is the bit that’s taken me the longest.

 

Taking the rest of the day off I’ve worked on this pretty much non-stop for 12 hours. I’ll finish this tomorrow after a good rest and some board games.

But before I go, here are a few screen shots of the currently un-named game.

The calm before the storm?

The calm before the storm?

The actual storm

The actual storm

The online highscores

I look forward to having this full of people that aren’t me

Lets do this

Posted by
Friday, December 5th, 2014 1:16 pm

Getting ready now. Haven’t had very much time to practice due to university work but term ended yesterday and I’m feeling ready. Let’s see how things go this time 😀

Congregation – Post Mortem

Posted by
Wednesday, July 31st, 2013 3:09 pm

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.

Screenshot - 310713 - 21:25:50I’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.

Screenshot - 310713 - 21:31:22

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.

Screenshot - 310713 - 21:58:25

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.

Screenshot - 310713 - 22:03:20

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.

w

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.

FML THE GREENS R ERE

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)

Day 7

Posted by
Sunday, July 28th, 2013 2:30 pm

title

Its been quite a week. Unfortunately, my game isn’t in a submittable state quite yet. But hopefully, by the end of tomorrow, I’ll have something which is completable. The project has come with its own lessons and plenty of surprises. I thought I might list a few:

  • Networking is a nightmare to debug… with a debugger, but really easy with a bunch of well placed printf statements
  • By writing algorithms down on paper, everything seems to work second attempt (I’ll give examples in a later post)
  • A* is really easy to implement, but getting the characters to follow the path is the difficult part
  • Two monitors makes things much nicer
  • SFML is a really nice library to use
  • Once networking is out of the way, programming the rest is much easier
  • I get “in the groove’ when listening to music
  • Keeping the games synchronized was almost too easy

Screenshot - 280713 - 22:27:39

What I’ve got left to do is:

  1. Implement fighting and collisions between people’s minions. (yes, I haven’t done that yet)
  2. Add a win condition
  3. Make the settings dialog
  4. Make the sound effects play

Hopefully I can get that all done by tomorrow… hopefully….

 

Day 5

Posted by
Friday, July 26th, 2013 1:30 pm

I’m now at the stage where I wanted to be yesterday morning… networking works and the multiple client stay synchronised. At least it supports up to 8 players. But this does mean that I’m going to have to make a very sad announcement. Network coding has to be 438.4% harder then I originally thought it was. Although I can say that what I’ve got is fairly stable now, I foresee very many problems tomorrow when I implement the placement of tiles. So much so that I can’t see this finishing in any sort of playable state by Sunday. But fear not. I’ve got another week to work on this game afterwards, even if I can’t submit before the deadline. So hopefully, by this time next week, I’ll have something playable (yay). Most of the progress was on the code today, so I think some code stats are in order for now:

  • lines: 3359
  • files: 67
  • largest file: 498 lines

What’s the size of your projects for this miniLD?

Day 4

Posted by
Thursday, July 25th, 2013 2:00 pm

Getting slightly more confident now. Got a bunch of your minions appearing on the screen and tomorrow I’ll work on making them controllable. The weeks gone too fast!! I wish I had more time.

2013-07-25-215528

What I’ve done so far:

  • Initiating a multiplayer session
  • A lobby (servers broadcast themselves so the lobby displays a list of servers)
  • Up to 8 player multiplayer
  • Random state is synchronized across all clients (I’m carefully writing it so that no floats or doubles are required… ever :P)
  • View scrolling
  • A secret feature which you’ll have to play to see (I’m rigging all the future screenshots and this one to hide it)

And left is a whole lot more. But I reckon I can get something playable by the end of tomorrow. Player movement next, then tile placement. Wish me luck!

Day 2

Posted by
Tuesday, July 23rd, 2013 2:26 pm

So day 2 is over (at least here in the UK), the graphics are nearly done, unfortunately, I can’t say the same thing about the code. This is proving much harder than I thought it would be (and I didn’t think it would be easy). So thanks (or not) to my two friends, they’re really showing me up. Hopefully, I’ll have something to show as far as code goes for tomorrow.

PS, I’m busy tomorrow doing other things so read tomorrow as the day after tomorrow.

title

I’m ready

Posted by
Sunday, July 21st, 2013 11:23 am

Its going to be a tough week. I’ve never programmed an RTS but more importantly, I haven’t actually finished a game yet. Hopefully the competition will force me (in a good way) to finish this. I’m going for a gameplay based on the awesome board game Carcassonne, with some major changes to make it doable as a real time game. There are 3 of us on the team, me programming and 2 friends who will be doing the drawing, choosing the music (none of us can compose) and collecting sound effects.

The idea is to use SFML as the game engine writing the game in C++. I bought the SFML book (this will be my first SFML game) which I would recommend for anyone who’s beginning game development (like me :P).

So good luck to you all, I hope you finish and I hope that I also finish :). And most importantly, have fun.

[cache: storing page]