Skip to content

btipling/Rosy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rosy

This is a hobby project to build a game engine and eventually a game in my spare time.

Sponza

Building

This project will likely not build for anyone else at this time. See assets and hardware section below.

Vulkan SDK

The most recent version of the Vulkan SDK should be on the system.

Git submodules

KTX, SDL3, Fastgltf and flecs are now gitsubmodules SDL3 and flecs are dynamically linked, build the dlls and include next to binary, add lib files after building

git submodule init
git submodule update

KTX

cd .\libs\KTX-Software\
cmake . -B build
cmake --build build

FastGLTF

cd .\libs\fastgltf\
cmake . -B build

Add fastgltf project to VS if it's not already there and build it

SDL

cd .\libs\SDL\
cmake . -B build
cmake --build build

flecs

cd .\libs\flecs\
cmake . -B out
cmake --build out

Assets

Assets are not included in the repository and the application will immediately halt without them. I don't currently have a good solution for distributing assets, it's all very manual. I could zip my asset directory on request.

Hardware

I have only tested this on Nvidia 3070 and 3060 gpus. I don't know if this application works on AMD or other GPUs at this time.

Modern Vulkan

  • Buffer device address
  • Dynamic rendering
  • Bindless
  • Shader Objects
  • One global descriptor set for all images and samplers

TODO

Generating Cubemaps with ktx

 ktx create --format R8G8B8A8_SRGB --generate-mipmap --mipmap-filter box --encode uastc --uastc-quality 0  --zstd 5 --cubemap  .\xp.png .\xn.png .\yp.png .\yn.png .\zp.png .\zn.png  skybox.ktx2

Then have to open them up in Nvidia Texture Tools and save them to get the VkFormat correct

Open Source Code Dependencies

Vulkan Tools and the Vulkan SDK

https://github.com/LunarG/VulkanTools
Apache License 2.0, January 2004

KTX tools

https://github.com/KhronosGroup/KTX-Software
Apache 2.0 license
Copyright (c) Mark Callow, the KTX-Software author; The Khronos Group Inc.
and additional licenses
https://github.com/KhronosGroup/KTX-Software/tree/main/LICENSES

fastgltf

https://github.com/spnda/fastgltf
MIT license
Copyright (c) 2022 - 2024 spnda.

Vulkan memory allocator

https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
MIT License
Copyright (c) 2017-2024 Advanced Micro Devices, Inc.

Dear Imgui

https://github.com/ocornut/imgui
MIT license
Copyright (c) 2014-2024 Omar Cornut

Volk

https://github.com/zeux/volk
MIT license
Copyright (c) 2018-2024 Arseny Kapoulkine

DirectXTex

https://github.com/microsoft/DirectXTex
MIT license
Copyright (c) Microsoft Corporation.

stb

https://github.com/nothings/stb/tree/master?tab=License-1-ov-file#readme
MIT License
Copyright (c) 2017 Sean Barrett

VkGuide

https://github.com/vblanco20-1/vulkan-guide
MIT License
Copyright (c) 2022-2024 2016 VkGuide Author
I initially relied a lot on this for developing my scene graph.

Nameless engine

https://github.com/Flone-dnb/nameless-engine
MIT License
Copyright (c) 2022-2024 Alexander Tretyakov
For some of the ktx vma allocation logic.

skybox attribution