Assignment 3
Sending and Receiving Information from the Lunar Lander Game Server
Due Wednesday, Jun 4, 2008, at 11pm via Checkmate

In this Assignment you will modify the 3D Lunar Lander Game to update in the Server the information (altitude, velocity, and fuel) of the "Local Spacecraft" and to get from the Server the information (altitude, velocity, and fuel) of a "Remote Spacecraft" (different from the local one).

Part 1. Implementation

Follow the instructions and considerations included in the Discussion's Slides to complete the steps for your implementation.
  1. Create a tag called "LunarLanderAssignment2" for your current version of Lunar Lander in SVN
  2. Change the architecture and implementation:
    1. Add in the Lunar Lander Launcher menu a text field for the name of the "Remote Spacecraft" you will monitor. You can use the existent field "Name" for the name of your "Local Spacecraft."
    2. Change the architecture and source code, so that every time the state of your "Local Spacecraft" is updated (change it to be 500 miliseconds), you should update its altitude, velocity, and fuel in the Server. When you exit the game make sure that you clean the state of the "Local Spacecraft" in the Server. Create and modify the components, component types, interfaces, signatures, connectors, connector types, and links as appropriate. Make sure you create at least one component, and one connector to send the information to the server.
    3. Change your Dummy Remote Spacecraft component to obtain from the Server the values of the "Remote Spacecraft" you will monitor. If the values of the "Remote Spacecraft" are not available in the Server you should print 0.0

Part 2. Discussion

  1. (40 points) Include the image of your architecture in your report. List the components, components types, interfaces, signatures, connectors, and connector types you created or modified and explain why did you create them or what did you change on them.
  2. (40 points) List the Java classes and interfaces you created or modified and explain why did you create them or what did you change on them.
  3. (10 points) Discuss your experience implementing LL as a distributed system. What kind of difficulties did you have? Was it easy, time consuming, frustrating? Explain why.
  4. (10 points) Include a screen shot of the SVN Repository View in your report showing the tag you created for "LunarLanderAssignment2" and the current version in your trunk. The versions showed in the tag and in trunk must be different for arch.xml and other modified files.

Deliverables

Your assignment must be submitted electronically to Checkmate. You will submit:
  • LunarLander.zip including your compressed LunarLander Eclipse project.
  • Report.pdf including the answers to the discussion questions, image, and screen shot requested in Part 2.