This is a very simple project that aims to help me learn how graphics work and how to develop a simple game engine. It is NOT a serious tool but a learning project, so please keep that in mind.
Currently, only work on the "Editor" part is being done. Once i'm satisfied with that, the next step would be to get the "runtime" working, meaning being able to load a "cooked" game from a single asset file.
The engine uses a "component" based system. Entities exist in the world and can have multiple components attached to them. It follows the logic of Unity's MonoBehaviour and not an ECS. The reason for this is that i just feel more comfortable working with this type of components and speed is not a hude concern right now.
Vulkan is used for rendering, with a simple wrapper that tries to make it more friendly to work with.
Warning
The project is highly volatile and there is a chance you won't be able to compile it. If you do encounter issues, please open in issue, i would love to help you get it working!
The engine and editor are designed in such a way to be cross-platorm but there are several missing implementation of various systems, simply because i'm too lazy to boot into Linux, implement and test them. This means that most likely it won't compile in Linux.
No
- A C++ compiler
- Vulkan SDK
- You MUST make sure the SDK is installed with the debug versions of the shader libraries!
- XMake
Building the editor will also build the engine library as a dependency.
Configure xmake to build either in release or debug mode:
xmake f -m debug|release
Once that is done, you should be able to build the engine by simple running xmake with no args:
xmake
To launch the editor, you first need to create a project. A project creator is "in the works" and will be runnable with the following command:
xmake r Editor # Run the Editor target without any args
However, currently you need an existing project. A sample is provided under Editor/Assets/Projects/SampleProject
:
xmake r Editor -Project=Editor/Assets/Projects/SampleProject/SampleProject.fsnproj
Hopefully, the engine should now be running!
Everybody and their mum has a discord server, so why not me? :) Join the Discord