Work in progress

View the Project on GitHub cvet/fonline

FOnline Engine

Engine currently in unusable state due to heavy refactoring.
Estimated finishing date is middle of this year.

License GitHub Codacy Commit

Table of Content


Important note: Not all from descripted above features are already implemented, for additional information look at ‘Work in progress’ section below.


Simplest way is:

And two videos to who don’t like to google:
FOnline History Last Frontier


Repository contains source code of engine, third-party sources and build tools for composing all this stuff into final platform-specific bundles.
You may work on your game using shell scripts manually but project hosts own extension for Visual Studio Code for simplify these things.
Shell scripts targeted for work under Windows 10 within WSL2 (with Ubuntu-18.04, other distros not tested but should work).
Almost all will be work under native Linuxes but some of scripts (like win32) must be run only from WSL2 shell because runs Windows binaries.
So main point of all of this that you build your game fully from source, there is no prebuilt binaries, full control over the process.


As described above all what you need to build and package your game in one place for different platforms is WSL2.
You may do it in separate environments (like build Windows binaries in your IDE, build macOS/iOS binraies on macOS and rest on native Linux distro) but better do it in one place.

Process of creating your game in two words looks like this:

There are couple of shell scripts that help us to do it:

Scripts can accept additional arguments ( for example accept platform for build for) and this information additionaly described in BuildTools/

Public API

Todo: write about versioning SemVer and what public API included to itself


Clone with git this repository.
Run ./setup in the repository root in your PowerShell.
This script interactively check your system for all requirements and helps to generate new project.
Todo: Provide additional info for non Windows 10 users

Windows Subsystem for Linux

Main point of WSL2 for us that we can run Windows programs from Linux.
That feature allows unify almost all our build scripts into one environment.
Currently WSL2 available only on Windows Insider distros but in time when engine became from Unusable to Usable state it will be available for all.

Visual Studio Code

Engine hosts own Visual Studio Code extension for simplify work with engine stuff.
In editor go to the Extensions tab and then find and install ‘FOnline’ extension (it’s already available in marketplace).
Extension activates automatically when editor finds fonline*.json at workspace root.
Todo: write about extension features and usage

Package dependencies

Following Linux packages will help us build our game for target platforms.
These packages will automatically installed during workspace preparing (i.e.

Also our build scripts download and install following packages:

And setup.ps1 might install following Windows packages for you (some optional):

Statically linked packages

These packages included to this repository, will compile and link statically to our binaries.
They are located in ThirdParty directory.

Work in progress

Bugs, performance cases and feature requests you can disscuss at Issues page.


Roadmap for Visual Studio Code extension

Code refactoring plans

Todo list (generated from source code)

Repository structure

Help and support