BunnyWorld is an app for creating, editing, scripting, and playing custom games built with Java. Created for Stanford's CS108, an object-oriented programming and Android development class.

4 min read • Last updated August 11, 2022

Screenshots of three screens from Bunnyworld mobile app over a purple gradient

What if you could make a game on your phone? And play it too? BunnyWorld is a project developped for CS108: Object-Oriented Programming.

My team and I built BunnyWorld as our final project of the quarter. It features the ability to draw elements and add custom scripting features with hide/show, sound, and pages.

I worked on adding features such as script editing and auto-checking, drawing, on-touch events, in-game possessions, and cut/copy/paste. I also designed the user interface and worked behind the scenes on the Java class design and testing. It was a challenge to build this app in 3 weeks but also extremely rewarding!

I learned about how to build an Android app from start to finish, and also got to meet exciting new friends!

Watch a demo video


Be a dauntless debugger

I've never met a developer who loves to debug wacky issues, and I certainly can't claim that I do. I realized how easy it is to get stuck on a bug and spend hours on an issue when faced with a nasty bug that seems to appear out of nowhere. However, after debugging and pair programming with my tea, fixing bugs felt less and less scary. This really resonated with me as someone who came into this project apprehensive and scared of code crashing, and built my confidence as a new Android developer.

Break your code down

When working in a group, I quickly learned that having a clear, practical structure to our Java classes was the most important part of our project. With so many moving parts and often conflicting pushes to git, having frequent discussions about how we were designing our software was vital to our project. With file saving, serializing, and so many complex features happening simultaneously, our project got pretty big. Breaking code down into small feasible parts to test, debug, and implement made our project feel more manageable and gave us a strong foundation for future features.

Special thanks to my team for all the great memories!