Ludum Dare 32
April 17th, 2015 @ 6:00 PM PDT/9:00 PM EDT (01:00 UTC)

Theme Suggestions!
Now open!

About CireNeikual


Ludum Dare 25
Ludum Dare 23
Ludum Dare 22

CireNeikual's Trophies

CireNeikual's Archive

Hero Must Die Post Mortem

Posted by
Friday, December 21st, 2012 9:47 pm

I had a lot of fun this Ludum Dare, and I think that of all of my submissions the one I submitted this time is the best.

Here is a link to my submission: Link
There is also a post-compo version available, with more items and levels (as well as a smarter AI).

When I first saw the theme, I wasn’t sure if I should participate. But, I came up with an idea that tied in with some AI research I was doing. The game uses neural networks, which is pretty uncommon. But, it really is the only way to do it in this case. Path-finding and other methods are far too rigid to be able to adapt to arbitrary environments. Also, it is difficult to create a character control system that can predict how to move in the air in order to land on a platform. Path-finding can be complementary to the neural network, but I left it out since it is too processing intensive. I instead just made all levels pretty linear (the AI always moves to the right).

When I started out writing the game, I was pretty sure that the AI would fail miserably. But I at least wanted to try it out. To my surprise, however, it almost immediately (usually in less than 10 generations) was able to comprehend how to jump from platform to platform. However, by the time I got it working, I squandered too much time on YouTube to be able to submit it for the 48 hour compo. So I submitted it for the Jam.

I started out the AI with 25 inputs, arranged in a rectangular grid around the hero. These inputs were set to the corresponding tile values. This acts as vision.
I later added the signed x and y distances of the player from the goal (princess), so it could learn the map better and not be fooled by structures that look the same from its point of view in different locations.

In the post-compo version, I also added the x and y velocities, which improved the behavior significantly.

The outputs of the network are arrow-key controls (left, right, up). To test the physics, I started by having the controls respond to keys, and I then later let the AI control it. If a output is greater than 0.5, then the key was activated. Otherwise, it was left inactive.

The neural network is recurrent, and is evolved using the NEAT (Neuro-Evolution of Augmenting Topologies) technique to evolve connection weights as well as network structure simultaneously. I had the NEAT algorithm coded prior to the competition. It comes with a visualizer, which uses another genetic algorithm to produce images of the networks. Check it out here: Link

The NEAT algorithm itself is very generic, feel free to use it in any of your own projects. The visualizer uses SFML, but you can leave it out if you don’t want it.

Here is an example of what the NEAT visualizer shows. In this image, it learned a XOR gate.


Other than the AI, the game is nothing special.

What went right:

– AI was able to beat levels as intended.
– The training process ran at an acceptable rate.
– The map editing interface was relatively easy to use.
– Sounds were indicative of events (thanks to BFXR).

What went wrong:

– The menu system (there is none).
– The graphics. It was an ugly grid with rectangles with legs as characters. Also, some people got black screens. This was fixed, but perhaps too late.
– The items. There were only 3, which made puzzles repetitive.
– The levels. They were mostly too easy, I ran out of time when making them. Also, there were not enough of them.
– No music.

I might make a post-post-compo version. I kind of like designing puzzles for this game.

Just in time!

Posted by
Monday, December 17th, 2012 7:28 pm

Phew, I barely made it this time.

Now that I finished the game, I wish that I would have added more items to make the puzzles more complicated.

They are all super easy right now.

But, it is still fun to watch the neural network AI try to beat your deadly levels (especially when it explodes)!

While programming it, I kept on turning down the number of generations that the evolutionary algorithm ran for since it ran slowly even in release mode in VS2010.

But, when I took it out of the IDE and it performed absolutely no tracking anymore, it ran much faster suddenly. So I could have afforded more generations.

Oh well, the AI is still capable of beating the levels as intended most of the time even with so few generations.



Posted by
Sunday, December 16th, 2012 6:24 pm

Unfortunately I will not be able to complete my game in time for the compo, so I will have to submit it for the jam.

Maybe I shouldn’t have watched so much YouTube :/

Well, here is how it looks like so far. The framework is done, but there are no levels yet besides a test level.


First Update

Posted by
Saturday, December 15th, 2012 6:49 pm

My idea for “You are the villain” is kind of like a backwards version of Mario.

An AI tries to beat levels that you set up traps in (including the bane of all side-scroller heroes: spikes!)

You must prevent the AI from winning.

The AI is actually a neural network, trained by an evolutionary algorithm. I know that these are not exactly popular for games, but it has been working out so far.

As a test, I rewarded them for getting to the top right of the screen. They figured out how to jump on platforms pretty quickly:


I will take part!

Posted by
Wednesday, August 8th, 2012 10:25 am

(In all likelihood)

This will be my 3rd LD.


Last time I used Java with LWJGL, but the applet thing made it come out all glitchy. I might try the applets again, but I will probably just have people download it this time (not in browser). I will probably not use C++ as in my first LD, since it takes so much longer to develop (undesired in a composition about making games in a very small time frame).

So, Java, with Eclipse.



– Audacity

– Flash (drawings)

– Photoshop (maybe)

– Wolfram Tones (if the license allows)


Posted by
Sunday, April 22nd, 2012 4:50 pm

Phew, that was intense.

I survived my second LD. Hopefully I do better than last time!

Here is my entry:

May not finish…

Posted by
Sunday, April 22nd, 2012 7:52 am

Java is being a pain… My map editor’s character encoding randomly became all messed up (shows up as Chinese or something in the file), so I cannot make maps.


If anyone knows a fix for this, let me know!


A Progress Update

Posted by
Saturday, April 21st, 2012 12:39 pm

Since my art is terrible, I thought it would be best to slap on some shaders.

First Update

Posted by
Saturday, April 21st, 2012 8:51 am

If figured out what I am doing, but I didn’t get too much done so far.

Anyways, here is a screenshot:

I’m In!

Posted by
Wednesday, April 4th, 2012 7:05 pm

This will be my second LD. Last time I used C++, but people usually do not want to download stuff (I am guilty myself), so this time I will be using LWJGL (java) and posting it as an applet.

I will use a basic framework that I have created for other games in the past.

For the artwork, I will use Flash/Photoshop/Sketchbook.

If I get to doing sound, I will probably use Wolfram Tones and sfxr.

A small problem…

Posted by
Wednesday, December 21st, 2011 6:01 pm

When I first submitted my project, it depended on the VS2010 Runtime Environment. I then re-submitted it using a static compilation (before the deadline), but that caused it to crash on many PCs. So, I am reverting it to the old version that required the VS2010 Runtime Environment so more people can actually play it. I hope this is OK.

Oh, I forgot to mention…

Posted by
Sunday, December 18th, 2011 4:28 pm

These is a kitten in the game…somewhere!

[cache: storing page]