Saturday, October 16, 2010

Progress Report (10/16/2010)

For the first time in over two weeks, I finally did some things that are exclusively for the purpose of this project.  Not only that, but this may be the longest list of accomplishments this project has ever seen in a single week.  Time-wise, this amounts to about two days' work.  I guess I've just been in the zone!  This has been a week of hyper-productivity in general -- with grading, grad school projects, TLC, and beyond.

The screen shot below shows my current challenge.  Captain April of the Spiders team is showing up on my list just like she should be.  Phantom, however, is the Captain of the Cats team, and should not be on my screen.  Fixing this is my next top priority.



Accomplishments:
  • Designed some level maps:  House, Mansion, Cemetery, Summer Field, Winter Field, and Autumn Field.
  • Enhanced the fire emitter so it can be ignited and extinguished on command, and so it burns out instead of just vanishing.
  • Further generalized the game engine's particle framework.  In TLC, it will be used for sparks, fragments of exploding containers, and perhaps some animated environments and weather effects.
  • Updated the deployment scripts to automate the packaging of the software.  The latest runnable version of the program is in Kristen's TLC Dropbox folder.
  • Started a more formal art asset list and tracking spreadsheet.  It's in Google Docs so we can all have access to it from anywhere.
  • Wrote pseudocode for the AI players.  This has to be done early because it's going to heavily influence the architecture of the game state.
  • Added sound support to MHGUIButton class.  Now you can specify sounds to play when the mouse moves over a button, when the button is clicked, both, or neither.  Tested it with the buttons on the main menu.
  • Started refactoring the server into the State Pattern to simplify the message processing code.
  • Finally made the Team Configuration screen partially functional.  It's not pretty, but it's a start.
  • Did some player mode testing.  Spectator functionality isn't there yet.  The only known issue with player functionality is some confusion between which characters are on which team.
  • Tested the color selection functionality.  Found some issues and fixed 'em.  It is now working just fine.
  • Implemented a message for registering a user type with the server.  Now it can distinguish between players and spectators.

Known Issues:
  • The game cannot request a new team from the server when running as an executable JAR.  I have no idea why.  I/O error of some sort.
  • The host's team configuration screen is listing the characters for all players, not just the host.  The other players get exceptions when trying to access the team configuration screen because their teams are null.
  • Before going into the game state, after all human players have signaled ready, the server needs to compare the number of current players with the max number of teams selected by the host, and then fill in missing teams with AI opponents.
  • When a player drops off, their team data is orphaned.  The server needs to recognize this and place the orphaned team under AI control.
  • Spectator modes should not have a team creation screen since spectators are not players.  They should go straight from the login screen to the lobby, or to the game screen if a match is already in progress.
  • The standalone server app is treating the user as a player instead of a spectator.
Next Steps:
High Priority:
  • Make sure the UPDATE_TEAM messages are being received properly.
  • Make sure the characters' team IDs are correct.  It looks like they aren't.
  • Get the medium buttons into the UI factory.
  • Add "Exit" and "Signal Ready" buttons to lobby screen.
  • Finish the team configuration screen.  (MORE DESIGN WORK NEEDED FIRST!)
  • Create buy and sell buttons for team config screen.
  • Fix "Join LAN", "Spectator", and "Standalone Host" modes.
Medium Priority:
  • Enhance client list display on Lobby screen
  • Begin building the game state.
  • Redo team creation screen with custom components.
  • Create isometric wall tile converter
  • Create command line interface for server app so it can be launched and configured remotely.
  • Create custom TLC input dialog screen
  • Replace boring buttons with image buttons.
Low Priority:
  • Change layout of main menu.  Put in placeholder for skyline backdrop.
  • In the standalone server app, the game setup screen should have an "AI Only" button that launches the game with no human players.
  • Lay out the HUD.
  • Consider designs for an effective test level.
  • Finish the level design guide.
  • Design the TLC web site.

No comments:

Post a Comment