Difference between revisions of "Isometric 3D"
(→Dimetric examples :) |
(→List of Amstrad "Isometric" and "Oblique" games :) |
||
Line 186: | Line 186: | ||
===='''Isometric examples :'''==== | ===='''Isometric examples :'''==== | ||
− | (X and Z axis are oblique/diagonal on screen, Y axis is vertical on screen, ratio is 2x1) | + | (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 :''' | *'''Mode1 :''' | ||
Line 218: | Line 218: | ||
===='''135x135x90 Oblique'''==== | ===='''135x135x90 Oblique'''==== | ||
− | (a narrower isometric, rarely seen on Amstrad CPC, ratio | + | (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 | **Frontiers | ||
Line 237: | Line 237: | ||
===various symetric obliques=== | ===various symetric obliques=== | ||
− | + | 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. | **Chicago 90 : the horizontal plane has a X10xY6 diagonal oblique, meaning the lines looks irregular, and and it looks slightly less flattened. | ||
Line 272: | Line 275: | ||
(X and Z axis are both oblique but with different angle = asymetric...) | (X and Z axis are both oblique but with different angle = asymetric...) | ||
− | **Crystal Castles (Diamond Plateaus In Space) | + | **Crystal Castles (Diamond Plateaus In Space). |
==Pixel Art== | ==Pixel Art== |
Revision as of 12:41, 3 October 2011
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 technics 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 parallelprojections than isometric.
Pac-Mania for exemple 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.
Contents
Types of pseudo 3D
The global term is parallel projection.
Used parellel 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.
- Isometric projection : Head Over Heels is the most well known.
- 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.
- Oblique 135°/135°/92° projection :It is some sort of Mode1 isometric. In this, the ratio for the diagonal grid is 1 for 1. 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)).
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.
Heroquest 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 "emptyfloor" or the "Mouse cursor"...
A clever use of the transparency/mask ink on the Floor/Wall tiles could enable to display this backgriound 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 aWater 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 prefered 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 scrolings and perhaps a vertical scrolling too.
Not the easiest to get.
Yet Pac-Mania is a notable exemple 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 additionnal 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 symetric obliques and asymetric obliques.
SYMETRIC
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 Oblique
(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 flatened isometric, diagonal ratio for the X/Z plane is 4x1)
- Firetrap
- Pro Skateboard Simulator
- Zaxx
- Black Land
various symetric obliques
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)
ASYMETRIC
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 = asymetric...)
- 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 spinoffs 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 :