Libbet and the Magic Floor

Discussion of programming and development for the original Game Boy and Game Boy Color.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Libbet and the Magic Floor

Post by tepples »

After the character and balancing discussion, it's ready. This is a port of Martin Korth's game Magic Floor to the Game Boy compact video game system, introducing Libbet the boulder girl. It fits in 6502 bytes.

One day, Libbet was rearranging her basement when she discovered a passage to an empty hall whose floor had a peculiar pattern. She rolled in to investigate.

The floor tiles have four shades. Libbet can roll or jump between tiles of the same shade. She can also roll or jump onto the next brighter shade or from white to black, which leaves a track. Tiles with no exits contain a trap door that leads to the entrance. Leave 90 percent of possible tracks and roll to the exit to win.

Controls:
  • Control Pad: Roll
  • A + Control Pad: Jump
Not in quite yet: title screen, overall score, animation of entering dead end, a proper attract mode, audio

GitHub repository: pinobatch/libbet
Attachments
libbet-0.01.zip
ROM and source
(60.49 KiB) Downloaded 779 times
Playthrough of the first 2 levels
Playthrough of the first 2 levels
libbet-opt.gif (65.13 KiB) Viewed 21287 times
nocash
Posts: 1405
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Libbet and the Magic Floor

Post by nocash »

Pretty! The animations are nice, and they don't slow down player movement, they are just a big advantage without any drawbacks.
The 90% idea is nice - especially as one is still allowed to continue playing and scoring 100% before leaving the room.
The walls and open/closed door are a nice extra. And having some end after 4-5 floors is nice, too.
And the story & instructions are nicely compacted, still containing all important info, but it's easier to read that way.

Two things that I've noticed are that door isn't visible in the long first room, and one could compact the intro even more by (re)moving the 3rd text page. How about this:

Code: Select all

            _____________
           |\     .--.  /|
           | \____|__|_/ |
           | |         | |
           | |         | |
           | |         | |
           | |         | |
           | |         | |
           | |         | |
           | |         | |
  Controls | |         | |  ......
           | |         | |  :    :
  DPAD     | |         | |  :    :
  Move     | |         | |  :    :
           | |         | |  : 50%:
  A+DPAD   | |         | |  :    :
  Jump     |_|_________|_|  :8/16:
Ah, or is the corridor having a bigger exit that spans two floor cells? If you draw a bigger gate in there would like nice, too.
Anyways, I really like your gameboy version!
nocash
Posts: 1405
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Libbet and the Magic Floor

Post by nocash »

Hmmm, or would above be squeezed to tight?
Having the same horizontal status bar all the time would look decent, too.
You could also draw some gate/fence with 4 pixel height at the end of corridor without moving the status bar around.

Are you adding some boulder-rolling sound effect or music, too? A sound effect for scoring would be also somewhat important (for cases when you were just moving around, and didn't even notice that one of that moves had increased the score).
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Libbet and the Magic Floor

Post by tepples »

nocash wrote:Hmmm, or would above be squeezed to tight?
Having the same horizontal status bar all the time would look decent, too.
You could also draw some gate/fence with 4 pixel height at the end of corridor without moving the status bar around.
Or I could move the status bar into the window layer and then, on a floor of height 8, do a subtle scrolling effect on the playfield once the exit opens.
nocash wrote:Are you adding some boulder-rolling sound effect or music, too? A sound effect for scoring would be also somewhat important (for cases when you were just moving around, and didn't even notice that one of that moves had increased the score).
Yes, I plan to add audio sometime later. That's what I was trying to imply by "Not in quite yet". It's not quite so easy as on NES, where I have a ready-made audio driver that I can just drop in. That's one reason why I translated Pently into pseudocode: so I could have a blueprint for a driver on GB.
User avatar
Banshaku
Posts: 2417
Joined: Tue Jun 24, 2008 8:38 pm
Location: Japan
Contact:

Re: Libbet and the Magic Floor

Post by Banshaku »

I tried it but I'm quite a klutz for puzzle games so I was able to reach the top but had no idea what to do next and stopped ^^;;;

edit:

Now I see the gif shows what to do so I should have looked at it :lol: Graphics are simple but look nice, that part I do like.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Libbet and the Magic Floor

Post by tepples »

I've been adding stuff, such as an exit indicator for the 2x8-cell floor, fades from white when the score reaches 90% and 100%, and a self-playing demo with captions. Does this GIF explain it any better?
Attachments
Arrows appear at top once enough tracks are left
Arrows appear at top once enough tracks are left
2x8_arrows.png (1016 Bytes) Viewed 21053 times
The new demo
The new demo
libbet-demo1-opt.gif (51.68 KiB) Viewed 21053 times
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Libbet and the Magic Floor

Post by tepples »

nocash wrote:Are you adding some boulder-rolling sound effect or music, too? A sound effect for scoring would be also somewhat important
I've been working on sound effects. Most were cribbed from Wrecking Ball Boy and my Python port of FHBG and adapted to the piecewise-linear volume control of the Game Boy pulse and noise channels. But after I plugged sound into the demo and showed the video to members of a couple Discord servers, they called the rolling sound effect "obnoxious" and "a bit too extreme", and I ended up agreeing, though the rest were OK. In particular, that sound effect might be the first to go to leave room in the mix for music.

Is the rolling sound effect as obnoxious as claimed?
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: Libbet and the Magic Floor

Post by dougeff »

The jump sounds good. The rolling is a bit too much.

Try some shorter or quieter variations.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Libbet and the Magic Floor

Post by tokumaru »

That sounds like an avalanche! The sound of a person rolling should be way more subtle.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Libbet and the Magic Floor

Post by lidnariq »

I think it's probably realistic—compare the sound of a coin rolling—but I don't think it works here.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Libbet and the Magic Floor

Post by tokumaru »

Coins are hard and full of ridges. People can even roll without making a sound if they're careful.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Libbet and the Magic Floor

Post by lidnariq »

I was comparing both a US quarter (which yes, is reeded, and is noisier) and a US nickel (which isn't).
nocash
Posts: 1405
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Libbet and the Magic Floor

Post by nocash »

For rolling: "clonk-Donk-clonk"
The louder sound at the edge between the two floor fields, and the other sounds if Libbet is a bit edgy.
For jumping: Maybe "umph... bump" or "umph...Bong" instead of the higher pitched "feep"?
Gameboy can output digitized audio samples.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Libbet and the Magic Floor

Post by tepples »

Libbet and the Magic Floor v0.02 is released. Highlights include a demo, more obvious indication of the exit, and sound effects. Size is 8848 bytes.
  • Combine identical strips, saving a few bytes
  • Fix head bob when rolling left
  • Draw track and score updates using Popslide, a VRAM transfer buffer
  • Draw exit arrows at top left and right of 8-cell-tall floors
  • Fade from white at 90% and 100% completion
  • Fade to white on exit
  • Tutorial demo (press Select)
  • Separate Libbet's elbows in push-off cel
  • Sound effects
  • Animate falling in a hole and being ejected
See the GitHub release or download the ROM and source package below.

@nocash
For rolling, much of it depends on exactly what she and each floor cell type are made of. I remember Super Mario 64 had a different sample for each floor material. It's too bad DuckTales went back behind a paywall, or I'd rewatch for inspiration. For jumping (lifted from PyFHBG), I think I took inspiration from Kirby and western cartoons. Playing digitized samples through channel 3 takes more ROM and might need a voice actress. For now, I just made the existing rolling sound quieter than it was in the video. I'll experiment with the exact sound sequence later.
Attachments
libbet-0.02.zip
(70.07 KiB) Downloaded 767 times
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Libbet and the Magic Floor

Post by tepples »

I've hit a bit of writer's block. For the 0.03 release, I wanted to figure some of these out:
  1. Get the materials straight for sound effects
  2. Figure out what the title screen, any% ending, and 100% ending are supposed to look like
  3. Music
  4. Anything else you can think of
In order to make it easier for others to offer suggestions for sound effects, will I need to make a GB ROM that allows creating audio sequences, so that one can iterate directly on the hardware or in an emulator for immediate feedback? I'd assume that iterating on sound effects in FamiTracker, a widely used NES chiptune composition tool, isn't quite adequate because of how different the volume envelope paradigms are between FamiTracker and the Game Boy APU.
Post Reply