A downloadable Game Engine for Windows

   ██████╗██╗   ██╗██████╗ ███████╗██████╗ ██╗ ██╗ ██████╗  █████╗ 
  ██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██║ ██║██╔════╝ ██╔══██╗
  ██║      ╚████╔╝ ██████╔╝█████╗  ██████╔╝██║ ██║██║  ███╗███████║
  ██║       ╚██╔╝  ██╔══██╗██╔══╝  ██╔══██╗██║ ██║██║   ██║██╔══██║
  ╚██████╗   ██║   ██████╔╝███████╗██║  ██║╚████╔╝╚██████╔╝██║  ██║
   ╚═════╝   ╚═╝   ╚═════╝ ╚══════╝╚═╝  ╚═╝ ╚═══╝  ╚═════╝ ╚═╝  ╚═╝
              32-BIT DOS 3D ENGINE  //  MODE X PIPELINE

A real-mode inspired 3D engine built for MS-DOS

> Software-rendered, fixed-point, VGA Mode X pipeline
> Full build with editor + complete reference docs


SYSTEM OVERVIEW

CyberVGA is a from-scratch 32-bit DOS 3D engine targeting late MS-DOS hardware constraints.
No GPU. No floating-point in hot paths. No modern graphics APIs.

Rendering is handled entirely in software using:

  • VGA Mode X (320×240 planar memory)
  • Pure Q16.16 fixed-point math
  • Custom assembly-optimized rasterization pipeline (C89 + NASM)

This is not a retro-styled engine.
This is a hardware-constrained engine.

INCLUDED COMPONENTS

  • Runtime engine (VIEWER.EXE)
  • CyberEdit — fully integrated world editor (CEDIT.EXE)
  • Complete internal reference documentation
  • Custom asset pipeline + Blender CMS exporter
  • Playable demo worlds

CyberEdit runs inside the exact same rendering environment as the game.
Everything you author is visible instantly using the production renderer.

CORE FEATURES

RENDERING

  • Portal/cell visibility with recursive traversal (depth 8)
  • Textured triangle pipeline with per-vertex Gouraud shading
  • 32-level linear distance fog via shade tables
  • Dynamic time-of-day sky (gradient + 48 stars + orbiting sun/moon)
  • Triple-buffered Mode X page flipping + planar span rendering

WORLD & ENTITIES

  • Convex cell format (CWR) — up to 128 cells, 16 verts/faces each
  • Heightmaps, per-face UV scaling, bidirectional portals
  • World meshes (CMS), billboards, particle emitters
  • Entity system: 32 runtime slots, 64 authored spawn points
  • Component flags (mesh / sound / light / physics / gravity / think / animation)
  • Sphere-vs-cell and sphere-vs-sphere collision

AUDIO & TOOLS

  • Sound Blaster 8-source spatial mixer + MPU-401 MIDI
  • Full in-engine editor with Play Mode (F12)
  • Undo/redo, snap grid, collision & portal debug overlays

TECHNICAL SPECIFICATION

Language: C89 (DJGPP) + NASM
Memory Model: 32-bit protected mode (DPMI)
Renderer: Software (CPU-based)
Math: Fixed-point only (Q16.16) in all hot paths
Target: 486 / early Pentium class systems (or any DPMI host)

Performance-critical paths use reciprocal lookup tables and assembly routines.
All limits are compile-time constants (see CENGINE.TXT).

REFERENCE DOCUMENTATION

Just released with this update:

  • CENGINE.TXT — full engine architecture, systems overview, Q16.16 math, rendering pipeline, world format (CWR), limits, and implementation notes
  • CEDIT.TXT — complete CyberEdit user manual with viewport layout, every key binding, cell/portal editing, entity properties, Play Mode, and workflow

These are the exact internal documents I use while developing. Now public in the download (DOC folder).

DESIGN PHILOSOPHY

CyberVGA treats hardware limitations as design inputs.
Every system is built with explicit memory awareness and explicit arithmetic cost.
Minimal abstraction. Maximum transparency.

The goal is not to simulate the past, but to operate within its constraints deliberately.

LICENSING

This project is proprietary.
Source code and assets are not publicly available.

FOLLOW DEVELOPMENT

If you are into low-level graphics programming, DOS rendering pipelines, software rasterization, or fixed-point engine design, follow the project and check the devlogs for updates.

P.S. Still 100 % C89 + NASM, no floating-point in the hot path, expected to run on real 486 / Pentium hardware. The reference manuals are your map if you want to hack on it. Happy coding!

Download

Download
CVGA.7z 17 MB

Install instructions

INSTALLATION - WINDOWS PACKAGE

  1. Download the .7z archive
  2. Extract contents
  3. Run: RUNVIEWER.BAT → start runtime + demo (uses ASSTS\WORLD\WORLD.CWR) RUNCEDIT.BAT → start world editor

DOSBox-X is included. No configuration required.

CONTROLS WASD / Mouse — movement & look F12 — toggle Play Mode (editor) ESC — exit

Development log