Montana Tech of The University of Montana
Computer Science & Software Engineering

CSCI 470
Web Science
Spring 2012


Assignment #8 - Multi-avatar chat
Due: start of class, Mon 4/2.

This assignment should be done in pairs. This assignment is worth 60 points instead of the normal 30 points.

You will be implementing a first version of the multi-player Gem collector game. You are required to implement the multi-player avatar and message facilities. You do not need to implement gems or points (except for extra-credit).


Overview. Your manager decided since social media is all the rage, it might be better to first come out with a web-based 2D avatar chat program. You can always add gems, lasers, or what not later. The chat world is an 800x400 2D canvas in which players get to choose a name and an avatar. They can make their avatar walk around the screen. They can post a message that is display under their avatar for 5 seconds. Players stop moving if they run into another player. You can play my version of the chat version of the game. You can also play the full game with gems.

Architecture. The application is designed to be transient with no persistant state once a player closes their browser window. As such, using a SQL database is overkill. You should instead use memcached to provide tracking of state that needs to be shared between players. You should configure a web farm of two servers with both servers running an instance of memcached. Players will be connected to either web server via an (imaginary) load balancing network appliance. A player is assumed to only open a single browser tab to the application. All players are put into the same world.

Requirements:
Submission. Submit your source programs to the Moodle dropbox. The Moodle timestamp is the completion time for the assignment. I will be testing your program using both Chrome and Firefox browsers. I will test by connecting to one or both of your two configured network lab computers.

Page last updated: August 16, 2012.  Copyright © 2011 by Keith Vertanen.