|
Submitted by , posted on 10 January 2002
|
|
Image Description, by
On July 18th I made my first publication of my project called 'Racer' (okay, I
haven't found a good name, yet:-).
In March 2000 I decided to write a real 3d computer game, which has grown to a
large project.
The most important program of the project is Worldbuild (images top left and
bottom right), the 3d world editor. The workspace is separated into four views:
three 2d views (front, top, side) and one 3d view.
The 2d views are used for the basic operations: The user inserts primitives and
modifies them by moving, rotating, cutting etc. (some of these can be made in 3d
as well). Objects like lights and lens flares can be created here, too.
The 3d view renders the scene. All lights and effects (e.g. mirrors) can be
directly rendered in real-time. The user can 'fly' through his level with a few
mouse movements. Several additional view modes are available for better
performance: Solid / wire frame mode, depth complexity mode (to find hidden
superfluous polygons) and geo mode (to view the scene geometry). Almost all
texturing operations are done in 3d as well: Complex environments can be quickly
texturized by using the mouse and some helper functions (align texture,
interpolate etc.).
An interface window supports setting up events (e.g. for opening doors),
skyboxes (3d backgrounds) and fogs, which can be previewed in 3d, too. An
internal compiler converts the map file into a more effective format, which
contains pre-calculated oc-tree nodes. Moreover maps can be compiled as models.
During the development I tried to make Worldbuild as user-friendly as possible.
All actions can be done by using the mouse or with a few keys. Since the start
of the project I've worked 22 months on this program, not just because three
totally different DirectX versions have been published during that time.
Currently Worldbuild runs with DirectX8.1.
The 'Racer' (images top right and bottom left) is the actual game, which I
started on June 22nd. In future it will be a racing game where you can shoot
your opponents. It currently just loads the compiled maps of Worldbuild and
renders them. Within five months I had to write a complete new engine because
Worldbuild doesn't support effective object culling. Racer uses a combination of
an oc-tree and a beam-tree technique.
The engine is written on a high abstract level (using OOP), which can
administrate more games and event systems at once. I've just finished the main
part of it in order to start with the real game elements. The following features
are currently supported:
Lens flares (flares are only visible if obstacles don't block the 'flare ray').
Real mirrors.
Models (created with Worldbuild), which can possess their own lens flares,
mirrors and lights, which influence the environment.
Skyboxes (3d backgrounds), which can be changed in real-time.
Fog, which can be changed in real-time as well.
Animated textures.
Different alpha blending states.
Complex event system using external classes (e.g. "CMoveObject", "CCameraFly"
etc.).
The light system - I'm sorry :) - isn't based on light maps but on vertex
lighting. So I'm not able to render these cool shadows of the famous games, but
I can do nice light animations.
In order to get freedom over the texture handling I developed my own texture
format. A special program (Texture container) allows me to handle texture lists,
which can be animated. Additionally alpha channels (for transparency) can be
added easily.
Another goodie of the project is an online updater (Phalanx Updater), which was
designed to contribute the newest versions of the programs to (fictional:-) team
members. Yes, originally the game development was planned in a group of friends,
which promised me heaven but did nothing ;-) I learned the hard way that people
never really work without being paid :-(
The current Racer demo can be downloaded from my homepage
(www.phalanx-software.de.vu) in the Files-Section. It's just a graphic demo, I'm
gonna start with the controls in January. I'm sorry but the dominating part of
the website is in German :-)
I'm now 18 years old and doing my A-Levels in May. I got the opportunity by
school to get a higher mark if I would present my project. However, please don't
think that I spend about two years of my life dedicated to schoolwork!!! No, the
idea for that game is a dream of my early youth :-)
Malte Weiß
|
|