Technical Design - abhinavk0714/csce552-3d-game GitHub Wiki

Game Engine, Platform, Other Software

  • Engine: Godot
  • Platform: PC (Windows 10+)
  • Other Tools: Blender (for modeling and rigging), Audacity (for audio editing), UltraBox (for music making), Krita or Photoshop (for textures and UI assets).

Scene State Diagram


Game Object / Component Diagrams

552 3D Game Object_Component Diagram


Game Object List

Player

(Prefab)

Description
Contains a ball to roll upon and a frog character to "move" it. The ball rolls according to platform orientation, and the frog responds to the ball’s movement with animations to remain balanced.

Tags
Player

Required Components

  • Transform
  • RigidBody
  • Collider
  • Mesh Renderer
  • PlayerController
  • Animation Controller

Related Game Objects

  • Parent: n/a
  • Children: Frog Rig
  • Associations: Platforms, Goal Button, Walls

Comments
This is the main controllable object. The ball’s rotation dictates Aro’s animation and motion.


Platform (Biaxial)

(Prefab)

Description
A controllable platform that can tilt along both pitch and roll axes. The player uses keyboard input to change its orientation, influencing the ball’s gravity direction.

Tags
Platform

Required Components

  • Transform
  • PlatformController (Biaxial)
  • Mesh Renderer
  • Collider

Related Game Objects

  • Parent: Level
  • Children: Walls, Buttons
  • Associations: Player

Comments
Used in levels with full control mechanics.


Platform (Uniaxial)

(Prefab)

Description
A platform that rotates along one axis (either pitch or roll).

Tags
Platform

Required Components

  • Transform
  • PlatformController (Uniaxial)
  • Mesh Renderer
  • Collider

Related Game Objects

  • Parent: Level
  • Children: Walls, Buttons
  • Associations: Player

Comments
Used in stages that limit control for added challenge.


Platform (Static)

(Prefab)

Description
A static platform with no player control. It maintains a fixed angle or relies on player momentum from previous platforms.

Tags
Platform

Required Components

  • Transform
  • Mesh Renderer
  • Collider

Related Game Objects

  • Parent: Level
  • Associations: Player

Comments
Used for transitions, obstacles, or resting areas.


Walls

(Prefab)

Description
Attached structures that restrict player movement across specific areas of a platform.

Tags
Obstacle

Required Components

  • Transform
  • Collider
  • Mesh Renderer

Related Game Objects

  • Parent: Platform
  • Associations: Player

Comments
Prevent Aro’s ball from falling off the platform or entering restricted areas.


Button

(Prefab)

Description
An interactive button that broadcasts a signal when pressed. Can trigger events such as removing barriers or revealing hidden coins.

Tags
Trigger

Required Components

  • Transform
  • Collider (Trigger)
  • ButtonInteraction

Related Game Objects

  • Parent: Platform
  • Associations: Barrier, Game Manager

Comments
Pressed using the rolling ball.


Barrier

(Prefab)

Description
A large wall or gate placed between platforms. Can be toggled on/off via interaction with buttons.

Tags
Obstacle

Required Components

  • Transform
  • Collider
  • Mesh Renderer
  • BarrierToggle

Related Game Objects

  • Parent: Level
  • Associations: Button

Comments
Controls access to different sections of a stage.


Goal Button

(Prefab)

Description
Final button that ends the level when pressed.

Tags
Goal

Required Components

  • Transform
  • Collider (Trigger)
  • GoalTrigger

Related Game Objects

  • Parent: Platform
  • Associations: Game Manager

Comments
Transitions to the next level or win screen.


Spring

(Prefab)

Description
A mechanical platform object that propels the player’s ball in the direction it is facing when activated. Used to help Aro reach higher or distant platforms and add momentum-based puzzle elements.

Tags
Propulsion

Required Components

  • Transform
  • Collider (Trigger)
  • Mesh Renderer
  • SpringBehavior

Related Game Objects

  • Parent: Level
  • Children: n/a
  • Associations: Player, Platform

Comments
Can be angled to control launch direction and force. Plays an animation or sound effect when triggered.


Component List and Flowcharts

PlayerController

Description
Handles input from the player to tilt the platform along pitch and roll axes. Communicates directly with the platform’s transform to simulate gravity movement.

Requirements

  • Platform Game Object

Provided by Engine
No (custom script).

Comments
Core mechanic linking user input to Aro’s motion.


GoalTrigger

Description
Handles completion conditions and transitions to the next level or win menu.

Requirements

  • Game Manager reference

Provided by Engine
No (custom script).

Comments
Used at the end of each stage to manage progression.


SpringBehavior

Description
Applies a directional impulse to the player’s ball when contact is detected. The spring propels the player in the direction it is facing, allowing for vertical or angled launches between platforms. The launch strength and angle can be adjusted per spring instance for level design variety.

Requirements

  • Spring Game Object
  • Collider (Trigger)
  • Player RigidBody reference

Provided by Engine
No (custom script).

Comments
Used to introduce momentum-based puzzle challenges and vertical navigation. Can trigger a sound or animation when activated.


PauseGame

Description
Interacts with the Time Manager to control the game’s pause state. When the player pauses the game, the component sets the time scale to 0, effectively stopping the game loop. Unpausing resets the time scale to 1. It also enables or disables a GUI Pause Menu, allowing the player to either resume or return to the Main Menu.

Requirements

  • GUI Label
  • Canvas (for Pause Menu display)

Provided by Engine
No (custom script).

Comments
Coordinates with the Canvas and GUI Labels to display and manage the pause menu interface.


Transform

(Provided)

Description
Contains position, rotation, and scale data for a Game Object. Used by virtually every object in the scene.

Requirements
n/a

Provided by Engine
Yes

Comments
Fundamental engine component used for spatial data and hierarchical transforms.


RigidBody3D

(Provided)

Description
Provides physics-driven movement: mass, velocity, forces and impulses for 3D objects. Used for the rolling ball and physics-driven props.

Requirements

  • Transform
  • CollisionShape / Collider

Provided by Engine
Yes

Comments
Useful for objects that react to physics (ball, movable debris).


CollisionShape / Collider

(Provided)

Description
Geometry used for collision detection (boxes, spheres, capsules, meshes). Works with physics bodies and triggers.

Requirements

  • Transform

Provided by Engine
Yes

Comments
Essential for detecting interactions like coin pickup, button press, barrier hits.


MeshRenderer / MeshInstance

(Provided)

Description
Renders 3D geometry (meshes) in the scene and holds material assignments.

Requirements

  • Mesh asset
  • Transform

Provided by Engine
Yes

Comments
Used for all visible 3D models (platforms, walls, springs, coins).


AnimationPlayer / Animator

(Provided)

Description
Plays and blends animations for characters and objects (Aro’s rig, animated buttons, springs).

Requirements

  • Animation clips
  • Transform

Provided by Engine
Yes

Comments
Used for Aro’s animations and small object animations (button press, spring bounce).


Camera

(Provided)

Description
Renders a view of the world; can be set to isometric perspective and follow player/platform.

Requirements

  • Transform

Provided by Engine
Yes

Comments
Will implement camera panning/follow and zoom behaviors.


AudioSource / AudioStreamPlayer3D

(Provided)

Description
Plays spatialized sound effects and music tied to scene objects.

Requirements

  • Audio Clip / Stream

Provided by Engine
Yes

Comments
Used for roll SFX, plonk SFX, button presses, ambient audio.


AudioListener

(Provided)

Description
Represents the audio receiving point (the “ear”) in the scene; combines audio sources into final output.

Requirements
n/a

Provided by Engine
Yes

Comments
Typically attached to the main Camera or player object. Only one active per scene.


Canvas / UIRoot

(Provided)

Description
Root for 2D UI elements (HUD and menus). Hosts UI controls and layouts.

Requirements

  • Camera or render target (depending on implementation)

Provided by Engine
Yes

Comments
Contains the HUD (timer, coins, level), pause menu, and main menu elements.


Control (GUI Label / Text)

(Provided)

Description
Displays text in UI (timer, score, notifications).

Requirements

  • Canvas

Provided by Engine
Yes

Comments
Used for all textual displays in HUD and menus.


Control (GUI Button / Clickable)

(Provided)

Description
UI button that responds to pointer/click events and triggers actions.

Requirements

  • OnClick callback

Provided by Engine
Yes

Comments
Used in Menu, Pause, Settings, and in-game UI.


Light

(Provided)

Description
Scene lighting (Directional, Point, Spot) to illuminate 3D models and set mood.

Requirements

  • Transform

Provided by Engine
Yes

Comments
Used to enhance the “fragments of the sky” atmosphere and readability.


ParticleSystem / VFXEmitter

(Provided)

Description
Emits particle effects such as sparkles, dust, or coin glows for visual feedback.

Requirements

  • Particle asset / emitter settings

Provided by Engine
Yes

Comments
Useful for coin collect FX, goal activation glow, spring burst.


PhysicsMaterial

(Provided)

Description
Defines surface friction and bounciness for colliders.

Requirements

  • Collider / PhysicsBody

Provided by Engine
Yes

Comments
Tune ball roll friction and bounce for different platforms.


CameraFollow

Description
Script to smoothly pan/zoom the camera to follow the ball and keep the playfield readable.

Requirements

  • Camera
  • Player (ball) Transform reference

Provided by Engine
No (custom script).

Comments
Handles clamping, smoothing, and isometric offset to maintain visibility.


PlayerBallController

Description
Monitors ball state and translates physics feedback into Aro’s animations (syncs rig to rolling movement). Also handles special interactions with springs and goal.

Requirements

  • RigidBody3D (ball)
  • AnimationPlayer (Aro)
  • Collider

Provided by Engine
No (custom script).

Comments
Bridges physics and character visuals; may also expose API for temporary invulnerability after launch.


PlatformController

Description
Receives player input and applies rotation/constraints to platform transforms based on platform type (biaxial/uniaxial/static).

Requirements

  • Transform
  • Input system

Provided by Engine
No (custom script).

Comments
Includes max-angle limits, speed, and locked-axis logic per platform instance.


ButtonInteraction

Description
Detects ball overlap with buttons, sends signals to linked components (BarrierToggle, CoinReveal, Goal activation).

Requirements

  • Collider (Trigger)
  • Event system or callback references

Provided by Engine
No (custom script).

Comments
Simple, reusable trigger for level interactions.


BarrierToggle

Description
Listens for button signals and toggles barrier collision/visibility states.

Requirements

  • Barrier Game Object reference
  • ButtonInteraction events

Provided by Engine
No (custom script).

Comments
Used to gate level progression and create dynamic puzzles.


CoinCollectible

Description
Handles spinning coin behavior, collision detection, and HUD increment.

Requirements

  • Collider (Trigger)
  • HUD reference

Provided by Engine
No (custom script).

Comments
Destroys or deactivates after collection and triggers SFX/particles.


GameManager

Description
Central authority tracking level state, coin counts, timer, lives, and transitions (win/lose/next level).

Requirements

  • References to HUD, Player, Level objects, AudioManager

Provided by Engine
No (custom script).

Comments
Single instance per run; persists data and coordinates scene transitions.


AudioManager

Description
Centralizes audio playback, volume control, and audio pooling for SFX and music.

Requirements

  • AudioSource nodes or pooling system
  • AudioClip assets

Provided by Engine
No (custom script).

Comments
Makes it easier to play sounds without scattering AudioSource nodes.


UIManager

Description
Manages HUD updates, menu toggles (pause/resume), and screen messages. Bridges GameManager <-> Canvas UI elements.

Requirements

  • Canvas / UI controls references
  • GameManager reference

Provided by Engine
No (custom script).

Comments
Handles localization hooks and UI transitions if needed.


SaveLoadSystem

Description
Saves player progress, high scores, and settings (audio levels, control bindings).

Requirements

  • File I/O or engine persistence API

Provided by Engine
No (custom script).

Comments
Optional but useful for retaining progress and scores.