View on GitHub

FOnline Engine

Flexible cross-platform isometric game engine

Build Workflow

This document explains how to approach FOnline builds without hard-coding assumptions from one project into another.

Source paths inspected

Use the embedding project as the build root

FOnline is normally built through a game repository that embeds the engine as Engine/. Configure and build from the game root unless a focused engine-only command explicitly says otherwise.

Reasons:

Typical workflow

  1. Open the game repository root.
  2. Inspect available presets with CMake or the IDE integration used by the project.
  3. Configure the smallest preset that covers your change.
  4. Build the narrowest relevant target.
  5. Run the corresponding test, package, or launch target.
  6. Update documentation if the workflow or behavior changed.

Prerequisites

The exact list depends on host OS and target platform, but common tools include:

Prefer the embedding project’s documented setup because it may pin specific SDK/tool versions.

Where build logic lives

Validation by change type

Keep build docs maintainable

Do not copy a full preset list into engine docs. Presets change per game and per branch. Instead, explain ownership and link to the concrete project document that owns exact commands.

Validation checklist

  1. Confirm the command or preset belongs to the embedding project before documenting exact names in engine docs.
  2. For BuildTools changes, reconfigure the smallest affected preset and run the generated target that exercises the changed stage.
  3. For runtime changes, run focused tests first and then the project RunUnitTests target when practical.
  4. For package/platform changes, validate the owning package/debug doc in the same change.
  5. Update BuildToolsPipeline.md, Testing.md, or platform docs when the build workflow itself changes.