Cross-Engine Concerns

Purpose: Documents core functionality needed to create 3D games like Megabonk with LunyScript, assessing priority and portability across Unity and Godot.

Document Type: Feature Requirements & Portability Risk Assessment

Last Updated: 2025-11-09


Priority & Portability Legend

Priority Levels:

Portability Risk:


1. Input System πŸ”΄ βœ…

Priority: Critical - Core gameplay interaction for Megabonk

Portability Risk: Low (with constraints)

Scope Decision:

Differences:

Challenges:

Impact: With event-driven approach and minimal polling, portability is manageable

Mitigation:


2. Physics & Collision πŸ”΄ ❌

Priority: Critical - Character movement, collision detection

Portability Risk: High

Differences:

Challenges:

Impact: Core gameplay mechanics behave differently (jumping, collision responses)

Mitigation:


3. Object Lifecycle & Scene Management πŸ”΄ ⚠️

Priority: Critical - Spawning, destroying, parenting objects

Portability Risk: Medium

Differences:

Challenges:

Impact: Scripts may run on destroyed objects or miss cleanup

Mitigation:


4. Transform & Hierarchy πŸ”΄ βœ…

Priority: Critical - Positioning, rotation, scaling, parenting

Portability Risk: Low

Differences:

Challenges:

Impact: Negligible for typical game scenarios

Mitigation:


5. Rendering & Materials 🟑 ❌

Priority: High - Visual appearance, shaders, lighting

Portability Risk: High

Differences:

Challenges:

Impact: Games look visually different between engines

Mitigation:


6. Audio πŸ”΄ βœ…

Priority: Critical - Sound effects, music

Portability Risk: Low

Differences:

Challenges:

Impact: Minor volume/spatial differences

Mitigation:


7. Animation 🟑 ⚠️

Priority: High - Character animation, transitions

Portability Risk: Medium

Differences:

Challenges:

Impact: Animation transitions may feel different

Mitigation:


8. Asset Loading πŸ”΄ ⚠️

Priority: Critical - Load models, textures, sounds at runtime

Portability Risk: Medium

Differences:

Challenges:

Impact: Can’t share asset bundles/packages between engines

Mitigation:


9. Camera Control πŸ”΄ βœ…

Priority: Critical - Player perspective, camera following

Portability Risk: Low

Differences:

Challenges:

Impact: Minimal for basic camera control

Mitigation:


10. UI System 🟑 ❌

Priority: High - HUD, menus, health bars

Portability Risk: High

Differences:

Challenges:

Impact: UI cannot be shared between engines

Mitigation:


11. Particle Systems 🟒 ❌

Priority: Medium - VFX, explosions, trails

Portability Risk: High

Differences:

Challenges:

Impact: VFX must be recreated per-engine

Mitigation:


12. Pathfinding & Navigation 🟑 ⚠️

Priority: High - AI movement, NavMesh

Portability Risk: Medium

Differences:

Challenges:

Impact: AI pathing may differ slightly

Mitigation:


13. Raycasting & Spatial Queries πŸ”΄ ⚠️

Priority: Critical - Line-of-sight, hit detection, object queries

Portability Risk: Medium

Differences:

Challenges:

Impact: Gameplay queries may return different results

Mitigation:


14. Coroutines & Async πŸ”΄ βœ…

Priority: Critical - Time-based logic, sequences

Portability Risk: Low

Differences:

Challenges:

Impact: Minimal - both support time-based delays

Mitigation:


15. Time & Frame Rate πŸ”΄ ⚠️

Priority: Critical - Delta time, frame counting

Portability Risk: Medium

Differences:

Challenges:

Impact: Frame-dependent logic may diverge

Mitigation:


16. Triggers & Events πŸ”΄ ⚠️

Priority: Critical - Collision triggers, overlaps

Portability Risk: Medium

Differences:

Challenges:

Impact: Trigger-based gameplay logic may differ

Mitigation:


17. Tags & Layers πŸ”΄ βœ…

Priority: Critical - Object classification, filtering

Portability Risk: Low

Differences:

Challenges:

Impact: Minimal - both support classification

Mitigation:


18. Scripting Lifecycle Hooks πŸ”΄ ⚠️

Priority: Critical - Initialization, update loops, cleanup

Portability Risk: Medium

Differences:

Challenges:

Impact: Initialization order bugs

Mitigation:


19. Serialization & Save Games 🟑 ❌

Priority: High - Game state persistence

Portability Risk: High

Differences:

Challenges:

Impact: Save files not portable between engines

Mitigation:


20. Network & Multiplayer 🟒 ❌

Priority: Medium - Future feature

Portability Risk: High

Differences:

Challenges:

Impact: Multiplayer code cannot be shared

Mitigation:


Summary: Critical Path for Megabonk

Must Have (MVP):

  1. Input System (βœ… Low risk - with event-driven approach)
  2. Physics & Collision (❌ High risk - biggest challenge)
  3. Object Lifecycle (⚠️ Medium risk)
  4. Transform & Hierarchy (βœ… Low risk)
  5. Audio (βœ… Low risk)
  6. Asset Loading (⚠️ Medium risk)
  7. Camera Control (βœ… Low risk)
  8. Raycasting & Queries (⚠️ Medium risk)
  9. Coroutines (βœ… Low risk)
  10. Time & Frame Rate (⚠️ Medium risk)
  11. Triggers & Events (⚠️ Medium risk)
  12. Tags & Layers (βœ… Low risk)
  13. Scripting Lifecycle (⚠️ Medium risk)

Important but Not MVP:

Future:


Key Portability Insights

Low-Hanging Fruit (βœ…):

Core Challenges (⚠️):

Accept Incompatibility (❌):