NeoDoa
NeoDoa copied to clipboard
A simplistic and easy to use game engine for quick game development.
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
- Scripting via AngelScript
- With true ECS!
-
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 [email protected]: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
-
Search for related issues - search the existing issues so that you don't create duplicates
-
Create a testcase - please create the smallest isolated testcase that you can that reproduces your bug
-
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).