Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
f41d6ae
minor name change in transparent piplien and remove todo
masoniis Apr 9, 2026
dc4ce2b
initial protocl setup
masoniis Apr 9, 2026
ab63f64
separate opaque and skybox pipelines
masoniis Apr 9, 2026
5471c6a
draw skybox after opaque for efficiency
masoniis Apr 9, 2026
5cb1d2c
remove deprecated mesh uploads
masoniis Apr 9, 2026
1bc287d
add extract resource to wireframe mode
masoniis Apr 9, 2026
56bc784
large refactor of render folder
masoniis Apr 9, 2026
f24b428
specialize chunk bounds extraction
masoniis Apr 9, 2026
4c2549b
renaming oapque pipelins and minor refactor
masoniis Apr 10, 2026
a55a01d
moving extract resources to live by their resource init
masoniis Apr 10, 2026
0f2aa56
add lightyear workspace dep
masoniis Apr 10, 2026
7e8a4d4
basic network protocl plugin
masoniis Apr 10, 2026
2cb4806
reduce fake work time
masoniis Apr 10, 2026
3c4e5e2
add bevy fps overlay
masoniis Apr 10, 2026
b5ec9aa
set up channels
masoniis Apr 10, 2026
643f817
clean up client/main a bit
masoniis Apr 10, 2026
b058189
networking mode state
masoniis Apr 10, 2026
13cafee
refactor client app state
masoniis Apr 10, 2026
9df4a58
refactor load/state/lifecycle in shared
masoniis Apr 10, 2026
fdb596d
use bevy tasks in shared load system
masoniis Apr 10, 2026
0011465
generic loading task poller
masoniis Apr 10, 2026
417389b
refactor some state transitions
masoniis Apr 10, 2026
84a1f41
remove lifecycle plugin
masoniis Apr 10, 2026
45d099b
refactor client folder
masoniis Apr 10, 2026
28d7663
scheduliing subfolder
masoniis Apr 10, 2026
ee2f231
add a launching screen/main menu
masoniis Apr 10, 2026
fac0b03
making client state hierarchical
masoniis Apr 11, 2026
92bc664
client/server network lightyear setup
masoniis Apr 11, 2026
6933540
setup client wip
masoniis Apr 11, 2026
c0de677
clean up imports and add a runner crate
masoniis Apr 20, 2026
3a93116
apply lightyear protocls in finish instead of build
masoniis Apr 20, 2026
e7ae4da
update release logic to use the runner
masoniis Apr 20, 2026
6b7bcb3
specify lightyear features
masoniis Apr 20, 2026
f78aa5e
add preludes to server
masoniis Apr 20, 2026
ed37a13
clean up runner feature sets and justfile
masoniis Apr 23, 2026
1c72862
move some client logic out of the shared folder
masoniis Apr 23, 2026
8ef837a
make persitent paths plugin
masoniis Apr 23, 2026
3a723b5
fix lingering lints
masoniis Apr 23, 2026
8493bff
narrow cargo toml feature scoping for bevy
masoniis Apr 23, 2026
d13272d
migrate input from shared to client
masoniis Apr 23, 2026
5f94579
set powershell as default windows shell
masoniis Apr 23, 2026
600de33
make wsl just command capable of running all other commands, moove it…
masoniis Apr 23, 2026
b7b618c
fix lint/clippy checks
masoniis Apr 23, 2026
9e1a287
fix message receiver on client and get a basic connection working loc…
masoniis Apr 23, 2026
41f3adb
add shared consts for network config
masoniis Apr 23, 2026
627315c
server sending basic messages
masoniis Apr 23, 2026
190703f
upgrade ui menu to have single/multi buttons
masoniis Apr 23, 2026
28b79e4
update justfile to run checks on all targets
masoniis Apr 23, 2026
fd54149
add crossbeam lightyear feature
masoniis Apr 23, 2026
82d0d06
migrate terrain gen to server
masoniis Apr 23, 2026
51d4cfc
make networking tests, improve client/server plugin groups
masoniis Apr 23, 2026
08d4e9b
custom log format
masoniis Apr 25, 2026
fca1554
better client/server separated state machines
masoniis Apr 25, 2026
98a8788
network test util
masoniis Apr 25, 2026
1344574
add nextest
masoniis Apr 25, 2026
1c7ca42
cleaning up loading in client
masoniis Apr 26, 2026
79d81b1
rust latest
masoniis Apr 26, 2026
e5983f0
minor refactor
masoniis Apr 26, 2026
c3929df
update cargo crates and flake
masoniis Apr 26, 2026
447c202
crossbeam test and integration refactor
masoniis Apr 26, 2026
ff3790e
add working lightyear example for reference
masoniis Apr 26, 2026
c945f0a
working server forced test
masoniis Apr 28, 2026
8ea962c
add compression + client receive test
masoniis Apr 28, 2026
6107ddc
chunks are loading on client!
masoniis Apr 28, 2026
f0d8ed0
migrate input to leafwing
masoniis Apr 28, 2026
d9cddbe
resolve server paths portably
masoniis Apr 28, 2026
dc092b6
separating chunk manager to client and server
masoniis Apr 28, 2026
86a54a0
refactor shared sim folder + leafwing networking integration
masoniis Apr 29, 2026
c3de43c
add readme to all sub-crates
masoniis Apr 29, 2026
b56aa9c
use local player instead of main
masoniis Apr 29, 2026
0deb656
server authoritative player positioning
masoniis Apr 29, 2026
5fec203
refactor simulation folder in server -> wowrld
masoniis Apr 29, 2026
ab95151
refactor client network folder
masoniis Apr 29, 2026
018862f
observable-based client connections
masoniis Apr 29, 2026
7014973
server chunk component gen
masoniis Apr 30, 2026
0376c9b
return to main menu on connection fail
masoniis Apr 30, 2026
6bccd84
add a connecting screen and proper disconnect
masoniis Apr 30, 2026
d253b63
use trigger-based connection initiation
masoniis Apr 30, 2026
c48ec70
basic settings/paused screen
masoniis Apr 30, 2026
88c639e
global fixed update const, lock cursor more reliably
masoniis Apr 30, 2026
d7c2ed1
remove custom transform components
masoniis Apr 30, 2026
7458464
client interpolation
masoniis Apr 30, 2026
500cfd3
debug menu UI
masoniis May 1, 2026
02c7346
fix chunk welcoming and player position network
masoniis May 1, 2026
2ec9091
refactor server network folder
masoniis May 1, 2026
0668b13
move chunk coord update to shared module
masoniis May 1, 2026
6b343bf
transition voxel updates to serverside
masoniis May 1, 2026
8b087b4
rename voxel terminology to block
masoniis May 2, 2026
73ff1d8
fixing chunk mesh face bug
masoniis May 2, 2026
0eeacfe
remove lightyear example
masoniis May 2, 2026
44c06a2
better network folder(s) organization
masoniis May 2, 2026
6a8b45a
pure demultiplexing
masoniis May 2, 2026
1a2cb7f
move singplayer session request to client
masoniis May 2, 2026
50cda6d
climate chunk buffer allocation optimization
masoniis May 3, 2026
3d7800e
add logger bracket hints for shared taht vary on client adn server
masoniis May 4, 2026
436d6a4
implement a custom loading dag for cleaner loading task organization
masoniis May 4, 2026
0577c1e
update readmes for sub-crates
masoniis May 4, 2026
f8c59e6
optimize mesher with less allocation waste
masoniis May 4, 2026
5ecdc9a
fix duplication in loading dag, destroy startup dag on exit
masoniis May 4, 2026
838e84c
minor formatting and comment changes
masoniis May 4, 2026
a4e9890
improved shared player components documentation
masoniis May 4, 2026
905897a
cleaner welcome message from server and map entities for clients
masoniis May 4, 2026
e701989
add proper client camera hand off and player handling
masoniis May 5, 2026
7164519
distributed loading steps for client
masoniis May 6, 2026
807ceaf
improved cleanliness of client message code
masoniis May 7, 2026
737001e
server demultiplexer for client messages
masoniis May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 39 additions & 17 deletions .github/workflows/release-plz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
needs: [release-plz-release]
permissions:
contents: write
if: ${{ contains(needs.release-plz-release.outputs.releases, '"package_name":"vantablock-client"') }}
if: ${{ contains(needs.release-plz-release.outputs.releases, '"package_name":"vantablock-runner"') }}
strategy:
fail-fast: false
matrix:
Expand All @@ -87,46 +87,68 @@ jobs:
with:
tool: cargo-packager

- name: Build and Package
- name: Build and Package Game
run: |
cargo build -p client --profile distribution --features distribution
cargo packager -p client --profile distribution
cargo build -p vantablock-runner --bin game --profile distribution --features distribution
cargo packager -p vantablock-runner --bin game --profile distribution

- name: Extract Client Release Tag
id: client_tag
- name: Build and Package Server
shell: bash
run: |
# extract tag from package_name='client' to append release assets to
TAG=$(echo '${{ needs.release-plz-release.outputs.releases }}' | jq -r '.[] | select(.package_name == "vantablock-client") | .tag')
cargo build -p vantablock-runner --bin server --profile distribution

# Create server archive
mkdir -p target/distribution/server
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
cp target/distribution/server.exe target/distribution/server/VantablockServer.exe
cd target/distribution/server
7z a ../VantablockServer-windows-x86_64.zip VantablockServer.exe
else
cp target/distribution/server target/distribution/server/VantablockServer
cd target/distribution/server
tar -czf ../VantablockServer-${{ matrix.os == 'macos-latest' && 'macos' || 'linux' }}-x86_64.tar.gz VantablockServer
fi

- name: Extract Release Tag
id: release_tag
shell: bash
run: |
TAG=$(echo '${{ needs.release-plz-release.outputs.releases }}' | jq -r '.[] | select(.package_name == "vantablock-runner") | .tag')
if [ -z "$TAG" ] || [ "$TAG" == "null" ]; then
echo "Error: Could not find tag for client package."
echo "Error: Could not find tag for runner package."
exit 1
fi
echo "tag=$TAG" >> $GITHUB_OUTPUT

- name: Rename client assets to Vantablock
- name: Rename and Filter assets
shell: bash
run: |
cd target/distribution/ || exit 0

# loop through all files starting with "client" and change to "Vantablock"
for file in client*; do
# Rename game assets
for file in game*; do
if [[ -f "$file" ]]; then
mv "$file" "${file/client/Vantablock}"
mv "$file" "${file/game/Vantablock}"
fi
done

# Remove non-functional Windows exe (we want the installer)
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
rm -f Vantablock.exe
fi

- name: Upload Release Assets
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.client_tag.outputs.tag }}
tag_name: ${{ steps.release_tag.outputs.tag }}
files: |
target/distribution/Vantablock*.dmg
target/distribution/Vantablock*.msi
target/distribution/Vantablock*.exe
target/distribution/Vantablock*.AppImage
target/distribution/Vantablock*.tar.gz
target/distribution/Vantablock*.pkg
target/distribution/Vantablock*.deb
target/distribution/Vantablock*.AppImage
target/distribution/VantablockServer*.tar.gz
target/distribution/VantablockServer*.zip
fail_on_unmatched_files: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
.direnv

# project specific
/target
.dev_data
target
vantadev
11 changes: 9 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
{
"nixEnvSelector.nixFile": "${workspaceFolder}/flake.nix",
"nixEnvSelector.useFlakes": true,
"rust-analyzer.cargo.features": ["tracy"],

"rust-analyzer.cargo.features": ["tracy", "dev"],
"rust-analyzer.cargo.allFeatures": false,
"rust-analyzer.procMacro.enable": true,
"rust-analyzer.check.command": "clippy"
"rust-analyzer.check.command": "clippy",

"rust-analyzer.check.extraArgs": ["--target-dir", "target/analyzer"],
"rust-analyzer.checkOnSave": false,
"rust-analyzer.lru.capacity": 256,
"rust-analyzer.inlayHints.enable": false,
"rust-analyzer.cargo.extraArgs": ["-j", "4"]
}
Loading