HEXUN.ZHANG

ChickBoy

Game Engine DevelopmentAgile Game DevelopmentObject Oriented Programming

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.

Toolsvscode
TechC++, GLSL, SDL, SDL_mixer
Timeline2024 July 10th - 30th
Scroll to discover

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

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

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

Game Loop

Level System

Level System

Input Handling

Input Handling

Rendering System

Rendering System

UML Class Diagram

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

Used for graphics rendering, input handling, and window management.

SDL_mixer

Managed sound effects and background music efficiently.

GLSL

Used to create shaders for visual effects like water reflections and lighting.

nlohmann JSON

Used to manage level data allowing configurations in external JSON files.

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

Project Outcome

Future Improvements

Expanded Content

More levels, diverse enemies, and complex puzzles to enhance gameplay depth.

Refined AI

More dynamic and reactive enemies, potentially with cooperative behaviors.

Physics

Upgrading from AABB to SAT for more precise collision detection.

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.

assetassetassetassetassetasset

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