Skip to content

Eichenherz/HellTech-Engine

Repository files navigation

HellTech Engine

( Another ) Handmade ( mostly ) Game Engine. Made for fun with hellish passion I guess.

REQUIREMENTS:

  • Win10+
  • Vulkan1.4+
  • dedicated GPU ( preferably NV )

FEATURES ( WIP ):

  • Descriptor Indexing + BDAs for all ( bindless design )
  • Frustum and Double pass HZB Occlusion culling ( Instance and Meshlets )
  • Async GPU uploads
  • Custom binary file format ( hpk - HellPack ) based on ZIP ( Quake 3 style )
  • Asset compiler and exporter ( gltf -> hpk only ): features mesh optimization and tex compression
  • Custom memory and job system

POINTS OF INTEREST:


Rendering Backend — Engine/

File What it does
renderer.cpp Top-level render loop: culling, HZB, forward pass, ImGui, GPU profiler
vk_backend.cpp Vulkan device init, swapchain, queues, async copy queue for texture/mesh uploads
vk_context.h Device context: queues, command pools, VMA allocator, timestamp + pipeline-stats query pools
vk_resources.h Typed wrappers for buffers, images, samplers, descriptor sets
vk_sync.h Timeline semaphores, pipeline barriers

GPU Culling Pipeline — Shaders/

Stage What it does
c_draw_cull.hlsl Per-instance frustum + HZB occlusion cull (early + late pass); writes surviving instances into a GPU-side draw buffer
c_meshlet_cull.hlsl Per-meshlet cone + HZB cull on surviving instances
v_/f_vbuffer.hlsl Visibility buffer pass: rasterizes meshlets
vbuffer.h Shared structs + pack/unpack helpers for the visibility buffer pixel format
c_lambertian_clay.hlsl Reads the vbuffer, reconstructs geometry, shades with lambertian clay (debug/reference mode)
ht_hlsl_lang.h HLSL utility macros (NOINTERP, NUMTHREADS, etc.) and SPIR-V capability constants shared across all shaders

Asset Pipeline — HellPack/

File What it does
HellPack.cpp Entry point; multi-threaded orchestration of the GLTF → HellPack pipeline
gltf_loader.h Ingests GLTF via cgltf into raw mesh/image views
hp_encoding.h Vertex quantization and meshlet generation (via meshoptimizer)
hp_bcn_compression.h BCn (BC1/BC7) GPU texture compression via bc7enc_rdo
hp_serialization.h Writes the final .hellpack binary bundle (ZIP-based, Quake 3 style)

Platform Layer — Engine/

File What it does
sys_os_win.cpp Win32 window, Raw Input pump, file I/O, main loop
engine_platform_common.h Platform↔engine interface: renderer_interface, ht_input_state, job_system_ctx
HellTech.cpp Game-side logic: camera, input bindings, UI assembly, frame loop

Shared Lib — Lib/

File What it does
ht_gfx_types.h GPU-facing structs shared between C++ and GLSL shaders
ht_mem_arena.h Virtual arena allocator (no heap fragmentation, O(1) alloc)
hell_pack.h HellPack binary format definition

HellTech Engine 8_27_2021 12_35_42 PM HellTech Engine 9_2_2021 1_43_40 PM Screenshot 5_5_2026 1_32_30 PM HellTech Engine 5_25_2026 1_31_46 PM

HtLib SUBTREE :

DEPENDENCIES :

About

Exploring the modern rendering landscape

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors