Emotion is a cross-platform 2D oriented game engine written in C#. Its goal is to have no native dependencies and be truly portable (apart from the platform specific code of course). The core principle is that making games as a programmer should be about coding. Not about drag and drop interfaces and navigating menus, nor wrestling with linking libraries and making the same interfaces over and over again. I made this to provide indie developers (and mostly myself) with a foundation which can be extended and adapted to a game's needs.
Documentation
Documentation is something which I really want to get around to doing. The existing one in the "Documentation" folder is not up to date and is a work in progress.
I would recommend checking out the tests in the "Tests" project as examples, and the comments in the code.
Requirements for Developers and Players:
OpenGL 3.0 or higher
Or DirectX 11 if ANGLE is enabled
Or a multi-core CPU if the Mesa software renderer is enabled
Custom fast XML serializer/deserializer with support for derived types, dictionaries, and others.
Compliant with .Net System.Text.XML
Basic scene system, where new scenes load in a new thread while a loading screen scene plays.
Basic skeletal animation
FBX, OBJ and other file types supported by Assimp are supported.
Need to be converted to a custom 3D format (em3) using the included tool.
and many more!
Building and Using
If you want to use all of Emotion's features such as, the testing library (Emotion.Test) to create unit/intergration tests for your game, the tools library (Emotion.Tools) to easily create developer tools (or use the included tools), or any of the plugins, you should clone the repo and build using Visual Studio 2019 or higher. Then reference the "Emotion" project in your project. It shouldn't take more than that.
If you just want to write some code or take it for a spin you can use the Nuget package - https://www.nuget.org/packages/Emotion
The package includes a precompiled debug version of Emotion, but doesn't include any of the native libraries. You don't really need those for most use cases, but you can download them seperately from the repo at Emotion/AssetsNativeLibs.
It is recommended you develop with a cloned version of the Emotion repo referenced rather than using the precompiled nuget.
Projects Used
This includes dependencies and projects which were used for research references.
请发表评论