View on GitHub

FOnline Engine

Flexible cross-platform isometric game engine

Engine Documentation Expansion Plan

For Hermes: Use this plan as the roadmap for iterative documentation work. Each documentation slice must start with repository research, cite exact source paths, update the owning Engine/Docs/*.md file, and finish with link/status verification. Do not commit or push unless Anton asks.

Goal: Build a complete, navigable, source-grounded documentation set for the FOnline engine that explains how the engine is structured, embedded, built, debugged, extended, and validated.

Architecture: Documentation is organized as a layered map: landing pages route readers to focused topic docs; each topic doc owns one engine subsystem or workflow; source-tree READMEs stay brief and link to deeper Docs/ pages. Every new doc is written from repository evidence, not memory or guesses.

Tech Stack: Markdown, FOnline C++20 engine, CMake/BuildTools, AngelScript integration, platform workflows for native/Web/Android, git submodule embedding model.


Documentation principles

Current baseline

Existing docs:

High-value source areas to document:


Phase 1 — Documentation map and research inventory

Task 1.1: Create the documentation backlog index

Objective: Add a central page that tracks planned engine documentation topics and their research status.

Files:

Research:

Write:

Verify:

Task 1.2: Create a reusable research template

Objective: Standardize how each future doc slice is researched.

Files:

Research:

Write:

Verify:


Phase 2 — Architecture overview docs

Task 2.1: Document engine architecture overview

Objective: Explain the major engine layers and how data flows between them.

Files:

Research:

Write:

Verify:

Task 2.2: Document source tree guide

Objective: Expand source navigation beyond the short Source/README.md.

Files:

Research:

Write:

Verify:

Task 2.3: Document application entry points

Objective: Explain the binaries/apps the engine builds and what each entry point does.

Files:

Research:

Write:

Verify:


Phase 3 — BuildTools and generation docs

Task 3.1: Document BuildTools CMake pipeline

Objective: Explain CMake stages and how the project build is assembled.

Files:

Research:

Write:

Verify:

Task 3.2: Document baking/resource pipeline

Objective: Explain how source assets and configs become runtime resources.

Files:

Research:

Write:

Verify:

Task 3.3: Document generated API and metadata

Objective: Explain generated public/script API files and metadata registration.

Files:

Research:

Write:

Verify:


Phase 4 — Runtime model docs

Task 4.1: Document entity/property/prototype model

Objective: Explain the core runtime data model shared by client and server.

Files:

Research:

Write:

Verify:

Task 4.2: Document map, movement, and geometry systems

Objective: Explain reusable map/hex/pathfinding mechanics.

Files:

Research:

Write:

Verify:

Task 4.3: Document networking and protocol basics

Objective: Explain client/server networking layers and command serialization.

Files:

Research:

Write:

Verify:

Task 4.4: Document persistence and database backends

Objective: Explain server-side persistence options and data ownership.

Files:

Research:

Write:

Verify:


Phase 5 — Client, rendering, frontend docs

Task 5.1: Document client runtime overview — completed

Objective: Explain major client systems without going into every renderer detail.

Files:

Research:

Write:

Verify:

Task 5.2: Document frontend/application/rendering abstraction — completed

Objective: Explain how platform application layers and rendering backends are selected.

Files:

Research:

Write:

Verify:


Phase 6 — Server docs

Task 6.1: Document server runtime overview — completed

Objective: Explain server lifecycle, managers, entities, networking, and scripts.

Files:

Research:

Write:

Verify:

Task 6.2: Document updater backend integration — completed

Objective: Ensure updater docs connect cleanly to server runtime docs.

Files:

Research:

Write:

Verify:


Phase 7 — Scripting docs

Task 7.1: Document scripting system overview

Status: completed — Docs/Scripting.md now documents ScriptSystem, AngelScript backend lifecycle, attributes, entity/remote-call bridges, native exports, core scripts, Mono/native roots, tests, and validation.

Objective: Explain how AngelScript/Native/Mono integration is structured.

Files:

Research:

Write:

Verify:

Task 7.2: Document script method ownership map

Status: completed — Docs/ScriptMethodsMap.md now maps all current Source/Scripting/*ScriptMethods.cpp export groups and counts by side/receiver.

Objective: Make script method files discoverable by runtime side and entity type.

Files:

Research:

Write:

Verify:


Phase 8 — Tools docs

Task 8.1: Document tools overview

Status: completed — Docs/Tools.md now maps tool application entry points, baker processors, mapper/editor/asset/particle tools, tests, change routing, and validation.

Objective: Explain engine tools and which docs own their workflows.

Files:

Research:

Write:

Verify:

Task 8.2: Expand mapper documentation from source

Status: completed — Docs/MapperTools.md now starts with mapper app lifecycle, MapperEngine source ownership, key UI/map lifecycle methods, and extension boundaries before the project-specific headless render workflows.

Objective: Improve mapper docs with source-grounded lifecycle and extension points.

Files:

Research:

Write:

Verify:


Phase 9 — Essentials and infrastructure docs

Task 9.1: Document Essentials layer

Objective: Explain low-level primitives shared across the engine.

Files:

Research:

Write:

Verify:

Task 9.2: Document configuration and filesystem/data sources

Objective: Explain config loading and abstract data access.

Files:

Research:

Write:

Verify:


Phase 10 — Testing and maintenance docs

Task 10.1: Expand test suite documentation

Objective: Turn Source/Tests/README.md into a useful test map and connect it to docs.

Files:

Research:

Write:

Verify:

Task 10.2: Document documentation maintenance workflow

Objective: Define how we keep engine docs fresh while continuing repo research.

Files:

Research:

Write:

Verify:


Standard per-task execution checklist

For every task above:

  1. Read the owning existing docs.
  2. Inspect listed source files and adjacent tests.
  3. Search for names/classes/functions referenced in the topic.
  4. Draft or update the doc with exact source-path references.
  5. Update Docs/README.md and related cross-links.
  6. Run markdown link check over README.md, AGENTS.md, Docs/**/*.md, Source/README.md, Source/Tests/README.md, and BuildTools/README.md.
  7. Run git diff --check.
  8. Run git status --short and confirm no accidental staging.
  9. Report changed files and remaining questions.

Suggested order for the next work session

  1. Docs/Essentials.md
  2. Docs/ConfigurationAndDataSources.md
  3. Docs/Testing.md
  4. Docs/DocumentationMaintenance.md
  5. Docs/ConfigurationAndDataSources.md
  6. Docs/Testing.md
  7. Docs/DocumentationMaintenance.md

This order documents scripting/tooling next, then low-level infrastructure, tests, and maintenance.