Almost everyone has a phone; why not create some game and pro-social activities to leverage phones as a medium for participation?

What it does

Icematch is a decision game which matches two strangers who think alike. Players use their mobile devices as controllers to control their characters --- complete with their faces --- on the big screen. They are prompted with controversial questions in which they must answer by controlling their character. Hilarity ensues. At the end, partners are formed based on the similarity between their answers, and are granted the ability to directly message each other. If you want to meet your destined twin, Icematch is for you.

How we built it

The project was built with an exceptional focus on backend and authoritative game servers. The networking library used, Colyseus, encourages all game logic to reside on the server. Any change in Colyseus's state would be broadcast to all "listening" clients. The client would only be responsible for rendering the state as a graphical visualization (we used pixi.js as our rendering engine).

Challenges we ran into

One big challenge we ran into was the time constraint. We had so many ideas and next steps for the project, but did not have the time to implement it. However, we did work very efficiently and managed to keep on track with the main base of the project.

Accomplishments that we're proud of

We're proud that we leveraged mobile devices as the game's controllers; it was the main purpose of the hack. We wanted to test whether such an approach would be viable for pro-social multiplayer games.

What we learned

  • How to structure a multiplayer game that uses phones as controllers
  • Accessing a locally hosted server on mobile via local IP addresses
  • Good practice with Colyseus
  • How to make animated gradient text using pure CSS (how cool is that?)
  • PIXI.js graphics rendering

What's next for Icematch

  • Custom question sets
  • Improved graphics and addition of audio
  • Advanced matching algorithm

Built With

Share this project: