Renkei Engine

From AtomicTorchWiki
Jump to: navigation, search

Renkei Engine by AtomicTorch Studio

Renkei Engine - Renkei 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/CoreCLR on other platforms. The 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/CoreCLR (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 interruptions.

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 we think are the most important and differentiate Renkei Engine from other software tools currently available. However this list is in no way exhaustive. Hopefully we can provide a more detailed documentation and description at a later date.

  • 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. Meanwhile, client can use all the required lag-prediction techniques to keep gameplay smooth and responsive.
  • Transparent communication: Renkei Engine blurs the line between the client and server sides. 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 (with async-await support on both sides), unified console presenting client and server logs side-by-side with clear sequence of events. 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 2017 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 VS2017 Project System: To simplify development and modding even more, we implemented a custom project system for Microsoft Visual Studio 2017 (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.
  • Multiplatform support: Currently the engine can be built for Windows, Mac and Linux, but at later stage we might include mobile and console support as well.

Games

CryoFallLogo.png

CryoFall - the first game made with Renkei engine (development blog).


Other

If you have any questions regarding the engine or if you are interested in licensing it - please feel free to contact us via the forums or our contact form.