RENKEI Engine

From AtomicTorchWiki
Revision as of 10:19, 17 February 2016 by Atomic-admin (talk | contribs)


This article is a draft and may contain incomplete or even incorrect information. You can help by expanding it.

Renkei Engine

Renkei Engine - Enkei Engine is a powerful multipurpose game engine designed for rapid game development. Renkei Engine is developed in-house for our own projects to be a powerful tool for client-server game development geared towards multiplayer/massively multiplayer cross-platform games.

It is powered by the latest versions of .NET Framework on Windows and Mono on other platforms.

Client part of Renkei Engine utilizes MonoGame game engine for the easier development of 2D games. But it could be replaced with any other low level library or an engine that supports the latest version of .NET/Mono (not Unity, unfortunately).

The primary philosophy behind Renkei Engine is to focus the development on implementing the actual gameplay code with C# scripting while minimizing any interruptions during the development process. Therefore the engine is designed to allow live/hot-reloading of any game code and assets (textures, models, audio, C# scripts, XAML UI markup, etc.) without recompilation or other interruption which makes it the main feature of the engine.

The title of the engine is based on japanese words 連携 renkei (cooperation, coordination, link) and 遠景 enkei (perspective, vista).

Features

  • Live editing: No recompilation or asset reloading needed during development. You can edit and debug the code live - the engine will immediately display the changes to the C# code or assets (textures, models, audio, C# scripts, XAML UI markup, etc.).
  • Networking: Renkei Engine implementation of client-server intercommunication provides the best performance and lowest throughput and at the same time it's very easy to develop and configure. The game engine utilizes Reliable UDP implementation to avoid traffic hiccups and minimize network lags. It also allows to prioritize the most-important commands with easy-to-use declarative syntax.
  • Server-based architecture: in case of multiplayer games the authoritative game server architecture makes most of the usual forms of client-side cheating impossible.
  • United data space: Renkei engine blurs the line between Client and Server. Networking was always considered as one of the hardest part of game development requiring enormous amount of effort to develop and debug. We addressed this in many ways, some of which include: smart auto-replication of synchronized objects, easy-to-use bulletproof RPC, unified development console presenting Client and Server logs side-by-side with clear sequence of events and many other things. Effectively it means that the development of multiplayer game isn't much more difficult than developing a singleplayer game. The engine will take care of all the difficult parts.
  • Data-driven UI: UI is implemented by using NoesisGUI technology (http://noesisengine.com), which is a cross-platform WPF-like solution utilizing XAML markup to declaratively define UI elements and their style. It uses C# language for programming and ultimately effective MVVM-pattern for data binding.
  • Modding: Modding is easier. Modding is fun. Both, the game core data as well as mods are treated the same by engine. All gameplay-related C# code and assets (including UI) are stored in the "Core.cpk" or "whatever_mod_name.mpk" files which are simple zip archives or folders on the hard drive. The game could load any number of such archives expanding the available game data and logic. Powerful asset management and overriding is also possible. This allows for extremely easy mod creation, including total conversions. Modding tools are also integrated into the game engine itself which aids in debugging of the mods or the core game.