From AtomicTorchWiki
Jump to: navigation, search

Renkei Engine by AtomicTorch Studio

Renkei Engine - Renkei Engine is a powerful game engine designed for a rapid game development. It was developed in-house for our own projects, with the idea of reducing any interruptions that hinder the process of creation. Therefore, the main feature of the engine is live/hot-reloading of any game code and assets (textures, models, audio, C# scripts, XAML UI markup, etc.) without recompilation or other interruptions.

The engine is geared towards multiplayer/massively multiplayer cross-platform games and is powered by the latest versions of .NET Framework on Windows and Mono on other platforms. Client part of Renkei Engine utilizes MonoGame framework 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 title of the engine is based on Japanese words 連携 renkei (cooperation, coordination, link) and 遠景 enkei (perspective, vista).

Features Highlights

Below is a list of the features that make the engine stand out from the most of software solutions available to independant developers. Bear in mind that those are only a main portion of the features that we think are important, and that the Renkei Engine has even more to offer and can be tailored for various development needs.

  • Live editing: No recompilation or asset reloading needed during development/modding. You can edit and debug the code and add or replace assets live - the engine will detect the file change and immediately reload/recompile it (C# scripts, textures, models, audio, XAML UI markup, etc.). You don't even need to stop your debug session!
  • 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 single-player game. The engine will take care of all the difficult parts.
  • Data-driven vector-based UI: UI is implemented by using NoesisGUI, which is a cross-platform vector-based UI library utilizing XAML markup to declaratively define UI elements and their style. It uses C# language for programming and promotes ultimately effective MVVM-pattern for data binding. It's evolution of UI technology used at WPF/UWP-applications, but with cross-platform support and specially tailored for video games. You could use variety of tools for live-editing and previewing XAML like Microsoft Visual Studio 2015 and Blend.
  • Modding: Modding is easier. Modding is fun. Both, the game core data as well as mods are treated the same by the 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 or folders 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 (no external tools required) into the game engine itself which aids in debugging of the mods or the core game.
  • Graceful degradation: How often do you see the game crashing during development or modding? And then long and frustrating recovery process, when you restarting the game, loading latest game world save, repeating your actions... It wastes your time and kills productivity, it literally ejects you from the creative flow. With live-editing philosophy in mind, Renkei Engine lets you avoid all these issues. It gracefully handles all situations like an unhandled exceptions in scripting or missing assets. In the worst case scenario the engine will simply suspend the game cycle and report about the problem, clearly indicating about the faulty components and directing you right to the specific source code line if needed (with Visual Studio). After you fix the problem with the code or another issue - simply switch back to the game. If everything is fine it will automatically resume the game cycle. And you also can revert to the previous game data states by using hotkeys.
  • Custom VS2015 Project System: To simplify development and modding even more, we implemented a custom project system for Microsoft Visual Studio 2015 (free Community edition is supported). It is not required for development/modding, but provides several important features. There is a set of useful templates for C# scripts and UI assets. It allows you to attach to the game process by simply pressing F5 and never detach from it (scripts/assets live reloading feature!). It will automatically add/remove files to/from the solution/project tree (no need to manually include files). For development of client-server games you could use the combined client-server executable, so it will be just a single process and you can simultaneously develop/debug code for client and server in one Visual Studio instance.

If you have any questions regarding the engine or its use, feel free to contact us via forums or following e-mails: