Focusing on the thinking without limits theme, we wanted to make a game that an entire crowd could play, so Kahoot was an inspiration for us. The theming / gameplay of WarioWare was also very appealing.

What it does

It starts off presenting a UI with a QR code and a link, as well as a number displaying how many people have joined. When the game host starts, it randomly chooses 1 of 3 minigames we have made:

  • Germ Journey; the audience members have 4 directions on each of their phones, and on the screen, Boris the bacteria is on one side of the screen, and the toilet paper flag is on the other. Each player can use the arrow keys to move his target position, and they need to work together to get Boris to touch the goal.
  • Get Good Soon; a man is using a terrifying apple to shield him from the doctors! The audience can choose whether to hold the apple left or right, and the man uses the majorities' decision to choose what way to shield himself from. If an evil doctor hits you, you lose!
  • To the Moon; as a mega genius crypto bro, you know exactly how to become a millionaire - buy low, and sell high! You need to press the buy button when the stock prices are going up, and the sell button when the stock prices are going down. If enough people press the right keys at each term, you win!

The game displays how many rounds you have won so far, and is accompanied by art that would make Picasso swoon, and a bopping sound track.

How we built it

The networking side of the project was in python, HTML, and JavaScript. They all work in tandam to allow many users to connect at once to the server.

For the front end we used Raylib, as this let us have control over the lower level of the stuff and define our own methods.

Backend: We set up a python class for managing sprites and drawing to screen, to do things like rotation, scaling, translation, and collision detection. We then could quite easily create separate minigames using this framework. We split up the workload very easily as each person could work on their own minigame at once, and if they ran into issues we would collaborate, and on the side if we got tired of programming we would work on music or graphics.

Challenges we ran into

We were very ambitious in our original goal - we anticipated making many more minigames, and spent a long time brainstorming ideas which haven't ended up coming to fruition yet. If we had more time we could definitely polish it a lot better and add many more minigames to increase the variety. Also, various parts took much longer than we expected, for example drawing sprites took a surprisingly long time (We are perfectionists..!). However, in the end we decided to focus heavily on the three games we were most confident would turn out well, to polish and concentrate our efforts on making it as fun as possible, and it turned out as good as we had hoped!

Accomplishments that we're proud of

We ended up with a product that we were aiming to make, it's complex enough that it was challenging, the music, graphics and gameplay work together nicely, and it is very fun to play!

What we learned

Some team members had little experience with using classes before, as well as any sort of graphics packages, so we greatly expanded our python knowledge. Also having never even touched any networking before, working on a project that heavily incorporates elements of it has been a good teaching experience.

What's next for Crowd Control

There are a few very clear goals for the future - adding more of the ideas that we came up with, as well as refining the sprites that we sketched and possibly cleaning up some of our code to look cleaner (adding various comments).

Share this project: