Jump to content

ISOmetric RPG in development


Recommended Posts

For quite a while now I have been thinking of doing an isometric title for the Lynx since

(at the time!) it seems like the ideal plattform for this with SUSY's fast bitmap drawing etc.


A couple of weeks ago Dan Thoresen started posting some mockup screens of a hypothetical RPG style isometric game.

Recently he started implementing it for the hypothetical hardware plattform Pico8 ;-)


I was in awe und since he sent me his original spritesheets with the tiles I started testing how this would work and look on the Lynx.

I would not post here if I wasnt determined to develop this into a full scale Atari Lynx game. Ever since we are inclose contact on this endeavor and Dan was most helpful and we had some great chats on layout and general issues.

The maps are 10x10 with the outer tiles usually being defined as (back)walls or exits/doors.

My first proof of concept would draw all 10x10 tiles sorted by z-position in a long 100 sprite chain each frame.

Then go on with the player, items and the doors in case they are located at the south/east sides.

It turned out that this is about twice as fast in handysdl or mednafen than on real hardware. What a bummer ;-(

Setting the skip-this-sprite flag was roughly about as fast as pointing the data to a 1 pixel transparent sprite.


Drawing isometric tiles is somewhat tricky as i.e. walls are not at the center of a tile but instead are shifted to one side.

Outward corners hence require two tiles to be drawn at the same position, something a Sprite-chain for SUSY couldnt easily reflect.

There is no simple way to redraw individual tiles (quickly) as for isometric view you never know in advance which tiles will overdraw what areas unlike for top-view set ups.


Also the conversion map-position, tile-position and screen x,y coordinates can get a bit tedious.

During the weekend I decided to drop the draw-all-tiles each (2nd, 3rd..) frame and instead went for the classic approach to handle this in software via CPU.

So still all 100 tiles are checked for subterrain structure, then all 100 tiles are plotted but that only happens once per room change.

Only the player and the objects in the room (much less than 100) are drawn each (double buffered) frame.


When the player (or other movable objects later on) are being drawn, the data beneath the player gfx is buffered and restored before the player gets drawn at another position. This happens each frame.

To allow the player to walk in front of objects as well as behind them I parse the list of items and replace the next_in_chain pointer of the object that is just being further away then the player by the sprite data for the player itself.

The player sprite definition points again back to chain and continues to draw all objects in front. The player sort of gets injected into the ONE sprite chain SUZY is drawing.

Despite all the buffering and restoring of bitmap data and pointers this is much faster now and I am more than happy with the overall result.


It is still in a pretty early stage but I think there are no further showstoppers now that the engine runs fast enough (with quite some raster time left).

The numbers on screen show the amount of raster lines used after start, after the player sprite is buffered and the data injected, after some minor pointer changes (just 1 line currently) and after all of the items including the player are being drawn. 0x16 = 22 rasterlines including some dummy IRQ placeholder in handy_sdl.

Not yet verified on real Lynx but even if a factor 2 applies again, I feel fine.


If there is interest, I will happily keep posting here on the progress.

Martin /enthusi & Dan



Igor of Atarigamer.com wrote a small article on "Lacim's Legacy":



  • Like 22
Link to comment
Share on other sites

Wow, this looks really great! I love isometric RPGs, though it comes with a fair amount of challenges that I wasn't willing to deal with :P

Make it happen and let me get a copy :D


Do you have any references to the gameplay that you can share? (eg. Wyvern Tales was clearly inspired by Final Fantasy)

  • Like 1
Link to comment
Share on other sites

Looks really great! :) Especially the real Lynx screenshot is exciting!


It is still in a pretty early stage but I think there are no further showstoppers now that the engine runs fast enough


I learned it the hard way ;D but in my experience it's smart to add music and/or sfx early in the development, to see how much they drag down performance (in unexpected and annoying places) :-D
Edited by Turbo Laser Lynx
Link to comment
Share on other sites

Hey guys. Thanks for the positive feedback :)


Do you have any references to the gameplay that you can share? (eg. Wyvern Tales was clearly inspired by Final Fantasy)


I've always had a particular fondness for isometric games ever since Knight Lore on ZX Spectrum, which to date is one of the games that have really captivated me the most. Other sources of inspiration is the great classics Cadaver, Darkmere and Hero Quest (1) on Amiga.


The gameplay will resemble Cadaver the most but with more static environment (no pushing stuff around). Game will feature a bit of puzzles and hazards (traps), monsters encounters with the occasional boss, some peaceful creatures, basic character progression and a number of equippable and useable items. There will be several types of areas to be explored such as forest, mountains, grassy field, desert, castle interiors, village houses and of course lots of dungeons!


The initial idea behind this came (as enthusi wrote) from me doing a quick pixelart screen mockup of a fictional rpg for PICO-8 platform. The mockup got an amazing amount of attention and positive feedback so I decided to put some code behind it and see how it would actually play. Enthusi approached me and wanted to see if this could be done on Lynx and couple days later and lots of special kind of asm magic by enthusi we have something that resembles a game concept on Lynx, and I'm ecstatic about it :)



Knight Lore: https://www.youtube.com/watch?v=7n7qtErhF-A

Cadaver: https://www.youtube.com/watch?v=KZH2iWt9kgA

Darkmere: https://www.youtube.com/watch?v=ztLKChowUXI

Hero Quest: https://www.youtube.com/watch?v=tBr2IYiPWlM

Edited by zooperdan
  • Like 4
Link to comment
Share on other sites

Here is another shot with items and furniture.

I too love the gfx :)

Yes, thanks for the heads up about the music. I intend to use my own player. If feasible sample based. Hence the dummy HBL raster already. So I already burn some extra cycles right now.

A 'proper' (err.. preliminary) sound engine is something I will add once the basic functionality (walking around) is implemented.Then we really know where we stand.


  • Like 5
Link to comment
Share on other sites

Another update.

All coordinate transformations (that I need so far) are implemented and *drum roll* working.

That helped alot debugging a few things and now the proper z-depth sorting with objects and the player also are fully working. And you can't walk through objects and out of screen anymore. It starts to feel like a game, actually (in my biased opinion).

Link to comment
Share on other sites

Yes, that would be an option. However, I dont think that sound effects will be the problem in the end. They can easily be reloaded on a room by room basis anyway. I was rather concerned of a whole musical arrangement based on samples. The memory map I showed is for the Jazztune I recently uploaded with a picture scroller. So it has high quality samples but also already makes use of looped samples, etc. Well, currently I investigate a bit on the waveforms and chiptune music with the Lynx.

abcmusic and HandyMusic appear to be the only progressed tools/engines for this that I found?

(and chipper of course!)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...