Inspiration

As a gamer and aspiring game designer, I've always pondered on the ultimate question for games: how to generate true randomness? In some sense, randomness could almost be treated as equivalent to fun, because only unpredictability can pleasantly surprise the players, again and again. When I stumbled upon Quick Draw, Google's not-so-long-ago AI experiment, I was intrigued; when I realized that Google made all the doodles it collected from users all over the world public, I was exhilarated. I knew I could make something fun out of it.

What it does

This is a game where worlds are randomized based on a keyword, and enemies whose images are random doodles/drawings of the object of that keyword are generated. The protagonist, rubber ducky, travels in a total of 345 possible worlds like these, and is bewildered by the fact that random objects and animals constantly flocked to it.

How I built it

Background for each "world" is a result returned from Google image search based on the keyword; the doodles of the enemies are fetched from Google Cloud's quick-draw-dataset, which contains 80,000 doodles for just the object "violin", not mentioning the 344 other keywords. There's also a color theme for each world, the color generated again based on keyword; I ran an algorithm inspired by Alex Beals' colorize, which takes the average RGB value of multiple Google Image results to summarize the color for a certain keyword. Also, I used the Processing api for rendering graphics.

Challenges I ran into

I didn't deal with HTTPrequests a lot in high school, and it's the first time I'm doing it purely in Java, so that took me a while. Also, the game itself is a little glitchy as I didn't have time to properly set up smooth collision detection and gravity.

Accomplishments that I'm proud of

That it's really random and fun. When it works it works; and I'm making use of a dataset that's collectively created by different people from all over the world. I'm pretty proud of my project overall.

What I learned

Pay attention to absolute/relative datapaths! Not everyone's computer is my own computer.

What's next for Rubber Ducky and 345 Worlds

Improve game experience, fix errors (occasionally html request for google image fails depending on the url), draw art for protagonist (current picture from web)+ add sound for the game.

Built With

Share this project:

Updates