2.6 KiB
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::Entityin Entity.h to support 3D transforms (Vector3 Position,Vector3 Scale, and Euler/QuaternionRotation). - Add
bool IsGroundedto the player/entity state. - Link entities to renderable visual mesh IDs (
MeshIDin 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
GameStatestruct (Score, Player Life/Health, Game Status). - Implement fall-out-of-bounds check (e.g.
Z < -10.0fresets 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.