MitchEngine
MitchEngine copied to clipboard
The 3D game engine so good it has my name in it.
The 3D game engine so good it has my name in it.
Mitch Engine is a simple c++ component based game engine for creating games for Xbox One, macOS, and the Windows 10 Store. It's a great hobby project to keep me exploring the world of c++.
Check out my Notion to view the current development status.
Platform | Game |
---|---|
Win64 | |
UWP / Xbox | |
macOS |
Main Features
- (ECS) Entity-Component System based design
- Supports Windows, Xbox, and macOS
- World Editor (Windows & macOS)
- HTML UI with Ultralight
- Language: C++
- Optick Profiling
- Optional FMOD Audio (See Below)
- Optional/Experimental MONO Scripting Support (See Below)
How to make a Mitch game
- Download the Project Setup batch file (Windows only atm, but generates macOS .command) and run within an empty folder or your premade git repo.
- Think of an awesome game idea.
- ????
- Profit
Examples
// Grab the world
SharedPtr<World> GameWorld = GetEngine().GetWorld().lock();
// Create an entity.
EntityHandle MainCamera = GameWorld->CreateEntity();
// Add some components
Transform& CameraTransform = MainCamera->AddComponent<Transform>("Main Camera");
Camera& CameraComponent = MainCamera->AddComponent<Camera>();
// Start changing some values
CameraTransform.SetPosition(Vector3(0.f, 5.f, 10.f));
// Spawning models.
EntityHandle ModelEntity = GameWorld->CreateEntity();
ModelEntity->AddComponent<Transform>("Ground Model");
ModelEntity->AddComponent<Model>("Assets/Models/SuperAwesome.fbx");
Build Requirements
- Windows 10 or macOS
- Visual Studio 2019 for Windows / Xbox
- Desktop Development with C++
- Universal Windows Platform development
- Game development with C++
- C++ Universal Windows Platform tools
- XCode for macOS
- CMake - 3.12.0 (Required if you wish to update ThirdParty projects)
Third Party Libraries
Enabling FMOD
- Download and install the SDK from the FMOD website.
- Edit your project's
Game.sharpmake.cs
file in the root of your project and set the global field forGlobals.FMOD_****_Dir
- The default value for Windows is:
FMOD_Win64_Dir = "C:\\Program Files (x86)\\FMOD SoundSystem\\FMOD Studio API Windows\\"
- The default value for Windows is:
[Generate]
public class SharpGameSolution : BaseGameSolution
{
public SharpGameSolution()
: base()
{
Name = "MyProjectName";
Globals.FMOD_Win64_Dir = "C:/Program Files (x86)/FMOD SoundSystem/FMOD Studio API Windows/";
}
}
- You can check the status of the FMOD plugin in the 'Help > About' menu in the editor.
Enabling MONO Scripting (Experimental)
- Download and install the SDK from the MONO website.
- Edit your project's
Game.sharpmake.cs
file in the root of your project and set the global field forGlobals.MONO_****_Dir
- The default value for Windows is:
MONO_Win64_Dir = "C:/Program Files/Mono/"
- The default value for macOS is:
MONO_macOS_Dir = "/Library/Frameworks/Mono.framework"
- The default value for Windows is:
[Generate]
public class SharpGameSolution : BaseGameSolution
{
public SharpGameSolution()
: base()
{
Name = "MyProjectName";
Globals.MONO_Win64_Dir = "C:/Program Files/Mono/";
Globals.MONO_macOS_Dir = "/Library/Frameworks/Mono.framework";
}
}
- You can check the status of the MONO plugin in the 'Help > About' menu in the editor.