Skip to content

Latest commit

 

History

566 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vkEngine

vkEngine screen shot

vkEngine, my long term "game engine" project. Might end up as an actual game at some point, no idea when.

This started long long ago in 2004, with OpenGL and ATI GPU demos... My only game that has actually used this "engine" was my Tetris game/graphics demo.

I also have the OpenGL version, this is a far more evolved codebase than that though, the OpenGL version I should archive the repo as I haven't touched it in quite some time.

I love doing everything my self with as little external library dependencies as possible.
This is an on-going learning experience for me and for anyone else that can learn from my code, I try to keep it clean and readable.

"Building square wheels to better appreciate the round ones."


To-do (in no particular order):

  • Improve audio (needs pops/clicks fixed)
  • Improve physics (needs more refining, it doesn't pass a box stack very well)
  • Streamline post processing effects (WIP)
  • Improve networking (this is better now, server here)
  • 3D model animation?
  • ???
  • Profit?

External dependencies for building this (versions as of this writing, newer should work):

  • libvorbis 1.3.7
  • libogg 1.3.5
  • OpenXR 1.2
  • Vulkan 1.3.231.1

Note: recursive clone to fetch submodules


Controls:

  • W/A/S/D Typical strafe movement
  • Q/E Roll
  • Up/Down arrows Pitch
  • Left/Right arrows Yaw
  • Space Fire projectile
  • Control Fire "laser"
  • ~/` Opens console
  • Z "Explode" asteroid field (used for testing physics)
  • O Generate new random play area
  • P Pauses all physics except for camera

Mouse interacts with UI, but also controls ship pitch/yaw.


Building:

Should be pretty straightforward cmake:
cmake -S. -B out -GNinja
or use a preset:
cmake -S. --preset "linux_x64_release"
cmake -S. --preset "windows_x64_release"
cmake -S. --preset "android_arm64_release"

Note: Android building requires the SDK with NDK properly set up with ANDROID_HOME set correctly. This also currently targets a specific NDK version, edit presets file to the version you have installed.


Network:

To connect to a server, just bring up the console in game with '~'/'`' and type:
connect XXX.XXX.XXX.XXX
Where XXX.XXX.XXX.XXX is the remote IP.

Note: Networking is very much a WIP.

About

Ongoing Vulkan version of my Engine, eventually it might be something?

Topics

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages