Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 3.23 KB

README.md

File metadata and controls

105 lines (77 loc) · 3.23 KB

Odd Engine

Banner

Contents

Introduction

This is a WIP game engine that supports 3D rendering and has a beautiful editor. It's based on Entity Component approach and uses OpenGL to render graphics. Major Thanks to TheCherno because this game engine is a part of my learning, and is based on TheCherno's Hazel Game Engine Series.

Features

  • Audio System
  • Physics 2D System
  • Native Scripting
  • Sprite Rendering with Subtextures
  • 2D Batch Rendering
  • Scene Loading/Resetting with Serialization
  • Entity Component System
  • Cross-platform API (Currently Supports OpenGL)
  • Profiler
  • Input System
  • Event System

Setup

Prerequisites: git.

Clone the repo using the following command:

git clone --recursive https://github.com/oddStoneGames/Odd.git
cd Odd

Build

Supported Platforms

  • Windows
  • Linux

Dependencies

  • Hardware with support for OpenGL 4.6 Core
  • C++ Compiler with C++ 17 Support
  • CMake Version 3.25

Build with CMake

  • Windows (MSVC):

    Step 1. Generate project files & open the project.

    cmake -S . -B ./build
    cd build
    Odd-Editor.sln
    

    Step 2. To Build & Run the project, you can click on Local Windows Debbuger.

Controls

For moving around the viewport:

  • Rotate: Left Alt + Left Mouse Button
  • Move: Left Alt + Middle Mouse Button
  • Pan: Left Alt + Right Mouse Button

For Accessing gizmos on selected entity:

  • Translate: W
  • Rotate: E
  • Scale: R

Snapshots

Snap5

License

See LICENSE.

This project has some third-party dependencies, each of which may have independent licensing:

  • Box2D: Box2D is a 2D physics engine for games
  • EnTT: A fast and reliable entity component system (ECS).
  • GLAD: Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
  • GLFW: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
  • GLM: OpenGL Mathematics
  • Dear ImGui: Immediate Mode Graphical User Interface
  • ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui.
  • libsndfile: A C library for reading and writing sound files containing sampled audio data.
  • OpenAL-Soft: OpenAL Soft is a software implementation of the OpenAL 3D audio API.
  • spdlog: Fast C++ logging library.
  • stb_image: Single-file public domain (or MIT licensed) libraries.
  • yaml-cpp: A YAML parser and emitter in C++.