Ludum Dare 36
The Theme is:
Ancient Technology

LD36 has ended!
Well done to everyone who took part.
1912 Amazing Games!

Posts Tagged ‘animated gif’

Desert Strife Post-Jam AI (with more code examples!)

Posted by
Wednesday, October 5th, 2016 2:31 am



Took a while (too many projects at the moment; loving it!), but here it is: Part 2. The basis of the system is still a reactive AI using heuristics. It doesn’t plan ahead at all, which is good enough even if it does show every once in a while.

The full AI code can be found here, if you care for that sort of thing!


Heatmap, the main technique utilized, simply stores values in an extra tilemap (int array!) for spatial information evaluation. In this case the heatmap stores threat and support values used in choosing the AI attack target and movement path.


Heatmap visualization

The recursive heatmap function is called for each enemy and ally on the map

Threat evaluation

Calculating the threat (and support) values is a cinch: Add up the probable averages of all usable weapon types of your allies and enemies. There is a bit of quess work involved if the enemy ammo counts are not known already.


 Nothing out of ordinary here I’d hope


New feature alert! Taken that we already have threat values for each group and location data about safe areas, we might as well have a bit of fun with them! Every time a group gets into a fight its support value is compared to the threat level around it. A high enough difference will send the group in panic, running away from enemies and finally fleeing if reaching the level border. Now you can bully your enemies to submission!


Panic also ensues if the total enemy force is overwhelming, but that is checked elsewhere


Simple and seems to work alright. In the next project I’ll be using Monte Carlo Tree Search, no doubt about that. It is much less work with potentially more intelligent results. Working on a generic version at the moment.

Play it here!


seththefirst suggested taking a look into AI utility functions in part 1 . The threat level comparison turned out to be sufficient so I didn’t implement anything like it, but maybe you (yes, you!) will find it useful.

Desert Strife Post-Jam Build (Part 2)

Posted by
Wednesday, September 21st, 2016 1:47 pm


Missed the voting period slightly. Not that it matters much, deadlines were made to be broken.

Bug fixes, AI improvements and usability tweaks ahoy! Also added in a new feature: morale. Troops in a tough stop will panic and scatter for that extra layer of reelism!

Will do an extended AI write up soon’ish.

Play it here!

Desert Strife Post-Jam Build (Part 1)

Posted by
Friday, September 9th, 2016 2:42 pm


Quite the shocker that!

Had some spare time to sink into the post jam version this past week. Implementing the battle visuals was a blast! Got animation assets from a mysterious fellow member of the secret society! The less said about that the better.

Part 2 will be about AI improvements and more tweaks (I forgot a few!).

Play the post-jam version here


The original here

Desert Strife Jam AI (with code examples!)

Posted by
Tuesday, September 6th, 2016 3:14 am


The Post-Jam version is still far away (I’ve hardly had any time to work on it yet) so I might as well talk about the AI of the Jam version and the plan for the Post-Jam AI.

Version one

The first version of the AI was finished in the morning of the second day. It had one goal and one goal only, EXTERMINATE! In simple terms each unit finds the closest enemy and moves towards it. They also check that the path to the enemy is not blocked, by simply finding a path to it. This could cause slowdown with bigger maps and larger unit counts, but here it is just fine and dandy.

VIEW CODE (embedding doesn’t work unfortunately…)

Version two

So far the AI doesn’t take into consideration the main mechanic: scavenging technology. Implementing such behaviour, the quick and easy way, requires nothing more than adding technology distance checking into the previous code. If there’s technology closer to the unit than enemies, then that is what the unit will go for. On top of this the unit won’t move until it has completely excavated the technology.


Version three

I could have stopped here, but there was an annoying deficiency in the artificial thought process. The units don’t prioritize actions; In other words, an attacking unit is sometimes blocked by a scavenging unit.

The fix is slightly more elaborate than the previous step, but by no means complicated: tally up the best actions from all units and choose the most important one based on the target type and distance. Here’s the final AI in action.



The future?

There are still a few things I’d like to implement in the AI, namely threat assessment and intelligent positioning. As luck would have it, there’s a single technique which can be used to achieve both of these goals: heatmaps! A heatmap is simply an extra tilemap which contains values based on unit proximity and threat level (if you are lazy you can even reuse the world tilemap objects for this purpose). Heatmaps can be used in selecting the target (lower threat value is preferred) and in pathfinding to choose the safest route to the target.


Keep it simple and you’ll go surprisingly far.

Play Desert Strife here

Desert Strife Post-Mortem

Posted by
Friday, September 2nd, 2016 12:28 am

One more jam, one more post-mortem. Such is the way of life (for me at least!)



Checked out the theme as it was announced (4.00 am around here). I knew what was coming based on the previous voting rounds, but no idea sprang up immediately (which is usually the case to be honest).

The brainstorming began officially in the next morning. Ranquil joined the storm later at which point all I had was a vague strategy game concept about scavenging and stealing technology. Movement of armies would have taken place on a world map and the action on a separate battle map. In the next few hours I managed to simplify the idea down to a single map close to the style of Advance Wars. Nine hours had already passed since the start of the jam so we set out to work with minimal fuss.


Light turn-based strategy isn’t the most demanding of genres and I had in fact created a similar prototype some 4 years ago. Unfortunately, the half-life of a codebase is way less than that and after 5 minutes of perusing I decided to rewrite the whole thing from scratch. That was a good call. The only system I reused was an A* pathfinding system, which I’ve been using for years in other projects including the last few jams.

No severe problems on this front, just a lot of work.


All the problems piled on the graphics artist this time. First off, Ranquil had been working for the whole summer on other projects, didn’t really like the genre and lastly the drawing table broke when only one asset, the character sprite and walking animation, had been finished.

Due to this calamity all non-essential assets were cut, among these battle animations (and any possibility of a separate battle screen). Ranquil shifted focus to other tasks, like audio research (and found a great song right away!). Luckily the drawing board issue was resolved by Monday and the last essential assets, like the desert ground tile and the main menu background image, were made and implemented. Despite the last day push some programmer art slipped in. (I take what I can get!)


With the game itself feature complete and playable only minor tasks remained: Audio implementation, main menu and tutorial. Once again, nothing I hadn’t done before, although for a jam tutorial this one takes the cake! The whole thing was completed with 2 hours to spare, a new record that. The building and uploading process took about an hour more for the tired mind.


Never have had this grave a production setback before, yet thanks to the small asset requirements of the genre the end product didn’t suffer significantly. The 72-hour jam is much more relaxed than the 48 hour counterpart with time for sleeping and breaks. I like that.

Had a good time and, once again, felt genuinely happy about the accomplishment. Now that is a feeling like no other.


Play it here!

And have a nice, relaxing post-jam life!

Desert Strife Desktop Builds

Posted by
Wednesday, August 31st, 2016 2:20 am

Windows, Mac and Linux builds are in.

Here’s a GIF for good measure:

Play it here!

Desert Strife in motion

Posted by
Tuesday, August 30th, 2016 4:56 am

As promised here’s a new GIF from the release version!


One of my programmer art assets slipped in, can you spot it?

Play it here!

Progress Report (67 hours in) – Desert Strife is done!

Posted by
Monday, August 29th, 2016 7:07 pm

The title says it all. Time for celebrations! Play it here!


Too tired to make a new GIF, this one is current enough…


Time to get some Z’s. Gotta catch a train tomorrow!

Have fun!

Progress Report (60 hours in)

Posted by
Monday, August 29th, 2016 1:03 pm

Feature complete! After trials and tribulations we managed to create and implement all required visuals and even audio. What a craft!

Take a gander. It is a long one this.
"156 seconds. NEW RECORD!

Stay tuned for the real deal. Only main menu and tutorial to go. Never had time for a tutorial before; exciting, right!

Cutting Hedge was mentioned by Rock Paper Shotgun which is super exciting to me 😀
All it took was to tweet a convincing gif of my game directly to the wonderful @Brendy_C, so in case you want your game covered by press it probably is a good idea to directly address people.

This is the thing I tweeted:

with this gif attached:

Cutting Hedge by Headmade Games

Rude Bear Requiem

Posted by (twitter: @Phantom_Green)
Saturday, April 23rd, 2016 3:03 pm


Hey! I’m SonnyBone and I worked on Rude Bear Requiem last weekend. I was initially signed on to do the audio, but then our artist couldn’t participate as expected… so that kind of changed. I did all the music on Friday and Saturday, then I stayed up and did ALL of the art. It was less than ideal, and it resulted in a “unique” approach to art that I will cover in a more detailed post-mortem. By the end of the jam, I had been up for about 52 hours straight, resulting in hallucinations … which I think helped to turn this game into something truly memorable. We’re very proud of it, and we hope you like it!

Here’s one of the cute lil’ songs I made for the game.

If you dig what you hear, you can help me out and pre-order the extended OST here.


Rude Bear Requiem is an adventure/puzzle game about helping your forest friends by using magic to shapeshift into various useful forms. Rude Bear is normally Rude… but now he’s POLITE! So take advantage of this one time offer and dive into this totally cute, relaxing, non-threatening world!



Be sure to read the gameplay instructions on the entry page or in the ReadMe!

EXTRA HINTS: The title screen marks the beginning of the game, and the title drops down again at the end. You can still play around in the world at this point, but there are no more objectives. We can tell whether or not you played the full game based on your comments :)

Play the game here:

I need name for my simple game

Posted by
Monday, April 18th, 2016 2:06 pm

Hello, I made this simple game, but I am looking for a name.

Download game

Animated GIF



Lane King is out!

Posted by (twitter: @Zazanxors)
Tuesday, December 15th, 2015 6:05 am

This time it sucks that you didn't see this, this one wasn't potato quality

Play it here!

Didn’t manage to get in a lot of stuff, namely individual unit control, victory/defeat UI and audio, but nonetheless a lot got done; I’m very happy with the end result.

Since my last update, I managed to implement leveling up for the units and health for the player / AI. Each side starts with 100 health and takes damage from enemy units reaching its end of the map. For every level a unit gains, it gets a small maximum health boost as well as an extra 2 points of damage to the enemy team if it reaches their side of the map.

Surprisingly enough, this has resulted in the simple ‘pick a random lane and throw stuff there’ AI actually being more easily lost to than I imagined. Not paying attention to a lane can cost you; if enough enemies build up in a small spot, it may not matter how many units you throw there, they may just level up repeatedly, causing you to kill almost none and empower the rest for when they finally get to the end. I’ve lost up to half my health at once to incidents like this.

Anyways, this has been a bunch of fun as usual, and I’m looking forwards to playing everyones games. The few I’ve already tried have been amazing as ever, and I cant wait to try more tomorrow!

pretty lame drawing

Posted by
Monday, December 14th, 2015 1:10 am

It looks like the game is mostly about the image editor at this point…
Hopefully after tomorrows final push the last bits can be put into place!

Post Mortem

Posted by (twitter: @JangoBrick)
Monday, August 31st, 2015 4:37 pm

So Ludum Dare #33 lies behind us now, and I take the chance to write a quick follow-up of how this all turned out for me.

There is also a timelapse video of Virus‘ development:

The Preparation

I didn’t prepare much this time. No basic games to get back into the whole process, not many commits to my engine.
What was important though was that I made a list of ideas for the 20 final themes, which helped me a lot in getting creative and was quite a bit of fun, too.

The First Night

I forgot to commit final but crucial changes to my engine, which I consider would be cheating since then I would be the only one with access to that code. I noticed my mistake very late, and after documenting and committing everything there were only about two hours of sleep left.

When I woke up and started Eclipse as well as my timelapse software, I noticed the latter didn’t really work. Everything looked JPEG-ish, even though I had set it to PNG. I spent the last seven minutes before the theme announcement quickly building my own timelapse script, just to realize the original software did work correctly… Anyway.

I was not happy with “You Are The Monster”. Not at all. I mean, I knew that the chance for it was high, but still. I ended up making my biggest mistake, not sticking to the idea I had prepared beforehand. I wanted to do something atmospheric, something calm, like flying a bird. There was my idea – you play an eagle, which looks friendly at first glance, but for something like a mouse an eagle is quite the monster.

I built awesome flying mechanics (really, they deserve to be called “awesome”), made the textures, and put it all together into a lovely little eagle. It would even sit down when you flew it to the ground!
Unfortunately, after spending around six hours on that, I had no idea what to do with it.

My eagle

After sleeping a little, 14 hours in, I gave up. Back to my original idea: playing as a virus that infects all of humanity.

Starting Over

Progress came fast, since I had mostly the whole thing in mind from the start. In just a few hours, the basics were already done, although it was still far from a game.
In the evening that day, I took a break from coding and started with:

The Music

I am bad at making music, there’s no doubt about it. Partly because of my missing experience, I guess – this was the second time I ever made something for real.
It isn’t what you’d expect when you think of the word “music”, it’s rather some disturbed synthesizer sounds with a heavy focus on drums. Those are the only two things I am not that bad at. It turned out OK.

Want to listen to it? Play my game!

Making It A Game

After tuning the music to my satisfaction, I added the progress minimap, tweaked the gameplay and added the main opponent: vaccine production.

I also changed the background to a non-static one, with a pseudo perspective on the houses. Very proud of that!

Final look at Virus

Voice Acting

I appear to be surprisingly good at voice acting. It was my first time to ever narrate anything, and I only did one single recording, but it turned out very well!
One hour of effects work to make it sound like some highly-disturbed walkie-talkie transmission, and suddenly my game got a lot better.

Testing & Fine Tuning

Obviously, when you have played such a simple game for a few hours, you get really good at it. That is a problem, because as the developer, you have had to play it over and over again, which means you don’t know how hard or easy it is for someone starting from the beginning. That is where I got other people involved, basically just playing the game and reporting back how it worked for them.
Then followed lots of fine tuning, since the game turned out a lot harder than I had thought.

After one of them managed to win, I called it a success and submitted my game.

My Overall Experience

This Ludum Dare was absolutely great. I had a bad start, but after that, everything went very smoothly and I am happy with the outcome.

The way I did it this time appears to be how I should always handle game jams in the future. Giving everything you have drains a lot of energy, and you lose more than you gain. If you do this in a more relaxed way, you are not exhausted and get to do more.

  • If you haven’t yet, you can view my entry here: Virus
  • The development is available on YouTube, sped up to just over 5 minutes: Timelapse
  • And please vote :-)

Thanks for reading,

Tactical Superiority Post-Mortem

Posted by
Wednesday, August 26th, 2015 11:00 am

Particle Splendor

Play it here

Or continue reading to uncover important life lessons.


This time around I tried something else. Historically my plan has always been to come up with an ambitious programming heavy design and get it done (with varying results). This time the theme didn’t inspire any kind of grand design so I decided to take a walk on the other side.

The very opposite side, where few programmers dare to venture..

Graphics first!

24 hours later I had created a single asset, the mech.

To do this I had to relearn my rusty Blender skills (they’d been rusting ever since last LD) and apply a hefty amount of new found graphic artist abilities on top of that:

Modelling, rigging, inverse kinematics, animating, texturing, the list goes on (no it doesn’t, but that sound more dramatic!).

The rest (not sleep, unfortunately [as you’ll soon see {foreshadowing!}])

With only one day left for programming (and modelling other assets) there was no chance to both reach for the moon and cook up a delicious pie from the sky masterpiece.

I settled for a simple design about the player, piloting a mech, attacking a non-military target thus triggering nearby militia to action.

I did come up with some further backstory in the darkest hours of my plight development process, but implementing any of that fell soundly beyond achievable limits, as did sound to that matter.

Impact (on body and soul)

Monday I got sick. I would wager a very pretty penny that this was caused by not sleeping enough thus disturbing the immune defense system from doing its job. This is the first time for me, so maybe I’m just becoming older. Nonetheless, next time there will be more naps.

The future

The cut features will be implemented in a Post Jam version. I have one additional learning opportunity to pursue, but the less I say about that the better. It might not work out.


Lessons learned

  • Sleep a bit more
  • Learning is great, but learning the tools sould be done before the jam


The next LD will be about over ambitious ideas again. It’s been a while…


[cache: storing page]