kbve
@kbve/source
feat(net): lightyear multiplayer networking + avian3d migration (#7921) * refactor(isometric): migrate from bevy_rapier3d to avian3d physics engine Replace bevy_rapier3d with avian3d 0.5 across all 9 game files. Convert collider constructors to full-extent API, swap KinematicCharacterController for ShapeCaster-based ground detection, migrate raycasting to SpatialQuery, and update system scheduling to PhysicsSystems. Prepares for lightyear server-authoritative multiplayer integration. * feat(net): add lightyear multiplayer networking with shared protocol crate Phase 2: Create bevy_kbve_net shared protocol crate with replicated components (PlayerId, PlayerColor, Position, Rotation, LinearVelocity), PlayerInput enum, GameChannel, and ProtocolPlugin. Wire up lightyear ClientPlugins in isometric game client with configurable server address via GAME_SERVER_ADDR env var. Phase 3: Replace raw rapier3d game server in axum-kbve with headless Bevy app running avian3d + lightyear ServerPlugins. Server runs in dedicated thread with WebSocket transport on configurable GAME_WS_ADDR (default :5000), separate from Axum HTTP on :4321. Includes workaround for lightyear 0.26.4 bug where PeerMetadata resource is not initialized by ServerPlugins. * build(axum-kbve): update Dockerfile and workspace for bevy_kbve_net Add bevy_kbve_net to Docker workspace Cargo.toml and all Dockerfile build stages (planner, foundation, builder). Expose port 5000 for lightyear WebSocket. Rebuild isometric WASM with avian3d + lightyear. * feat(net): add JWT auth flow for game server connections Client reads Supabase JWT from shared IndexedDB, passes it through WASM bridge to lightyear, sends AuthMessage after WebSocket connect. Server validates JWT using existing auth::validate_token, spawns player entity only after successful authentication. Includes Go Online button with auth-aware UI states. * fix(gameserver): add TransformPlugin for headless Bevy app MinimalPlugins doesn't include TransformPlugin, causing a panic on StaticTransformOptimizations resource. Required by avian3d physics. * fix(isometric): fix JWT lookup key and allow guest connections Supabase v2 stores session under `supabase.auth.token` key, not `sb-*-auth-token`. Added fallback cursor scan for any auth token key. Button now always clickable — guests connect with empty JWT (server accepts as anonymous when SUPABASE_JWT_SECRET is unset).
nx e2e astro-e2e
Sign in / Sign up
Open main menu
Distributed computation caching and task execution are currently disabled for this organization.
Succeeded
CI Pipeline Execution
nx e2e astro-e2e
Click to copy
Linux
4 CPU cores
read
access token used
64275fa6
7909