COMP 310
Fall 2017
|
Lec38: Final Project
Milestone 1 prep
|
|
Today we will concentrate on issues that arose during students' Milestone 1
work over the weekend and we willl nail down what common interfaces and for the
Milestone 1 deliverables for the next class period.
- The provided code covering the datapackets and WWJ will become
available over teh weekend.
- Carefully follow the directions for installing the WWJ libraries.
- This would only apply if you are running a very old system: You
may need to use the svn:ignore setting especially if you are running a 32-bit system
or have a different operating system from your partner!
- A simple demo of WorldWind Java (WWJ) SDK and the
Comp310-provided simplifying libraries is available by checking out the
following project:
https://svn.rice.edu/r/comp310/course/FinalProject/XXX/WWJ_Demo
(where XXX is the current semester, e.g. "F17" or "S18")
- We will be using the WWJ ver. 2
- Note that there are frequent build releases for WWJ,
so expect that this codebase will need updating over the course of
the project.
- There are a couple of unresolved API questions:
- Initial connection interface and protocol.
- Team creation interface and protocol.
- Inter-team communications interface and protocol.
- datapacket reject capability
- The big question the debate over connection and team building APIs
being highly prescribed, i.e. invariant vs. highly variant APIs that
allow the game server to do whatever it wants.
- Milestone 1 requirements
- The previously implicit requirement of a description of how your
game will work was explicitly added to the Milestone 1 requirements.
- What is the minimum required funcitonality for Milestone 1?
DO NOT WAIT
IDLY UNTIL THE FINALIZED API IS READY!!
WRITE YOUR OWN VERSION OF ANY MISSING API PIECES AND
TEST YOUR IDEAS. USE THIS KNOWLEDGE TO IMPROVE THE PROPOSED APIS.
Milestone 1 Advice
- Think simple!
Don't make your game too complicated.
- In terms of features, think in terms of priority and
expandability:
- What are the base, "mission-critical" features that are absolutely
needed in order to play your game? These are the highest
priority features.
- What features fall into the "if we could add this too, it would
be really cool" category? These are lower priority
features.
- Architect your system so that adding additional features will
require a minimum of code modification.
- Think variant and invariant:
Implement the invariants first and then add the variants!
- Don't try to write the whole project at once!
- Write small pieces at a time, testing each piece to make sure it
works BEFORE writing more pieces.
- Write stub (dummy) code for
non-yet-developed pieces that have simple, hard-wired behaviors
-- this allows you to test other pieces of the system first and
minimizes the pain of trying to debug the full system which has a
million places and ways of going wrong.
- Don't be afraid to write something, "just to test out the idea",
even if you know you will eventually throw that code away -- you will
have learned valuable insight and experience, so the effort is well
worth the time.
- START EARLY!!
- ASK FOR HELP WHEN YOU HAVE PROBLEMS!!
PARTICIPATE IN THE PIAZZA DISCUSSIONS! Take an
active role in the design process.
VOTE IN ALL POLLS! Voting is
mandatory on ALL polls and surveys and voting
participation counts toward your final course grade.
© 2017 by Stephen Wong