Skip to content

wobbier/MitchEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mitch Engine Banner Codacy Badge license

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 Build status Win64
UWP / Xbox Build status UWP
macOS Build Status

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

  1. Download the Project Setup batch file (Windows only atm, but generates macOS .command) and run within an empty folder or your premade git repo.
  2. Think of an awesome game idea.
  3. ????
  4. 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 for Globals.FMOD_****_Dir
    • The default value for Windows is: FMOD_Win64_Dir = "C:\\Program Files (x86)\\FMOD SoundSystem\\FMOD Studio API Windows\\"
[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 for Globals.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"
[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.

Activity

Alt