Files
Juliet/todo.md
T

2.6 KiB

Juliet Engine: 3D Platformer Todo List

This TODO list outlines the tasks required to build a simple 3D platformer game in the Juliet Engine.

[ ] 1. Gameplay Entities & Transform System (3D Integration)

  • Extend Game::Entity in Entity.h to support 3D transforms (Vector3 Position, Vector3 Scale, and Euler/Quaternion Rotation).
  • Add bool IsGrounded to the player/entity state.
  • Link entities to renderable visual mesh IDs (MeshID in the graphics system).
  • Define helper function to set/update visual transforms based on entity state.

[ ] 2. Physics & 3D Bounding Box (Collision System)

  • Define AABB (Axis-Aligned Bounding Box) struct.
  • Implement constant downward gravity acceleration applied to player velocity.
  • Implement AABB vs AABB collision detection.
  • Implement collision resolution: push-back along the shortest axis of separation, resetting vertical velocity when grounded or hitting ceilings, and allowing sliding along walls.

[ ] 3. Player Control & Locomotion

  • Calculate camera-relative movement vectors based on player's yaw.
  • Map movement input keys (W, A, S, D) to player horizontal velocity with smooth acceleration and friction.
  • Map jump input (Space) to apply upward vertical impulse, allowed only when player is grounded.

[ ] 4. Third-Person Follow Camera System

  • Implement follow camera logic orbiting the player entity.
  • Handle mouse delta to update camera pitch/yaw orbit angles.
  • Implement view matrix computation targeting the player's position.

[ ] 5. Level Setup & Collision Mapping

  • Implement static platform mesh spawner (e.g. ground floor, raised blocks, gaps).
  • Map platform meshes to static colliders in the physics update list.

[ ] 6. Game Loop Update Hook

  • Implement an entity update tick UpdateEntities(float deltaTime) in game.cpp.
  • Integrate input, physics step, collision checks/resolution, and visual sync into the tick.

[ ] 7. Gameplay Rules & State Management

  • Define GameState struct (Score, Player Life/Health, Game Status).
  • Implement fall-out-of-bounds check (e.g. Z < -10.0f resets player to spawn/checkpoint).
  • Implement collectibles (coins) with overlap triggers that update score and deactivate themselves.
  • Implement level-end goal flag/portal trigger.

[ ] 8. UI Overlay (HUD)

  • Render a gameplay overlay using ImGui showing score, time elapsed, status, and control instructions.