Cheb's Home Page
Orphus system

Cheb's Home Page

Cheb's Game Engine Quake II facelift
Штошник на ушах



Project summary

My master plan

Primary goal
To create the game I want (a hybrid of 4X and RPG with an open, self-evolving world)

There are no tools that would allow me to achieve my goal in a sane amount of time. No free engine meets my needs, no a 3d modeling program I feel comfortable with. MilkShape is too dumb, Blender is too complex.

Intermediary goal
To create an engine/toolset that would allow me to reach my goal.

Secondary intermediary goal
To create a simple game (a clone of OpenArena and AoS) to try my engine/toolset on a real task and to gather experience.

Experience in the field
1. A working 3d FPS for MS-DOS (died at the stage of technical demo)
2. Modeling and animation for jDoom (cacodemons, imps, et cetera).
3. Writing the particle effect scripts for jDoom (everything was lost due to rehaul of the scripting engine)
4. Creating MODs for Neverwinter Nights 1 and Morrowing, with, uh, intimate knowledge of their scripting engines.

Key features

(Each feature status is displayed as an icon)

GNU GPL'd code (engine as whole under full GPL, some parts under modified LGPL).

The "recompiling on the fly" technology allows to replace most of the code without having to restart the engine and/or reload the resources. It's much faster and simpler than using the scripting languages. It's much more flexible than the "data-driven engine" approach. Heavily based on the built-in ODBMS I spend two years building just for this cause.

Full persistency. Ability to instantly save the session any moment, to continue from the same moment the next time Chentrah is launched. This allows to save the session even when user chooses to shutdown the operating system without closing Chentrah first. Nothing short SIGKILL could prevent the session saving.

Rapid game saving. Estimated time is 300 milliseconds on a machine that meets the minimum system requirements.

Absolute dependence on Free Pascal (Chentrah cannot be compiled in Delphi or any other Pascal compiler)

Cross-platform: supports Windows from XP to 10, Wine, Linux for x86, x86-64 and ARM.

Epic physics performance based on a trick with slowly ticking movement that is extrapolated and recalculated if objects interact.

Persistent, destructible, hierarchically procedurally generated world with a sane structure (screw Perlin noise!)

Hybrid voxel system consisting of both cheap Minecraft-style chunks (trismoxels) and arbitrary shaped objects (vehicles, tree trunks, buildings, etc. consist of tetroxels. Tetrameshes have a simplified physics while trismoxels can only fall straight down. Also, lightning model is decidedly unrealistic.

Support for floods, with areas of stable water flow having zero performance impact. Also, sea with waves.

Network physics potentially extendable into a MMO. A combination of authoritary lockstep-in-the-past and layered stack of partial world layers for lag compensation.

Support for epic scale destruction in multiplayer for a zero cost for the network bandwidth.

Collisions using bounding spheres for entities and trismoxels/tetroxels for the world. When necessary, entities are further subdivided to smaller spheres attached to their skeleton. No ragdoll physics, but there is a mechanism for aligning the dead bodies on an uneven floor.

AI using three-level pathfinding system. Top level consists of the game world areas. Middle level is a graph with world brushes as nodes. The accessibility table is filled on the fly by monsters as they move along the world. The low level is finding path using A* from the specified point to a specified brush, or between two adjacent brushes. Each kind of monsters has its own independent passability table.