Skip to content

NotImplementedLife/brekstascat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Breksta's Cat

Don't be like me. Plan things ahead until the very last detail. This ROM is a result of disobeying the golden rule of planning.

This repo is part of HomebrewOwl.GB projects collection. This is a GB Compo 2021 game entry. Download the latest version here.

The idea

Making my own scroll RPG game had been kind of a distant dream to me for a couple of years. Now that I feel I meet all the requirements to see my dream come true (knowledge, experience, and a small dose of creativity), I finally made it. A simple Gameboy ROM which makes my dream come reality. Not much, honestly. There are only three small maps you can explore, but for my current self, this feels like an incredible advancement.

I originally planned to make a scroll RPG like this for the Nintendo DS, but I wanted to spend more time on Gameboy programming to familiarize more with the concept. Moreover, the GBCompo21 proved to be a valuable source of fun and motivation for working on this game.

Because the map-scrolling is very naïve and limited due to its barebones implementation (just like I anticipated for my first strike), I wanted to insert something in my game to compensate with. Therefore, I chose another "genre" to be the Breksta's cat actual specific. This is how it turned into a sliding-puzzle game, and consequently it is somehow thematically aligned with the Homebrew Owl's other two games: a Rubik's cube and the board game AIRPLANZ. The fact that the player can walk around a map and interact with things comes second and now represents just an optional feature - it's like the spawn room of a Minecraft adventure map where you read some signs and the press a button to teleport to the actual game.

In case I haven't mentioned it before, I'll say it now. I. Suck. At. Drawing. Things. Especially pixel art. I put all my heart and patience into creating what would would appear on an interested player's small Gameboy screen (or emulator). Every time I drew a new sprite/scene I was praying at least not to hurt my eyes when running the build. I hope it looks good to all (if not, to the majority) of you.

However, despite of this obvious art and design drawback, I'm still proud to declare that Breksta's Cat is the most precious gem of my HomebrewOwl collection. Here is a list of what it brings new in terms of Gameboy-related technical stuff (and not only):

  • SRAM
  • MBC memory handling
  • Metasprites
  • Variable Font Viewer implementation
  • Lookup tables
  • r16 calls which made a script-like ROM reader possible (conveniently useful when I wanted to animate things during a dialog)
  • Usage of Window
  • RTC clock handling
  • BCD
  • Random (inspired from here; more performant than the rubik's one)
  • Tile streaming (very rudimentary)
  • LY=LYC interrupt
  • Spritifying (the operation of copying a certain map zone onto OAM and then animate it; I don't know if the concept already exists so I took the liberty to give it this name)
  • Sound
  • A story and a tutorial (something that my other games completely lack)

How to build

git clone https://github.com/NotImplementedLife/brekstascat --recursive
cd brekstascat
make

Make sure RGBDS is installed and exists in your %PATH%.

How to play

Main idea: Control the character using your D-Pad, enter puzzle rooms, solve the given puzzle and earn Cat Coins to unlock the Master puzzle, whose completion clears the game.

Limitations:

  • If you spend more then 8 hours in a puzzle room, you'll be kicked out and you'll lose the game (and coins). But, seriously, I believe no one is willing to do that on purpose. I put this limitation just in case someone forgets the game running on an emulator (or maybe a Gameboy powered by nuclear batteries).
  • Please avoid pressing the B button while solving a puzzle. This ends your puzzle solving session and returns you to the map, so you'll have to enter again and start a new puzzle. If time is on my side, I'll probably add a prompt message to prevent such annoying incidents.

Propose a new puzzle

Anyone can propose a new sliding puzzle to be added in this game. The puzzle will replace one of the 13 original puzzles (which are listed here). This is because the original puzzles are more like placeholder data to prove the mechanics of the game. That means some of the puzzles could be a bit too hard to solve.

Proposing a puzzle

Open a new issue and write the puzzle name, the puzzle type (3x3, 4x4, 5x5, 6x6) and attach an picture of the puzzle. You can also mention the name of the puzzle you want to replace. The list of available puzzles is displayed below. I'll take care of adding the puzzle in the game. If your proposed puzzle appears in the game, your username will be mentioned in the credits section both in the game and this GitHub page. If your puzzle is inspired from another artist's work, you are encouraged to specify that source too.

Puzzle name requirements

  • No more than 14 characters
  • Must contain only letters from the English alphabet (a-zA-z)

Puzzle image requirements

  • Size: 96x96px (for 3x3,4x4,6x6 puzzles), 80x80px (for 5x5 puzzles)
  • 4 colors, preferably White, White Gray, Dark Gray, Black. Any 4-color combination is accepted if it is clear which color is darker than the other so that it can be assigned the correct Gameboy palette shade.
  • The puzzle's tiles must be distinct and easily distinguishable (note that the tile's edges are covered in-game with a 1px black border, therefore the middle of the tile is the one that must give it an identity)
  • Keep it cute, nice and safe for work!

Choosing a puzzle to replace

This is the list of the puzzles available for replacement proposal. It would be appreciated if you choose to replace a puzzle with a higher replacement priority.

Type Name Replaced by Priority
3x3 Abstract Cat - Low
3x3 Creeper - High
3x3 DS Lite - Medium
3x3 Kitty - Low
3x3 Mona Lisa - Medium
3x3 Triforce - High
4x4 Black Rose - Medium
4x4 Chess board - High
4x4 clock - Low
4x4 Klein bottle - Medium
5x5 Alphabet - High
5x5 Magic Girl - High
6x6 Confusion - High

Screenshots

Credits

Linked