This game engine was developed for creating adventure games in hybrid 2D
and 3D system. This system is using static cameras and makes possible to
use static rendered pictures as a background and polygonal characters and
objects. When the character is walking in the scene, cameras are switching,
so there is always best view to the main character. This system is for example
used in games like Grim Fandango, Monkey Island 4 or Alone in the Dark
series. Whole system is based on 3D studio MAX®, so all objects and characters
(using character studio bipeds) are imported from 3D studio MAX®. The engine
has its editor for 3D scenes and small development environment for compiling
its script language. The game POLDA 4 is based on this engine.
shots from Polda 4
You can download playable demo of Polda 4 here
(66 MB .exe)
Editor of 3D scenes
The scene is made from 8 different objects described below.
You can import a camera object right from 3D studio MAX®. So, if you make
a scene in 3D studio MAX and you render it, you do not need to set camera
for characters and 3D object again, but all you need to do is to import
the camera object from 3D studio MAX®. Every camera object has his transformation
matrix and background picture.
Every 3D object and character in the scene needs to be lighted. Light
has its position, range, colors (ambient, diffuse and specular) and attenuation.
Very nice effect is light track. You can animate the color, attenuation
and position of the light in time. This is useful for example, when the
character is near the burning fire and light is blinking on the character.
This is very nice and cheap effect.
These are just the rendered pictures in the scenes. It can be static pictures
in the BMP format and TGA format (alpha channels are supported, so you
can use transparent pictures). Besides this you can use 2D rendered animation.
Supported formats are FLC (256 colors animation) and my own animation
format FLA. There is a little utility for creating FLA animations from
BMP, TGA files sequence (BMP2FLA, TGA2FLA). Every 2D object has its position,
depth (every edge may have its own), and transparency.
You can make animations with 2D objects using 2D tracks. You can rotate
it, translate is and scale it. With this feature you can make some jiggling
ship for example. This is very simple and effective way to make 2D animations.
You can make animations with 2D objects using 2D tracks. You can change
the main color of 2D object. This is useful when there is some dynamically
changing light object (near the fire for example). You can simulate much
more interesting effect whit this feature.
You can import here any 3D object using 3D studio MAX®. You can group
more 3D object in one object.
You can import here any 3D animation using 3D studio MAX®. You can use
biped animations (biped must be defined in character section, see below)
or 3D object (3D object must be defined in 3D object section, see above).
Animations are then interpolated in engine, so they are very smooth.
You can import here any biped object using 3D studio MAX®. Every character
has its body object, face object (that's because the character can talk,
when it's for example doing some action, so the definitions must be separate)
and shadow object (it's a simple transparent circle under character).
Every object has much type of animations like walk, boring, picking, talking,
body talking (like gestures), which are used in the game.
polygon, steps objects
These three objects are defined with simple method, user is painting to
a screen like in any normal painting program and he's defining areas.
In walk it is an areas where it is allow to walk for characters, polygons
are for active mouse areas in the game and steps are the areas of sounds
which are played when some character steps into this area.
This is a little utility for creating game script. I have developed my
own script language for processing the game. There are about 50 commands
defined in this script language like CharacterGo, PlayAnim, CharSay and
so on. It is a message-based system. There are also many features in compiler
environment, like macros, utility for creating national version of the
game, debug and retail version of the script and so on.
3D studio MAX® importer
I have improved the ASE file importer from 3D studio MAX®. It can import
biped objects and its animations, it is faster and the imported result
file is much shorter, so the reading of this file is also very fast. You
need this importer, when you want to use my engine.
Particle systems (like fire, rain, snow and so on), fogs, free movements
of characters on Z-axis (going up and down), free camera (the camera can
follow the character), better shadows (real shadows based on characters
computing), level of detail (this would only be useful in big scenes with
free camera), binding of characters animation (this would be very useful
in more action games like Alone in the dark), gravity computing, inverse
kinematics computing, objects visibility computing. With all this features
it would be already very complex engine, which could be used for a game
such as Tomb raider or Max Payne.