aeris170 / NeoDoa

A simplistic and easy to use game engine for quick game development.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NeoDoa

NeoDoa Game Engine

NeoDoa is a simple, open-source and easy-to-use game engine developed with C++ for high fun game development! NeoDoa uses OpenGL to deliver high performance by hardware accelerating the rendering.

Leave a ⭐ if you like the project!

Features

NeoDoa is still under development and is not ready for producing games, but it will be 😎 Below are the finished and upcoming features.

  • Graphics
    • OpenGL 4.5 Core Profile based renderer
    • Agressive Instancing and Batched Rendering!!
    • WIP: Point and spot and custom lights
    • WIP: High Quality Text Rendering using Signed Distance Fields
    • WIP: Shadows
    • WIP: Waters
    • WIP: Skybox
    • WIP: Deferred Shading
    • WIP: Skeletal Animations
  • Collision & Physics
    • WIP: With PhysX
  • Audio
    • WIP: With OpenAL
  • Asset Loading
  • Scripting system
  • Input
    • Mouse, Keyboard.
    • WIP: Controller
    • WIP: Joystick
  • Editor
    • Project system with Scene serialization with TinyXML2
    • Asset Manager
    • Code Editor
    • Custom Shaders
    • WIP: Mouse Picking to select Entity
    • WIP: Outlining of selected Entity
    • Editor Camera
    • WIP: Terrain Editor
    • WIP: Tree Maker
    • WIP: Skeletal Animation/Ragdoll Editor
    • ... and many more
    • ... help :(

How to build

Prerequisites:

  • git 2.40.1 or higher (GIT Bash on Windows)
  • CMake 3.26.4 or higher
  • A C++ compiler with C++23 support (gcc 13.1, clang 17.0.1, MSVC 19.30) or higher

Building

1. Start by cloning the repository by SSH

git clone git@github.com:aeris170/NeoDoa.git

or by HTTPS

git clone https://github.com/aeris170/NeoDoa.git

When cloning is done, go into the cloned folder and initialize submodules

cd NeoDoa
git submodule update --init

After this, git pull should print Already up to date. Proceed to the next step.

2. Fetching Required Installations (Linux ONLY)

If you are using Windows, please skip this step.

NeoDoa requires various installations from apt-get to compile. These are listed below:

build-essential curl zip unzip tar pkg-config libxinerama-dev libxcursor-dev xorg xorg-dev libglu1-mesa libglu1-mesa-dev autoconf autoconf-archive

These can either be install manually or by launching the helper script by executing:

sh FetchAptGet.sh

3. Fetching Dependencies

NeoDoa uses vcpkg to manage packages and depends on packages listed below:

angelscript[addons] argparse assimp imgui[core,docking-experimental,glfw-binding,opengl3-binding] imguizmo entt eventpp glew glfw3 glm icu lunasvg stb tinyxml2

The packages above must be installed by launching the helper script FetchDependencies.sh. This script takes two arguments platform and clonemode. platform defaults to x64-windows and can be overriden to x64-linux or your OS of choosing by passing it as the first argument. clonemode governs how the script should try to clone vcpkg repository. Passing nothing defaults to https, only https and ssh are accepted.

Examples:

sh FetchDependencies.sh                  # Fetch packages for x64-windows using https
sh FetchDependencies.sh x64-windows ssh  # Fetch packages for x64-windows using ssh (must have an ssh key set-up)
sh FetchDependencies.sh x64-linux        # Fetch packages for x64-linux   using https (doesn't work on our test systems)
sh FetchDependencies.sh x64-linux ssh    # Fetch packages for x64-linux   using ssh (must have an ssh key set-up)

You should see no errors when this scripts completes. If you do, please create an issue here.

4. Building with CMake

Building the makefile (or the Visual Studio Project) should be done with the commands below:

For Windows (Visual Studio Project):

mkdir build
cd build
cmake ..

For Linux:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release .. # Debug or Release

OR

There are also the helper scripts cmake.sh to execute the commands above.

For Windows (Visual Studio Project):

sh cmake.sh

For Linux:

sh cmakeLinuxDebug.sh # OR sh cmakeLinuxRelease.sh

5. Building!

If you built to a makefile, what's left is calling make

cd build
make # make -jX    |for X threaded compilation

If you built to a Visual Studio Project, boot up a Visual Studio instance and press F5.

Contributing

Want to help us make this project better? Great! Check out CONTRIBUTING.md to get started.

Github Issues

Please use Github Issues to report bugs or request features.

Reporting bugs

Please follow these steps to report a bug

  1. Search for related issues - search the existing issues so that you don't create duplicates

  2. Create a testcase - please create the smallest isolated testcase that you can that reproduces your bug

  3. Share as much information as possible - everything little helps, OS, IDE, GPU, all that stuff.

NeoDoa Platform

NeoDoa is an open source cross-platform game engine which you can use to develop games on Windows, Linux and MacOS (although untested on).

About

A simplistic and easy to use game engine for quick game development.

License:Other


Languages

Language:C++ 97.7%Language:CMake 1.4%Language:GLSL 0.6%Language:Shell 0.2%