Rosewood Game Engine
Rosewood Engine is a game engine created for me to learn Graphics Programming and to learn how Game Engines work
!! THIS GAME ENGINE IS NO LONGER BEING DEVELOPED OR SUPPORTED !! My plan for this engine is to develop it to a point I can make an advanced 2D game and a simple 3D game with it, whilst learning Game Engine development, Design patterns, graphics programming, Advanced c++, problem solving.
- OpenGL Support
- Cross-Platform (Tested on major desktop platforms)
- 2D Rendering
- Asset managment system
- 2D Audio support
- ECS
- File system and Compression
- Lua Scripting
- Basic Networking
All the characters seen on this demonstration are being controled via a Lua Script
Lua.Scripting.demo.mov
What you're seeing here is an orthographic projection of 3D paper-fold like objects being lit by a deferred lighting system, emulating a lighting system seen on Eastward
Deferred.2D.Lighting.demo.mov
- If you try to make project and it fails, make sure every dependency has it's premake5.lua file, if not, you can find those files in "vendor/premakes" folder.
- IMPORTANT! Make sure to compile OpenSSL in the "Rosewood/vendor/openssl" directory as a Static Library (Using "no-shared" option).
- Open the Build Tool, located in "Tools/BuildTool.py"
- Generate project files by selecting the project and generator type.
- Open in preferred IDE or Open Build Tool and press the Build and Run buttons if you chose
gmake2
- Download Premake5 binaries for Mac OS and paste them in "vendor/bin/premake" folder.
- Use the Build Tool to create
MakeFiles
orXCode
files - Press Build and Run if you chose
MakeFiles
or open yourXCode
files and build there.
- Download Premake5 binaries for Linux and paste them in "vendor/bin/premake" folder.
- REQUIRED PACKAGES:
*
xorg-dev
*libasound2-dev
- Open Build Tool and create
MakeFiles
- Press Build and Run
- Dear ImGui for debug UI
- GLFW for window context creation
- glm for Vector maths
- Glad for OpenGL
- stb_image.h for Image loading
- spdlog for debug logging
- SoLoud for Audio
- Assimp for 3D model importing
- zlib for data compression
- libzip for asset archives
- LUA for scripting
- Sol2 for simplifying lua wrapping process
- Entt for ECS
- yaml-cpp for Scene and Config file serialization
- json for Asset indexing
- asio for networking
- OpenSSL for security