A full-fledged cross-platform 2D Game Engine.
- Reference the Project/Assembly.
- Create an initializer to load initial and additional game assets.
GameEngine.AddInitializer(() => { // do stuff return false; // return true if error occured in initializer. });
- Start the engine by calling
GameEngine.Run()
.GameEngine.AddInitializer(() => { // do stuff return false; // return true if error occured in initializer. }); GameEngine.Run();
MiniEngine supports the use of a packed asset file that acts as a read-only virtual file system.
- Build and install the
MiniEngine.Tools.CLI
project and install as a dotnet tool. - Create a
.indexfile
file in your project directory. Files and folders specified in this file are set to be packed by the CLI tool. - Run
metool pack
on the project directory. The tool will produce aassets.mea
file that contains your game assets. - Place and include this file on your project's output directory.
- Reference a file by calling
Resources.GetResource(string path)
. You may also opt for implicit conversion via strings when calling functions that usesMemoryResource
.
Runnable with basic functionality included.
- Create Basic Unit Structures
SizeVector2Color
- Create BaseEngine Structure
Create engine init and cleanupCreate engine loop
- Create Entity Component System
Create System Service (Register & Execute)Support user-defined systems
Add wiring via reflection- Implement Basic Components and Systems
Add Transform and TransformSystemAdd Motion and MotionSystemAdd Sprite and DrawSystem
- Implement Complex Components and Systems
- Add PhysicsBehavior and PhysicsSystem
Add Script and ScriptSystem- Design a scripting API
- Create Windowing System
Implement window creation and respect engine configuration- Add additional window configuration methods to be ran at runtime
- Create Resource Manager
Create packed file formatCreate index format
Create loader to load resources into memoryCreate texture cache- Create font loader
- Create Graphics Abstraction Layer
- Add Primitive Draw Functions
- Rectangle
- Ellipse
- Cicle
Pixel- Line
- Curved Line
- Add Sprite Draw Functions
Draw- Draw Spliced
- Add Primitive Draw Functions
- Create Documentation
- Create Example Projects
- Publish to NuGet