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ß



    [prev]
    Image of the Day Gallery
    www.flipcode.com

    [next]


     


    Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
    Please read our Terms, Conditions, and Privacy information.