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 RepositoryMy 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:
AwakePreUpdateUpdatePostUpdateCleanUp
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.”