Project Overview
Workspace is a large C++ 3D workspace and game platform developed over roughly six months, approaching 200k lines of code. It combines an in-engine editor, chunk-based world format, object authoring pipeline, runtime gameplay mode, combat systems, UI panels, and development tooling.
The project started as a 3D text and file-management workspace and expanded into authored 3D environments, primitive-shape-based world content, and a game-oriented runtime. Rather than treating editing and gameplay as separate applications, the project keeps them tightly connected: a workspace can function as a level, a "world", a 3d content organizer, or a broader sandbox depending on how much logic and content is layered into it.
Project Highlights
- 3D chunk-based workspace and game platform built around one shared environment for editing and play.
- Originated as a 3D text and file-management workspace, and still retains that functionality.
- Built-in hot-swapping between Edit and Game modes, plus
-gamerestricted mode for play-only runtime. - Chunk-based map format with streaming, async loading, chunk-local persistence, and chunk geometry rebuilds.
- Extensive in-engine editor with flying 3D navigation, cursor/raycast selection, and direct object placement.
- Strong transform workflow including grouped selection, move, rotate, standard scale, anchored scale, cloning, flipping, and import between workspaces.
- High-speed authoring tools such as GeomPaint, ObjPaint, room-generation helpers, and scripting support.
- Shared object system covering geometry, props, lights, textboxes, triggers, pickups, upgrades, and gameplay-support objects.
- Textbox system with editable 3D text, file-backed content,
file:/dir:commands, multi-page rendering, and alignment support. - Broad gameplay-object layer including effect zones, hazard objects, orb shooters, portals, doors, labels, spawners, and timer objects.
- Run-based game loop where upgrades and weapon growth build over a run, and death at 0 lives resets progress.
- Combat built around weapons, cooldowns, upgrades, and multi-resource management across ammo, mana, and fuel.
- Vertical combat supported by jetpack and grappling movement, with upgrades enabling more persistent airborne play.
- Enemy system with configurable movement modes, available weapon behaviors, authored definitions, and enemy-editor support.
- Large UI system with many dedicated panels for editing, gameplay HUD, debugging, tuning, sound assignment, progression, and settings.
- Supporting tools built specifically for this project include two texture generators and one audio generator.
Core Workflow
The project is built around a single executable that supports both authoring and runtime use. Edit mode handles world-building and object manipulation, while game mode runs the same workspace as a playable environment, so authored content can be adjusted and immediately tested without leaving the session.
There is also a more restricted runtime path. Launching with -game enters a game-only mode that plays the specified workspace, or the default one, without exposing the edit controls. This gives the project two operating styles: a development-oriented workspace flow, and a cleaner play-focused runtime.
World Structure
A workspace is a persistent map or world made from chunk data, object placement, and authored structure. The project has several workspaces, with some used as gameplay worlds and others used for testing or focused development.
Worlds are divided into 3D chunks so large spaces can be loaded, rendered, edited, and saved in pieces. The chunk system supports streaming around the active position, async loading, localized geometry rebuilds, and chunk-level persistence without requiring the whole world to stay resident at once.
Most authored content uses a shared object model. Geometry, props, lights, textboxes, triggers, markers, pickups, upgrades, and gameplay-support objects all move through the same general placement and editing pipeline.
Persistent objects define the map and its gameplay hooks, while runtime entities such as enemies are managed during play. This keeps authored world content editable while letting gameplay systems handle active simulation separately.
Contents
- Editing covers editing workflow, tools, commands, and scripting.
- Chunks covers chunk format, streaming, loading, and persistence.
- Objects covers major authored object types and gameplay objects.
- Combat covers gameplay loop, combat, upgrades, enemies, and encounters.
- Interface Panels covers UI panels for editing, gameplay, tuning, and debugging.