- GDScript 100%
Sets up the repo for two developers working from separate machines. No gameplay design is encoded here - the design is still open, so everything under game/ is explicitly a placeholder testbed whose only job is to prove the networking layer works end to end. Structure is feature-based (game/player, game/extraction, ...) rather than type-based, because a feature folder doubles as an ownership boundary and keeps the two of us out of each other's files. Networking authority is split: movement is client-authoritative (PvE, so the latency win beats the cheating risk) while damage, loot and extraction are server-authoritative, since those decide what a player keeps. Health is RPC'd down rather than replicated, because a MultiplayerSynchronizer on a client-authoritative node would let the client write its own health. Also included: Git LFS rules for binary assets, a headless smoke test (tools/verify_project.gd) that loads every script and scene, and docs covering the scene-merge hazard that makes .tscn files unsafe to co-edit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| assets | ||
| core | ||
| docs | ||
| game | ||
| resources | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| CLAUDE.md | ||
| icon.svg | ||
| icon.svg.import | ||
| project.godot | ||
| README.md | ||
VideoGame
PvE co-op extraction first-person shooter. Godot 4.7, GDScript.
Scaffolding stage. The networking layer works end to end; everything in
game/is a placeholder testbed, and the design is still open. Start atdocs/GAME_DESIGN.md.
Setup
Requirements: Godot 4.7.x (standard build, not Mono) and git-lfs.
# Arch / CachyOS
sudo pacman -S --needed godot git-lfs
git clone https://git.gheist.art/Gheist/VideoGame.git
cd VideoGame
git lfs install # once per machine
godot --headless --import # first import takes a moment
Then open project.godot in Godot.
Running
godot # play (placeholder menu: host or join)
godot --headless -- --server # dedicated server on :27015
Local multiplayer test: start the dedicated server in one terminal, then launch
one or more clients and join 127.0.0.1.
Controls (placeholder): WASD move, Shift sprint, Ctrl crouch, Space
jump, mouse look, Esc release cursor. E interact, Tab inventory and the
fire/aim/reload bindings exist but are not wired to anything yet.
Before pushing
godot --headless --script res://tools/verify_project.gd
Exit code 0 means every script and scene still loads. Run it after any scene or script change.
Docs
| File | What's in it |
|---|---|
CLAUDE.md |
Project context and conventions for Claude Code |
docs/GAME_DESIGN.md |
Open design questions — mostly unanswered |
docs/ARCHITECTURE.md |
Folder philosophy, networking authority model |
docs/WORKFLOW.md |
Git workflow; read this before your first push |
Two people work on this repo from separate machines. docs/WORKFLOW.md explains
why main is protected by convention and why .tscn files must not be
co-edited.