Git Product home page Git Product logo

odd's Introduction

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++.

odd's People

Contributors

oddstonegames avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.