A CMU-themed MONOPOLY web app
CMUOPOLY is a Carnegie Mellon University version of the classic board game MONOPOLY. Tyler Hedrick, Peter Marino, and I developed this web application using a plethora of emerging web technologies.
Easy and Effortless Game Creation
We built a game lobby system to allow players to easily create and join games with their friends. We use Facebook's OAuth API to authenticate and uniquely identify users. After signing in, creating a game is as simple as giving it a name. Each game is assigned a unique 4-digit code. Sending this code to your friends allows them to effortlessly join your game and quickly start playing.
Desktop and Mobile Clients Working Together
We designed CMUOPOLY to mimic the feel of tabletop board games. It does this by taking advantage of both mobile and desktop devices in tandem. Your mobile device is the center of gameplay and keeps track of your hand. A larger-screen device, such as a laptop or tablet, is also connected to the game and displays the game board. Both clients are beautifully designed using HTML5, CSS3, and jQuery. This setup uniquely preserves the social dynamics of MONOPOLY, forcing players to look up from their phone screens during play.
Play from anywhere
CMUOPOLY allows an arbitrary number of boards for each game, which means that even if your friends are thousands of miles away, you can still play together. We built chat functionality into all stages of gameplay, from game creation to trading. You can even have friends who aren't playing observe your game by connecting another game board!
All the rules and mechanics, built in
CMUOPOLY supports all of the rules and mechanics that you expect from the original game. Because the game handles rolls, money, and game events for you, gameplay is significantly faster than what you may be used to.
Powered by Emerging Web Technologies
CMUOPOLY is driven by a server written in Node.js, while storing game data in a database powered by MongoDB. Because game state is persistently stored in the database, it's easy for players and boards to rejoin their game if disconnected.