schnerble

LD25

Post-Mortem / Timing Breakdown

Hi everyone!

I thought I’d write a bit of a post-mortem for my game, Thievery, but in doing so decided on something a bit different.  From my git logs for the game, I have a reasonable record of what happened when (and can take a fair guess at the rest), and thought I’d post it to see if it’s of interest.  The stats at the end were interesting for me (:

My game is about helping a thief sneak around and steal gold from houses and pickpocket guards, while avoiding capture by the guards and guard dogs.  Note that the times listed below include a fair bit of time spent on “art” – it was definitely programmer art, so nothing too impressive, but it still took time (:

Saturday December 15

02:00 Theme announced; I'd decided to sleep through and find out in the morning
 08:00 Woke up; started getting ready and brainstorming at the same time
 08:30 Started work on Thievery
 09:08 Got a basic loop running, with newly-created background and placeholder player sprite
 10:15 Added player movement
 12:53 Added dagger shooting, after spend ages on sprite rotation
 13:18 Finished lunch
 14:13 Put guard & thief images in
 14:46 Can now shoot guards with daggers, using rectangle collisions
 14:57 Limited player movement to the screen dimensions
 15:45 Back from 45 mins jogging
 16:39 Added basic stats, plus dying animations for characters
 16:49 Added damage animation
 18:51 Added houses
 19:20 Wrote some basic level loading code
 19:40 Finished dinner
 20:31 Fixed rectangle collisions (for daggers/houses, etc)
 20:58 Added circle collisions (for living/moving things)
 21:46 Added chests
 23:54 Added looting
 00:30 Guards now chase the player when seen
 00:56 Guards now hit the player when in range
 01:10 Now reports player death, and forces restarting
 02:13 Added guard patrol routes

Sunday December 16

08:00 Woke up
 08:30 Back to work
 10:03 Guards now move around obstacles, instead of getting stuck
 10:23 Added pausing
 11:07 Guards now can't see through houses
 12:39 Added basic events system and character chatter
 13:40 Back from an hour at the gym
 14:00 Finished lunch
 15:48 Added more events with chatter, and a win screen
 16:48 Added guard vision cones
 18:00 Back from meeting friends for 45 minutes
 18:20 Guard vision cones now turn red when chasing
 19:32 Added better level data
 19:50 Guards can now only see forwards
 20:00 Finished dinner
 21:09 Added intro screen
 21:15 Guards can now see at 90 degrees at close range
 22:09 Added guard dogs
 22:35 Added Pickpocketing
 00:07 Added sounds, including triggering from events
 00:49 Added music - main and win screen
 01:30 Windows build fixes: paths, extra keys
 01:49 Added guard alerts
 01:58 Submitted Linux version
 02:00 Deadline for development (start of submission hour)
 02:06 Submitted Windows version

Overall totals:

  • Programming: 25 hrs 30 min
  • Art: 3 hrs 45 min
  • Level and other content design: 1 hr 35 min
  • Sounds: 45 min
  • Music: 30 min
  • Breaks, etc: 4 hrs 30 min
  • Sleep: 11 hrs 45 min (+2 hours before LD25 started)

Final points

  • Most fun thing to put in: guard and thief chatter (I couldn’t be too inventive given my tiredness, but it was still satisfying)
  • Next thing I would’ve done if I had time: given the player a way to hide from guards to get away
  • Thing to do for next time: get better at art (;
  • Thing that I wasted the most time on: sprite rotations (got confused about centre-relative vs corner-relative, rotation angles and units, etc)

I had a great time creating this game.  I’m glad that many of you have had a play and enjoyed it, and hope you all enjoyed yourselves making your own games as well (:  Good luck to all in the voting!

thievery6

Tags: postmortem

LD27

I’m In – With Difficulty :)

Hi all!

After missing LD26 due to family commitments, I’m back in for LD27.  Looking forward to it!

I’m using another new technology this time: Emscripten, to compile C++ code using SDL (and ideally OpenGL) into JavaScript code playable in a web page.  The guys have done a remarkably good job on that; I’ve just been trying it out recently, and it’s really cool.  I’m in the middle of a bit of indecision about exactly which libraries to use, as I’ve been playing with SDL, and that’s really cool, but unfortunately not all of it is implemented in Emscripten yet – including some things I was going to depend on, such as setting colours and transparency levels for surface blitting.  I’m having a last-minute look into using the WebGL subset of OpenGL ES 2 in it, in the hope that I can get everything going that I need – though the question arises whether it’s really worth using WebGL via Emscripten as opposed to just WebGL in JavaScript… hmmm (:

The little bit of my own library code I’ve been using, to make sure I can actually get something going in the time, is here.

Adding to this interesting situation is my current lack of Internet access from home.  Well, luckily there’s an Internet cafe nearby, but that may lead to me finishing early, as they’re not likely to be open when LD27 closes at 2am Sunday night, UK time… I have some ideas about uploading at the last minute via my mobile phone, but we’ll see.

Target Platform: Web
Language: C++ / Emscripten / JavaScript / HTML5 / WebGL (wheeee)
Development Environment: QtCreator on Linux (Kubuntu 13.04)
Graphics: GIMP
Sound: SFXR + Autotracker

Good luck to all, and may your bugs be few and uncomplicated!

Comments

schnerble
25. Aug 2013 · 00:23 UTC
Thanks! I’ll check that out if I have any trouble. In my early tests, SDL’s mixer module worked fine for me; I’d been using an OGG as in previous entries, and that seemed fine on both Firefox and Chromium (on Linux). I think it said it supports ITs directly too, which would be nice to save space… will see.

LD28

Sadly I’m Out

I was really looking forward to LD28.  Nothing like having an excuse to programme something fun!  Unfortunately I’m now going to be away this weekend, so will have to give it a miss – but at least it’s for positive reasons… I have a couple of job interviews coming up (:

Enjoy yourselves in the compo, and may the best game win!  See you here again next time (:

LD31

My first Ludum Dare in Seattle!

Hi all!

I skipped Ludum Dare 28 due to job interviews in Seattle… and now I’m here!  It’ll be interesting to see what it’s like to start a jam at 6pm (PST) instead of 2am (BST) for a change (:  (I missed LD29 and 30 due to other commitments)

Who else is joining in from the Seattle area?  Just curious!

Anyway, game-wise, I’ll probably go for something web-based this time.  I haven’t had enough spare time to look into APIs much, but these seem likely:

Dev platform: Visual Studio on Windows
Language: TypeScript most likely
Potential libraries: Babylon.js, Cannon.js, maybe Three.js; whatever works
Programmer art: Inkscape, GIMP
Audio: Autotracker, BFXR

Looking forward to getting back into it! (:

Phaser or Cocos

I’d like to say a quick thank you to whomever it was that mentioned Phaser.js recently… I set it up last night (then ran out of time), and it looks very cool and easy to use.  In the longer term, I’m still interested in Babylon.js, but I think there’s more that I can mess up there when rushing around during the compo, and bugs aren’t things I enjoy (;

I’m curious now about comparing Phaser.js and Cocos2d-x.  At first glance, Phaser looks a bit easier, but Cocos2d seems to provide a bit more control.  I doubt I’ll have the time to really look into it just now, but maybe for next time (:  I’d be curious to hear opinions, though – if anyone notices this post among the hundreds going past at the moment!

Comments

04. Dec 2014 · 21:08 UTC
I gave Phaser.js a try for LD30. It was pretty good – no real surprises – and was perfect for the type of 2d game that I did (see below). If someone told me that I could only use Phaser for LD31 then I’d be perfectly happy to.
schnerble
05. Dec 2014 · 18:53 UTC
Cool – glad to hear it worked out for you! Nice work on the game too : ) I had a bit of a play with Phaser last night, and it seems to do everything I spent many previous LDs building myself in various other languages… nice time saver!

Rush mode

Guess I’ve been pretty quiet on the board for this LD… I’ve been rushing to work out what I want to do and how to do it, and changed the game style at around the mid-way mark.  It looks like things are coming together, though; let’s just hope there’s enough fun game in there at the end!  I’d post a screen shot, but it’s full of messy debug info at present.

I’m seeing some very interesting game ideas out there.  Good luck to everyone in the final stretch!

Made it

Once again I’m almost a little surprised that I managed to get things finished in time.  Much of the credit goes to the makers of the very awesome Phaser.js, which pretty much did exactly what I told it every time – which actually isn’t as common among libraries as you might think!  Any bits of time I lost were from silly mistakes I made in coding (and there were several), or weird bugs in other software (I’m looking at you, Gimp!) – but largely all went pretty smoothly.  I even managed to get the time to leave the house twice…

My game started out as a sort of a Gauntlet thing, but due to the odd structure of it (a sort of ever-changing maze on the one screen) it became clear at about the half-way point that I wasn’t going to be able to get that to work in time.  I turned it into a fairly simple little puzzle game, and I think it turned out pretty well.  I had enough game mechanics to keep play going for a little while, and could’ve made a few more levels if I’d had the time, but it’s probably enough as is.

I didn’t get time to polish things to make a more well-rounded experience, such as adding menus, game restarting, and other such bits – and there’s no music – but never mind.  Other things I was going to do included improving the animations (you can’t see much changing in the up/down player movement), adding water splash and rock rolling effects, making the charge only last for a limited time, and adding some hints to explain what to do.  Never mind.

If you get a chance to have a play, let me know what you think!

"Clockwise" screen shot

LD32

With Bells On

I’ve been in for this compo for so long that I almost forgot to post it.  In!  (with bells on, as they say)

Coding: TypeScript, Phaser.js (/.ts), Visual Studio
Programmer art: Either GIMP or Paint.NET (I know GIMP better, but it’s very slow with a drawing tablet in Windows, and Paint.NET seems to do most of the same stuff)
Sound: BFXR of course (or maybe SFXR if I reboot into Linux at some point)
Music: LMMS if I get time; Autotracker if I don’t
Other: Maybe Tiled if it’s relevant to the type of game I do

Best of luck to everyone!  Hope you have a most excellent and awesome time.

One particular shout-out goes to the Seattle Games Co-op people… good luck, and maybe see some of you soon!  (though not in person for the compo – there’s no space left, after all)

You Gotta Know When to Hold ‘Em…

I’m folding them.  This will be my first entered-but-unfinished Ludum Dare, but I never did come up with an idea I really liked.  I tried out a frog racing game for a while (the weapon being their tongues to catch nearby creatures with or knock opponents away) and then a platformer with a net to catch enemies and a grappling hook to swing around on, but neither really seemed to be going all that well – and when it started to feel like work (like my regular job), then I figured I might just use my weekend on something else (:

Hope the rest of you enjoy the competition, though.  Good luck to you all!