gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Graphics > isometric engines with 360 degree rotation

#13651 - Stroff - Fri Dec 19, 2003 9:41 pm

Ninja Girl Yami (from gbaemu.com compo) and Paradise Road (gbaemu.com) were two of the first publically available engines featuring this type of perspective. These two game/demos make use of hardware rotate/zoom control on sprites and tilemaps to draw walls and playfield objects, along with some prerendered stuff and sprite stacking. These tricks are convenient, in that they get you a silky smooth 60fps, leave the CPU free to do other things (i.e. fancy AI), and can be written entirely in C. The main downside is that it's hard to get adjacent sprites to line up perfectly using affine transformations.

The new demo published by GBAtools looks to use a very different approach, since they mention it's hand-coded in assembly. Is it drawing everything to a bitmap layer (like typical 3d engines), or is it a combination of techniques?

It looks quite nice!

#13652 - sajiimori - Fri Dec 19, 2003 10:04 pm

It took me a while to find that demo you were talking about...it's not at the GBATools website. It's actually at the personal page of (apparently) one of the employees.

http://www.jamiewoodhouse.co.uk/demos.htm
Quote:

The new demo published by GBAtools looks to use a very different approach, since they mention it's hand-coded in assembly.

Using assembly doesn't mean the algorithm is fundamentally different. The demo uses a rot/scale bg with sprites on top, just like you were describing.

#13653 - Stroff - Fri Dec 19, 2003 10:38 pm

[quote="sajiimori"]
Using assembly doesn't mean the algorithm is fundamentally different. The demo uses a rot/scale bg with sprites on top, just like you were describing.[/quote]

Interesting. The "core game engine is coded in 100% assembler (ARM), optomised by hand, and runs from internal RAM for improved execution speed" comment threw me off, since ASM is pretty much overkill for something like this. Object placement involves multiplies and table lookups - stuff a C compiler will handle just fine.

#13669 - Paul Shirley - Sat Dec 20, 2003 3:48 am

removed

Last edited by Paul Shirley on Sun Mar 28, 2004 9:27 pm; edited 1 time in total

#13759 - cosmic4z - Mon Dec 22, 2003 12:20 pm

I developed the rotational isometric engine ... so thank you all for your kind comments :)

I am also responsible for GBAtools.

I released a version of this demo several months ago via the GBAdev.org site. Certainly before paradise road and probably the other one you mention (I never saw that one ... do you have a link?).

The nice thing about paradise road is that the little buildings look to be made from poly's ... ? Any thoughts on this anyone ?

It's an approach I've used before (on the PC) .... see here: http://www.jamiewoodhouse.co.uk/unpublished.htm (scroll down).

The ASM is quite necessary ... unless you are happy to handle less 'map objects' (sprites attached to map). The engine is cabable of some *very* impressive stuff ... a lot more than the demo shows ... (easy to say I know).

Not sure this approach would make a very good racing game however ... compared to a mode7 racer. What do you all think ??
_________________
Qwak - www.qwak.co.uk | Forum - www.qwak.co.uk/forum/

#13768 - Nessie - Mon Dec 22, 2003 4:21 pm

One thing I noticed is that my eyes kept wanting to see a 3D scene, probably because of they way the rotation works. I think because of that, the road at the top of the screen always felt distorted (larger) than it should have been...as compared to the scale of the road at the bottom of the screen (which felt small).

I'm pretty sure it's just an optical illusion, but it just looked wrong and therefore 'felt' wrong somehow. I'm thinking, based on the demo, that isometric views really are not very well suited to this kind of rotation?

It is pretty interesting though...and very smooth. Aside from the lack of perspective, I think it does look good.

#13770 - poslundc - Mon Dec 22, 2003 4:37 pm

cosmic4z wrote:
Not sure this approach would make a very good racing game however ... compared to a mode7 racer. What do you all think ??


I recall that Super RC Pro-AM on the original GB was done in a similar style to this, so it definitely can be made to work.

I think it would be particularly effective in a game where the focus was on exploration, and not necessarily racing. I'm recalling an old game on the Macintosh called PizzaRush where you were a pizza delivery boy and had to drive your truck around the city, obeying traffic laws, maintaining your gas supply, and delivering pizzas on time to get the best tips possible. It's was tons of addictive fun, and with a dynamic level builder could also make an excellent GBA game. Not to mention the infinite gameplay features you could potentially add to it.

Dan.

#13773 - cosmic4z - Mon Dec 22, 2003 5:09 pm

Nessie wrote:
One thing I noticed is that my eyes kept wanting to see a 3D scene, probably because of they way the rotation works. I think because of that, the road at the top of the screen always felt distorted (larger) than it should have been...as compared to the scale of the road at the bottom of the screen (which felt small).

I'm pretty sure it's just an optical illusion, but it just looked wrong and therefore 'felt' wrong somehow. I'm thinking, based on the demo, that isometric views really are not very well suited to this kind of rotation?

It is pretty interesting though...and very smooth. Aside from the lack of perspective, I think it does look good.


Yeah I know what you mean by 'feels' wrong somehow.

I could put perspective in there quite easily(ish). The only negative is having to have scaling sprites would mean less on a line. As the engine stands right now, it's capable of handling vast amounts of objects.

Buildings etc. could be constructed from several elements ...
_________________
Qwak - www.qwak.co.uk | Forum - www.qwak.co.uk/forum/

#13797 - Stroff - Tue Dec 23, 2003 12:45 am

cosmic4z wrote:
I released a version of this demo several months ago via the GBAdev.org site. Certainly before paradise road and probably the other one you mention (I never saw that one ... do you have a link?).


Ninja Girl Yami was uploaded last March for the gbaemu compo. It's available at http://gbax2003.gbaemu.com It relied heavily on prerendered graphics.

cosmic4z wrote:

The nice thing about paradise road is that the little buildings look to be made from poly's ... ?


Objects are constructed from sprites placed at any angle, using GBA hardware's affine transformations. The simple house is just one small example, you can do things like windmills with spinning blades, and bridges, too. Unfortunately, everything is subject to the sprites-per-spanline constraint. It's also a tricky getting adjacent edges to line up perfectly, because of roundoff errors in the calculations, but I think that can be addressed.

cosmic4z wrote:
The ASM is quite necessary ... unless you are happy to handle less 'map objects' (sprites attached to map).


What exactly are you using the ASM for? When I looked to it, I noticed that the object rotation was very smooth. One person guessed that everything was prerendered, but from the application size, it looks like maybe you are rendering the sprite textures dynamically?

cosmic4z wrote:
Not sure this approach would make a very good racing game however ... compared to a mode7 racer. What do you all think ??


If you want to stick with cars, I think it is well suited for a Tank game or even an APB remake.

#13823 - cosmic4z - Tue Dec 23, 2003 2:08 pm

Thanks for the info stroff.

Ninja Girl Yami ... looks very nice ... i really like that effect of the affine transformed sprites for walls ... why didn't I think of that earlier !? :)

I take my hat of the the developer :)

I wondered with paradise road if the building was actually created dynamic on the fly to obj ram. I doens't look rendered to me ... more polygons to obj ram ... display as sprite ... ?

If I did a racing game with my engine ... it would have slight perspective (maybe) ... and that means scaling sprites ... and that means less than 1/2 per scan line ...

I have other ideas of where to go with it :) ... anyone know where to find good tile artists !?
_________________
Qwak - www.qwak.co.uk | Forum - www.qwak.co.uk/forum/

#13826 - Stroff - Tue Dec 23, 2003 3:56 pm

[quote="cosmic4z"]anyone know where to find good tile artists !?[/quote]

These boards are a good place to start... there's a lot of pixel artists hungry to contribute to projects. There are also a handful of web sites and message boards you can google for.

Who made the tiles in your existing demos? The art is gorgeous.

#13828 - Nessie - Tue Dec 23, 2003 4:39 pm

The pixelation site has a lot of good artists...I've encountered a few *very* snotty people there, but probably no worse than anywhere else, heh.

http://web1.t43.greatnet.de/index.php

#13831 - poslundc - Tue Dec 23, 2003 4:55 pm

The pixelation board is also available through http://pixelation.swoo.net.

HTH,

Dan.