eggboycolor

LD 44

I'm in... maybe??? (homebrew + rpg + INSERT THEME)

Umm, hi!

For the first time in forever, I actually realized it was Ludum Dare weekend before it was already happening! I'm not sure yet if I'll be able to do this with my schedule, but giving this a shot! I kinda want to make a lightweight RPG if it meshes alright with the announced theme.

The other big thing, would be that I want to do it as a homebrew for an old game console, using tools that I've created for doing this. If I end up joining, I'm gonna try to use my high-level assembly language Wiz for the compo.

https://github.com/wiz-lang/wiz

Wiz supports a few different CPU instruction sets, and is capable of making homebrew games for NES, SNES, Game Boy, Sega Master System, Game Gear, and others. All of the code is MIT licensed.

In the interest of making more example projects available for Wiz, it'd be nice to make something during the contest! It's also just a fun challenge making new homebrew stuff!

For the most part, the compiler + whatever base code I plan to use would be in the Wiz repository and its example folders, but I have some pre-existing code for other VRAM upload systems on GB and NES that I haven't had a chance to put up yet.

This already might be too ambitious, but we'll see! ^^

Background mocked up, rough design planned

Okie dokie, drew a rough font, drew a background. The background will repeat across the screen with some scrolling parallax. Next will be to draw a 16x16 character that walks on the background left-to-right, and do the actual game.

fieldembg/emmockup_3x.png

The rough draft of the game flow is figured out on paper, going to try for a fairly small-scope RPG. It'll run a sorta state-driven system to flow from one interaction to the next, player + one enemy / shop / etc at a time.

It'll be a Game Boy homebrew. The systems to flow between states are more or less blocked out, and I have code to make loading graphics possible. There's also tools here to make creating the graphics a bit easier:

http://make.vg/brewtool/

In the interest of limited scope, the game will take place on a repeating background, and have two main sprites, the player, and the current point of interest. Maybe the background could change as you progress, I dunno yet.

The player progress linearly between different points of interest, such as enemies, shops, treasures, etc. At each each new point of interest, there will be either an automatic effect, or choices that the player can make.

Main Loop:

  • Linear
  • Travel between towns
  • Fight monsters between towns
  • When enough adventuring has been done, fight a boss, and advance to a harder area
  • Monster encounters, towns, events are random
  • Death sends you back to the start (or last save if there's time for that)

Points of interest:

  • Enemies: fight or run. fighting enemies has the risk of death. gives experience + items. level up to gain more max HP (also heals you to full), and increase your current stats.
  • Chests: collect a free treasure
  • Shops: buy items using current HP or max HP (depends on item), sell items to recover HP.
  • NPCs: some random event with different side-effects (heal, give item, etc), or story-relevant text as you continue your progression.
  • Bosses: hard enemies encountered after a certain amount of time exploring (maybe have the option to fight the boss when you're ready).

Items:

  • Limited inventory. Maybe 8 or 16 slots? Functions as your equipment and your items.
  • Consumable: has an instant effect on use. (healing, magic, etc). use up to N times (or maybe just once not sure yet)
  • Weapon: does an attack on use, the attack stat is added to your base attack when attacking. infinite use.
  • Accessory: boosts stats while in your inventory. passive, no use.
  • Junk: sell to recover HP. no use.

Stats:

  • Level
  • Experience
  • Max Experience
  • HP
  • Max HP
  • Attack
  • Defense
  • Accuracy
  • Evasion
  • Magic Attack
  • Magic Defense
  • Elemental Strength (Fire/Ice/Wind/Earth) - 1/2 damage received for this attack (maybe)
  • Elemental Weakness (Fire/Ice/Wind/Earth) - 2x damage received for this attack (maybe)

This is very rough. Let's see if I can make it!

More drawing for my RPG

Okay, now there's a few rough sprites drawn, more font work.

GB mockup:

fieldembg/emmockup_3x.png

GBC mockup:

fieldembg/emmockupemcolor/emtest_3x.png

Whoa it's already 6:30, I need to start coding the game! Gonna start converting the assets to CHR format so that they can be loaded by the game ROM.

Unfinished, but not a total loss

Unfortunately I won't finish my Ludum Dare game in time, but progress was made on the game this whole weekend.

Here's a screen of the ROM running in BGB (a high-accuracy GB emulator with good debugging tools!)

wanderemsword/emscreen.png

Since I dunno how well the image upload handles large GIFs (this one is 7MB), here's a Twitter link, showing a capture of the engine so far in action.

https://twitter.com/eggboycolor/status/1122593568357482496

I implemented a text box system. There's horizontal parallax scrolling with table-driven system to allow an arbitrary number of scanline splits. There's state switching / swappable update handlers. I glued together a bunch of systems to enable writing this game. Just burned too much time doing the setup.

I think there's simply too many systems that go into an RPG (even a light one) for it to be a single weekend project once it's being written in asm. I think the scope and general plan for this project is achievable, just not in such a limited timeframe of 48h.

It was a good way to exercise the tools I wrote though, and organize more things for future homebrew development.

I think I'll keep the idea alive. I'll try and release something following the original game design. Until next Ludum Dare!

You can follow along on @eggboycolor on Twitter.