LD19 December 17–20, 2010

Scanno Domini bug fix version released

I’ve just put up a new version of my copy-and-kill top down shoot-em-up Scanno Domini. It’s a game where you encounter randomly generated enemy robots, scan them to unlock their parts, then kill them and take all their guns, shields and engines for yourself. Play it here. If you’re a judge, rate it here.

Scanno Domini 1.1

The feedback has been amazing so far – this is the first game I’ve ever finished, so it’s been a genuine surprise to hear of people enjoying it. Whether you’re judging or not, I’d love to know what you thought of it if you tried it out – leave me a comment here or at my blog (doesn’t require registration).

This version fixes a few significant bugs I didn’t have time to test during the compo – the competition version will stay as it is, of course, I’m just putting this up for anyone who wants to have fun with it. The key changes are:

  • Choice of resolutions – anything up to 1920×1200. The game will remember your choice and not ask you again.
  • Fixed a crash relating to being able to fire while dead. Duhhh.
  • Fixed a bug preventing enemies from sensing when you shoot or touch them – they now turn to try and find you.
  • Fixed a lot of erratic behaviour with the scanner – it’ll now scan all the new tech the bot has in one go.
  • Fixed a problem with bot behaviour that made The Ominous Event extremely hard to recover from – they’ll wander off on their own once you’re down now.
  • Fixed a bug causing some bots to spawn ‘blind’, with no vision cone. It was kind of cute, but causing problems down the line.

Timelapse ahoy!

There is a timelapse.  Me making my game.  On the youtubes.  Go Look.    Here: http://www.youtube.com/watch?v=G5G1jvTWfZ4

2011 – How to play the game

After regaining some energy after that cool but exhausting weekend I finally realized that quite a lot of people don’t read the text of the tutorial and therefore don’t get all options how to play the level. We all have to vote for about 250 games so there is no time for a tutorial….and to be honest I would skip it as well! 😀 Nevertheless that prevents people from knowing that you can change planet- and orbit-size as well which is actually the most important part…

To make it a bit clearer I just made my very first screencast… ;D so have a look

How to survive Level 2

In the Darkness I Shall Fall on the Web

Thanks to information provided by bernardfrancois (thank you!), I have released my Unity game competiton entry on Kongregate.

It is kinda like Marble Madness played mostly on ledges in the darkness.

You can try it here:
http://www.kongregate.com/games/Dogstar669/in-the-darkness-i-shall-fall

*** I have fixed the problem with the jerkiness in the web edition. Please don’t review for this compo on the version submitted to Kongregate as I have published some fixes and tweeks to levels on there. The windows version is the one to review.

Bear-Thing sez: Jammers Need Love too

Happy voting and commenting everyone. :)
Have a great holiday season and I hope to see a bunch of you at GDC in February.

Tags: bear

Comments

22. Dec 2010 · 17:32 UTC
+1
24. Dec 2010 · 12:34 UTC
I like the timing of the tummy rub.
06. Jan 2011 · 00:11 UTC
yeah, i think i should do some tweaks to the system this year to encourage jammers more.

Mothership post comp rev, or, Why Mothership Failed.

First of all, I want to quickly note that I’ve made another minor revision to the post comp version of Mothership, details can be had at my website blacktriangles.com.

As to the title of the post, I wanted to quickly jot down a second post mortem for my project, this one perhaps giving better insight into what’s really important about what happened during LD19 and why I believe my submission was a failure.

The consensus in feedback has overwhelmingly contained the sentiment that “your project had a lot of potential, it’s too bad you ran out of time.” At first I was inclined to agree with them: the failure I met was with an inability to scope my project to meet the timeline, an inability to execute on the plan, and too many features without enough polish.

I realized the truth, however, after reading a blog post I made a week before ludum dare ever started. I was talking about a platformer I was working on:

If it isn’t fun to jump and run around in a platformer you’ve already failed – regardless of the bells and whistles you tack on.

I reread that today and realized that I had failed with Mothership long before I ran out of time. Even if I were given a week, or a month, or a year, in the mindset I had while developing the game I would not have been able to compete with any other LD submission. Not only did I fail to nurture the fun in my game – I completely failed to identify it to begin with.

I am friends with a very talented designer who worked at Bungie back in the Myth days and while describing to him an idea I had for a game he asked me a simple question that stopped me cold.

“What verbs describe your game?” The question made no sense to me, he elaborated, “What do players do, list out the verbs.” They… move? They fight? They explore… I went on for several minutes before he stopped me again: “Pick one, make it fun. That’s the best way to make a game.”

The reason I thought of making Mothership in the first place was because the original verb for the game in my head was “exploration”. The fun wasn’t in collecting the materials, or even repairing the mothership, it certainly wasn’t supposed to be a crappy FPS. It was supposed to be about landing on an alien planet and seeing something new each time you played the game.

If stepping off the mothership onto the planet didn’t make you feel excited, if you weren’t anxious to see what was around the corner, or felt a sense of discovery – I have failed. I admit, that’s a tall order for two days! No wonder I didn’t pull it off!

Luckily, failure in games is really just an excuse to start a new iterative phase. Each milestone is a starting point as well as a finish line. I have already outlined a few items that I believe will help bring out the fun in my original idea. Wish me luck, and thanks for your feedback, without your insight I would never have gotten this far, nor understood how far I still have to go.

“Caves of Darkness” – (mini) Postmortem

Hi everybody,

I thought I’d share some of my experiences from LD19 creating “Caves of Darkness”, what went wrong, what went right and so on…

What went right:

1. Design – for the first time ever, I thought of a game idea, and implemented all the necessary game mechanics! Here is an early sketch from the morning of the competition:

Those of you who played the game (And if you didn’t – please do it now! :-) ) will note that the game and the sketch are pretty close, something I consider a success.

2. Graphics – I think the graphic style of the game went very well, I worked quite a bit on the lighting effects as they are a major part of the gameplay mechanics, and I think the result is decent!

3. Sound – although the music is not exactly as I wanted it to be (I wanted it to be a bit darker, and mellower) – I think it is not bad after all, and suits the game well.

4. Levels – another first for me – my code base actually supports adding new levels easily, loading them and the game elements from file. This is a HUGE step forward for me, as I really think this makes this thing a GAME and not just a sketch.

What went wrong:

1. Controls – a common problem I have on all of my LD entries – controls are a bit twitchy. Fine tuning the parameters is hard, and because it is based on a simple “physics” engine, it makes it even harder. I think this should be the main thing to rewrite towards next LD competition (or in general, for that matter).

2. Game Elements – this is probably because of lack of time, but I really wanted to have more gameplay elements – moving platforms, collapsing floors and more – maybe for the next LD I will be able to make those happen, now that the code-base is growing.

Overall, I’m pretty happy with the result, and I had lots of fun participating.

So thanks, and if you haven’t played my game already – go, now! and vote! :-)

Thanks,
Daniel

Tags: postmortem

Into the unknown – some post-compo thoughts

Well, had some time to think over what I did right and wrong for my first participation in LD, or any game making sprint for that matter.

The good :

  • I ended up with something playable. Sure, it lacks a lot of stuff, but considering I had to pretty much give up on more than half of the 48 hours thanks to “life”, it’s still a good thing.
  • I managed to learn pyGame. I had sort of glanced over the docs before, but getting down to programming with it really is the best way to truly learn how to use it.
  • I didn’t spend a single second fixing ‘code’ problems. That’s thanks to Python, but anyway the only bugs I had were logical ones, and not some weird case of the code behaving in strange ways. That was refreshing.
  • I had loads of fun, which I see as an important point, that means I’d do it again.

The bad :

  • I tackled problems in the wrong order. I spent a huge amount of time trying to fix my lighting system, and still didn’t get it right on time for the submission deadline. As I was making a platformer, I should have concentrated on getting a platformer first, and then add the light stuff.
  • In relation to the previous point, I spent way too much time on a single problem. And by not changing and working on something else, I kept trying to push in the wrong direction. Case in point : on monday, I fixed my lighting problems in about 20 minutes, because my mind was clear and I could see the solution I’d missed (hint : I was trying to determine what areas were lit, I ended up computing the shaded parts instead…).
  • I didn’t allocate time for packaging. I figured that Python and pyGame being cross-platform, it would work out, but I should have spent some time to properly package for MacOSX users and Windows users. I’m going to fix that as soon as I have some time, though.

So there you go, all in all I’m proud of myself, and I’ll be sure to continue working on the game. I think it has some potential, even if it’s very crude and barebones at the moment. I’ll post updates on my blog, so go there if you’re interested.

Thanks to those who provided feedback, it’s really helpful! And stay tuned for proper exe and app executables in the next few days (busy packing as I’m going to Canada on friday, but I’ll find some time…).

Comments

True Valhalla
22. Dec 2010 · 09:03 UTC
I spent ages on one bug, and the next day after a few hours sleep fixed it in 5 minutes…gotta hate that.

Discoverer – More Post Mortem

Following on from my first post mortem… I’ve uploaded pictures of the notes that I took throughout the comp.

#gallery-1 { margin: auto; } #gallery-1 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 33%; } #gallery-1 img { border: 2px solid #cfcfcf; } #gallery-1 .gallery-caption { margin-left: 0; } /* see gallery_shortcode() in wp-includes/media.php */ The setup after the comp... didn't really get that messy :P The setup after the comp… didn’t really get that messy :P DSCF0365 DSCF0366
DSCF0367 DSCF0368 DSCF0369
DSCF0370 DSCF0374 DSCF0375
DSCF0376 DSCF0377 DSCF0378
DSCF0379 DSCF0380 DSCF0381

Tags: deskphoto, journal, post-mortem

Compunctions

I was pretty happy with how things went over the weekend, however I did do a number of bugfixes in the days since then (a game-breaking lightbeam glitch, added ‘up’ as jump, changed the position of a couple of blocks to remove some shortcuts, and changed the circumstances under which a particular help message would appear), and I had just thrown them up in the same place. I felt VERY BAD about that today, so I went and managed to find a copy of the sunday night version and put that up as a download as well, with the web one marked as a ‘bugfix’ version.

So, if you want the true, authentic, 48 hour experience, then go to that one :)

Timelapse

Here is my timelapse video. Unfortunately run out of time to figure out how to edit it and append the gameplay video.
Maybe I will work it out for next time.
Video here

Tags: timelapse

Web Games vs. Downloads

Can anyone recommend 3 or 4 downloadable compo games that I shouldn’t miss?

I’ve only tried Flash and Unity games so far but would love to try the best of the best of the native executables.

This entry was posted on Wednesday, December 22nd, 2010 at 1:09 pm and is filed under LD #19 - Discovery - 2010. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Germies Postmortem ( and 32bit bug fix )

I’ve just fixed a rather peculiar bug that I didn’t catch as my main dev machine is 64bit Linux, and my Windows build laptop was running 64bit Windows too… seems that my timers are a bit iffy as under both 32bit Linux and Windows, the game runs at double the speed! Well, technically, it’s the 64bit versions which are running at half speed, but as I wasn’t aware, I tuned the game for this speed.

Seems that being lazy and depending on SDL_gfx’s FPSManager wasn’t wise.. I’m assuming it relies on the size of an int since SDL_Timers are unsigned ints – which is obviously different across 64bit and 32bit architectures. Though it’s my own fault for not testing in the first place!
Granted, it was done in seven hours, and I guess these can be considered “ports” to 32bit platforms as the only change was a modifier to the infection countdown to double it’s response time.

The original one has now been marked for 64bit platforms, and a 32bit version uploaded on the Germies entry page, here.

Speaking of those seven hours, here’s the postmortem after the jump.

Most of the weekend was spent trying to get my original project up and running – a platform-puzzle game whereby you had to run and jump around platforms, absorb objects to gain “powers” and use these powers to collect bits of your ship; which had crashed on this planet and scattered bits of itself all over the place.
I was borrowing an engine for the weekend with the premise of adding a prototyping layer on top of it. Thereby breaking one of the rather fundamental “unwritten rules” of LD – the code you’re going to write in the weekend is generally going to be thrown away, as it should be specific purpose rather than general purpose. You’re coding a game in 48-72 hours, so you don’t generally have the time to cover all bases with your code!

Day One:
To be honest, the first day went reasonably well for the most part, as I did get a lot of the wrapping done. It wasn’t till I started abstracting things out to Lua that it all went decidedly pear shaped as the system didn’t quite support what I was up to.
As it’s not my own personal engine, hacking it in wasn’t really an option; so I tried to do it properly.
Fail.
I haven’t really done much Lua – engine binding in particular – for a while now, and it showed as I had forgotten what the engine was actually doing, and got a bit lost. It didn’t help that I had also forgotten to grab the book that effectively has a rundown of several binding mechanisms in it and is an invaluable reference for what I was up to ( that book being Game Programming Gems 6, by the way.)
However, when I eventually headed off to sleep on Day One, I did have something implemented which I thought was working.

Day Two:
After thinking Day One had gone reasonably well, I started expanding into the Lua side of things. This was where I was going to do all the game logic as per usual. So I started getting the framework setup Lua side with the binds I had done yesterday; noting down any extra stuff I would need later on.
Then I realised what a pig’s ear I had made of the changes I had done to the engine… the way I was binding things was total nonsense.
What I was trying to add, was the ability to bind the C++ objects as meta tables. This would effectively allow the engine’s bound class to act as the “virtual” interface, and I could extend it Lua side if need be. Except… I hadn’t done that, and had bound it out as a generic table, and forgotten to bind the user data pointer to it so that Lua understood what it was.
I then spent literally the rest of the day faffing about in the binding mechanisms trying to get it to work right, with a notepad tracking the stack state at each point. In the evening I decided to stop, have a bath, relax a bit, and get some sleep; thinking that coming at it with a fresh mind in the morning would be best.

Day Three:
Unfortunately, this wasn’t to be, as I spent till lunch time banging my head off the wall as Lua politely told me that I was referencing any one of a table, a string, a bad self on a table, or a user data pointer.

So, the worst had happened.. I had forgotten much of my Lua knowledge, buggered up the engine, and didn’t really have anything that worked. Although I had managed to get enough bound to open up a window from Lua, that wasn’t really going to cut it!

After a long walk and some lunch, I decided to plump for Plan B – do it from scratch.
This was particularly insane considering at this point there was only about ten hours left of the Jam, and all I had was some concept doodles I had done a couple hours after the theme was announced.
I scrabbled around for a quick design, and based it on an old puzzle game I’ve had the idea to do for a while.

A few hours later, I had a basic game loop, with stuff being drawn, tiling, selecting, etc.. but no real logic.
Few more hours and the game itself was essentially done, and just needed some testing and sound effects.
In the last hour, I added the sound effects, quickly ported it to Windows, and fought with my FTP server a bit in uploading it – but I did infact submit it before the deadline ( and before the hour’s grace period started! )

Conclusions:
It makes me wonder how it would’ve ended up if I had done Germies from the start, rather than being perhaps a bit too ambitious with my plans. If I had remembered my books, I may have got my initial problems sorted quickly and produced a completely different game, but then would I have fallen into a trap elsewhere?

It’s interesting, as mostly I come into LD with some base code or engine stuff, and most of my time really is spent hacking around that to get it to do what I need it to do, rather than just writing logic code. This weekend was no exception, just that the engine was bigger and more complex, and used for more than just for silly little things that I do.
Yet, I managed to do something from scratch, with no base code whatsoever outside of stock SDL libraries, in just seven hours, which is probably more stable and playable than my previous efforts have been.

So there’s a topic of discussion, do engines actually help in Ludum Dare? or do you spend more time hacking around and squeezing your game constructs into patterns the engine will understand, rather than writing your actual game logic?

Perhaps the sweet spot is actually maintaining a prototyping engine/layer that’s in reasonable constant use, so that when a main Ludum Dare or other prototyping opportunity comes around, you’re used to what it’s doing and how it works, rather than having to waste considerable time remembering how it works; or worse yet, forcing it to do what you need.

I suppose, even if my submitted game has very tangible links to the “Discovery” theme, from a personal programmer perspective, this weekend’s certainly been an eye opening discovery in itself.

haXe your flash, sdl, javascript friend :)

Hi all,

As a first part of my postmortem I just wanted to tell you about a language we used with two of my friends (ben & deepnight) during the competition : haXe.

The language itself is easy to learn and has many powerful features that make it a strong one. (link to doc)

It features a very complete API and multiplaftorm target. with the same language, using the same API, you can generate swf files, javascript code, C++ code, PHP code, C# and java coming soon.

Extending the language is pretty easy, so you can use your favorites game API (sdl for instance). And you can target specific platforms like android or iphone. Which means that with a single codebase you can quite make a game works on several platform…

So all the javascript I created has been generated with haxe. And the flash games of my friends too. We’ve been using the language for a few years now at motion-twin and it has enabled us to code fast, easy and switch platform whenever we wanted.

Of course, you can use the language on windows, linux or MacOSX (intel), the generated content will be the same.

So to finish this first post-mortem, I can tell you that having a strong typed language helped  me create my javascript project without worrying  too much. No js nightmare debugging at all !

Last but not least, it’free  and open source :) That was my fifty cent to rapid development 😉 (not a commercial, just my tribute to one of my favorites language, that’s all )

Comments

Devenger
22. Dec 2010 · 15:22 UTC
Interesting, thanks for the post. The cross-platform stuff sounds particularly good. Will give it a look at some point.
22. Dec 2010 · 16:50 UTC
I’ve tried haXe for flash before and liked it. Will have to deal with the process of getting Sam HaXe installed (I prefer is over SwfMill), which requires lots of fiddling with directories, but I’ll definitely look at that.
whitetigle
23. Dec 2010 · 01:56 UTC
In my case, I’ve being doing games for quite a long time at motion-twin using haxe for server app, flash client,, ajax and js stuff and lately c++ stuff. The fact that I didn’t have to learn a new language for each layer and that I could use quite the same api has been a real booster.

I am Jack’s Ludum Dare Post-Mortem

For those who are interested:

Jack’s Ludum Dare 19 Post-Mortem

Yeah, you gotta click that.

Tags: post-mortem

Comments

Sos
22. Dec 2010 · 14:38 UTC
I would leave a comment if you hadn’t made me click!
machinas
23. Dec 2010 · 02:20 UTC
Great post-mortem. I had the same issues with not having enough library to build from. Too much time spent building from scratch. Also, I hear you about standing up. I do it at work, but my home desk doesn’t adjust. I’ve just had to settle for a fancy, expensive ergonomic keyboard. Also, nice timelapse. Yay for design up front! Quality stuff.

Finally…

Here is my timelapse:

I was going to add a titlescreen and a gameplayvideo at the end but crappy software stopped me(i should probably go and buy/download premiere as that is the only video software that I’ve used that didn’t suck). I also used youtube audioswap to add some music so that it doesn’t feel like your computer hangs at  hanged when nothing happens.

So I guess my post mortem is don’t look or try to sort your funny pictures collection during ludum dare :)

Tags: final post mortem, timelapse

Comments

pythong
22. Dec 2010 · 21:18 UTC
The timelapse looks like you spent 10% of the time blogging/other stuff, 15% of the time coding, 25% having itunes open and 50% being in irc 😀

your game

Every person has his own personality according to which it do likes and dislikes the things

so what is your favorite game that you want to play

poker

chess

football

etc

Comments

22. Dec 2010 · 16:40 UTC
That is a very good point, but why state it here? That’s a rather cryptic thing to do.

Surprised Man completes the game Jam, feels proud.

Hello again.

Well, that was fun, wasn’t it? My friend Kieran and I, under the name Surprised Man, entered the Game Jam and produced The Wager, a game all about exploring a randomly generated map of islands and returning to dock with information about what you find on them to sell onto prospective colonists. We’re really pleased with what we put together for the 72 hours and plan on getting a lot more content into the game that we just didn’t have time to include in this release. I mean, who wouldn’t be pleased with a game with an island name generator that gives such names as:

I hope you like our game, we worked very hard on it, enjoyed the whole process and look forward to adding more loot, unique encounters and other such things in the near future!

Tags: ld #19

Comments

22. Dec 2010 · 17:09 UTC
Oh man, that sounds exactly like the game I wished I’d made as soon as I started mine! Mine ended up having little to do with discovery, and I kept thinking the perfect Discovery game would be one where you travel to randomly generated islands. Grabbing it now, I’ll give you some feedback once I’ve played.