ChickBoy
ChickBoy is a 2D platformer game inspired by souls-like games. The game was developed using SDL for graphics and Visual Studio as the development environment. It features dynamic platforming elements, immersive combat, and diverse enemy AI, emphasizing tight controls and challenging yet rewarding gameplay. Additionally, the project served as an opportunity to expand my technical proficiency in C++ development, focusing on game programming patterns and real-time rendering.
Key Features
Souls-Like Combat
Engaging enemy AI, dodge mechanics, and a short range attack system make for challenging yet rewarding combat.
Platforming Mechanics
Double-jump, wall-sliding, and dashing to navigate complex environments.
Interactive World
Gates, switches, and environmental shift are dynamically linked with player progress.
Art Style
Sprite-based visual elements with dynamic visual and audio effects provide a vivid game world.
Levels
The game includes four distinct levels, including the starting page level, providing a structured progression of difficulty and complexity.
Control
The game supports both keyboard and play station 5 dualsense controller as input.
Prototype and Design
Prototype Overview
The initial prototype of ChickBoy was focused on establishing the core movement and combat mechanics. The goal was to create a playable framework that allowed for rapid iteration on the game's core features. The prototype included basic platforming elements such as jumping, dashing, and collision detection, as well as basic combat interactions with enemy placeholders. This foundation enabled early testing of the feel of movement and combat, allowing adjustments to be made to create a fluid and responsive experience.
Early Concepts
The concept behind ChickBoy was to combine the challenging elements of souls-like combat with the precision of a platformer. Early iterations focused on creating engaging levels that encouraged exploration and rewarded skillful navigation. The levels were designed to include environmental shifts, enemy placements, and dynamic elements such as gates and switches, which were incorporated to make each level progressively more challenging.
Target Audience
The game targets players who enjoy fast-paced, challenging platformers with a focus on combat. Fans of souls-like difficulty, precise platforming, and rich game environments will appreciate ChickBoy.
Visual Concept

Audio Design
The audio design of ChickBoy uses assets from Hollow Knight sound effects and NieR: Automata background music to evoke a sense of mystery and tension. Hollow Knight's sharp, organic sound effects add a tactile quality to interactions, while NieR: Automata's evocative music creates a sense of grandeur.
In game, actions trigger randomized or alternating sound effects, and different combination of interactions produce unique audio feedback. Background music dynamically fades in and out as the player approaches or moves away from level gates. There are total of 49 sound effects and 3 background music in the game.
Level Design

Gameplay Iterations
Throughout the prototyping phase, several iterations were made to refine the gameplay mechanics. Platforming abilities, such as double-jump and wall-sliding, were tuned for responsiveness and flow. Combat, especially attack collision and hit-back effects, was adjusted based on player feedback to ensure a fluid and intuitive experience. This iterative approach was essential in balancing the difficulty and ensuring that both platforming and combat felt rewarding without being overly punishing.
Technical Architecture
The technical architecture of ChickBoy follows a modular approach, allowing for clear separation of core gameplay, rendering, and user input. The architecture is organized into several key modules, each handling specific game functionalities, which improves maintainability and scalability.
Key Logic Flows
Game Loop

Level System

Input Handling

Rendering System

UML Class Diagram

Technical Details
Programming Language
C++ was used as the primary programming language for ChickBoy. The decision to use C++ was based on its efficiency for performance-critical applications like games, as well as its suitability for low-level manipulation of game assets and memory management.
Libraries and Frameworks
SDL
SDL_mixer
GLSL
nlohmann JSON
Collision Detection
- Data Structure: Custom structs for hitboxes storing position and dimensions.
- AABB: Axis-Aligned Bounding Box collision detection for simplicity and performance.
- Types: Separate logic for character-environment, character-object, and dynamic enemy interactions.
Hitbox Visual Debug Mode
Enemy AI
Implemented using Finite State Machines (FSM), with states like patrolling, chasing, and attacking.
Patrolling
Fixed pattern movement to obstruct paths.
Chasing
Simple algorithms to navigate towards player.
Boss Logic
Dynamic behavior based on distance and health.
Playtesting
Playtesting was conducted throughout the development cycle to ensure that ChickBoy provided a challenging yet enjoyable experience. The goal was to identify pain points, areas of confusion, and any unintended behaviors.
For example, in the third level playtest, many players found it difficult to control the attack direction using movement inputs. To address this, a dynamic targeting system was implemented, allowing the player's attack direction to automatically adjust toward the closest hittable enemy.
Results and Takeaways
Future Improvements
Expanded Content
Refined AI
Physics
Credit: Art and Sound
Character, item, and map assets for ChickBoy were sourced from Penusbmic on itch.io. Their unique artistic style contributed significantly to the game's visual appeal.






Sound effects from Hollow Knight and music from NieR: Automata.