CS 257: Software Design

Final Project, Phase 2

Next up: nail down the interfaces for your core classes. For example, if you're doing an Asteroids game, you might have Asteroid, Spaceship, Bullet, and Scoreboard classes, and a Model class to aggregate the game state. The functional interfaces for these classes will be pretty straight-forward to describe in most cases.

In addition, in most projects you'll want to include serialization: that is, the ability to save the state of your game/simulation/whatever and load it later (including on next launch). Java has serialization support built in, and there's a nice serialization tutorial here.

By "core classes" above and below, I mean both the Model class(es) of your MVC architecture and the smaller classes that the Model aggregates (like the Asteroid, etc. above). You do not need to include the View or Controller classes in this, unless your Asteroid/Spaceship/etc. classes are doubling as "info about an asteroid" and "visible Node in the JavaFX Scene."

What to hand in

By 11:59PM Friday, May 26, update your cs257 repository with a directory named "final", and tag the repository with "final2". The directory should include: