On Flash forums you often come across people who are talking about or showcasing their brand new engine. But let me tell you: Unless you’re going to make game based on it yourself, odds are no-one will.
Creating an engine is a great learning experience and so was making this isometric terrain engine for me. However, without a concrete game design to aim for the engine will probably stay a technology showcase.
It’s Always Performance
Making all the quirky rules of isometric terrain work (drawing order, line points) was a challenge, but once it was all set up it just works. Making it fast on the other hand …
The first version drew everything as vectors and could handle a 40×40 grid before grinding to a halt. With the second version I rendered the vectors to bitmaps and by the third version some further optimizations to the drawing routine made things quite fast and a cooler terrain generator was added :)
The fourth and final version got the ability to load in custom height maps, further optimizations where the map would be cached in the direction the user was scrolling, and a mini-map (it’s in the code, but was not added to the map in this version).
Transport Tycoon – the Flash version?
As a teenager I loved Transport Tycoon, and I’ve always wanted to make a game inspired by it. There is OpenTTD (Transport Tycoon Deluxe), which is great if you want to play on your desktop. But a Flash version with multiplayer, that would be fantastic.
That, and isometric terrains just being plain cool, were the reasons why I started this.
In the end
Getting to this point had been quite a lot of work. As I was just learning Flash, I realized the need to rework the entire project because some poor design decisions had been made. However, it was doubtful I could get it to run any faster. Transport Tycoon was out of the question as that would be a huge undertaking and I with my knowledge at the time it would never run fast enough. So without a clear game idea the project lingered …
All that was back in April/May 2007 and I’ve come a long way since. But I still think this is a pretty cool project, and I’m sure someone out there can get some inspiration from the code.