Skip to content
/ XenonVk Public

A project for learning Vulkan and Game Engine

Notifications You must be signed in to change notification settings

WvXY/XenonVk

Repository files navigation

XenonVk

Under development...

Description

A 3D Vulkan game engine for my personal study and interests.

This project was initially created by following the tutorial of Little Vulkan Engine for learning Vulkan and Game Engine. More features will be added soon.

Installation

Prerequisites

Install Dependencies(Linux)

This project has set up GitHub Actions, follow the instruction to install the dependencies and build.

sudo apt update
sudo apt install -y libvulkan-dev vulkan-tools glslang-tools libglfw3-dev libeigen3-dev libglm-dev

For development in Debug mode, Vulkan SDK is needed to enable validation_layer. You can install it using following commands.

wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list http://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
sudo apt update
sudo apt install vulkan-sdk

Install Dependencies(Windows)

You can use vcpkg or MSYS2 to install the dependencies.

If you use vcpkg on Clion, follow the official guide to integrate vcpkg with Clion.

Build & Run

You can use bash build.sh to build the project or bash run.sh to build and run the project.

External Libraries

The following libraries are used and pre-installed in this project.

File Version Project Link
stb_image.h v2.29 https://github.com/nothings/stb
tiny_obj_loader.h v2.0.0 https://github.com/tinyobjloader/tinyobjloader

TODO

  • Physics Engine (Working on)
  • ECS: Entity Component System
  • Refactor the project: naming, structure
  • Feature: Texture
  • Feature: Shadow
  • Feature: PBR
  • GUI: ImGUI
  • Audio Engine(optional)

Current Problems

  1. GitHub CI is not working properly: enabled extensions in shaders
  2. Some function calls are not in the proper place.
  3. Refactor 2D renderer and separate some functions.

Reference

About

A project for learning Vulkan and Game Engine

Resources

Stars

Watchers

Forks