A Game engine based on the Hazel Engine by TheCherno
The Swallow engine is coded in C++ and is intended to be a cross-platform high-performance game engine.
to get started clone this repository and all submodules.
Update the premake5.lua in the root of the repository to fit with your project. By default the premake5.lua is configured to compile the engine with a sandbox application.
Visual Studio Open the scripts directory in the root of the repository and run "WindowsGenerate.bat". Ths should create A .sln file in the root of your repository.
Makefile On MACOS Open the scripts directory in the root of the repository and run "MACOSGenerate.sh". Ths should create A makefile in the root of your repository.
No prerequisits apart from the submodules in the repository.
For your application to run you must:
Create a class that inherits from Swallow::Application:
sandboxApp.hpp
#pragma once
#include <Swallow.hpp>
class Sandbox : public Swallow::Application
{
public:
Sandbox();
virtual ~Sandbox();
private:
Sandbox(const Sandbox &s) = default;
Sandbox &operator=(const Sandbox &s) = default;
};
Create An instance of that class by overriding the application creation function:
sanboxApp.cpp
#include "sandboxApp.hpp"
Sandbox::Sandbox() {
}
Sandbox::~Sandbox() {
}
Swallow::Application* Swallow::CreateApplication()
{
return (new Sandbox());
}
This should run an application window with a black screen. For examples on how to expand this applications funtioanality look into the layer system usage in the sandbox app.
- C++ - The base language
- OpenGL - Used for rendering
- GLM - Used for maths functions
- ImGUI - Used for debugging Gui elements
- Isard Botha - Initial work - Ibotha
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE file for details
- Again. Thank you to TheCherno for sharing what he knows and giving me the understanding to build something like this.