Skip to content

feat(isometric): procedural terrain, physics, and game systems#7763

Merged
h0lybyte merged 7 commits intodevfrom
trunk/isometric-game-1772876582
Mar 8, 2026
Merged

feat(isometric): procedural terrain, physics, and game systems#7763
h0lybyte merged 7 commits intodevfrom
trunk/isometric-game-1772876582

Conversation

@h0lybyte
Copy link
Member

@h0lybyte h0lybyte commented Mar 8, 2026

Summary

  • Scaffold Bevy + React + Tauri isometric game with Bevy 0.18
  • Pixelation post-processing shader with edge detection
  • Scene objects with collision, hover highlights, and occlusion
  • Object registry system with DashMap snapshots and shadow tuning
  • Procedural noise-based terrain with chunked loading/unloading
  • Jump mechanics (Space), gravity, fall damage, and auto-step movement
  • Column-based tile rendering with height bands (grass/dirt/stone/snow)
  • Smooth isometric camera follow system

Test plan

  • cargo check compiles clean
  • cargo tauri dev launches with visible terrain elevation
  • WASD movement follows terrain, auto-steps up 1 unit
  • Space bar jumps, gravity pulls back down
  • Walking off 3+ unit cliff deals fall damage
  • Chunks load/unload as player moves
  • Hover highlights and collision still work on scene objects

h0lybyte added 7 commits March 7, 2026 05:45
Adds a new Diablo-style isometric game at apps/kbve/isometric/ using:
- Bevy 0.15.1 for wgpu rendering (isometric camera, tilemap, player)
- Tauri 2 for desktop shell with custom Bevy-Tauri event bridge
- React 19 + Vite 6 for HUD overlay (health/mana bars, inventory, FPS)
- IPC commands for game state and FPS monitoring
…cons

- Simplify TauriPlugin to builder closure API without wgpu bridge
- Let Bevy create its own native window (Tauri handles IPC only)
- Fix camera with FixedVertical scaling (viewport_height: 20.0)
- Add tonemapping_luts and bevy_winit features to Cargo.toml
- Generate proper app icons from 1024x1024 source via cargo tauri icon
- Add pnpm lockfile and workspace config for frontend deps
- Remove unused PI import from camera.rs
Upgrade from Bevy 0.15.1 to 0.18.1 with all migration changes applied:
- AmbientLight resource split to GlobalAmbientLight
- ScalingMode moved to bevy::camera
- Query::get_single() replaced with Query::single()
- WindowResolution::new takes u32 instead of f32
- wgpu updated to v27, renderer.rs updated for new API

Add pixelation post-processing effect using Bevy 0.18 FullscreenMaterial:
- pixelate.wgsl shader quantizes UVs for retro pixel look
- PixelateSettings component with configurable pixel_size (default 4.0)
- Runs after tonemapping in the Core3d render graph
…endent pixelation

- Add test scene objects (boxes, crystal, pillar, sphere) with animations
- Add AABB collision detection for player movement with wall-sliding
- Add occlusion transparency when player walks behind objects
- Improve shadow visibility with cascade config and offset light angle
- Rewrite pixelation shader to work in UV/logical pixel space for
  consistent rendering across Retina and non-Retina displays
- Add tunable edge_strength and depth_edge_strength uniforms
- Sync window DPI scale_factor into shader each frame
…hots, and shadow tuning

Centralized object management via ObjectRegistry with ObjectKind enum, message-driven spawn/despawn, spatial index, and IPC snapshot. Added mouse hover highlight system with emissive glow boost and wireframe gizmo outlines via MeshPickingPlugin. Replaced Mutex<Option<T>> with DashMap for lock-free concurrent snapshot reads. Tuned ambient/directional lighting and edge detection strength.
… and chunked loading

- Add noise-based terrain generation with height bands (grass/dirt/stone/snow)
- Implement chunked terrain loading/unloading around player position
- Add jump mechanics (Space), gravity, and fall damage
- Terrain-aware movement with auto-step up to 1 unit
- Column-based tile rendering with cap/body differentiation and cliff edge insets
- Camera smooth-follow system for player tracking
- Cylinder collider support for scene objects
- Terrain-relative Y positioning for spawned objects
Keep our isometric game source files, take dev's Cargo.lock version.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@h0lybyte h0lybyte merged commit d3e57f6 into dev Mar 8, 2026
5 checks passed
@h0lybyte h0lybyte deleted the trunk/isometric-game-1772876582 branch March 8, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant