Saturday, December 25, 2010

Progress Report (12/25/2010)

Merry Christmas!


With the big holiday, there wasn't a whole lot of time for Team Laser Combat.  My only goal for the week was to get the characters on screen, and I was only marginally successful.  First, the characters were about ten pixels too tall, which I already fixed.  But the biggest issue is that only some of the characters show up, and only some of the time.


Look!  Characters!  Too bad that was only half of the characters in the game...plus they're a bit large for the scale.
Accomplishments:
  • Placeholder images for the characters are now appearing on screen!  Well...sometimes.  Most of the characters are not showing up, despite the fact that they are being initialized with correct spawn points. Fixing this is obviously critical and currently my primary source of stress.
  • Added keyboard controls so now we can scroll around the map to see the entire game board.
Known Issues:
  • Character graphics do not always appear on the game board.  The server assigns valid spawn points to them, the client receives them, but for some reason they don't always show up on screen.
  • The server sometimes stops working before creating all of the AI players.
  • 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.
  • 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:
  • Get the characters to show up on the game screen!  All of them, every time!  (Grr...)
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
  • Create the "whose turn" display.
  • Create the character data viewer.
  • Fix the team color selection for the eighth human player.
Medium Priority:
  • Create the event log.
  • Create the action button menu.
  • Address the server errors during AI creation.
  • 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.

Saturday, December 18, 2010

Progress Report (12/18/2010)

It feels so good to have the actual gameplay elements underway!  The first interactive HUD elements are in place and functional, and the spawn point markers are being successfully processed.

This one screen shot shows evidence of all of this week's progress.  The team status display is shown, it shows an AI team that has successfully recruited an officer, and the spawn point markers have been removed and processed automatically by the game server!

Accomplishments:
  • The AI players now spend their coins.  They go shopping to buy upgrades and recruit characters, and the server logs it all.  You can see some evidence of this in the screen shot above, in the team status viewer.
  • Speaking of the team status display, it's completely functional now.  Look on the screen shot above.  The arrow buttons scroll through the teams in the game, listing their characters and showing their health levels.  Can you guess what the little "X" button in the corner does?
    • The process of implementing this display element exposed some minor bugs, but those issues have all been resolved. 
  • The HUD button menu has been started, but so far it only contains buttons for toggling the team status viewer and the in-game options menu.
  • Speaking of the in-game options screen, it's done and it works.  It contains options for toggling the audio and exiting the program.
  • The spawn point functionality is working.  Notice in the screen shot above that the spawn point markers are no longer visible.  They have been filtered out of the game map and added to a list that the server will use when placing the characters on the board.
Known Issues:
  • The server sometimes stops working before creating all of the AI players.  This seems to happen only when five or more AI players are selected.
  • 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.
  • 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:
  • Create some stand-in placeholder graphics for the game characters until the artists can give me the real ones.
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
  • Create the "whose turn" display.
  • Create the character data viewer.
  • Fix the team color selection for the eighth human player.
Medium Priority:
  • Create the event log.
  • Create the action button menu.
  • Address the server errors during AI creation.
  • 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.

Saturday, December 11, 2010

Progress Report (12/11/2010)

First off...HAPPY BIRTHDAY, MOM!

Now I can get down to business.  :)  It first appeared as though regression were going to be the theme of the week.  Much of the existing functionality was destroyed and then restored in the name of progress.  Was it worth it?  YES!  Old bugs were fixed, reliability of existing functionality was bolstered, the overall testability of the software was greatly enhanced, and the way is being paved for some fun and somewhat sophisticated artificially intelligent computer opponents.

As of this writing, those computer opponents are giving me a whole heap o' trouble, but I'll conquer 'em.  It's just a matter of time...

Look!  Real AI players are waiting in the lobby!


Accomplishments:
  • Started the week with a massive refactoring effort to prepare for the AI.  
    • Changes to the central data facade exposed a critical error -- the game options were never being saved to the server!  The reason why it worked before is because the host and the server were sharing the same data components.  However, the AI players are going to need their own sets of data, which means that I needed to separate the server's data from the players' data.  Once I did that, the server no longer recognized the game options selected by the host because the game options were never being sent across the network.  Fortunately, that was an easy fix.
    • As a result of all that refactoring, the TLCDataFacade class is no longer a classic Singleton.  (For all I know, it may represent a whole new design pattern that hasn't been defined yet.)  Its instantiation now requires a unique "data ID" that is used for indexing an internal collection of data instances, so that when a client object makes calls, the facade delegates those calls to the appropriate instance.  This way, multiple clients (such as AI players) can live in the same address space without stomping all over each other's data.
      • Why not just aggregate the data facade into the AI player class, you ask?  Because some subsystems require that same global point of access that the Singleton provided.  Either that, or I undergo another, even more massive refactoring.  No, thanks!
  • The captains now show up reliably on the team rosters.  It's about time!  That bug has been in the Known Issues list for ages.
  • Some AI players are now being created successfully, but not all of them.  For some reason, the server seems to completely freeze after creating the first couple of AI players.
    • Notable exception:  After a fresh reboot of my laptop, I was able to set up three different games in a row where I had one or two human players and one to three AI players, and it worked.  According to the server logs, the AI was even able to create teams, recruit captains, and signal to the game server when they were ready to begin playing.  (Note to self:  Investigate using ReentrantLock objects on commonly used server methods.)
  • Did the very first connectivity test using all eight human clients.  Everything worked great until the last one -- it connected just fine but the client program crashed due to an error in the color selector.  Weird. 
Known Issues:
  • The server sometimes stops working after creating a couple of AI players.
  • 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.
  • 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:
  • Finish the AI for the lobby state.
    • Still needs to be able to "go shopping" and spend coins on upgrades and recruitment.
    • Server errors during AI creation need to be addressed.
  • Create the team status viewer.
  • Create the event log.
  • Create the "whose turn" display.
  • Create the character data viewer.
  • Create the HUD button menu.
  • Create the action button menu.
  • Create an in-game options screen.
Medium Priority:
  • Finish voice scripts for narration.
  • Investigate ways to dynamically color the team uniforms.
  • Finish asset lists for current set of level designs.
  • Formalize the flowchart for the AI logic.
  • Fix the team color selection for the eighth human player.
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.

Saturday, December 4, 2010

Progress Report (12/04/2010)

This week's accomplishments were not numerous, but they were of vital importance.  The project is in a new phase now where the focus has shifted to game play initialization, which involves fairly significant effort in the user interface, the network client modules, and most of all, the game server.

This is the very first screen shot of the actual game screen, though it's still missing the UI.  Those red balls won't be visible in the final game -- they're just spawn point markers that the server will process and then filter out.
Accomplishments:
  • Decided that the simplest way to organize the level assets, at least during development, is to superimpose LIME's directory structure onto the game's directory structure.  Overall, it's a messy approach, but it will save a lot of time and be less error prone than constantly copying files around whenever changes are made.  I may return to this issue and reorganize things once most of the levels have been completed.
  • The game screen is here!  It's not very interactive yet, but the loading screen loads it and then the game screen appears with an actual level loaded into the main viewport!  (Screen shot above.)  That's one small step for a programmer, one giant leap for Team Laser Combat.
  • Encountered a problem in regression testing.  A couple of months ago, when I added the new layers, I did not test the map renderer adequately.  As a result the rendering order was causing a problem when an obstacle was placed too close to a wall.  So I fixed the rendering algorithm, and actually optimized it quite a bit in the process!  (Yay!)  Unfortunately, there will now be issues when animating sprites from one map cell to another, and visual glitches when a tall object has a ceiling in front of it, but I already have a fix in mind just in case it ends up being a real problem.
  • Started experimenting with palette manipulation and image processing so that the characters' uniforms can be colored according to their team color.  I hope to have a working prototype soon.
Known Issues:
  • 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 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:
  • 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.
  • Create the team status viewer.  (Dependent upon lobby state AI.)
  • Create the event log.
  • Create the "whose turn" display.
  • Create the character data viewer.
  • Create the HUD button menu.
  • Create the action button menu.
  • Create an in-game options screen.
Medium Priority:
  • Finish voice scripts for narration.
  • Investigate ways to dynamically color the team uniforms.
  • 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:
  • 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.

Saturday, November 27, 2010

Progress Report (11/27/2010)

I presented the project in its current state to the Indie Video Game Developers Association this week and got some great feedback.  As a result, this week was a mix of improvements to the existing product along with planning for the next phase.

Also, with the addition of the isometric tile transformer utilities, I've been able to easily experiment with new tile configurations and arena layouts, such as the one pictured below.

I call this one "Pounded".


Accomplishments:
  • Based on a suggestion from the Indie Video Game Developers Association, I lightened the color of the data font by 50% to make it more readable against the dark background.
  • Added a few more random gameplay tips to the Loading screen.
  • Designed a good HUD layout.  Will create a high-fidelity prototype of it soon to see if it's really as good as I think it is.
  • Decided to change a rule regarding character training:  Now when a character is retired, its equipment, character type, and level of training determine how many coins are returned to your team's budget.  So you still can't sell training the way you can sell equipment, but you are compensated for it when you retire the character.  This change has been implemented and tested.
  • The clients now transition into the game state automatically when the server does.  The game clients wait for a specific message to arrive from the server.  When it does, they begin loading the game screen.
  • I enhanced MHFramework's sound player so now you can give it an array of sound IDs and it will play them one at a time in sequence.  This functionality is required for the narration voice-overs.
  • Recent changes to the game application have made the standalone server app mostly obsolete.  Not entirely obsolete, but I have stopped developing that application for now.  I may return to it later when we begin heavier testing.
  • Added an Options screen with buttons to toggle sound and music.  The sound toggle works, but music has not yet been implemented.
  • Began a discussion on the logistics to make it possible and convenient to work with voice-over artist Karina Martin-Moore.  There's more to come on this issue.
  • Created a utility for splitting a texture into floor tiles and saving them to PNG files.
  • Created another utility for converting a texture into right facing, left facing, and corner wall tiles, and saving them to PNG files.
Known Issues:
  • 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.
  • Once all the human players have all connected, the server needs to create the AI players.  Those players need to be able to configure their teams and signal ready to the server.
Next Steps:
High Priority:
  • 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.
Medium Priority:
  • Finish voice scripts for narration.
  • Investigate palette manipulation so we can color the team uniforms.
  • 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.
    • 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.

    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.

          Saturday, November 13, 2010

          Progress Report (11/13/2010)

          Again I've had a week that has left little time for TLC, but I did get one major thing done:  The character configuration screen is working!




          Accomplishments:
          • Established the protocol for client/server communication in the game state.
          • Got the character configuration screen working in its entirety.  (It's pretty cool, if I do say so myself.)
          • Added a small chat client to the team and character configuration screens.  This doesn't keep all chat messages from getting lost during screen transitions, but it's closer.
          • Discovered an error in the implementation of the character stats.  The current initialization process does not match the game design specifications.  So I fixed it.
          • Drew a rough sketch of the UI that allows a player to take his/her turn.
          Known Issues:
          • 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.
          • Spectator modes should not have an "Upgrade Team" button on their lobby screen.  The only button they should have is "Exit" because that is the only thing they are allowed to do other than wait for the players to be ready.
          • The server pays no attention to the number of teams selected on the Game Setup screen.  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:
          • Finish the lobby screen.
            • Add "Exit" and "Signal Ready" buttons.  
            • Remove the "Upgrade Team" button from the spectators' lobby.
            • Create a display for player name, team name, and team color.
              • For spectators, it should only display their user names.
            • Enhance client list display to show team colors and user roles.
              • Each row in the list should display a "ready" checkmark, a colored box showing team color, and the name of the user.
            Medium Priority:
            • Create isometric wall tile converter.
            • Create utility for exporting converted iso tiles to PNG files.
              • Necessary for the "floor tiles in the obstacle layer" optimization, among other things.
            • Finish asset lists for current set of level designs.
              • Evaluate Sarah's level designs, too.
              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.
              • Lay out the HUD.
              • Finish the level design guide.
              • Design the TLC web site.
              • Enhance the team configuration screen.  
                • Add the coin display for showing the team's budget.
                • Use better fonts for the player name and column headings.
              • Finish the character configuration screen.
                • Add coin display.
              • Enhance the recruitment screen.  
                • Explain the abbreviations in the column headings with a dialog box accessed by a Help button.

              Saturday, November 6, 2010

              Progress Report (11/06/2010)

              This week showed a slight slowdown in the project's progress, but just barely.  It was an especially busy week, and next week is likely to be even more so.


              I think the new font, along with the red gradient and chrome finish, looks pretty sweet!

              Accomplishments:
              • Greatly simplified the way the engine handles windowed mode.  All display code is much cleaner now.
                • This also fixed the alignment issue in the server app.
              • Got the Android Nation font into the engine, with a red-to-black gradient and a shiny chrome border.
              • Standardized the fonts used in screen titles and dialog boxes.
              • Designed two simple test arenas with very minimal asset lists.
              • Updated the team creation screen with custom components.
              Known Issues:
              • 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 an "Upgrade Team" button on their lobby screen.  The only button they should have is "Exit" because that is the only thing they are allowed to do other than wait for the players to be ready.
              • The server pays no attention to the number of teams selected on the Game Setup screen.  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:
              • Enhance the recruitment screen.  
                • Explain the abbreviations in the column headings with a dialog box accessed by a Help button.
              • Enhance the team configuration screen.  
                • Include a small chat client so players can talk while getting ready for the next match.
                • Add the coin display for showing the team's budget.
                • Use better fonts for the player name and column headings.
              • Finish the character configuration screen.
                • Add equipment and training tables.
                • Add Help and Reset buttons.
                • Add coin display.
              Medium Priority:
              • Create isometric wall tile converter.
              • Create utility for exporting converted iso tiles to PNG files.
                • Necessary for the "floor tiles in the obstacle layer" optimization, among other things.
              • Finish asset lists for current set of level designs.
                • Evaluate Sarah's level designs, too.
              • Finish the lobby screen.
                • Add "Exit" and "Signal Ready" buttons.  
                • Remove the "Upgrade Team" button from the spectators' lobby.
                • Create a display for player name, team name, and team color.
                  • For spectators, it should only display their user names.
                • Enhance client list display to show team colors and user roles.
                  • Each row in the list should display a "ready" checkmark, a colored box showing team color, and the name of the user.
              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.
              • Tack on Help buttons to more components and screens.
              • 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.
              • Lay out the HUD.
              • Finish the level design guide.
              • Design the TLC web site.