Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
d7499a6
v1
jsoulier Jul 18, 2026
cb15ade
v2
jsoulier Jul 18, 2026
db2d3b8
v3
jsoulier Jul 18, 2026
bd4a734
v4
jsoulier Jul 18, 2026
6676751
v5
jsoulier Jul 18, 2026
c692bc1
v6
jsoulier Jul 18, 2026
03d61a0
bug fix
jsoulier Jul 18, 2026
aea6e34
v something
jsoulier Jul 18, 2026
73d60db
v 1024
jsoulier Jul 18, 2026
bf531a5
shadows
jsoulier Jul 18, 2026
a74421f
msaa and zlib
jsoulier Jul 18, 2026
e3ab9e0
next
jsoulier Jul 18, 2026
007941f
move to SDL style syntax
jsoulier Jul 18, 2026
31feca4
fix shadows again
jsoulier Jul 18, 2026
2070a18
refactor
jsoulier Jul 18, 2026
ad9cee4
better shadows
jsoulier Jul 18, 2026
18f88e5
shadows again again
jsoulier Jul 18, 2026
f79882f
refactor
jsoulier Jul 18, 2026
150e9e8
fix water double perspective divide bug
jsoulier Jul 18, 2026
e51d236
refactor
jsoulier Jul 18, 2026
799ee23
clang-format
jsoulier Jul 18, 2026
762a3d5
reformat
jsoulier Jul 18, 2026
3317b78
fix raycast
jsoulier Jul 18, 2026
5fb936b
more refactors
jsoulier Jul 18, 2026
c7e5c72
refactor
jsoulier Jul 18, 2026
a071a33
refactor
jsoulier Jul 18, 2026
ed3bae1
refactor
jsoulier Jul 18, 2026
f773f32
refactor
jsoulier Jul 18, 2026
786ad06
refactor worker
jsoulier Jul 19, 2026
bba774d
refactor
jsoulier Jul 19, 2026
2cd0d38
next
jsoulier Jul 19, 2026
47613b0
refactor
jsoulier Jul 19, 2026
960e38f
v -1
jsoulier Jul 19, 2026
1448b10
refactor
jsoulier Jul 19, 2026
85b9e45
refactor
jsoulier Jul 19, 2026
90b8a4f
fix raycast
jsoulier Jul 19, 2026
3c94715
refactor
jsoulier Jul 19, 2026
ea2da0d
fixes
jsoulier Jul 19, 2026
2a0f1fa
images
jsoulier Jul 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cmake.parallelJobs": 8
"cmake.parallelJobs": 8,
}
14 changes: 6 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,14 @@ add_executable(blocks WIN32
src/rand.c
src/save.c
src/shader.c
src/sky.c
src/sort.c
src/voxel.c
src/worker.c
src/world.c
)
set_target_properties(blocks PROPERTIES C_STANDARD 11)
target_compile_definitions(blocks PRIVATE SDL_ASSERT_LEVEL=$<IF:$<CONFIG:Debug>,3,0>)
target_include_directories(blocks PUBLIC lib/jsmn)
target_include_directories(blocks PUBLIC lib/sqlite3)
target_include_directories(blocks PUBLIC lib/stb)
Expand Down Expand Up @@ -86,19 +90,13 @@ function(add_shader FILE)
endif()
package(${JSON})
endfunction()
add_shader(blur.comp shaders/shader.hlsl src/voxel.inc)
add_shader(composite.comp shaders/shader.hlsl src/voxel.inc)
add_shader(depth.frag shaders/shader.hlsl src/voxel.inc)
add_shader(depth.vert shaders/shader.hlsl src/voxel.inc)
add_shader(hud.frag)
add_shader(hud.vert)
add_shader(opaque.frag shaders/shader.hlsl src/voxel.inc)
add_shader(opaque.vert shaders/shader.hlsl src/voxel.inc)
add_shader(raycast.frag shaders/shader.hlsl src/voxel.inc)
add_shader(raycast.vert shaders/shader.hlsl src/voxel.inc)
add_shader(shadow.frag shaders/shader.hlsl src/voxel.inc)
add_shader(shadow.vert shaders/shader.hlsl src/voxel.inc)
add_shader(sky.frag shaders/shader.hlsl src/voxel.inc)
add_shader(sky.vert shaders/shader.hlsl src/voxel.inc)
add_shader(ssao.comp shaders/shader.hlsl src/voxel.inc)
add_shader(transparent.frag shaders/shader.hlsl src/voxel.inc)
add_shader(transparent.vert shaders/shader.hlsl src/voxel.inc)
add_shader(ui.comp shaders/shader.hlsl src/voxel.inc)
21 changes: 5 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Blocks

![](image.png)
![](doc/image1.png)
![](doc/image2.png)

Tiny Minecraft clone in C and HLSL using the new SDL3 GPU API

Expand All @@ -10,9 +11,9 @@ Tiny Minecraft clone in C and HLSL using the new SDL3 GPU API
- Asynchronous chunk loading
- Persistent worlds
- Physics
- Directional shadows
- Clustered dynamic lighting
- Blocks and sprites
- Basic lighting
- Day and night cycle

### Building

Expand Down Expand Up @@ -59,16 +60,4 @@ To build locally, add [SDL_shadercross](https://github.com/libsdl-org/SDL_shader
- `Scroll` to change blocks
- `F11` to toggle fullscreen
- `LControl` to sprint

### Passes

1. Render opaques to depth texture (for shadows)
2. Render sky to G-buffer
3. Render opaques to G-buffer
4. Calculate SSAO
5. Blur SSAO
6. Composite G-buffer
7. Render transparents to depth teture (for predepth)
8. Render transparents and composite
9. Render raycast
10. Render UI
- `T` to reset the time of day
Binary file added doc/image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed image.png
Binary file not shown.
2 changes: 1 addition & 1 deletion lib/SDL
Submodule SDL updated 869 files
1 change: 0 additions & 1 deletion shaders/bin/blur.comp.json

This file was deleted.

44 changes: 0 additions & 44 deletions shaders/bin/blur.comp.msl

This file was deleted.

Binary file removed shaders/bin/blur.comp.spv
Binary file not shown.
1 change: 0 additions & 1 deletion shaders/bin/composite.comp.json

This file was deleted.

193 changes: 0 additions & 193 deletions shaders/bin/composite.comp.msl

This file was deleted.

Binary file removed shaders/bin/composite.comp.spv
Binary file not shown.
1 change: 0 additions & 1 deletion shaders/bin/depth.frag.json

This file was deleted.

9 changes: 0 additions & 9 deletions shaders/bin/depth.frag.msl

This file was deleted.

Binary file removed shaders/bin/depth.frag.spv
Binary file not shown.
1 change: 0 additions & 1 deletion shaders/bin/depth.vert.json

This file was deleted.

37 changes: 0 additions & 37 deletions shaders/bin/depth.vert.msl

This file was deleted.

Binary file removed shaders/bin/depth.vert.spv
Binary file not shown.
1 change: 1 addition & 0 deletions shaders/bin/hud.frag.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "samplers": 1, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 1, "inputs": [{ "name": "in.var.TEXCOORD0", "type": "float2", "location": 0 }, { "name": "in.var.TEXCOORD1", "type": "uint", "location": 1 }], "outputs": [{ "name": "out.var.SV_Target0", "type": "float4", "location": 0 }] }
Loading
Loading