The Taurus is my latest engine. Now mostly I want
it to be a learning experience for me. Taurus engine is realtime 3D
environmental engine which uses modern concepts of storing scene data and
outputs. Here are some charasteristics of Taurus:
- Volumetric fog (~50%)
- Dynamic light (~60%)
- Zone special effects (gravity, ambient light,)
- Characters and player model's support
- Skelet animation
- 3D sound
- Light flares
Planning features:
- Multi-environment integration (landscape+BSP+smth.)
- Multiplayer support
- Improve script system
- Improve physics
- AI (way-point + neuronal network)
- Realtime algorithmic texture engine
- Mirror/Portal surfaces
Engine uses BSP/PVS technics to create and manage
the world. In addition, world is divided into logical parts - Zones.
Each Zone has unique parameters, i.e. gravity, additional geometry culling,
individual sound environment, AI neuronal network connections, special geometry
environment (water, space, slime, lava, ), etc.
In future I plan to implement Shadow Volumes to add
more culling in worlds and improve total perfomance.
Worlds are detailed by splines. It's very useful
for creating round corners of walls, different pipes, other detailed and smooth
surfaces.
Worlds are textured using shader mechanism -
texture layer animation with capability of Vertex Deformation. Vertex Deformation
is very useful to create different effects such as waves, bulging effects, simple
rotation, scaling, and translation of objects.
Other important things are colored static and dynamic
lighting sources, volumetric fog (spherical and box type are now supported).
To add more realism, I plan to implement realtime
algorithmic texture engine, portals and mirror surfaces & particle system. In
addition it's possible to attach (using Zoning) to BSP world other types of
rendering engines (like landscape or space simulator) without loading and long-switching
between them.
All characters will be created using key-frame
skeletal animation. Skeletal animation gives much more realism to moving characters than simple key-frame animation.
Other part of my development is GUI (Graphic
User Interface). It will be used in the engine itself (game, HUD display, menus, all
dialogues between NPC and player, etc.), in the editor, inside all tools and
utils.
Current progress with GUI subsystem:
All basic and fundamental conceptions of it are almost complete.
At this moment GUI consists of:
Visible components
Window
Panel
Label
Button
Edit box (~50% complete)
Check box (~50% complete)
Radio button (and groups of them) (~50% complete)
Additional invisible components
Central
Desktop
Loader (from script resources)
Script parser
Component container
Visible components are drawn using the main engine's
shader manager. This means that all components are 3D, though currently they are all
located in one plane. In future I plan to enchance this conception and use the
same GUI components in true 3D space (game world). As a consequence of main
engine use, it's very easy to use shaders.
Tech info: Sound
At this moment sound characteristics are the following:
1). Known file formats: WAV PCM/ADPCM, MPEG 1 Layer 3. Sound egine supports all common bit rates, frequencies,
mono/stereo.