Suppose you were going to use your team's 375 project as the basis for a similar product on a much larger scale through the following changes:
for CodeXscape - supporting teams of players working together on quests, - supporting many quests on a server, - supporting services allowing players to find/select/join servers and quests for Mage Rage - supporting many players in a battle, - supporting many battles on a server, - supporting services allowing players to find/select/join servers and battles for Happy Puzzle - supporting central services that allows players to submit and share their own puzzles, tile shapes and images, - supporting player abilities to create and join tournaments on puzzle collections of their choice, - supporting player abilities to create races and issue challenges on puzzle collections of their choice, - support player-run ranking services that follow an official player ranking scheme for Course Advisor - supporting all degree programs at VIU, - supporting the addition, modification, and cancellation of courses, degree programs, requirements, and departments over time, - supporting the "grandfathering" of programs and requirementsDiscuss the major design issues you would encounter in trying to scale your product.
SAMPLE SOLUTION Answers to this will depend quite a bit on the specific project, but should generally focus on - Data handling: how to handle the increased data storage/transaction issues - Processing loads: how to handle the division of computing workload between clients and multiple tiers or types of servers (overloaded server, bandwidth or processing load?) - Networking: how to handle the communication between and coordination of clients (lag/synch issues with games?) - Security: how to handle the associated security and privacy isses (+cheating issues with games?) - Design complexity: how to handle the transition from the existing code base to the more complex designs that will be required (changes to plot/nature of games?) |