Emotion is a cross-platform game engine written in C# with minimal dependencies, for me to make games in. The engine is more targeted towards programmers and is alternative to stuff like MonoGame, FNA, and Love rather than Unity.
A visual novel for Windows, Linux, and x64 Mac.
The version this game was built on is kept in the "adfectus-backup" branch.
A roguelike deckbuilder for Windows and Linux, with an Android version built but not published.
The version this game was built on is kept in the "EtA" branch.
Check out the "Tests" project for examples, the comments in code, and the Emotion Examples project to learn more about how to use the engine. Proper documentation is a longterm goal.
- OpenGL 3.0 or higher supported hardware
- Or DirectX 11 if ANGLE is enabled
- Or a multi-core CPU if the Mesa software renderer is enabled
- WebGL 2.0 on Web
- Be able to run the Net 9 runtime.
- If older than Windows 10 you'll need the C++ Redistributable 2015 Update 3
- For Windows 7 you'll also need a specific security update KB3063858
- A supported platform:
- Windows 32 and 64 bit
- Linux 64 bit (Steam Deck works too)
- Android API 23+
- Or implement your own via PlatformBase :)
That's it.
It is recommended you develop with a cloned version of the Emotion repo linking Emotion.csproj in your solution. This way you have the most control over your code. Using nuget packages, prebuilt dlls, and any other ways of linking Emotion is not supported.
This includes dependencies and projects which were used for research references. If you're distributing code using this project include the "LICENSE THIRD-PARTY" file from the repository.
Library | License | Used For | Inclusion |
---|---|---|---|
.Net Core | MIT | Runtime | Nuget |
System.Numerics | MIT | Data structures and hardware intrinsics | Nuget |
xxhash (pure C# implementation) | MIT | Hashing data | |
Forks | |||
WinApi | Apache | Windows API Interop Headers | Platform/Implementation/Win32/Native |
OpenGL.Net | MIT | OpenGL API | Platform/OpenGL |
StbTrueType & StbTrueTypeSharp | MIT & GPL3 | Font Rendering Option and Comparison | Referenced by Tests @ Tests/StbTrueType and Graphics/Text/StbGlyphRenderer |
TiledSharp | Apache 2.0 | .TMX Support | Uses custom XML and engine integration @ Standard/TMX |
Optional | |||
Roslyn/Microsoft.CodeAnalysis.CSharp | MIT | Runtime C# Script Compilation | Emotion.Plugins.CSharpScripting |
CimGui & CimGui.Net | MIT | Developer UI | Emotion.Plugins.ImGuiNet, Precompiled for Mac64, Linux64, and Win64 |
ANGLE | Google License | Compatibility | Precompiled for Win32 and Win64, Add "ANGLE" symbol |
llvmpipe / Gallium / Mesa | MIT | Compatibility via Software Renderer | Precompiled for Win32 and Win64 |
Glfw & Glfw.Net | Zlib | Mac and Linux Window Creation | Precompiled for Mac64, Linux64, Win32, and Win64, Add "GLFW" symbol |
OpenAL-Soft & OpenAL.NetCore | LGPL & MIT | Mac and Linux Audio | Precompiled for Mac64, Linux64, Win64, Add "OpenAL" symbol |
Assimp & AssimpNet | Modified BSD | Reading FBX files | The Emotion build tool |
Assimp (Engine) & Silk.NET.Assimp | Modified BSD & MIT | 3D Model preview and conversion | Add "ASSIMP" symbol |
SixLabors.ImageSharp | Six Labors Split License | Developer loading and conversion of unsupported image types such as "jpg" | Add "MORE_IMAGE_TYPES" symbol |
References | |||
McGill Engineering | X | Hardening WAV and Audio Implementation | None |
PNGSuite | X | Hardening PNG Implementation | None |
OpenType.JS | X | Font Parsing Reference | None |
Nine.Imagine | X | Image Parsing Comparison | None |
ImageSharp | X | Quirky Image Format Reference | None |
OpenAL-Soft | X | Audio Code Reference | None |
NAudio | X | Audio Code Reference | None |
Audacity | X | Audio Code Reference | None |
Astiopin's SDF generator | X | EmotionSDF4 atlas generation reference | None |