Tag «Ludum Dare»

The winners of Ludum Dare, and what to learn from them

This was originally a quick and dirty talk I held in 2014 at our Global Game Jam location in Leipzig, Germany. I wanted to give the audience (mostly students, a lot of them without experience in the art of game jam) an impression on what is possible during a game jam even when you're alone and have to do stuff from scratch; so I showed them the last five Ludum Dare compo winners, which means each of them got the first place in the "Overall" category. The talk would conclude with some best practices, at least in my opinion.

As most of you probably know, Ludum Dare is an online game jam held several times in the year, with the big versions always commencing in April, August and December. Thousands of participants make a game in 48 hours each time, and a lot of them also are part of the quite active community surrounding the jam. Everybody who joins can be sure to get feedback and answers via the blog on ludumdare.com, and via the IRC channel #ludumdare on AfterNET. And don't forget that for three weeks afterwards, every participant can rate all the others' games, so the brutal final ratings for each category (e.g. Graphics, Fun, Mood) are there for the whole world to see. With the high numbers of entries, winning the competition may sound nearly impossible. So let's take a look at some of those who actually did it!

 

Ludum Dare 24 – Theme: Evolution

Evoland

Evoland is a Zelda-like with a funny idea implemented well. It has a lot of chests – in each chest you find a feature that hauls the game to the next step of videogame evolution. At first you can only walk right, but you get the ability to walk left soon. After that, you can walk north and south, how cool is that! Scrolling! Colors! Sounds! Weapons! Nicolas Cannasse broke down a pretty standard Zelda clone into its most minimal parts, used those parts to let the player explore them, and made a unique game this way. (Later on he even extended the game and you can now buy it on Steam.)

As a game jam game Evoland is very ambitious and I couldn't believe that it was made in 48 hours. I assume Nicolas had the idea and concept very early in the process, and using a programming language he invented himself might have given him a good headstart.

 

Ludum Dare 25 – Theme: You Are The Villain

Atomic Creep Spawner

Atomic Creep Spawner!! reminds me a bit of Dungeon Keeper, although you can only do a fraction of what is possible in that game. A pompous knight is raiding your very own dungeon, stealing your money and destroying your orbs, and you have to stop him by spawning a lot of monsters. You create those hordes of zombies and ghosts via simple clicks on the floor, and they find their own way (more or less) to the rampaging knight. A fair bit of AI must have been programmed for this game.

Made by Sébastien Bénard (known as deepnight, one of the most successful Ludum Darers!), Atomic Creep Spawner features great humor and amazing pixel art. Sébastien even found time to include a tutorial at the beginning. What the game lacks in interactivity it makes more than up with polish and love for details.

 

Ludum Dare 26 – Theme: Minimalism

MONO

MONO implements the theme via its graphical style (which looks simplicistic, but is actually very well done), but most certainly not via the gameplay. While at first glance it seems to be a minimalistic game in every sense – you navigate a small sphere through a world of rectangles – the levels soon become more and more diverse, which is what keeps the game interesting. This is a nice trick you can learn from: make a game with only some basic functionality, and if you have the time, add another level with new elements and mechanics inside it – rinse, repeat.

Tim Hantel managed to make a neat dexterity puzzle game with a lot of atmosphere, mostly by adding a fitting soundscape. The gameplay mechanics sometimes make the game a bit frustrating (you die by touching a wall already), but in general the player's death is a forgivable experience: you spawn instantly at the level start again. An important lesson I think.

 

Ludum Dare 27 – Theme: 10 Seconds

PROBE TEAM

PROBE TEAM could easily be part of the Ludum Dare before – it uses one single color only, enhanced by some cool looking post effects. While I never liked the theme in itself, because I always felt that it would cripple gameplay concepts instead of fertilize them, Andrew Shouldice actually made an interesting type of exploration game out of it. You start little probes which have 10 seconds of fuel each (so be economical with your commands), lead them through some kind of maze and activate triggers to open doors. It feels a bit repetitive, but the moody atmosphere absolutely helps to tolerate and even enjoy it.

 

Ludum Dare 28 – Theme: You Only Get One

One Take

One Take by Daniël Haazen is a great example for an unusual idea creating a whole new experience. You play as a camera operator taking one continuous take from a movie scene, and all you do is following orders from a film director in the form of short sentences, like "Zoom in on the sheriff" or "Go back to the guy in the alley". The scenes are a bit animated (while most of the action comes from yourself) and actually feel like small movies – already worth an honorable mention in my opinion. The cherry on top are the pixelated newspapers after each level, including reviews about the 'movie' and your performance.

 

Learnings

So what can we learn from these great examples of Ludum Dare rapid game development, for our own jam games?

  • Make something simple. All the mentioned games concentrate on a single idea. Be it spawning monsters in a dungeon or moving a small sphere around obstacles – important is to focus the game's concept on one aspect and not trying to add more and more features. Of course, this implies you actually have a nice idea that can be played barebone and that you like.
  • Be inspired by the theme. This one surprised me a bit, probably because more often than not the theme of a jam hinders instead of helps me. But all the winners above are very close to the theme, and that must tell something, probably about inspiration.
  • Think in two dimensions. Although one of the games uses Unity, all of them are 2D games, varying from totally abstract to concrete pixel art. I don't know exactly why that is, but there is probably more than one factor why jam games prefer to be 2D. My guesses are: the game is simpler to make, the graphics look better while being less work, there are a lot of premade frameworks, and you get a nostalgia bonus.
  • Use a framework. The Ludum Dare rules state that you must make your game from scratch, but it is allowed to use libraries, tools and engines that were already made by you or others. So use them! The winners from above utilized Haxe (compiled to Flash), Java with libgdx, Unity and LÖVE. Three of these games were playable in the browser (with plugins), which might also be a small factor adding to their successes. Remember that Ludum Dare's winner are determined by people who have to play thousands of other entries, too – the less problems they have to play your game, the more likely they will play it.
  • Generally you should try to make your game as accessible as possible. Deepnight's winning game Atomic Creep Spawner includes a tutorial, but you don't always have to go this far. Just don't innovate where it isn't needed, and explain things when they come up for the first time, be it via text or picture (better yet, force the user to play it to understand it).
  • The last learning for now is somewhat vague, as the games tackle this very differently. Some of them use a lot of humor, via little comments from the characters for example, others are pretty atmospheric, often thanks to their great use of sound. What we can take away from this is: don't shy away from trying to evoke emotions in the player. It seems the humoristic way is a bit easier than the one with the dark mood and the feels. Speak to the player, or let them explore interesting places. Give them reasons to attach to your game!

 

Conclusion

Making a game in 48 hours is hard, winning Ludum Dare is even harder. But if you look at the above examples you see it's not impossible! Sure, you need to know your tools in and out – the Ludum Dare Top 10 isn't the place for learning a new programming language. (This could be a bonus learning.) Just keep in mind to have fun and make something worth playing. Everything else comes afterwards.

Ludum Dare 27: BLAM BLAM PLANET – Post Mortem

Greetings!

Back in April, Ludum Dare 26 was not so great, as I couldn't participate. It was right after the AMAZE IndieConnect, and this convention drowned my energy so much that I got sick. All I made was some visual experiment, which I couldn't develop much further because the headaches got too strong – partly because of my chosen art style. :-P

So, last week's Ludum Dare 27 was much better in this regard! And after kernel exception, this is the second Ludum Dare we entered together (thus being a Jam entry, not a Compo entry). We had a lot of fun, but also some problems, of course.

Our entry is a first-person shooter, with a little twist: you have five weapons, and every 10 seconds your current weapon switches automatically to another one, randomly selected. And there are "floating devices" all over the world (= a medium-sized planet) which you have to stand near for 10 seconds, so a bunch of power-ups get spawned (ammo and health packs). Enemies spawn in waves every 10 seconds. And when you collect ammo, you basically get an additional 10 seconds of shooting time.

As you might have guessed, this Ludum Dare's theme was "10 Seconds", and we called the game BLAM BLAM PLANET.

blam blam planet

After some minutes of playing the game becomes quite intense, because more and more enemies spawn. If you just run and shoot around instead of waiting at a device now and then for a while, you will soon run out of power-ups, and thus health and ammunition. So it's even a bit tactical, one might say.

The development of the game had its ups and downs, but it went well in most cases.

On Saturday, we thought of the game idea by talking about different possibilities and going for a walk. Ludum Dare starts 3 am here in Germany, and if I remember correctly, it already was afternoon when we agreed on making a first-person shooter, because we never did one really. To make it more interesting we decided that the setting should be on a round surface, which meant the game would need spherical gravity for all entities.

At the beginning we named the game "GLITCHIG", because we wanted a broken look and have destructible environment, so lots of triangles are flying around. Jana started building a neat planet surface with some asteroids around it in 3dsmax, while I started to let my character controller be influenced by gravity pointing to the level origin. Shooting little spheroids was also a priority.

spherical gravity

So both Saturday and Sunday were all about getting this right: a planet, a player, a weapon, some enemies walking around. Mostly I tried to get it all working smoothly, by getting the physics of the character and the weapon right. But the hardest part were the enemies and their AI on the round planet. For this, I searched for some code for creating the vertices of a geosphere, mapped this via raycasts on the planet geometry and connected the resulting points – those were then the nodes for the enemies' path-finding. Just letting the enemies walk directly towards the player probably would have been much easier, but less fun to create. ;-)

Another nice part of development was inventing the different weapon effects – two weapons in the final game deform the geometry, so I can push the vertices of the planet around a bit when the bullets hit something. It looks quite ace. As "glitches" was our personal theme from the start we knew the geometry would look strange and broken the more you use this weapon and we embraced that. In fact, when I last played the game, I fell through the level and I could attack all the enemies from below while they couldn't see me – but that also meant I didn't get any new ammo, so it was okay.

glitchcannon in action

Jana was mostly busy with modeling the three types of enemies and animating them. They look kind of deformed, emphasizing their low-poly nature, and it really looked well. Especially when she added the walk/fly animations, which are really hilarious. When the enemies spawn in masses it becomes a really cool effect.

In order to tie the look together, she also created a color code in Photoshop. After that, the game looked "right", as the colors of most assets didn't need much tweaking afterwards. Having only very few placeholder art from early on really helped the motivation somehow.

colorcode

Sunday evening Jana also started to make some sounds for walking and shooting by using our laptop's inbuilt microphone. High tech! All the sound effects you hear in the game are actually Jana's voice. :-) Adding sounds instantly made the game more alive; in the end, you can't have enough of them – that's why she made more on Monday, along with the art for the bullets and particle effects.

On the third day the theme of "10 Seconds" still wasn't in the game, and I thought long and hard about how to implement it. I weighed the pros and cons inside my head of different game mechanics, like "every 10 seconds, you have to collect new ammo" or "activate 10 bases, 10 seconds each, and then you won (whatever that means)" – and only when I finally began to create the five different weapons and let the enemies spawn in waves, the probably best restrictions (automatic weapon switching, time-limited ammo, etc.) came naturally. So there's that: sometimes tinkering too long can be bad, and you should just "do it", I guess.

In the final hours I was able to quickly implement the main menu and a death screen, which always is satisfying as it ties the game together and makes it look complete. Jana made the logo and the button graphics, and also captured a video of the game.

So, that's how it went. Let's take a look on some quick facts about ...

... what went wrong!

  • Finding the idea was hard for us, as we couldn't agree on most things. In the end, the game we created isn't as innovative as I would have liked, but at least it's superfun to play this time!
  • As we struggled with the idea, it's clear the theme didn't help much. Although "10 Seconds" is in the game more than once now, it feels a bit off.
  • On Monday I nearly lost the will to finish the game, because of the lack of a clear direction regarding the gameplay, caused by the theme.
  • Jana had some severe problems with the CAT animation system in 3dsmax. It seems to be buggy as hell, and I heard her cursing a lot. ;-)
  • There are no game-breaking bugs in the game, phew – only some small stuff, like resetting the option settings when you open the "Options" menu. The bigger problem might be that the game is "broken by design", because of the Glitcher (the weapon that deforms the planet's geometry) – we should have used this feature more often, so it doesn't feel strange when you fall through the geometry.
  • A lot of feedback is missing, like some kind of visual hint when you got hit, or a sound and animation when the ammo is depleted. Also, the "story" isn't communicated in the game: you don't know what you're doing here, why your weapon system is defective, and why you have to stand near the floating devices. (Some people didn't understand that the enemies only start to spawn when you do that for the first time.)

... what went right!

  • It's always great to work together with Jana, because we know exactly what each of us can do, and how. While I do the scripting, she does the modeling, texturing and sounds. Perfect team work – all in the same room!
  • I set up an SVN repository, which sped up the work flow incredibly, and also saved my ass at least once when I accidentally deleted some files in the Unity project folder.
  • I prepared some basecode a day before Ludum Dare, by skimming through my former projects and picking useful helper code snippets. Having a basic character controller, path-finding, simplex noise and other functions ready before you even have to think about where to find them is wonderful!
  • Jana recorded the sounds with her own voice and distorted them in Audacity, which was much faster (and cooler) than trying to find sound effects on freesound.org with the right license.
  • The abstract, low-poly, somewhat "broken" graphics style looks quite well and gets very positive feedback, even without textures – AND it also was done very quickly.
  • The five weapons are fun and pretty diverse. This way, the whole game is fun enough for a few minutes, and that's the most satisfying part of this Ludum Dare for me.
  • Before we started I thought the spherical gravity might not work at all, neither as a gameplay mechanic nor as a visual style. I especially was concerned with this style the player would see too much sky and not enough ground surface. In the end, with the recoil of some weapons (so you fly away, looking down) and the high amount of flying enemies, this wasn't any problem.

... what we learned!

  • Due to the lack of time at the end, the balancing is kind of subpar. Good thing the game just is an endless shooter, and thus it is good enough. It's also cool that you can "learn" the game, as using the floating power-ip devices is important, but not obvious. Always try to add stuff like that.
  • "Crappy" graphics often look awesome when animated and with a nice shader. ;-) Coherence is very important though – that's why creating a color code sheet early in the process is a must.
  • Try to not make any placeholder art, because it either means you will have to make an asset twice – or it will be in the final game.
  • Even if you lose motivation near the end, at least try to give the game an ending. Sometimes, it helps to finish the game nonetheless, because this, this and, oh, that too, has to be done before the game can have an ending and be called "done" ...
  • Three days are still too long for me, because it automatically makes the project too ambitious.
  • Every time I see a Unity project with the standard Unity button graphics I get the urge to close it instantly. Really, it's easier than most things in Unity to add some custom button graphics and a downloaded font to the GUI skin. Give your game some love!

As much as I'd want to extend the game a bit, like adding more levels, I don't think it will get much bigger than now. The feedback of players and Ludum Dare ratings is really nice so far, but I don't know if having more enemy types and whatnot would increase its popularity. An online highscore would be nice, though, so maybe I will add that.

Thanks for reading this post-mortem, and I hope you had as much fun with this Ludum Dare as we had. If you want you can play BLAM BLAM PLANET here! :-)

blam blam planet device

Ludum Dare 25: Tale of Scale – Post Mortem

On December 15th, Ludum Dare 25 started. As usual, this 48h game making compo was an interesting experience, as exciting and awesome as it was soul-crushing. But this might be just me.

Like before, I didn't have the right idea for the theme. This time it was "You are the Villain", which was a better theme than usual, but unfortunately it only triggered gameplay concepts for me which all belong into the "that was already made before" category. So the first thing coming into my mind was "Dungeon Keeper", and as much as I'd like to do a game similar to this awesome piece of gaming history, it just would be a clone without the right amount of innovation (or would it?). Among the other ideas I had were a "Pirates!" roguelike, a game where you control four bandits at once (robbing innocents and wandering around) and a board game creator where you're the dungeon master placing the monsters (think "HeroQuest" or so).

1

None of these ideas were the incentive for me to actually start developing (although I still like them). In my mind, I combined them, added features and the result got bigger and bigger, and after finally deciding that it would be too much of a hassle, I started at zero again. Then I came back to a thought I had days before, namely the thought that often, good ideas for games (mostly puzzle platformers) are those which are inspired by childrens' fantasies. So I imagined a bit what a child could think, and being able to grab the moon with the fingertips and move it around just like that, well, that seemed like a good candidate. At this point, the theme was still in the back of my head, but I tried to ignore it mostly as it obviously would just hinder me to actually develop anything. I never was good in the "Theme" category, and for that I'm sorry, but I don't think it's the category I want to shine, really.

I tried to create a Unity3D prototype out of that idea with the moon. Of course, prototypes become the real game eventually when doing a game jam, but first I wanted to see if I could actually create something like that. The main problem to begin with was the scale of the object currently grabbed, as it always has to be the same size for the player, no matter how far or near it would be away. I read something about the focal length of a camera before and I thought I had to factor this in in any case. I experimented (using some basecode I already announced in my "I'm in!" post) and searched on the internet, but it just wouldn't work right. The object's subjective size didn't stay constant, and being very frustrated, I stopped after a while.

Thus, I re-evaluated the idea of the four bandits. This one would follow the theme and I'd really like being able to control a group of (evil) adventurers - in first person perspective! In order to make it easier for myself, I started programming the movement (again in Unity3D), which would be along the cardinal directions only and also on a grid. Just like those age old games you might know, "Dungeon Master", "Eye of the Beholder" or "Legend of Grimrock". In the end, the movement worked somehow, and you could add NPCs to your party, and press a button to see all four viewports at once. Probably I could have made a more or less full game out of it, but at this point I didn't see how I could add "fun" easily and I stopped yet again.

prototype 2second prototype, no fun

With the thought of fun being the most important part of it and without really expecting any results for this Ludum Dare anymore, I got back to the first prototype, and suddenly, the old problem was gone. Thinking about the focal length was a dead-end, and just getting rid of it was the way to get it work. The only problem now was the collision detection of an object that would get bigger the further it goes. Using Unity3D's SphereCast() was the wrong direction, because the size of the collision sphere would be always the same. So now CheckSphere() gets called with a gradually increasing size of the radius parameter, and it does that a lot of times every frame - because of the simple nature of the rest of the game, this was possible without any noticable performance hits (at least on my computer). Of course, this means that every object basically has an additional bounding sphere, and that's why most objects sometimes don't behave as expected, especially those which don't have uniform dimensions.

prototype 1first prototype, working

I uploaded the first prototype of the game - just a simple demonstration of the gameplay - late in the night, and those who actually started it and "got it", said it could be awesome. Yay, motivation! Also, I earned myself some sleep. The next day I "only" had to make levels and fix any occuring bug. Also, story. Also, sound. Also, ...

I planned five levels at the beginning, and because of some very sad events before Ludum Dare, I didn't think about it too long when I realized that I wouldn't have time for all of them - as one of the levels would had have a kindergarten setting. So, three levels were made (in 3dsmax), and they describe how the protagonist is a kid with just an overly active imagination, and how this leads to an unfortunate outcome. I didn't have time for more, and the ones I made aren't really balanced/tested, so I am sorry for that. On the other side I am just relieved that the main gameplay works and can maybe be the foundation of a cool game; the Ludum Dare version of the finally named game "Tale of Scale" is mainly a sandbox game which happens to have a subtly communicated goal in each level.

2the end result: Tale of Scale

A short summarization of What-Went-Bad:

  • The start, or rather the theme. Either it is the start of a game for me, or it just stands in my way. Harumph. I squeezed the theme into the final game, but as most people won't play it through, they probably will wonder where it actually is. I got a bit inspired by the movie "Looper".
  • I still can't make music. I tried composing some once or twice before, but I'm always embarrassed by my own efforts, so I don't ever get over a certain point.
  • I don't have a cool base code which actually would free me of the burden to do some stupid and boring stuff again and again. At least that's a learning and can be helped ... some day.

And What-Went-Good?

  • The idea was cool enough to let people ignore the crude levels and graphics, hehe.
  • I actually managed to make three levels, even in the timeframe I wanted to make them. Seems like I finally get the hang on estimating such things, and this is one of the things a game jam really can help with.
  • I made most of the sounds myself with a microphone, and they sound okay enough. Nice.

That's it! Thanks for reading, and don't forget to play the game (here's the entry page) - or at least watch this gameplay video: