Skip to main content
Spooky Skeleton

Spooky Skeleton

·280 words·2 mins

Overview
#

Spooky Skeleton is a 2D platformer developed using C++ and SDL. The game features a skeleton protagonist who must traverse two spooky-themed levels: an underground cave and the forested area outside it.

GitHub Repository


My Individual Contribution
#

  • Player movement system (including jump logic and custom “sliding on ice” acceleration).
  • Ground enemy behavior.
  • A* Pathfinding implementation for enemies.
  • Map and animation loading using the Tiled (.tmx) format.
  • UI system implementation, fully data-driven and loaded from XML.

About the Game
#

Objective
Reach the end of each level while avoiding or defeating enemies and collecting all the coins.

Controls

  • SPACE – Jump
  • LEFT / RIGHT ARROWS – Move
  • Q – Attack
  • ESC – Open menu

Highlights & Features
#

❄️ Ice Platform Mechanic
#

Ice tiles reduce friction, making the player slide. This required adjustments to the acceleration and deceleration logic.

🧟‍♂️ Enemies & Combat
#

The player can attack zombies and defeat them.

🧩 Data-Driven UI
#

All UI elements are parsed from XML files, allowing flexible layout changes without modifying the source code.


Core Subsystems
#

The game is structured around a modular architecture.
The main application module (j1App.cpp) manages the lifecycle of all other modules by calling shared base class methods:

  • Awake
  • PreUpdate
  • Update
  • PostUpdate
  • CleanUp

Entity Factory
#

A factory pattern is used to create and manage all in-game entities, improving both organization and performance.

UI Module
#

The UI system is fully decoupled from gameplay logic.
It handles events independently, allowing clean separation between interface and core systems.

XML-Driven Data
#

Maps, animations, textures, file paths, and UI data are loaded from XML.
This improves readability, makes iteration easier, and avoids hard-coded “magic numbers.”