Tag «LD48»

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).


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:

Ludum Dare 24 and Mini Ludum Dare 37

The voting results for the big Ludum Dare 24 are in! The theme was the long awaited "Evolution", and together (which means Jana, Björn and me) we created a game that could be described as the evolution of Shodan or a similar evil AI. In our entry kernel exception you start with two robots (and a security cam) and try to get in control of a whole randomly generated space station by hacking and zombifying its inhabitants.

After the more or less disappointing results  for my last Ludum Dare game, Wunderworld, I'm quite happy about the average ratings for our team effort: out of exactly 400 entries for the jam, we are #15 overall, and even cooler, #12 in the graphics category (which is kinda what we hoped for, as our team had two artists).

It was also nice to get mentioned on superlevel.de as one of 73 memorable games.

But wait, there's more!

Right after the results were published, the Mini Ludum Dare 37 started - and this time I am the one doing the hosting. A lot of thinking went into the theme, and therefore there are two: Not-Games is the main theme, and for everybody who doesn't like simulators / serious games / art games, I created the alternative theme Real Real-Time (which means that your entry should depend on the real time outside the computer).

The main reason why I chose those themes was the urge to trigger people to do more unusual games, at least more unusual than usual. Something to make people thinking outside the box. Not-games are a nice way to think about the rigid definitions of what we believe games are and should be, and if there should be rules regarding game design at all. The real-time thing is another direction in this regard.

I hope to see some exciting entries for this Mini Ludum Dare, and I surely will write about them here on our blog!

Wunderworld post-mortem

 (This post was written for ludumdare.com originally.)

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 8x8 pixel textures aren't really perfect for a block of 2x2 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 16x16 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 others 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.

Oh, and here is a video, showing the gameplay:

Yout may also want visit the entry page of Wunderworld on Ludum Dare and the project page, with levels created by fans!