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

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