Alberto Pareja-Lecaros 9/20/05 P.1 I. Title: Building a distributed server to handle an interactive 3-D game universe II. Problem Statement: In most of today's game applications, a multiplayer option is included because it adds the excitement of interaction with other human players. This will be a distributed server because a game of this magnitude will require many CPU resources, and by sharing CPU time with other computers, the game universe will run considerably faster and at a tolerable rate. It should also work on several different computer platforms. III. Purpose: The purpose of building this distributed server is to gain an understanding of systems networking and learning to build more efficient networked systems. This will also provide insight into building a server that can interact with multiple (at least more than one) computer platforms, such as Windows and Linux. This server, once established will be easy to adapt to a variety of different applications. IV. Scope of Study: A thorough research of TCP/IP protocols, IPX protocols, and packets will be required, as well as researching methods of distributing CPU power among networked users. V. Background and review of current literature/research in this area: Distributed servers are not something new or innovative anymore; they are in common use. Standards of efficiency, however, will continue to rise as the Internet becomes more widespread and more people are becoming connected. Any documentation/books on TCP/IP and IPX networking protocols are highly recommended, as are books on server solutions. VI. Procedure and Methodology: The building of this server will begin by gradually working on the individual parts that will make the whole project work. First a small chat program between two computers will be created to test out the TCP/IP protocol, and then eventually that will expand to letting many computers connect with each other. The next step is to expand the chat so that one computer acts as server, and the others act as clients, sending information to the server, having the server process the information, and then sending the information back to all the clients. This type of progression will continue until server that can handle the actual game universe is created. Once that is done work on the distribution of CPU power can commence, and the IPX protocol can be worked on. The final task will be to have multiple platforms connect to this server. The language in which this server will be programmed is Java, and it will process the game universe that is being built by the other members of the team. Data gathering will be based on the functionality of the universe across all connected clients to the server. By storing the data the server receives and sends, and comparing it to the results shown on the client computers, one can see whether the server-client interaction is working successfully. VII. Expected Results & Value to Others: Ideally the result will be a fully functional, highly efficient distributed server that will be able to support multiple platforms and multiple protocols. The results can easily be seen through the functionality of the application itself, as well as a well recorded log of CPU power distribution through the various systems, which can be graphed on a chart for further analysis of how to improve the server. The only contributions this server could give to others is an analysis of the efficiency of the system so that others may improve on the methodology of how the server distributes its resources. As for the time frame of this project, it will probably take until sometime in April to complete most all of the tasks. A simple task chart can easily track the progress of this project.