View on GitHub

FOnline Engine

Flexible cross-platform isometric game engine

FOnline Engine

Engine currently in completely unusable state due to heavy refactoring.

License GitHub Codecov Codacy Commit

Table of Content

Features

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

Usage

Engine doesn’t targeting to use directly but by as part (submodule) to your own project (git repo).
Repository contains source code of engine, third-party sources and build tools for composing all this and your stuff into final platform-specific bundles.
You may work on your game either using shell scripts manually or custom Visual Studio Code extension for simplify these things.
Shell scripts targeted for work under (at least) Windows 10 / Ubuntu-22.04 / macOS 12.
You build your game fully from source, there is no prebuilt binaries, full control over the process.

Workflow

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

Public API

Documents related to public API:

Also you must understand that scripting api automaticly generated for each project individually and api described in Scripting API is only basic.
See example of extended scripting api at FOnline TLA Scripting API.

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).
More about extension usage you can find in Tutorial document.

Setup

General steps:

Reference project:

Package dependencies

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

Also our build scripts download and install following packages:

List of tools for Windows operating system (some optional):

List of tools for Mac operating system:

Other stuff used in build pipeline:

Statically linked packages

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

Footprint

Despite on many third-party libraries that consumed by the whole engine one of the main goal is small final footprint of client/singleplayer output.
Aim to shift most of things of loading specific image/model/sound/ect file formats at pre publishing steps and later use intermediate binary representation for loading resources in runtime as fast as possible and without additional library dependencies.
This process in terms of fonline engine called Bakering.
Also as you can see all third-party dependencies linked statically to final executable (except one - proprietary libfbxsdk.dll/so for Baker but the last one is not target for small footprint) and this frees up end user from installing additional runtime to play in your game.
Todo: write about memory footprint
Todo: write about network footprint

Tutorial

Please follow these instructions to understand how to use this engine by design:

Work in progress

Roadmap

First release version:

Futher releases: (in order of priority)

Roadmap for Visual Studio Code extension

Todo list (generated from source code)

Repository structure

Frequently Asked Questions

Following document contains some issues thats give additional information about this engine:

About