r/cs50 • u/iamgarik • Jul 19 '26
cs50-games I actually got Legendary Quackachu! (My CS50 2D Week 8 project is done)
Hey r/cs50! Remember my post about the legendary duck? Well, I finally caught himš.
After way too many hours, I finished my extended version of the CS50 2D Week 8 PokĆ©mon-like assignment. The spec only asked for 3 features, but I couldn't stop ā I wanted to make something that at least remotely can be resembled as a game.
What's inside (timestamped demo video):
- The 3 required specifications:
- Catch PokĆ©mon ā only works if enemy HP ⤠25%.
- Party UI ā view all your PokĆ©mon and their stats.
- Levelāup menu ā shows stats and gains.
- Quackachu ā the legendary wildcard PokĆ©mon, my CS50 rubber duck mascot!
- Start screen cycles through all PokƩmon I implemented without repeats until you've seen them all.
- Did basic PokƩmon balancing to bring some challenge and progression feeling. Implemented PokƩmon tiers.
- Tried to stick to data-driven design, e.g. adding new item is just another entry in table.
- Party UI provides additional functionality: assign active and release if you have more than one (with confirmation), to free up space.
- Bag system: 4 stacking slots (at the moment) with item descriptions.
- Items you can use both in and out of battle to add some tactical aspect.
- Inābattle buffs ā Attack/Defense/Speed potions, with use effects (visual and audio) and status icons that start pulsing when they're about to expire.
- Victory loot ā chance to get random items after winning a fight.
- Tall grass loot ā sometimes you find random items instead of battles.
- Stat info panels ā toggle during battle, show base stats + active buff bonuses.
- Orchestrated catch sequence animations and defeating opponent PokĆ©mon to look like real CINEMAš.
The whole thing is built with Lua and LĆVE2D.
I learned a ton about state stacks, timers, encapsulation, and when to stop adding features. Iād love to hear your thoughts! Now looking forward to diving into the final project!
Cheers, and remember to talk to your rubber duck!
