The aim of the project is to create a simple game engine demo that is entirely based on Vulkan api. Hopefully it will be usefull for people learning vulkan from scratch.
Engine is written in Java and is using LWJGL 3. So before you start you should install Java and set up required LWJGL 3 libraries(see Required LWJGL libraries bellow).
The project has quite a few usefull utilities for working with Vulkan. For example it can choose the right Physical Device for you, and create a queue with either default or custom requirements.
There are also two demonstration applications inspired by LWJGL Vulkan samples.
"Minimal Vulkan" preset with JOML selected. You can find it on this website: https://www.lwjgl.org/.
- Download and install Vulkan from this site.
- Download required LWJGL libraries("Minimal Vulkan" + JOML) from this page.
- Create a new project in your IDE.
- Add the Vulkan libraries to the project.
- Clone the repository.
- Transfer files from source("src") to your's project source folder.
- Refresh/reopen your IDE to see changes.
- Navigate to the desired demo class.
- Run the demo.
- If you are using Mac OS you might have to add "-XstartOnTheFirstThread" to the VM arguments and then run the demo again.
There are multiple things that might go wrong during the installation process. First of all you have to determine whether the problem is due to wrong installation or the demo is malfunctioning.
Run the InitializationDemo.java. If you can see a window proceed to installation check #2. Otherwise check whether there are any errors preventing you from compiling the code. If so try to remove the libraries from the project and then add them again and recompile the project. Try adding the "-XstartOnFirstThread" argument(or removing it). If the problem is still present go to the section "Issues reporting".
TODO(Readme will be updated soon)
Developing fully functional game engine is challenging enough for a team of full time developers. Not to say for a guy that is pursuing bechelor's degree at the same time(and hase some other projects too). So any amount of help is more then welcome!