Graveyard of the old and abandoned, part I

And now for something completely different! I've been procrastinating making a post(s) like this for years, but somehow never really bothered to make it happen. So here goes: this will be a (short) series talking about a sampling of (very) old game projects of mine, that — for one reason or another — never got finished and released as proper games. Or at all, as is the case actually. Enjoy the stroll through history (not to worry: there are pictures and even a video!), and let me know if these kind of posts are interesting to read. I do have more of these abandoned games to show. :)

2001-2002: Badlands, top-down sci-fi shooter

So first up: Badlands. This one, along with many more of my games (including our current project Oddhop!) was made in co-operation with my friend Teemu. My role, as always, was that of the coder and graphics guy. Teemu did the game design and sounds + music (although for this game I don't think we had music yet). If I recall correctly, we started this game after Ultimate Steroids was finished. So that was in 2001. Almost 15 years ago — we were snot-nosed kids! Damn! :D Anyway, this is a game I really would have liked to finish.. We shut down the development in 2002 after over 9 months of work. :( The lack of proper graphics was the biggest reason, I think. (See those weird heads in the video and screenshots? They're placeholders for proper enemy ships!) Funnily enough, now that I look at it, something similar could be whipped up in Unity quite quickly, but back then it was much slower progress due to having do all the tech myself. :)

It was supposed to be a shooter game with a gritty sci-fi aesthetic, with proper levels but not much of a story. There were some interesting ideas that I think could have made it a nice little shooter. We had three different (albeit the graphics were the same since I didn't get to do them properly) ships with different characteristics and weaponry. You could at any time teleport out and switch into a different ship (unless you had wrecked it!). There were one common laser weapon for all the ships that had unlimited ammo, but it was weak. Each ship had separate, more powerful weapon that ran on a battery. When the battery was depleted, it would recharge but very slowly. To help with that problem, there were these "pools" on the ground: red pool would replenish your health, green pool would recharge your weapons battery and blue pool would act as a portal. Go through one blue pool and end up in another.

Some early Badlands ship designs

We had different enemies: most of them were machines, but there were organic giant bugs too (with very crude walking animation: three frames! ;)). All the vehicles were floating / hovering above the ground plane, when dead they would fall down. The enemy AI was quite sophisticated in the scope of my own games: they enemies had field-of-vision (FOV) cones in which they could see. If you shot them at their backs, they would quickly turn around and fire a few random shots in the direction from which they took the hit. Some enemies had stealth mode so they were harder to see, and some could try to dodge the player shots. Some smaller enemies even attempted to flee when their health was low. Looking back, it was interesting to do that kind of AI behaviour and for some reason I've never done anything similar later. There was also line-of-sight implemented, so the player didn't see enemies behind walls or other objects.

The game also had bonus crates, where you could get a random bonus that remained active for some time. You could have all the bonuses active at the same time, too. There were "bullet-time" type of slow motion thingy (it was popular in 2001 so I had to add it in! ;)): your ship and your bullets would remain at 100% speed but the enemies and their bullets were 50% of their normal speed! On top of that there were a vomit inducing effect that blurred the screen. It was quite neat back then, but unfortunately I made the decision to hard-code the effect for 256x256 texture.. Just take a look at the video to see how "nice" that looks today.. :D Other bonuses were shield bubble, double damage and stealth / cloaking device. Your ship was barely visible and the enemies couldn't see you (or at least the possibility of them seeing you was greatly reduced).

For the tech it was an OpenGL powered game written in C++. Allegro was used as the framework for inputs and whatnot, but the graphics engine was all mine. I think this was one of my first attempts at data-driven game development, as I was just browsing the game files the other day and found that all the weapons, enemies and objects were defined in textual configuration files. Each enemy was a physical object with mass, friction etc. It was my own physics so it was very rudimentary, just circle vs. circle collisions basically. The walls were always axis oriented to simplify collision checking. There were no Box2D back in those days, see? :) I also had a beginnings of a level editor, where you could place the objects and stuff in place. But it definitely was not finished, and the game generates the maps randomly. And I mean literally randomly, there's no logic or any prefabricated pieces that are laid out, stuff is just spawned randomly. As seen on the video (which was fun to do, very nostalgic moments for me to be able to play this again after so many years!), things spawn inside walls and other objects. Fun times. :D It was meant to have proper hand made levels, though. Random stuff was just a place to try the game mechanics.

In case you're wondering how the lighting looks a bit off, it's because I didn't know how to do proper lighting (additive lights on texture, multiply blend over normal scene) at the time. I used an ugly hack: it's just a transparent black quad drawn on top of everything, then the colored (random) lights are drawn over that. It almost worked on not-very-dark ambient lighting, but when you made the ambient darker, the black quad kept eating away at the details as you can imagine. Horrible way of approximating lighting, but that was the best I could think of then. :P

As mentioned, the bullet-time blur thingy was rendered into a 256x256 texture, which looks quite shit these days. I remember I didn't know how to use any proper render-to-texture techniques (FBOs, PBuffers — although I'm not sure if they were around in 2001), so I just rendered to 256x256 viewport, grabbed it into a texture (a big no-no in rendering, especially in mobiles but it's passable for PCs) and then rendered the normal frame on top of that with full viewport. :D The effect itself was just several quads scaled and rotated, blended over the normal image. Trivial stuff but it was cool at the time.

One cool effect that can be seen on the video is the shattering effect when you break down crates, trees and even rocks. It looks alright even today, even though it makes quite apparent that the things are hollow. It was made simply by spawning a triangular particle on the original positions on the mesh, with the same texture and UVs. Then the triangular pieces would just simply fall down under gravity, and their vertices were clamped to the ground plane, so the piece would lay flat and then disappear. There were no rotations or anything, just this collapsing. Again, simple stuff but worked fine back then. Speaking of breakable props, I also had one building modeled, some oil-tanker looking round thingy with pipes going around. Unfortunately it was not in the build I had, so it didn't make the video. :(

Anyway, enough talking. Not sure if this was of any interest to you folks (let me know in the comments!), but for me it was very nostalgic experience to find out that the game still worked and I could play it and make this post. Almost makes me want to remake this properly using a modern game-engine! :) Btw it seems I had hard-coded the aspect ratio to be 4:3 for some reason, so things look squished in the 16:9 video. Sorry about that, it was the times of those bulky 4:3 CRT monitors! Enjoy the video! I've annotated it a bit, too. There's no music in the video, I had some temp tracks but had to take them out.

* * *

That's it for part I in this game graveyard series! Let me know in the comments if you like this kind of posts, as I still have some other abandoned games to show. Originally I meant to include more than one in this post, but as Badlands was quite special project for me personally, I wanted to make the whole post about it. If you thought this was TLDR, don't worry, I don't have this much to say about the other games! :)

Oddhop logo!

Just a (very) quick update to bring you the freshly-out-of-oven logo for our upcoming puzzle game Oddhop (see the previous post for more)!

There is also a new screenshot showcasing the lake theme. Or maybe it's a pond? Anyway, feast your eyeballs on these images and tell us what you think in the comments! (Click on the pictures for a bigger view!)

Oddhop Logo
Oddhop lake theme

Announcing the new baby AND the new game!

Hey again. In case there are readers that are not also Twitter users, I wanted to give some updates as to what has happened lately and what I am doing currently. :)

Oddhop swamp theme

So first things first: my wife and I had a baby daughter (our third!) on May, which is nice but I do think that three kids is quite enough! :D Especially with all girls; sometimes I get tired of all this Disney princess and Hello Kitty -stuff.. Anyways, while the new baby has obviously affected my game development work, I can reveal that I am indeed working on a new game: puzzle game named Oddhop! I'm actually developing it with my friend, he does (most of) the game design and I do the usual coding, graphics and so on. Personally I'm rather excited about this little game, and to the best of our knowledge the gameplay is quite original — which to be honest is sooo refreshing after countless match-3 games! :D On the right is the very first screenshot of Oddhop (swamp theme pictured). I hid the (temporary) UI and some of the graphics are not final (the rocks, especially), but it's better than nothing, no? :)

The game started as a prototype back in February 2014 and we've iterated on it ever since. Now we're slowly transforming from a proto to an actual game. The plan is to get the game out by the end of this year, but that depends on various things (including my day job situation). Definitely during 2016 at least. Most of the gameplay elements are in place — we actually thought we had locked the features down but still a couple of more made the list — I think there's two tricks left to try and maybe after that the design is locked.. ;) We are quite likely to have an open beta testing period when the game is at that point, so keep an eye out for beta requests later on. :) Current plan is to make the game paid on iOS (yes, it's of course coming to iOS devices despite my old rantings! ;)) and free but ad-supported on Android (with the option of removing the ads with a single purchase). Nothing is set in stone yet, though.

Oh, and here's an image of the new baby! :)

The new baby girl!

And yet another website change!

Another blog post, another website update, right? :P I grew tired of fighting with WordPress in Google App Engine, but actually the main reason for this change is that the CloudSQL bills were quite hefty! Since WordPress needs the database for pretty much everything — even with extensive caching — the CloudSQL instance has to spin up almost every hour of the day. So it ended up running 24/7 and that costs more than I'd like for a simple site like this.

What I did was ditch WordPress and switch to an entirely static website. I lost some dynamic features like the search, and I didn't bother to implement categories for posts, but I gained speed and simplicity. :) Also the RSS feed is currently not implemented, ping me if you need it and I can add something. Anyway, I wrote a custom tool that generates the site from a few templates, and App Engine just serves those static HTML files. The generation takes only about 2 seconds, which is nice. You might wonder why I use App Engine for 100% static content? Indeed the site could be served from a CDN (speaking of CDNs, I added one for the images on here, go me! :)), but I'll reserve the option to do some dynamic stuff later on, should a need arise. So let's see how this works — personally I'm very eager to see some savings on my hosting bills! ;) I might do an update later if anyone is interested.

Oh wait, actually there's the new theme as well! You did notice it, didn't you? I wanted something simple and responsive, so I took Bootstrap and quickly whipped up something. It's quite basic but shall do, for now.

Website migrated to a new server!

Hello, world. If you see this, you are reading this from the new server, which is great. Notice anything new? Apart from the comments being powered by Disqus now, the font change (I grew tired of the previous serif fonts) and some minor tweaks, the site should function just like before, but only better. I have migrated everything from the old webhotel that would break down even under little traffic to the Google App Engine, so things should run smoothly even in case there is some heavy traffic going on. Assuming everything works correctly, that is. :)

Oh, do let me know in the comments if you notice anything broken that used to work before!