zeta0134

LD 42

I'm in. Let's do this thing!

For this 42'd LD, I'm taking a stab at making a Gameboy game for an extra challenge! I've written a gameboy emulator (LuaGB), but haven't done any actual z80 programming since high school, so it'll be interesting for sure. Partnering with @cromo and entering as a jam. I'm crazy, but not 48 hours crazy.

Good luck to everyone, and let's see what crazy stuff we can come up with!

Basic Animations!

run_cycle.gif

Good gravy this was a MOUNTAIN of z80 assembly. We have working tilemaps, the basis of scrolling (not featured here but partially working), and this lovely animation system. A good bit of this artwork is not final, except for that running animation, which is the first of @cromo's artwork in-game.

I'm feeling a lot better about doing a gameboy entry, and hopeful that what we end up with might resemble an actual game, but there's a ton of work left to do. Alas, tonight I simply must sleep. Tomorrow, PROGRESS!

Level Art, Collision, and Procedural Generation

runner.gif

Another mountain of z80 assembly has been conquered. I will get these MACROs figured out eventually. Introduced a framework for procedural generation of the level as the player moves forward. Then spent several hours teaching my sprite drawing system how that worked. It can now place sprites in the appropriate place onscreen, relative to their (procedural) parent chunks. This should let the level be different on every playthrough, assembled out of designed pieces but stitched together by the engine. The major challenge is the low bit depth; 256 pixels is not terribly wide, and even 64k pixels would be reached plausibly in a runner, depending on how fast we let the player go.

Animations got some bonus features, much more of @cromo's artwork is shown, and the basics of player input and collision are laid down. Two days in and we're looking very game-like. Not bad! The major hurdles of the engine design are finally figured out, and now we just need to flesh out the game mechanics, and add a ton of content, and polish, polish, polish. Onwards to the second 90%!

(Apologies also for the quality of this gif. My linux workstation was not feeling desktop capture today; this was the cleanest of like 12 attempts.)

Dyson's Fear - Post Mortem

screenshot_gameplay.png

First of all, WOW. What a trip! The whole weekend of this dare was just a whirlwind of possibility, and we came out in a great place for what we went up against. Without further ado:

  • Overall: 317th (3.65 average from 52 ratings)
  • Fun: 564th (3.265 average from 51 ratings)
  • Innovation: 402nd (3.367 average from 51 ratings)
  • Theme: 641st (3.439 average from 51 ratings)
  • Graphics: 437th (3.66 average from 52 ratings)
  • Humor: 600th (2.585 average from 49 ratings)
  • Mood: 483rd (3.24 average from 50 ratings)

We didn't quite place in the top 10%, but that's still fantastic, and we got some great feedback. Personally I'm impressed our game was coherent and playable at all, since this was our very first time targeting a real Gameboy (with z80 machine code), but we pulled it together and made things happen. We got some pretty excellent feedback from the community too, notably:

  • Sound and Audio would have helped a ton. (We just didn't have time, assembly code is a huge time sink.)
  • Wrenches weren't obvious enough, and players had a hard time understanding that they were a primary objective (without them you run out of level and die)
  • The game's difficulty was a bit awkward:
  • Wall slamming was unforgiving; players expected to be able to try to recover, and not insta-die. This wasn't helped by the short camera distance, a platform limitation
  • The explosion's speed needed fine tuning, as skilled players could outrun it and then it simply wasn't a threat
  • While crates were an intended obstacle + speed management mechanic, they weren't punishing enough due to the explosion speed, so there was no incentive to avoid them. We wanted a balance of good + bad, but clearly missed the mark.

Personally we felt that the game's camera could have been improved with some dynamic scrolling, and this would have helped with difficulty. We drew inspiration from several other endless runners (especially Canabalt) but the hardware limitations made the more traditional "zoom the camera out based on speed" approach impossible. We also had some more interesting mechanics planned (including a wrench + bolt mechanic) but those got scrapped at the last minute.

There was also a deployment lesson to be learned. There are actually some HTML5 Gameboy emulators out there, but we didn't think to search for one before the contest started. It would have been nice to launch with a "web page" version, which I think would have made the game a bit easier to rate. Y'all stepped up to the plate though, and mad props to those of you who got the game ROM running on your real gameboys; those were so awesome to see!

For challenging ourselves with a tough platform, I'm extremely happy that we ended up with a solid proof of concept, and I would like to keep improving it some more. I think my gameboy itch is scratched though; next Ludum Dare I want to target a platform that's got a bit more breathing room in the VRAM department. :)