Thursday, 10 July 2014

Topia for Android and future updates

A few weeks ago Topia was quietly released on Android. The conversion was handled by madmunki who aren't just another porting company, they're the guys behind the wonderfully weird Spunland and also, people I worked with in various places back before I 'went indie'.

We didn't make a big deal of the launch because, as a lot of people have pointed out, Topia isn't really much more of a game than it was when we released the iOS version in late 2012.

Why isn't there more of a game in Topia already?

Ever since I wrote the graphic engine and landscape system of Populous over 25 years ago, I'd always wanted to create a smooth, more organic version. I started on this with the Powermonger engine but the Amiga and ST just couldn't draw enough polygons to make it work and dynamic modification wasn't part of the design anyway. The idea did surface in a few places later. Magic Carpet had a dynamic landscape (though only indirectly through spells and weapons) which also showed up in Gene Wars. When Populous 3 (released as Populous The Beginning) started development it seemed like the idea suddenly made sense but by then none of us who had worked on the previous Populous games were directly involved and were unable to steer the project in a more 'Populousy' direction. Direct control of the landscape wasn't part of the game. Sorry to all of those who think of Populous the Beginning when they hear the word Populous but some of us consider it more of a weird RTS than a true sequel (OK, I know it was released as a prequel but you get my point). I did like the way it faked a spherical world though...

So, basically, in 2010 I was talking to Josh from Crescent Moon and he had an idea for a god game that seemed like the perfect fit for the landscape system I'd been itching to try for over two decades. I set about doing what I'd done many times before. Creating a landscape system and the means to render it. The cool thing about Topia was that when I finally got round to making that organic sculpting system, the iPad was the perfect platform. The tactile controls make the landscape moulding feel even better than it does on a mouse.

There was a big problem though. I was doing what I'd done many times before: Creating the underlying world management, the control system and rendering. This is basically exactly what I had done for Populous, Powermonger, Populous II, Magic Carpet, Dungeon Keeper etc. The big difference was that with all of those games there were other talented programmers involved who went on to turn my groundwork into an actual game, or handled the hundreds of more mundane programming tasks. With Topia, I had none of that and, to be brutally honest, I just didn't have the time or money to finish it so we were forced to release it with just the tutorials and 'sandbox' mode.

Now, things are changing. Topia will be getting more gameplay, more creatures, more landscape modification effects. The exact details haven't been completely decided but more information will be coming soon.

Tuesday, 25 February 2014

Flappy Bird has been everywhere for weeks, not just everywhere where developers talk and gamers abuse each other online but normal people have read about it in the papers or seen an item on the news.

The reality is of course that Flappy Bird is just a game stripped down to the absolute basics, something that i'm going to, in this totally boat-missing blog, try to equate to Punk, specifically to God Save The Queen by the Sex Pistols.

Some gamers got angry about it, they'd been playing overblown, epic prog-rock AAA bullshit for too long to appreciate the simplicity. Refusing to even acknowledge it as a game.

Other more casual gamers, fans of being spoon-fed evil, Simon Cowell style, manufactured, free to play pop shite were similarly unimpressed and even intimidated by the inaccessibility of this new phenomenon.

Even old people have an opinion, they'd heard on mainstream news that it had 'been banned' and pulled from the app store. OK, I'll admit, this isn't quite the equivalent of saying "fuck" on a live news show or getting banned while number one on the silver jubilee but no analogy is perfect.

Kids of course, genuinely love it. I thought the first few I spoke to were just being ironic and of course they were. Sort of. But that doesn't mean they weren't playing it, into it both as a game AND just because it was cooler to be into than Abba or Genesis.

Now that Flappy Bird is unavailable, Dong Nguyen's other games sit there on the app store like a couple of bad tracks off Never Mind The Bollocks, he doesn't have an Anarchy In The UK equivalent (the only place where my analogy falls down) but i'm looking forward to playing his 'Pretty Vacant'.

Meanwhile hundreds, if not thousands of developers have been inspired to pick up whatever instrument they are prepared to spend five minutes learning (Unity has to be the guitar in this analogy, maybe Photoshop is the drums...) and are making games for themselves.

This has of course pissed off some older game developers who can 'read music' (write low level code, am I stretching this analogy to breaking point yet?) and are now moaning to whoever will listen about how it's all too easy these days.

One thing that those new developers need to realise though is that back in the late '70s, those people inspired to pick up a guitar for the first time by God Save The Queen didn't just form Pistols covers bands.

Of course, I'm being a bit of a wanker to suggest it would mean that. If you look beyond the Flappy Birds clones in the charts to the Flappy Jam entries it is clearly inspiring far more than just clones. The fact that most of them are as unplayable as a 1979 John Peel show was unlistenable only backs up my original, totally non-spurious point.

I'm more interested in seeing where it goes next. In my mind Punk was actually less important than the music it has influenced since.

Tuesday, 10 December 2013

After a lot of time spent designing, implementing and rewriting Fat Owl's entity system I have the editor working and was able to get this simple enemy together in about 20 minutes. He is basically a clone of the player's owl but with about eight lines of 'AI' code deciding when to press his thrusters to get to you. It seems unlikely that his AI will mutate into self awareness and eventually become Skynet but a swarm of these will be a fun challenge. Even now with no attack logic they are a lot of fun to dance with.

The graphics are very obviously placeholders but the automatic shadows are doing their job. The owl graphic is getting pretty old now and is the only thing in the game with a shadow made in Photoshop.

Friday, 23 August 2013

Fat Owl With A Jetpack is the game i've always wanted to make, It's the story of Ollie the owl who got so fat he couldn't fly until professor squirrel invented a special magical jetpack.

Sorry, I can't keep this up. I've been 'advised' that I should try to talk about my next game in fun, non-techie terms but I just can't do it...

Fat Owl With A Jetpack is a game, or at least will be soon. What it isn't is a fucking story. As i've moaned about at length before games aren't stories.

The real story is that Fat Owl With A Jetpack is based on an idea I had a few minutes after playing the Palm Pilot version of SFCave back in the late '90s. I was impressed with how much fun a single button game could be. Obviously developers have taken this idea and run with it. Many of the best action games on iOS are played with a single button.

But being the point missing twat that I am, my instant reaction to the fact that you could get so much gameplay from a single button was to imagine what could be done with two:

One controlling vertical and one horizontal. No, that wouldn't work... SFCave only worked because gravity works against the thruster, I couldn't have horizontal gravity could I?... No, of course not but what if the thrusters were at 45 degrees?, press one to move left, the other to move right, both to move up and let go to drop down. Yes, that'd work, I could make a super simple lunar lander type game that worked on two digital buttons...

But why would anyone want to play something like that? People were getting excited about a new wave of consoles with controllers bristling with multiple analog pads and triggers. The time for neat two button control ideas had long gone and was, I thought, extremely unlikely to ever come back.

I was also playing a lot of Elastomania (the game that inspired a million Trials Bike games) and the idea that rolling round the walls should be part of it struck me. The Lunar Lander/Thrust/Gravitar convention of your ship exploding as soon as a wing tip touches a wall isn't actually a law is it? At this point the spaceship stopped making sense. It would need to roll while it's thrusters remained locked at 45 degrees. I started seeing it as some sort of abstract ball thing. The idea was getting messy and went on the back burner for a very long time.

So late one night last spring, in a slightly, erm, meditative mood, I was thinking:

I really want to do that two button lunar lander thing next as visualising it in my head for over a decade might be starting to drive me mad.

But can I really do it next? Sure, it seems like it might be a nice feeling physics based game mechanic but how would a game where you played some sort of abstract ball thing bouncing off the walls be able to compete with the cute characters on the app store?

Depressed, I pulled out my phone and started absent-mindedly playing Tiny Wings for the eighth time that day, "If only there was some way of turning a nice abstract physics mechanic into a cute game by simply sticking a cute character in it" I thought as I played before going to sleep...

The next morning I woke up and for some completely inexplicable reason, i'd come up with the answer in a dream. Fat Owl With A Jetpack was born.

Monday, 29 April 2013

OK, I admit it, this post is a little hacked together. There is a message carved into the preset world 'creator's message' that points at this page as being the source of info for importing worlds and I haven't actually managed to write it yet...

I'll edit this with pictures and examples but for now I'm just going to dump the info needed, hope it helps...

A valid import file is a 1024x1024 uncompressed .tga file. 8, 24, and 32 bit variants all work.
The file must be called heightmap.tga.

As of V1.3, you can now drag these files into Topia via iTunes file sharing, just drag the file into Topia. You can still use software like iFunBox or iExplorer to get the file onto your device, simply drag heightmap.tga into Topia's documents folder.

Run the game and now, while editing your world, an 'import' button will appear in the Edit menu.

In 8 bit monochrome mode the colour of the greyscale image corresponds to the height above sea level, in a colour image the red channel is the height above sea level.

The simple 'import' button reads the file in. Everything will be above sea level but can be adjusted to be more interesting in the Scale/Offset/Smooth tools.

The 'Import & Make Seabed' does more and is designed to work with some heightmap files I found while experimenting. In this mode anything with a height of 0 is the sea. Rather than have a world with oceans that are only puddle-deep this mode generates an 'interesting' seabed automatically.

With colour files the green channel is a 'grassiness' map, the blue is a 'potential grassiness' map, it's easiest to make these the same at the moment.

Sorry about the rushed guide, I will be updating this page with examples as soon as possible.

Suddenly, after an insanely long delay, V1.2 of Topia is out. This release has taken a while and is mostly focused on the editing tools and being able to finally save the levels in a non-insane way.

New features are:

Completely rewritten save system, level edits are no longer stored as a weird, confusing timeline, they are now saved completely as they appear. This was the bulk of the update and I spent a lot of time ensuring the save and load were as quick as possible and don't use an insane amount of space. Storage requirements for a level are variable but tend to use somewhere between 1 and 2 megabytes for each slot

There is now the concept of 'grass' and 'potential grass'. This basically means that you can now paint down paths and patterns in 'dirt' and the grass, as it grows, will not cover them. areas of 'dirt' can be reclaimed as grass with the grass painting tool as long as they aren't too near the sea, too steep and rocky or above the snowline.

The painting tools have been hugely optimised, this means that people on slow devices (iPhone4 and older + the original iPad) will see much less of a slowdown than before.

New lighting: Lighting calculations have been optimised for better performance while the resolution of the lightmap has been enhanced.

Better water animation: The way the water refracts the seabed under it is much more realistic and looks cooler.

Importing levels from graphic files: More info on this coming later...

Preset worlds: Players can start from a selection of preset worlds, 7 in the current version.

Scale/Offset/Smooth tools, used to make world scale changes to the level.

Advanced tools: Some silly effects to tweak your world

Life editing in edit mode: Wipe out all trees and creatures, plant random trees.

Updated landscape tutorial

Vine camera loop mode: The camera travels and rotates over the world and is back to where it started exactly six and a half seconds later. Film this from Vine on another device and it's fairly simple to make seamless looping videos.

Now I have to post another blog detailing how the import works in case anyone tries to follow the link painted as a path in the Creator's Message world!

Thursday, 10 January 2013

Topia update progress

For anyone waiting for the update, sorry this is taking so long. Progress has been slow for several reasons. Firstly, for the last few months in the run up to release I got almost nothing done other than programming and had a lot of stuff to catch up on. Some of it work related, some of it more personal. I also had to make some significant changes to how Topia saves progress.

Why is saving broken?

Arguably saving isn't actually broken in the current version, it's just a questionable design implemented in a slightly stupid way. It is possible to save a 'timeline' of everything you do and play it back. The reasons for doing it this were related to a bunch of vague ideas of where the game might go in the future. It offers these advantages:

Timeline saving, pros:

The initial fractal and an hour of gameplay recording takes less than 100kb rather than the 2000kb+ that a straight save takes. This would make any potential level sharing very efficient.

Being able to break into a timeline at any point and takeover has got to be cool hasn't it?

I really can't think of a third anymore, there must have been more surely...

Timeline saving, cons:

The concept is pretty difficult to present in a clear way to players.

For a player to get to where they were before, the game has to play back the entire recording.

potential for synchronisation errors as game logic changes with updates.

I hate to admit it but I really hadn't considered the first problem until I was putting the finishing touches to the UI. I could have possibly hidden what was happening and made it seem like a normal save system except for one other issue, directly related to con 2.

Because of the looming deadline I had problems getting the 'load by fast winding the timeline to the end' feature working in time so I left it out of the initial release. I hadn't realised how attached people would get to the simple editing and that it would become an issue. As the game was released I was getting more feedback criticism for the lack of save than the lack of an actual game. It was clear to me that I had to get 'fast winding' working so this became the top priority for the update.

Finally working on the update

I was expecting to be able to get a 60x speed fast wind working. This seemed reasonable as 12 minutes of editing would fast-wind (or 'load') in 12 seconds. Unfortunately when I actually got it working I only managed a 12x speedup on iPad2. This would mean that 12 minutes of 'timeline' would take an entire minute to 'load'. I could have focused on optimising the fast wind and might have even got as far as that 60x speedup but even then, a little maths suggests it might not be fast enough. Anyone editing for an hour would have to wait a whole minute to 'load' and with easier saving, people might edit for several hours, maybe even the 10 or so it would take to fill the recrod buffer. It was becoming clear that the entire concept was broken.

New save system

So I've now added the ability to just save out a level and reload it instantly. This is so much easier to work with. It's also allowing me to redesign the interface so that saving and loading all works as a normal human might expect. I've also in the middle of adding a few extra editing features. The update will feature.

The ability to select between painting dirt and grass, making painting more interesting

a tool to 'stepify' the landscape as seen below

a tool to paint forests

new instant save and load of levels

redesigned menu flow

redesigned game control and more control modes

A bunch of under the hood stuff to increase reliability

A few silly tiny visual effects I couldn't resist

I know I said the update was 'imminent' before but when I missed the pre-christmas deadline I took the opportunity to rewrite a few underlying systems and start a new project based on the same code. This took a little longer than I'd planned and combined with the fact i've been visiting my father in hospital twice a day means it's still only 'imminent' but it will be submitted very soon.