Difference between revisions of "Isometric 3D"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(List of Amstrad "Isometric" and "Oblique" games :)
Line 237: Line 237:
  
  
===='''135x135x90 Oblique'''====
+
===='''135x135x90'''====
  
 
(a narrower isometric, rarely seen on Amstrad CPC, diagonal ratio for the X/Z plane is 1x1, mostly possible in Mode1 unless you use 1x2 Mode0 pixels)
 
(a narrower isometric, rarely seen on Amstrad CPC, diagonal ratio for the X/Z plane is 1x1, mostly possible in Mode1 unless you use 1x2 Mode0 pixels)
Line 256: Line 256:
 
**Black Land
 
**Black Land
  
===various symmetric obliques===
+
===various symmetric===
  
 
Those can tend to look messy, especially in Mode0.
 
Those can tend to look messy, especially in Mode0.

Revision as of 13:57, 3 October 2011

Projections, courtesy from wikipedia
samples courtesy from www.olivierleborgne.com games :Head Over Heels, Batman, Super Hero, Sweevo’s World and Hydrofool.

This page is intended to complete the Category:Isometric 3D, check the categories at the bottom of this page to get more related links.

It will feature techniques in creating Isometric 3D and graphics.


Isometric 3D is a representation of 3D with a total lack of perspective.

The proper concept is actually Parallel Projection, as some games are are sometime using other parallel projections than isometric.

Pac-Mania for example is not really "isometric" but actually "Oblique".

Yet the term Isometric is the most commonly used, as it suit for most of those pseudo 3D games, so we'll use it as a whole, despite sometimes unproperly.


Types of pseudo 3D

The global term is parallel projection. But in common language we often talk indistinctly about Isometric...

There are actually 2 families : symmetric and asymmetric parallel projections.

  • Symmetric : the X and Z axis form an equal same angle with Y axis.
  • Asymmetric : X and Z axis form different angles with Y axis.

Used parallel projections are often :

  • "Horizontal" Oblique projection : Pac-Mania obviously, yet "Beat Them Up" games (like Double dragon or Renegade) or even few "Shoot them Up"s (Mag Max) do use some kind of this.
    • In those case, we can talk about Perspective Cavalière (F) / Kavalierperspektive (D) / Perspectiva caballera (E) (is there en English equivalent) which is a perspective with unchanged 2D vertical and horizontal and a 3rd Axis in oblique. This specific projection enable to keep the 2D gameplay based on vertical and horizontal movement.


    • Backgrounds or graphics in such projection are easily obtained in Mode0 as it need an oblique matrix with a scale of 1vertical for 2 horizontal. Sadly the blocky pixels of Mode0 don't enable to do finely detailed sprites
    • Sadly this kind of projection bring some problems concerning the diagonals and control as we'll see later.


  • pseudo isometric : those are symmetric parallel projections with angles for the X and Z axis which suit the Pixel ratios, hence producing harmonius and regularly shaped lines.

Some "Mode1" isometric, X and Z having 45µ° angle with Y.

the diagonal ratio is X1 for Y1. This was sometimes used in some Speccy originated games as this enable to put more tiles or elements on the horizontally limited Speccy resolution .

    • Example : W*H*B, a modern Bloxorz' Clone on ZXSpectrum.
    • A More CPC oriented example game is probably Frontiers (Zafiro Software (1988)).

on the other hand you can also flatten this with a 4x1 ratio, more often seen on CPC (and in Mode0).

1x1 or 4x1 are way to reduced the needed screen dimension to display the same number of elements...

  • 1x1 is better for horizontally limited display.
  • 4x1 is better for vertically limitade display.

Masked Sprites and Elements

A proper isometric render need to get masked sprites so they may appear upon the background.

Also some Elements which are to be put in front of sprites also have to be masked.

A heavy job is needed to define the masks and sprites "priority" so the 3D effect works : the background elements being obscured by the foreground elements.

  • Mode1 :

In Mode1, the limited set of inks (only 4 ink) need a proper colour management.

The following was certainly the best one, it is probably the technique used in Head Over Heels :

      • Background : can be in 4 colours, it is used for the floor, HUD and backgrounds walls only. You can use a set of 2D tiles with no mask and those can never be "foreground"
      • Sprites and fore-ground elements (objects, doors, platforms...) : they use only 3 colours and the 4th ink is used to get the mask.

Hero Quest per example is quite similar.

The floor-tiles and background walls are masked, the "4th colour" (grey, actually ink0) is nearly never used except for the "empty floor" or the "Mouse cursor"...

A clever use of the transparency/mask ink on the Floor/Wall tiles could enable to display this background grey on those floor/wall tiles but it wasn't done... which is a serious graphical limitation alongside a poor colours choice.

It is also to notice that the basic floor tiles use only 2 inks (Blue and dark blue) the "light cyan" seen in the jointed floor-tiles being sometimes obtained with the pixels-crossing of pixels from 2 tiles different.


Shadows

Getting the sprites a shadow is a nice way to ease the player's comprehension of the 3D effect and environment, yet it was rarely used.

Head over Heels is notable because when your Sprite (mostly "Head" who could glide in the air) was in "altitude" you may not easily see were it is actually in the X,Z plane.

Yet putting a vertical shadow may be heavier on the CPU and Ram consuming...

  • Examples :
    • Batman : the Movie (OCEAN) in the Batwing level (4th level, horizontal oblique) so you can see your altitude.
    • Hydrofool : as you float in an Aquatic environment, the game would be unplayable without this shadow (just look at the picture, yellow shadow...) to see your coordinates in the X/Z plane and judge at which height you are swimming.


Level design

The background elements being obscured by the foreground elements, a proper level design is needed so most crucial elements remain visible.

Yet this can also used to put hidden features and secret passages too.


Video modes

The square pixels from Mode1 was usually preferred for real Isometric.

Yet games in mode 0 managed well with it or other parallel projections type too.


Some reasons the Mode1 was anyway quite popular :

  • Many isometric games were Speccy Ports.
  • the fine square pixels in mode1 also enable to get fine detailed sprites, while the blockier Mode0 would need those sprites to be bigger in order to manage a proper level of details.

HUD

a problem with Isometric was the need to put HUD in corners of the screen.

As a result, it was rarely possible to add extra colours thanks to raster interrupts because the HUD often cross the games windows (horizontally).

Scrollings

Few Isometric games actually included scrollings as an Isometric engine is quite heavy for the system.

A proper scrolled isometric game would need 2 diagonal scrollings and perhaps a vertical scrolling too.

Not the easiest to get.


Yet Pac-Mania is a notable example of scrolled parallel projection game, its Oblique projection being more suitable for scrollings as it need only 1 diagonal scrolling and 1 horizontal scrolling.


Control and Gameplay

A Projection based environment can be used as 2D or 3D environment/engine.


  • Horizontal Oblique :

Because it still have some traditional Horizontal and vertical axis, this projection often stick to the up/down and left/right way to move the Player's sprite. as a result, this projection if more than often only cosmetic : the background looks like 3D but the game and the sprites are clearly 2D.

    • 2D : As in most Beat'hem'all like Renegade. Or even some shooters like MagMax. They are indeed 2D games. The vertical axis being only limited to jumps on the X axis (left/right) if available.
    • 3D : Pacmania is a complete example of a real oblique 3D.

To move "vertically" (Y axis), you need to jump (Fire button), otherwise the basic 4 directions really stick to the 2 horizontal plane axis' (X and Z), one of them (Z) being "diagonal" on the screen. This is helped by the railroaded aspect of the labyrinth which prevent any Diagonal move (on the X/Z plane) to be exploited. As a result, you can jump in X and Z axis.

  • Isometric :
    • Square/Rhombus Grid issues.

Carré/Losange (F) Quadrat /Raute (D) Cuadrado/Rombo (E)


most 2D or Isometric environment may have some issues concerning distances.

A Square's diagonals is longer the its sides.

To get a realistic distance/time ratio (speed), you may need to compensate or else the diagonal moves can be exploited, be it in real time or turn based games.

The problem often happens in action 2D games and in many 8-directional games (square grid).

        • Examples are many Football game (view from above) where running in diagonal often enable to actually run faster than in Horizontal/Vertical on-screen directions (provided the game doesn't lag due to real time multiscrolling issues).
        • Also strategic/tactical turn based games using "square grid" instead of hexagonal grid... if possible, using the diagonals of the squares is often advantageous movement wise...


But in isometric the problem can be even more complicated as the 2 diagonals of the "theorically square grid" of the "horizontal plane" (X/Z plane), now a Rhombus/Losange grid, actually have 2 differently sized diagonals.

Real Isometric 3D environment lead to some diagonal horizontal (X and Z axis) movement problems : the 2 horizontal plane axis (X and Z) are (visually) diagonals... but the joystick does not use its diagonal to move in X/Z axis. So you have to choose whether you use X=left/Right and Z=up/down or X=up/down and Z= left/Right... (orientation of the joystick to the right or left...)

Some isometric games enable you to move horizontally in 8 direction... such engine often don't manage the vertical axis (jump) and are therefore often 2D.

It is to notice that getting a player go in 8 direction also means that you need a larger set of sprites to display the additional movements, which could be heavy RAM-wise, added to an isometric engine.

    • 3D : Head over heels example.

You move on the horizontal plan with only 4 directions (X or Z axis), and you can jump (Y axis) to get some platformer gameplay.

You can't actually move in diagonals on the horizontal plane (X+Z movement)

    • 2D :Gauntlet 3 is some precursor of Diablo-like games.

The backgrounds elements are in "3D" (isometric oriented) and you can't use the Y (3D vertical) axis, therefore you can move on the horizontal plane (X/Z) in 8 directions.

This leads to a strange and odd sensation as the levels are designed in "diagonals" on screen but the player would instinctively move mostly in up/down/left/right 2D fashion (X+Z axis at the same time).

List of Amstrad "Isometric" and "Oblique" games :

you can visit CPCpowers to get a list thanks to the "3d iso" keyword.

Here are some limited and notable examples.

Distinction has to be done with symmetric obliques and asymmetric obliques.


SYMMETRIC

Isometric examples  :

(X and Z axis are oblique/diagonal on screen, Y axis is vertical on screen, diagonal ratio for the X/Z plane is 2x1)

  • Mode1 :
    • Batman
    • Head Over Heels
    • Alien Highway
    • H.A.T.E
    • Hero Quest
    • Marble Madness
    • Revolution


  • Mode0 :
    • Bactron
    • Crafton & Xunk (Get Dexter)
    • Cubert
    • Desqpotik Design


135x135x90

(a narrower isometric, rarely seen on Amstrad CPC, diagonal ratio for the X/Z plane is 1x1, mostly possible in Mode1 unless you use 1x2 Mode0 pixels)

    • Frontiers


Dimetric examples :

(an even more flattened isometric, diagonal ratio for the X/Z plane is 4x1)

    • Firetrap
    • Pro Skateboard Simulator
    • Zaxx
    • Black Land

various symmetric

Those can tend to look messy, especially in Mode0.

Diagonal ratio for the X/Z plane lead to lines looking less regular/straight.


    • Chicago 90 : the horizontal plane has a X10xY6 diagonal oblique, meaning the lines looks irregular, and and it looks slightly less flattened.
    • BAM : an amateurish game published in amstrad100% french mag. the ratio is X6xY2.
    • Binky : ratio = X12xY4 (mode0 : X=2+2+1+1pixels, Y = 4)


ASYMMETRIC

Horizontal Oblique examples :

(X Axis is horizontal on the screen, Y axis is vertical on the screen, Z axis is oblique/diagonal on the screen)

  • Mode1 :
    • PacMania


  • Mode0 :
    • Ball Breaker
    • Dragon's Lair
    • Paperboy


Various Oblique examples :

(X and Z axis are both oblique but with different angle = asymmetric...)

    • Crystal Castles (Diamond Plateaus In Space).

Pixel Art

Isometric is often used in classic Pixel Art and is emblematic of it as it was the best way to display good looking pseudo 3D FX on old computer 2D systems.

(in opposition to the modern full-real-3D).

Hence, PixelArt and Isometric are often synonymous nowadays with the younger ignorant generations.


Modern day isometric

Isometric 3D is still used in modern day, mostly to get an old-styled "Pixel Art" flavour.

  • Online MMORPG "Dofus" is notable for it's use of isometric 3D.
  • "Habbo Hotel" is also a well known modern example.


  • Baldur's Gate (and some spin-offs like Planescape Torment) featured perhaps the last great 2D engine ever produced for a Commercial super-production game : the Infinity Engine.

Links

Wikipedia's articles :

Graphical projection

Parallel projection

Isometric projection