Saturday, November 20, 2010

Progress Report (11/20/2010)

This week was a serious hardening sprint that really solidified some of the game's critical features.  Each time a critical feature is bolstered, the project overall becomes more stable and its future becomes more secure.  If next week provides the opportunities I'm hoping for, some important parts of the technical design work will be refined in preparation for the game state functionality.  It's time for some real software engineering now!


The new Lobby screen has an enhanced client list display that shows team colors, player names, and a "ready" indicator.




Accomplishments:
  • Found and fixed several problems in the character configuration screen.
    • Discovered that endurance training was broken.  Your team's budget got charged for it, but the effect didn't stay on the character.  The reason:  endurance is max HP, which is a property of the MHActor class, and not of the TLCCharacterData class.  Calling the setMaxHealth() method of the MHActor class during the character's deserialization fixed the problem.
    • The functionality for the equipment/training buying process had a huge bug:  It let you buy as much as you want even after your budget had been depleted.  This has been fixed by adding extra validation to the UI on the character screen.
  • Made some necessary enhancements to the character configuration screen.
    • Added a Retire button for retiring characters from your team.
    • Added a Cancel button to give players the option of undoing changes made to character stats without incurring a budget penalty.
  • Created a user identification marquee.
    • For players, it shows the user name and team name bordered by the team color.
    • For spectators, it shows the user name and the word "Spectator" in a black border.
  • Enhanced the client list display to show team colors and the status of the "signal ready" indicator.
  • Finally finished the Lobby screen!  Look at the screen shot above.  It's about time, isn't it?
  • Spectator Mode now works 100%.  Also, if a new player tries to join after the max number of players has already been reached, the new player automatically becomes a spectator.
Known Issues:
  • The server automatically transitions into the game state when all the players have signaled that they're ready to begin, but it does not tell the clients to come along with it.
  • Intermittently, the captain will not show up on the team roster the first time the team screen is opened.  It works almost all the time, but not always.  This issue is caused by network latency, and all attempts to correct it have failed so far.  
    • However, there is an easy workaround -- opening the Help dialog (or any other screen) and closing it again triggers a full refresh of the screen.
  • Chat messages sometimes get lost when a user in multiplayer mode switches between the lobby and the team/character configuration screens.
  • When a player drops off, their team data is orphaned.  The server needs to recognize this and place the orphaned team under AI control.
  • 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.
  • The standalone server app does not use the custom TLC laser gun mouse cursor.  As a result, the pointer position is off.  It should use the same cursor as the game app.
Next Steps:
High Priority:
  • Make the clients transition into the game state when the server does.
  • Create the AI for the lobby state.
    • Needs to be able to create a team, spend coins at random, and then signal ready to the game server.
  • Figure out the best way to organize the game maps and tile images.  
    • I am leaning toward the creation of a directory that contains everything involved in game world creation, including the map data files and the tile images.  Experimentation is necessary.
  • Create isometric wall tile converter utility.
  • Create utility for exporting converted iso tiles to PNG files.
      Medium Priority:
      • Lay out the HUD.
      • Finish asset lists for current set of level designs.
        • Evaluate Sarah's level designs, too.
      • Formalize the flowchart for the AI logic.  (Due January 3, 2011.)
        Low Priority:
        • Finish the team creation screen.
          • Put in the floor image for the captains to stand on.
          • Replace plain gray buttons with captain character images.
          • Create team color oval beneath each character's feet.
        • In the standalone server app, the game setup screen should have an "AI Only" button that launches the game with no human players.  It should also have buttons for displaying team, character, and user data.
        • Create command line interface for server app so it can be launched and configured remotely.
        • Finish the level design guide.
        • Design the TLC web site.
        • Get coin display graphics from the art team.
          • Add it to the team configuration screen.the character configuration screen and the recruitment screen.

        No comments:

        Post a Comment