What is this?

Horde is an action-puzzle game for the Game Boy Color programmed in C using GBDK-2020.

The game play is inspired by Panel de Pon/Tetris Attack and Pokémon Puzzle League.  The objective in these types of games is to clear tiles from the playfield by arranging them in horizontal or vertical lines of three or more tiles.  A continuous stream of new tiles pushes up from the bottom of the playfield, causing the entire playfield to rise continuously.  If the tiles reach the top of the playfield, the player loses. 


Horde adds some unique mechanics.  In addition to matching tiles to clear them, individual tiles can be cleared by attacking them.  But monster-tiles will hurt the player when attacked.   If the player's health reaches zero, the player loses.   The player wins by defeating the boss.  Bosses can be hurt by matching or attacking sword-tiles.  Potion and bomb-tiles will also spawn to help the player.  Defeating bosses can unlock abilities.  For example, the cleave ability can clear an entire row of tiles.  Defeating bosses also provides gold, which can be spent on items to further increase the player's power.

How to Play

The game can be played in your web browser (campaign progress does not save in the browser version).  And the ROM file is provided below, which can be played in an emulator; the MiSTer; on one of the many emulation handhelds; or on original hardware, the Mod Retro Chromatic, the Analogue Pocket, or the FunnyPlaying GBC using a flash cart like the Everdrive.


Web Controls

Game Boy:
Keyboard:
Directional Pad
Arrow Keys  ←↑→↓
Start
Enter
SelectShift
B ButtonALT
A Button
CTRL

Feedback

The game remains in development.  Please provide any feedback, and report any bugs or issues, in the comments below.

Updated 2 days ago
StatusIn development
PlatformsHTML5
Authorgbswl
GenrePuzzle, Action
TagsGame Boy, Game Boy ROM, Homebrew

Download

Download
Horde 1.2.gbc 128 kB

Development log

Comments

Log in with itch.io to leave a comment.

(+1)

We are looking forward for updates :) Keep up coding.

Same! Enjoying the strategy and mechanics of it. I got sucked and think I just spent 15 min playing. :)

If you have questions about bank switching feel free to ask in the gbdev forums or gbdk discord.

Thank you.  You helped me solve a major crash bug in discord (I was not calling remove_VBL(hUGE_dosound) before switching banks).  Really appreciate your help and the help of everyone else on the gbdk discord.

Glad you were able to fix it and that we were able to help! The banked memory model takes a while to get used to and even then still requires some caution.

I saw a new build is up so I downloaded it and gave a try. Played through the first two bosses in the campaign. It's looking, sounding and playing well! It'll be fun to give it a longer play when I have some time.

That does prompt on question- looks like it might not save progress right now?  It would be convenient to be able to play a bit, save and then pick back up progress through a campaign. No worries if that isn't part of the plan, but thought I'd float it just in case. For the time being I just made a save state :)

Anyhow, congrats!

I will research how to add a save feature.  Campaign progress is stored in just a few variables so I can't imagine it would be too difficult.  

Cool!

If it's useful at all, here is an example from Canyon Racer, there are other ways to do it though.
https://github.com/bbbbbr/canyon-racer/blob/main/src/cart_mbc5/cartsave.c

https://github.com/bbbbbr/canyon-racer/blob/main/src/stats.c

A usual practice is to have a signature byte pattern and/or a checksum of the data to verify it's integrity and that it's not random data.

Gave it a full play through on the campaign + a couple levels on endless. Everything felt balanced and worked well, esp after getting into the flow of it. It gets busy, but in a way that was manageable and added to the action.

Haven't seen any bugs or issues.

Did notice the blue text on black background for mana can be a little hard to read. Something lighter might make that easier.

Enjoying the new save support in 1.1, thanks!