Isometric Game Development with Flash
I’m currently developing a role-playing game in AS3.0 (non-fantasy themed!!) in my spare time. This has been and still is in the design phase since a while and I’m pondering whether to use isometric graphics or an orthogonal view (that has a slight tilt but still is fully orthogonal. If you remember Jagged Alliance you get the idea). Though orthogonal view would make things easier I feel that isometric view gives more visual freedom so I will probably end up with that.
Either way the map engine needs to be using BitmapData and bitmap tiles rather than MovieClip tiles to get the maximum performance. This however opens a bunch of new issues. First, isometric view introduces depth! Several tiles are behind the player sprite (or NPC sprites) while others are in front of them. This could be solved by using two layers, one for the tiles behind the player/NPC sprites and another one for the ones in front ot them. In this case the depth manager needs to switch the necessary tiles from one layer to the other.
[ad#gog_arcanum_box]Another thing to think about are animated tiles or objects. A tile map without any animated things in it would look boring, wouldn’t it?! There could be a situation where you want to have animated water or fire on a map. This could be solved by using sprites for these objects but what if you need to have many animated tiles on a map like for example a large pond of water whose surface gives the impression of moving waves? If using sprites for this you will end up with the problem of having many MovieClips on the map who could take the performance down.
Therefore I’m thinking about some sort of animated tile manager that would redraw tiles on the map at a given interval. It picks the single frames of an animated tile from a bitmap and updates the belonging tiles on the BitmapData Object every couple of milliseconds (or frames). How this will look in practice I still need to find out.
There are several other aspects to take into account like pathfinding and Flash’s Bitmap size limitation of 2880×2880 pixel. The size limitation is interesting in that point that it should be prevented to create a BitmapData as large as 2880×2880 pixel since this takes up a lot of memory. A good practice is to make the map’s BitmapData size as large as four screens of your Viewport size and then swap to a new BitmapData instance everytime the player reaches the borders of the current one. E.g. if your Viewport (the visible area of your map) is 640x480px, the BitmapData should not be larger than 1280×960.
I’m digging all the information I can get about this topic so here is a small list of links that could be helpful for designing isometric games …
Designing Isometric Adventure Games (Nokia)
Creating Isometric Game Graphics with Poser (DAZ)
Discussuion about Isometric Sprites (GameDev.net)
Using Carrara for Isometric Game Design (Renderosity Forums)
The Complete Guide to Isometric Pixel Art
zenbullets Isometric Game Engine
Inet2Inet Isometric Game Programming Tutorials
… I’ll add more links by the time I discover them.