Posted on Jan 1, 2010

A sim city clone!

Right after Chopper, it took me a few months before I would get back into mobile game development again. It wasn’t so much that I wasn’t coding during those days (I was still spending lots of my spare time developing other projects), but rather that I felt extremely disappointed with the end-result that was Chopper. Though Chopper itself looked good and it was not bad at all gaming-wise, it still felt incomplete and overall unsatisfactory to me. It simply wasn’t fun and I couldn’t figure out why it wasn’t …

So I did what anybody would have done, lay it beside and focused on other projects, fully-knowing that it would keep bugging me until I’d give the entire affair another shot. Eventually it did and so I started to toss ideas around on how to fix Chopper. Since I am obviously no good at planning these things ahead, I finally threw the idea of “fixing” chopper behind and began working on a project that may use some of the chopper routines. This project would turn out to be: Towners – a sim city clone.

The idea was mighty simple: Analyze what made Sim City fun, develop a similar system on your own, and patch the graphics together to make it work. Sounds easy, right? Well, it wasn’t… unsurprisingly, but I did not know that then. So after doing some research in form of playing the classic again (research – get it?), I decided to develop some basic rules that would allow houses to level-up as long as certain conditions are met.

Of course, this was not nearly as simple as I’d imagined and I incorporated several resources to make it happen: Water, Energy, Surrounding, Employment-Level, Money and Science. This would work out as the following:

  • The system will check every 2minutes if houses need to upgrade/downgrade
  • All houses level-up if their conditions for the next level are met
  • All houses level down if their conditions for the current level is not met any longer
  • Upgrading a house costs money and will be automatically subtracted from the total amount available (this stops you from growing too quickly)
  • Houses require Water & Energy to exist on the most basic level
  • Houses will require a certain percentage of tenant-employment for each level
  • Each Housing level must be initially investigated through Science
  • Starting from a certain level, all Housing will need a certain Surrounding-Factor
  • The higher the housing-level, the more tenants can live in one block

The player could influence each of the underlying factors by constructing specific buildings near the housing area:

  • You receive funds every 2min for each employed tenant (unless the tenant is a scientist)
  • Water can be generated through a near-by water works
  • Electricity can be generated through a near-by power plant
  • Streets & Parks influence the Surrounding-Factor positively
  • The Employment-Level can be raised by constructing office-areas
  • Laboratories generate Science as an output, not money and require a workforce
  • Office-Buildings, power plants and water-works have a negative impact on the Surrounding-Factor

Basically, this would guarantee a simple, but challenging gameplay. Development itself was much smoother this time around, too. I already knew the limitations and I was prepared. In order to save more resource space (as described on the chopper project, mobile games could not be larger than 128kb back in those days), I would figure out ways to downsize them as much as possible. As for Clouds, I would stretch the tiles by a random factor, turn them by a random degree and put several layers on top. This cheated the eye a little into believing that there was a very natural looking and animated cloud-layer on top of the screen.

Rather challenging, however, were the controls. Though it may sound silly – mobile handhelds do not share a common key-layout. All the numbers are the same, yes, but sometimes mobile phones come with additional controls, like little arrow keys. Those were the ones I wanted to use, but I need to feature the number-keys as well, in order to have it work on every modern phone. In addition, streets and housing needed to follow a natural look – so whenever the player pressed a button, one would have to look up the surrounding blocks to check which tiles to use. I had to add a set of overlay-maps, that would allow the user to see what he was missing in his small little town – a more challenging feature than originally planned.

In the end, however, I am rather satisfied with the overall result. True, it may not be as much fun as the original Sim City – but to my own surprising: it played extraordinarily well! It ran on most mobile phones by that time, featured a neat and unique look (again: thanks to Martijn for the great tile-set) and even came with simple auto save-functions. I loved it and from then on let mobile gaming at rest…