Skip to content
/ Mikoto Public

Mikoto is a cross-platform game engine built on top of the Vulkan API and written using modern C++

License

Notifications You must be signed in to change notification settings

kateBea/Mikoto

Repository files navigation

Mikoto Engine

Mikoto is an open-source Vulkan-based C++ engine developed by me for educational purposes. It is designed to provide a hands-on learning experience in graphics programming, focusing on the Vulkan API.

Mikoto Engine

Features

  • Model loading
  • Image loading
  • Blinn-Phong lighting
  • Entity component system
  • Game object serialization (WIP)

Supported platforms

  • Linux
  • Windows (WIP)

Requirements

  • Software Requirements
    • CMake 3.18
    • The Vulkan SDK
    • A compiler capable of C++20 (G++ 12.3.0 was used for the tests)
    • GLSL-C (The glsl compiler). This one is optional as there's precompiled binaries.

Folder structure

  • Assets: Contains core engine/editor utilities, prefabs, and essential assets such as shaders.
  • Common: Common development utilities, definitions of structures, data types, etc.
  • Mikoto-Engine: The core engine project which powers Mikoto Game Engine.
  • Mikoto-Editor: The editor project featuring the game scenes' editor.
  • Mikoto-Runtime: A sample game showcasing the capabilities of Mikoto Game Engine.

Building

Clone the repository. The project already comes with a CMake file ready to use. At the moment I only tested building on Linux, the process should be similar on Windows. If you have Visual Studio installed, CMake will generate VS project files by default, open the solution file and build the project from there. In case you have CLion, you could also just the CMake as a project and build just fine. The following steps just show how to build from a terminal.

  # Clone the repository to your desired directory
  git clone --recursive https://github.com/kateBea/Mikoto-Engine.git
  
  # Change directory to the repo folder
  cd Mikoto
  
  # Make a build directory (preferable)
  mkdir build 
  
  # and open the build directory
  cd build
  
  # Run CMake on the CMake file from the repo root directory
  cmake -S .. -B .
  
  # Finally build the project
  cmake --build . --config Release
  
  # and run the executable (on Linux, the executable should be in build folder)
  ./Mikoto-Editor/Mikoto-Editor

Dependencies

This project is done thanks to various third-party libraries:

  1. FMT (Modern formatting library)
  2. GLEW (Open GL extension Wrangler)
  3. GLFW (Multiplatform Library for Window, Event handling, etc.)
  4. GLM (Open GL Mathematics Library for C++)
  5. ImGui (Graphical User interface Library for C++)
  6. Spdlog (Fast C++ Logging Library)

The GLFW library is not necessary to be installed on the system since it is included as a submodule and build along with the project.

Goals

This project serves as a way for me to learn 3D graphics programming with modern rendering techniques, as such I intend to implement the features I learn along the way.

Special thanks and mentions to

Releases

No releases published

Packages

No packages published