Back Index Next
Input/Output Index Debugging

This is my main overview for the H.E.I.S.T. EXE game.

You can play the game here:

You can view documentation of our lessons here:

Class Overview

Here is a breakdown of how each object fits into the engine's class hierarchy:

Game Object Class Role
Player Player extends Character Player-controlled character
Guard Guard extends Character "Enemy" NPC with reaction logic
Barrier Barrier extends GameObject Collision boundaries

CS111 Requirements

Click any section to expand and learn more.

Object-Oriented Programming

Inheritance `GameObject → Character → Player/Guard`

Writing Classes Custom subclasses like `Player` and `Guard`

Method Overriding Custom `update()`, `draw()`, `handleCollision()`

Constructor Chaining `super(data, gameEnv)` ensures engine initialization

Control Structures

Iteration `forEach` loops in update + cleanup

Conditionals Collision checks, AI decisions, state transitions

Nested Conditions NPC type → proximity → inventory (3 layers)

Data Types

Numbers `x`, `y`, `velocity`, `score`

Strings Names, sprite paths, game states

Booleans `isPaused`, `isJumping`, `isVulnerable`

Arrays `gameObjects[]`, level arrays

JSON Objects NPC config + GameLevel setup

Operators

Math Ops `+=`, `*`, `Math.pow()`

String Ops Template literals for sprite paths

Boolean Expressions `&&`, `||`, `!`

Input / Output

Canvas Rendering `draw()` via `requestAnimationFrame`

Keyboard Events `keydown` / `keyup` for movement

GameEnv Config Object literal world configuration

Software Engineering Practices

Single Responsibility Each method handles one behavior

Data-Driven Design GameBuilder uses Object Literals

Instantiation Level config spawns all objects

Documentation Inline comments everywhere

Testing Objects validated before merge

SDLC Practices Kanban, feature branches, selective PRs