Ludum Dare 26
Ludum Dare 21
Ludum Dare 20
Ludum Dare 16
Ludum Dare 15
Most likely to be turned into a film by Uwe Boll Award
Awarded by rtsl on December 15, 2008
The Stir-Crazy Horse Compensation
Awarded by demonpants on December 9, 2008
Absurdly Small Ninja Award
Awarded by Hamumu on December 3, 2007
Here’s how you do it .
20.35 seconds, but you get the idea.
This Ludum Dare meant more to me than usual. I had been blocked for quite some time and hadn’t written a lone of code in ages. The reasons for that are varied I guess, but the Feb 22 earthquake probably played a big part. The center of the city is still off-limits all this time later.
The game I made was more than I was expecting to be able to accomplish by a long margin.
I have heard a number of people make comments on difficulties doing audio for games in HTML5, I decided to not attempt lest I get bogged down in some browser specific niggle.
I deliberately chose to use an absolute minimal interface to the canvas. I only use drawImage(image,x,y), no shadow effects, no rotation or scaling, no text rendering. I wanted to be able to trust that the browser would do things quickly without screwing up.
The graphics were quite a surprise. I don’t rate myself as an artist, but things ended up looking much better than expected. I used Drpetter’s Scupltris to quicky knock out some shapes that seemed about right and then painted them and saved. It worked a charm, Chalk up another one for Drpetter in the tools for the talentless artist category.
I used Haxe as a base language. Switching between languages as often as I do makes it difficult to remember some of the finer details of each language at times. I had a few hiccups, for instance when I needed to pass a class type as a Parameter. In Haxe, the prototype came out as.
public function addEntity(kind :Class
I discovered I really need a good mechanism for animating models. I remember having a rendered character with walk frames in an earlier LD48 but I can’t for the life of me remember what software I used. Scupltris works great at making the base, but I need to be able to bend things around, I don’t need full 3d animation capability because it’s just sprites. What I ended up doing for the player walk animation is render the model then move the bits around in PhotoShop to make the walk frames. I only made the 5 frames of walk because of that.
The same problem manifested for the baddies. The wasps were a simple choice because they can be done with a two frame anim. I had a couple of wheeled baddies rendered but didn’t get them in.
I managed to make this thing
, which possibly says something about my brain at the late stage of a Ludum Dare. It didn’t make it into the game though.
I didn’t make a level editor, instead creating the entire level out of createSomething calls. This meant a cycle of play/tweak/play/tweak to get the position just right. In hindsight I think that might be a good thing for platform game design. I manually positioned the player before each area of construction and played the sequence several times. I think remarkably little is lost by not being able to edit the entire level quickly, because it’s the play phase that is the most critical part. In future I wouldn’t dispense with a level editor entirely, but I’m inclined to bind it even more tightly to the game so you can test small sections as you make them.
Now that I have seen how people have played the game, The one tweak I would make (that could’ve easy been added during the compo) was an indicator showing how many gumcube things you have collected. There’s more to the game than people realise. Showing a 53/107 display would encourage people to aim to collect all of the bits. Then they’d find there is more present than meets the eye.
(there are, in fact, secrets).
I now have a dilemma of what to do with the game. Normally I have a policy of not continuing LD48 games after the end of the comp, but I think there is enough here to work with. Maybe just a little more.
Not being restricted to the comp rules means I could maybe bring in some sprites from elsewhere for the baddies.
I’m a bit worried that it looks like I’ll need to make a level editor again,
I might end up using a little helper library.
See it’s even called that.
I’m teaching some kids to program and this is what I use to simplify things.
If I make an editor I might use a thing for faux windows that I whipped up last night http://screamingduck.com/Cruft/jsmuck/uimuck.html Gives you a draggable div with a titlebar,
Things went poorly for me in the real world. Apart from taking up time, also not good for a coding mood.
I have what could be called a tech demo.
This is the critter that I made to test things out. It has no brain other than the bits you see. The yellow circle provides a waveform signal for the various parts to use. White lines are muscle-rods, if attached to a signal their length varies proportional to the signal. The blue circles grip the ground proportinal to a signal. The green dots generate a signal proportional to the proximity of food.
The yellow lines show the signal attachments.
I’m probably using a new library this time. It’s not terribly full featured at the moment but what it does have is a simple way to get a nice Fullscreen framebuffer on the OLPC-XO. I figure If I can write a halfway decent Game during the Ludum Dare then it can be added to the XO’s repertoire.
The source for the library is in here along with a small test program I wrote last week to give it a try.
I’ll probably be be adding things to the library right up to and most likely during competition time. If anyone else wants to give the lib a go (Yes, It’s pascal) get in touch and I’ll make sure you’re up to date with the code.
This is how simple a program can be using the Lib.
program demo; uses Drawing,simple16; var pic : tPicture; procedure Load; begin ScreenMode(640,480); pic := tPicture.loadFromFile('Frog.png'); end; var X : Single = 320.0; Y : Single = 200.0; dy : Single =0.0; dx : Single =0.0; procedure Update(ticks : integer); begin X:=X+dx; Y:=Y+dy; dx:=dx+ random()*0.2-0.1; dy:=dy+ random()*0.2-0.1; dx*=0.99; dy*=0.99; end; procedure Draw; var i:integer; begin ClearScreen; DrawImage(pic,X,Y); end; begin Run(@load,@update,@draw); end.
The run procedure calls the Load update and Draw functions at the appropriate times, giving a picture that does an inertial drunkards walk around the screen.
For instant gratification Go an play it here
It definitely have a wall of doom feel to it. So much so that I haven’t completed it myself yet. I _think_ it’s doable.
I wonder how this editor will screw up today….
OK here it is, This is totally different from the game I thought I was going to make. I wasn’t thinking Horses, or even 3d when I started.
I’m not too sure about the gameplay, but I’m fairly pleased with what I got it to do from a technical standpoint.
The source and everything is here
but to play it you can just jump on over to here
I think it’s taking me longer to find my way around wordpress than it is to make the game.
I made this a while back which may be of use to some, and I may use it myself depending on what the theme comes out as.
Something for Flash, Takes a bunch of frames and stores them as a jpeg for colour and png for alpha. then breaks the fremes up into seperate BitmapData object on load.
I didn’t do any frame animation in Boomshakalaka, because it seemed to be fairly tricky to get animations into flash. If need them this time then maybe this will help.
I tried writing a post up in this thing but It kept on trying to eat it so I put my post-mortem here
This is my room. I took this before another LD48, but it hsn’t changed much, Just more mess now.
Proof I have real trouble coming up with good game names.
This game was a quick one. A week before a LD we had a warmup, put in 12 hours during the weekend. The theme was vectors and a subtheme of chains.
I was quite pleased with how this worked out in a lot of ways. The rendering was with a little 2d OpenGL style setup where I implemented pushmatrix, popmatrix, scale,rotate,multmatrix,LoadIdentiy, setcolor and line. All of the glowy effects were done by a two layer drawing system, A blur buffer of high saturation drawing and a overlay of bright low saturation. The persistance came from averaging neighbouring pixels in the blur buffer and subtracting a bit. I did that part with a wee MMX routine.
Most of all, the thing that pleased me about this game is how fun it is. It’s a bit hard but I think there’s potential for a great full game in this idea. I build a linux version and had it running on my arcade cabinet for ages, that was great fun.
I guess the only sad part about this on is that if I had have done this for a genuine LD48 I would have used the extra time to make something even better.
The final game isn’t entirely my own work though. I slapped a mod file onto the game for music. Livens it up quite a bit.
I was quite pleased with how this one worked out, The game only has three levels and I was quite worried that the last level might be impossible. As time was running out on the clock I was trying to figure out if it could be done, I finally got a single ninja home and went “that’s it! ship it!”.
playing post compo I actually managed to figure out how to get all of the ninja home on that level by using a few tricks.
I also liked the look of Teeny Tiny Ninja. I got the stars idea from a previous Bluescrn entry. Adding a bunch of stars does indeed liven up the look of things. Also The ninja home came out surprisingly well for programmer art. I thought the sound worked well too, but the scores the game got suggested I was in the minority. when a ninja goes ‘Hut!’ every time he jumps it’s cool, but people found it less so when there were a couple of hundred Ninja doing it, serves themselves right for picking swarms as the theme I say.
The game used a homebrew physics engine made during the 48 hours. this worked quite nicely, Ninja were all implemented as tiny triangles
See. There was no Line to object collision detection so it was possible for Ninja to get stuck on corners by impailing themselves on a point and having their triangle points go either side. There were alsdo a few other little quirks that caused th ninja to get stuck. The solution worked brilliantly. I checked to see if a ninja hadn’t moved for a while and if so just added a huge random vector to its movement. A lot of people took this to be an intentional behaviour because it looked very ninja like. sometimes a ninja would jump to a wall or point and stick there for a bit then jump away again.
Once again the controls were a bit unintuitive. But I thought the use of a mousewheel worked well.
I tried thinking out of the box and failed miserably.
The theme was growth, I thought of the idea of crystal growth and pretty much made an incomprehensible game with crystals in it. Hardly anyone figured out how to play the sodding thing. The final insult was that I ran out of time so you could build yourself an army but had no-one to fight.
The bright side was I was quite pleased with the overall look and User interface. It’s a basic RTS engine with minimap and group selection, resource collection etc.
Some of the development was stalled due to me not knowing how to debug. I wrote the game In Blitz max, having downloaded the demo version on the thursday before the compo. I didn’t figure out how the debugger worked (or even that it had one) until sunday.