Skip to main content

Overview

This is the source documentation for the new Illarion game.

Getting Started

To run the Illarion game environment, you just need to run the respective docker containers (NYI). If you want to support the development of Illarion, you can read about the specific part you want to support by choosing it on the sidebar.

Architecture Overview

The Illarion game consists of different parts. Each is required for the game to run. Ideally, they run on different machines.

The Kotlin Game

The Kotlin Game is the core of Illarion. While using much logic of the old java client, everything is written from scratch. Code fragments from the old client were manually evaluated, adopted and put into place. Many unneeded layers of abstraction and inheritance were removed in this process. Using Kotlin, current versions of dependencies and a modern JVM as a base, a maintable, modern and performant game application is in creation.

The Game Server

The game server controls the Illarion Game. It connects with the database to persist player data. Additionally, it contains the game scripts, which can be altered during runtime, to allow changing the gameplay and game world in a fast pace. There is a need to reevaluate the server code, too, in the future.

The Asset Server

The asset server hosts the raw game assets (graphics, sound effects, books etc.). In this function it is a git repository. If changes are made to the repository this can trigger several Legacy Handler tools; tools that transform data structures of the old version of Illarion into new ones. Specifically these are: the MapConverter that combines the small map files, that are created by the map editor into a single map file made out of Kotlin data structures; The iAssetTransformer whichs corrects the naming scheme and color scheme of all game graphics and arranges them into different texture atlases. The Transformer itself will additionally create a data structure, that allows it to easily load the atlas data into the client game. It also converts the legacy table files into equivalent, more modern data structures. Any data created is version flagged and accessible by the Update Service (NYI). This http service allows game server and client game to request the most current asset data. By using the products of the legacy handles, the games dont need to transform data themselves, but can just using the precompiled data.

The Website

The website of the game offering lore, rule advice and a possibility to download the game. It also hosts the forum of the game, if required.