Saturday, January 8, 2011

Progress Report (01/08/2011)

I hate to say it, but there has been no growth this week whatsoever.  All of my (extremely limited) time on the project this week was aimed at fixing the intermittent server crashes that sometimes occur when setting up the AI players.  It's irritating -- it works several times in a row, giving the illusion that the problem is gone.  But when I'm ready to move on to the next step, the crashes return.  Grr!

But it's OK.  I will find a solution.  I shall not be beaten!

And by the way, expect the reports to be much shorter and less substantial over the next few weeks.  I'm teaching three classes right now and am taking one pretty intense grad school class.  TLC may have to take a back seat for a bit.

Accomplishments:
  • Did some minor optimization of the AI creation process.  It seems to have helped a little.
  • Added additional logging to the server code in an attempt to identify the crash sites.
  • Got an idea that could solve several issues:  The server needs to send a new message when all of a team's data has been broadcast.  
    • That way, the game client can more accurately monitor what's happening on the server.  This would help a user to know that the server is still working on AI players and has not stopped responding...as it sometimes appears.
    • Also, if a team's data is not received after a pre-set timeout value, the client can assume that the player has dropped off and stop waiting for them.
  • Had another idea to inform the user about the server's activities:  The game loading screen should display a message under the progress bar that indicates what stage of loading the client is actually in.  This message would be set by a static method call from within the loading thread.  It's an extremely simple enhancement that is also extremely helpful.

Known Issues:
  • The game setup process takes much too long to create and initialize the AI players.  Gotta optimize that and try to speed it up.
  • As complexity grows, server crashes are becoming more frequent, and they leave no report or indication that something went wrong except that server responses stop coming back to the client.  I really need to make the server a lot more robust and verbose.
  • Network latency causes character upgrades to not show up right away.  The client needs to wait for the updated character to return from the server before returning to the team screen.
  • The color cycle control on the team creation screen throws an exception when there is only one color remaining to choose from.  This is only an issue when setting up a game with eight human players.
  • Chat messages 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.
Next Steps:
High Priority:
  • Beef up the server...again.
  • Create the action button menu.
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
  • Create the "whose turn" display.
  • Create the character data viewer.
Medium Priority:
  • Fix the team color selection for the eighth human player.
  • Create the HUD's event log display.
  • Finish voice scripts for narration.
  • Finish asset lists for current set of level designs.
  • Formalize the flowchart for the AI logic.
Low Priority:
  • Create the token factory and displays.
  • 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 command line interface for server 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