Ludum Dare 23, wow! This time, it was super-awesome, even though I was a little reluctant to even participate. One weekend before, we had made another 48h game (“The Sun Is Deadly” for the IndieBuskers game jam), and I wasn’t sure if I would have some energy left to create something equally cool, or at least have fun making another game.
Thankfully, I did!
One of the primary reasons why I not only started cheerfully but also was in a pretty good mood throughout the whole jam was the fact that I made something I really wanted to create. I saw a video of “Delver” some time ago, and although – or because – I don’t like how the combat is far-range only, it made me wanting to develop my own Ultima-inspired game. I played “Ultima Underworld I – Stygian Abyss” pretty late, but I bought the second part, “Labyrinth of Worlds”, when it came out in Germany (with no understanding of English texts whatsoever), and it is still one of my favourite games.
As I didn’t want to just rip off the Delver guy, I mixed my Ludum Dare entry with another passion of mine: game development, what a surprise! I was thinking for some years now about creating an easy-to-use level design tool; it should be very restricted regarding the basic elements, but possible to design some story-heavy games. The idea really started when I searched for a subject for my university diploma project, and I was always fascinated by the thought of it. For Ludum Dare 23, I didn’t know if I could do something like this in just two days, but I knew that it could be very minimalistic this way and still cool. Another part of the reason was the theme, “Tiny World”, as it made restricted size and small scope a very helpful design target.
So it became “Wunderworld”, which is a mix of “Wunder” (“wonder” in German) and “Underworld”. I even wanted to name it “Wultima’s Wunderworld” at first, but I didn’t find a good enough way to implement a protagonist named Wultima.
Perhaps the question arises, is Wunderworld even a game? I don’t know! But I have to commemorate a quote from the book “Game Architecture and Design” by Rollings&Morris, which is:“Rule Number One isn’t ‘Make sure it’s a game.’ It’s ‘Make sure it’s fun!'” Thus I didn’t care much if my entry would fit perfectly into this (or any other) category. And really, Wunderworld is all about goals, and conflicts, and combat, and exploration – it’s just that the player has to define these elements him-/herself. In a sense, it’s more like a set of random Lego building blocks.
The fun part for me was the expandability of the concept. All it needs to function are only three things really: walls, fights, and a test mode. The walls were the easiest thing to do, although I had my own little problems with Unity’s MeshCombine script. The test mode (became the “Play Mode” later) with a fully functional player character controller did cost me some hours, but it was worth the time (especially because the game was playable then, and never stopped being playable and fun afterwards). Last but not least came the fighting – after modelling some enemies, which make use of nearly the same character controller, adding some really basic AI was a nice finger exercise.
When I was done implementing these three things, the game was basically finished and I could just refine and add stuff, like a goal, horizontal windows, health potions or gates which open after the death of all enemies. Right after the compo, I added stairs and lava, which was a matter of minutes, not hours.
Another reason why I was so relaxed during the compo was that I didn’t have to do levels. The levels were the cause of minor burnouts during my other Ludum Dare entries in 3D (“Tri” and “Soliloquy”), which were puzzle platformers and thus relied heavily on level design, which I had to do in a 3D modeling program. But this time the players would have to create the levels for themselves, and it would also be very easy and even fun to design them.
(By the way, if Wunderworld would have required me to make a level, I’d have done it right from the beginning this time around, instead of afterwards, hours before the deadline. This is a lesson I learned from the other Ludum Dares.)
The editor of Wunderworld is very basic. In order to keep me sane I resigned doing submenus and subscreens; instead, I’ve gone the KISS way. I initially planned to let the player adjust the enemies’ damage, the potions’ health values and so on, but it would be too much for the two days. And without too much options, everything fits nicely on one screen, too. All it consists now is a list of items the player can choose from, and a text area for the file name, and it’s still enough to create some nice levels. Of course, there always will be people who will miss several things regarding settings and comfort, but they will have to live with that or just download Unity/UDK/whatever, hehe.
Another benefit of the “Tiny World” theme was my lack of urge to optimize the code. Sure, with a standard level of the size 10x10x10, you have 1000 blocks. But thanks to the MeshCombine script from Unity – I use it on every slice of blocks – the amount of draw calls is pretty low. Altogether the “think small” direction of the theme helped me to be content with a small, working base game, and diversify it from there – instead of trying to make a rich, broad game which would have needed much more work. So, remember to extend and refine certain gameplay elements, and not the whole gameplay in itself – it would be a bottomless pit.
On the other hand, Wunderworld is predestined to offer a very wide range of gameplay elements. It could be expanded in 1000 ways! Without much effort, one could make an FPS, an RPG, an Adventure or even a puzzle with it (or even a combination of those), if I would have the time/motivation to add the right block types. Of course, this would need more work overall, as for example an RPG isn’t much without the ability to add NPCs with texts, or stats. But the general foundation is given for something like this, and I think that’s exciting.
So, what went wrong, what did I really learn?
I already mentioned the character controller, which I created very quickly at the beginning and was working somehow; yet I was deeply dissatisfied with the way the jumping behaved. It then needed some hours of redoing the whole thing, but in the end it worked more than okay and now I’m comparatively sure how to do nice and predictable character movement for 48h game.
There was also a certain lack of time before the deadline, when I had more than enough stuff on my “would be nice to have” list, and preset levels was one of them. It should have been much higher on this list, because even though I really had a test level, I lost it in the process of deploying. And even if it would have survived, I had no way to fit it into the webplayer version, so it would have been for the standalone only (which only few Ludum Darers download nowadays, according to my experience).
My biggest weak point regarding the compo is music. I managed to make some decent sounds via bfxr, but I still don’t know how to create non-generic music via a sophisticated tool. And although I used inudge.net for my older Ludum Dare entries, I want a more fulfillling experience in this regard nowadays. Thus I got FL Studio now and look forward to learn a bit about it, but I don’t know when I will have the time. Meh.
There were several other problems, which are more technical tidbits but nonetheless interesting details. For example, while the navigating through the level slices via Q and E is pretty straightforward, people complained about the lack of overview – they have to remember how the slice above the current slice looks, which isn’t very userfriendly. I still don’t know how to circumvent this problem in an elegant way. Also, the possibility to resize the level would be nice, or the support for an improved AI with far-range combat.
Until recently I also had no idea how to allow sharing levels via the webplayer version, thanks to the security problems. The standalone has a separate folder with simple text files which contain the level data, so you can trade them with others. But the webplayer saves its data in the PlayerPrefs (being the registry under Windows), which means that sharing levels is much more work there. Thanks to the idea of a friend I added level sharing by copy&paste in the post compo version – just press “Export”, get a string and post it. Or press “Import” and paste the string from someone else.
On the art side one could argue that 8×8 pixel textures aren’t really perfect for a block of 2×2 meters, but somehow it emphasized the “Tiny World” theme once again, I think. What I really would want here is the support for custom textures, which needs some thinking about the internal workings of Wunderworld. Another friend (Björn Grunewald) already tried to create 16×16 versions of some of the textures.
And what’s the conclusion?
Until now, this was the most satisfying and fun Ludum Dare for me. I wasn’t overly stressed, and never had the feeling of not doing enough or doing too much. Even shortly after the IndieBuskers jam my motivation was really high, and that means that there can’t be too much game jams in general!
Also, there were no really negative reactions so far, with the complaint of lacking preset levels here and there. Of course, there was the uninformed Kongregate commenter who wrote “guys forget this play minecraft this is a copy of minecraft so play minecraft its way better” (actual hilarious quote), but he apologized later, so it doesn’t count anymore, hehe. And, yeah, my game isn’t anything like Minecraft, you can’t mine and you can’t craft – instead, you can build and play, so perhaps should I call it Buildplay. The main difference probably is the possibility to be not only a level designer, but also a game designer in Wunderworld.
As mentioned before, in the new post-compo version you can now import and export levels easily – so it would be awesome if you, dear reader, would make a level and post it in the comments! Lockstep80 and nyvrem on Kongregate already made some really great levels, and the creativity in them honestly surprised me.
It must be just a tiny fraction of what Notch feels when he sees all those videos of people showing what they build inside Minecraft, and even this tiny little fraction is so awesome, and exactly the reason why creating Wunderworld was totally worth it.