1 minute read

Binding of Shiba is a charming 2D pixel art dungeon crawler where players help a loveable Shiba Inu ““spread happiness””. In this game, Shiba explores procedurally generated levels, shooting hearts at enemies (better known as potential new friends). Shiba’s mission? To turn every foe into a friend, one heart at a time!

Gameplay

In the game, you control Shiba using WASD to move and the arrow keys to shoot hearts. As both the player and enemies move with speed and acceleration, precise aiming becomes a challenging but fun mechanic. Along the way, some paths are blocked by obstacles, which Shiba must cleverly navigate. Defeating enemies rewards you with keys, allowing you to unlock new areas of the dungeon.

Features:

  • Heart-based combat: Instead of conventional weapons, Shiba shoots hearts to make enemies friendly.
  • Procedural levels: Every playthrough is unique thanks to randomly generated dungeon layouts.
  • HUD display: Keep an eye on your health while fending off foes.
  • Menus: The game includes simple menus to start or end your gameplay.

Design & Patterns

Binding of Shiba employs several design patterns to ensure a clean and maintainable codebase. Some of them are:

  • Model-View-Controller (MVC): This pattern separates the game logic (Model), game controls (Controller), and screen rendering (View), making it easier to test and expand the game with new features.
  • Facade Pattern: Lanterna, the framework used for text-based interfaces, is integrated using a facade. This allowed us to only expose necessary functionality and simplify interactions with Lanterna’s API, while minimizing the impact of future updates.
  • Observer Pattern: This pattern allows us to notify the interested parties of important events, such as, in our case, collisions and attacks. The notified classes will then know what to do upon receiving an update.
  • State Pattern: The game uses a state machine to handle different phases like the main menu and in-game logic, making it easier to expand and modify states (e.g., adding a shop or additional levels).
  • Builder Pattern: The graphical and textual elements (e.g., Shiba, enemies, health bar) are built using the Builder pattern, which constructs complex objects in a clear and modular way.
  • Various others…

Want to know more? Click here

Team:

  • André Lima (Programmer)
  • Guilherme Almeida (Programmer)
  • Mariana Lobão (Programmer)