Commit Graph

9 Commits

Author SHA1 Message Date
37128d8fbd Update gameplay mechanics, asteroid model, and star base physics
All checks were successful
Build / build (push) Successful in 1m18s
- Switch to asteroid4.glb model with updated material handling
- Adjust difficulty parameters: increased spawn distances (220-450m range), updated force multipliers, varied asteroid sizes
- Fix scoreboard timer display (was showing frames instead of actual seconds)
- Refactor star base to use asset container with mesh merging for better performance
- Change star base physics from STATIC to ANIMATED with collision detection enabled
- Add directional lighting in level deserializer for improved scene lighting
- Clean up commented code and optimize debug logging
- Update base.glb 3D model

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 12:26:25 -06:00
3e36662031 Refactor start base to use GLB model instead of procedural geometry
All checks were successful
Build / build (push) Successful in 1m20s
- Create buildStarBase function in src/starBase.ts
- Load base.glb model asynchronously with SceneLoader
- Extract child mesh from imported model similar to ship implementation
- Pass position parameter to buildStarBase function
- Update levelDeserializer to call buildStarBase instead of creating cylinder
- Add static physics body with MESH shape for proper collision
- Add debug logging for base mesh loading and bounds
- Remove inline cylinder creation code from createStartBase

The start base now uses a proper 3D model instead of a simple cylinder,
providing better visual quality and more accurate collision detection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 15:59:46 -05:00
b4608e10d8 Add centralized debug logging system with settings UI control
All checks were successful
Build / build (push) Successful in 1m16s
- Create debugLog wrapper function in src/debug.ts
- Add debug checkbox to settings screen UI
- Replace all console.log statements with debugLog calls (153 replacements)
- Add debug flag to GameConfig with localStorage persistence
- Fix GameConfig to properly load and reset debug setting
- Preserve console.error and console.warn calls unchanged
- Add Developer section to settings screen with debug toggle
- Enable/disable all debug logging via settings UI checkbox

Debug logging can now be controlled from Settings > Developer section,
reducing console noise in production while maintaining full debugging
capability during development.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 14:44:09 -05:00
cb96b4ea6c Refactor sight to crosshair reticle and rename starfield to rockFactory
Some checks failed
Build / build (push) Failing after 19s
Created new Sight class:
- Crosshair design with circle, lines, and center dot
- Configurable radius, line length, thickness, and colors
- Green reticle color (traditional gun sight)
- Center gap and proper rendering group
- Dispose method for cleanup

Refactored Ship class:
- Replaced disc sight with new Sight class
- Changed ammo mesh to IcoSphere for better performance
- Added dispose method to clean up sight resources
- Integrated sight with configuration options

Renamed starfield.ts to rockFactory.ts:
- Better reflects the class purpose (RockFactory)
- Updated all imports across codebase
- Updated CLAUDE.md documentation

Updated asteroid model:
- Changed from asteroid2.glb to asteroid3.glb
- Added new asteroid3.blend and asteroid3.glb assets

Fixed background stars material:
- Added proper material type casting for StandardMaterial
- Fixed emissiveColor setting

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 10:21:27 -05:00
181a427875 Add GameConfig system with texture quality levels and physics toggle
Some checks failed
Build / build (push) Failing after 18s
Created GameConfig singleton class with localStorage persistence for game settings:
- Texture quality levels: WIREFRAME, SIMPLE_MATERIAL, FULL_TEXTURE, PBR_TEXTURE
- Physics enable/disable toggle for performance optimization

Created MaterialFactory for quality-level-based material generation:
- Planet materials with dynamic sun-oriented lightmaps
- Asteroid materials preserving GLB bump textures
- Sun materials with procedural fire textures

Integrated GameConfig throughout game entities:
- Conditional physics creation in asteroids, ship, start base
- Material creation respects texture quality settings
- Physics constraints only applied when physics enabled

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 08:53:11 -05:00
03f170e150 Create mesh-based physics for ship and optimize planet geometry
Some checks failed
Build / build (push) Failing after 18s
- Update Ship class to use CONVEX_HULL physics from ship1.glb
  - Find geometry mesh from loaded GLB and create physics from it
  - Move physics creation to initialize() after mesh loads
  - Add fallback to BOX shape if mesh not found

- Fix ship position setter for async initialization
  - Add null check for physics body
  - Set transform position directly if body doesn't exist yet
  - Prevents crash when position set before mesh loads

- Optimize planet vertex count for performance
  - Reduce sphere segments from 32 to 12
  - ~144 vertices vs ~1024 vertices per planet
  - Planets are background objects, lower poly acceptable

- Update ship1.glb model

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 08:22:21 -05:00
a9054c2389 Add procedural lightmap system for planets and asteroids
Some checks failed
Build / build (push) Failing after 19s
- Create sphereLightmap.ts for procedural lighting generation
- Update planets to use lightmaps oriented toward sun
- Switch asteroids to PBR material with noise texture
- Use sphere physics shape for asteroids

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 17:30:02 -05:00
56488edd0b Fix scoreboard, improve asteroid distribution, and eliminate code duplication
Some checks failed
Build / build (push) Failing after 19s
- Fix scoreboard remaining count initialization
  - Add setRemainingCount() method to Scoreboard class
  - Initialize count once with total asteroids in Level1
  - Remove incorrect per-asteroid notifications from deserializer

- Distribute asteroids evenly around base in circular pattern
  - Calculate positions using angle: (i / total) * 2π
  - Add small random variation (±0.15 radians) for natural spacing
  - Set tangential velocities for orbital motion
  - Apply to both LevelGenerator and CustomLevelGenerator

- Eliminate code duplication in level generation
  - Convert LevelGenerator static constants to public instance properties
  - Remove ~130 lines of duplicated code from CustomLevelGenerator
  - CustomLevelGenerator now just inherits from base class
  - Net reduction: 99 lines of code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 08:44:55 -05:00
12710b9a5c Add JSON-based level editor with localStorage persistence
Some checks failed
Build / build (push) Failing after 22s
- Create comprehensive level editor UI with real-time configuration
- Implement JSON schema validation for level configurations
- Add client-side routing for game/editor views
- Support manual JSON editing with validation feedback
- Auto-generate 4 default levels on first load
- Replace hardcoded difficulty presets with dynamic level system
- Add level serializer/deserializer for import/export workflow
- Enhance responsive design with high-contrast styling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 08:24:55 -05:00