Saturday, February 25, 2012

Progress Report (02/25/2012)


Now we're getting somewhere!  The bugs discovered in the last report have already been tracked down and eliminated.  And so far, only one new bug has surfaced in the process.  Granted, it's a pretty bad one, but at least there's only been one.
 
There may be a lot of issues, but look at how much stuff is working now!

Accomplishments:
  • Fixed the bug where the AI players got two turns at a time.
  • Fixed the bug where units couldn't move twice in a row.
  • Fixed the bug where drawing tokens failed to advance to the next player's turn.
  • Discovered a bug with the AI:  Occasionally a unit will get stuck in an infinite loop where it repeatedly tries to move to the space that it's already in.  I'm not sure, but I think this may be happening when two units try to move to the same space at the same time.
    • At the very least, the AI manager needs to wait until a unit has stopped moving before moving the next one.  
    • This will cause huge problems when more game elements factor into the AI, like items and combat.


Known Issues:
  • Occasionally a unit will get stuck in an infinite loop where it repeatedly tries to move to the space that it's already in.
  • The game gets stuck in the lobby if the host is a spectator rather than a player.
  • Several bugs specific to Join LAN mode:
    • 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 lobby doesn't turn control over to the player until the host has signaled ready. (I believe this is the exact same bug mentioned above that traps players in the lobby.)
    • Chat messages get lost when switching 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:
  • Force the AI manager to wait until a unit is finished moving before moving the next one.
  • Make the inventory screen customizable for attacking and defending.
  • Implement the Attack action.
  • Implement destructible containers.
  • Add validation to the actions menu so that unavailable actions have a different appearance.
Medium Priority:
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
    • If this works, add the ability to dynamically color MHFont objects too.
  • Add hazards and bonus spaces to the game board.
  • Finish the level design guide.
  • Finish asset lists for current set of level designs.
Low Priority:
  • Create the in-game chat component.
    • But first, fix the issue with the lost messages by making the data structure static.
  • Implement the Defend interface.
  • Model the characters.
  • Animate the characters using Shaun Hager's animations.
  • Add sound effects to the actions menu buttons.
  • Implement the Heal action.
  • Finish the "whose turn" display.
  • Finish voice scripts for narration.
  • Finish the team creation screen.
    • Put in the floor image for the captains to stand on.
    • Replace plain gray buttons with captain character images.
  • Let's see if we can allow the player to change video modes dynamically from the options screen so they don't have to close the program and rerun it to change resolutions.
  • Design the web site.
  • Get coin display graphics from the former art team.
    • Add it to the team configuration screen.the character configuration screen and the recruitment screen.
  • Replace the temporary column header graphic on the character equip screen.
  • Test and troubleshoot the multiplayer modes.

Saturday, February 18, 2012

Progress Report (02/18/2012)


This last sprint feels like it set me back almost as much as it progressed me forward.

Of course that's not actually true.  In fact, it was the progress of creating the event log that revealed some defects that had been there the entire time.  There are no bugs with the event log itself, and the Draw Token action is working except for a weird little bug with the action points and taking turns.

Look at that beautiful event log in the upper left!  Sexy!


Accomplishments:
  • Created the event log display.
  • Discovered that the bug with the Move action applies to AI as well as human players.  Same bug no matter whose turn it is.
  • Discovered a huge bug that was revealed by the event log -- AI players get two turns in a row but human players only get one.
  • Discovered a bug in the way action points are deducted by the Draw Token action. When a player runs out of action points by drawing tokens, the game doesn't advance to the next player.


Known Issues:
  • Something is keeping the characters from performing two Move actions in a row. 
    • The workaround of just trying again still works. It alternates -- works the first time, fails the second, works the third...and then you're out of action points.
    • The bug does not manifest in the Draw Token action. It's specific to Move only.
  • AI players get two turns in a row but human players only get one.
  • When a player runs out of action points by drawing tokens, the game doesn't advance to the next player.
  • The game gets stuck in the lobby if the host is a spectator rather than a player.
  • Several bugs specific to Join LAN mode:
    • 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 lobby doesn't turn control over to the player until the host has signaled ready. (I believe this is the exact same bug mentioned above that traps players in the lobby.)
    • Chat messages get lost when switching 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:
  • Make the inventory screen customizable for attacking and defending.
  • Fix the actions menu bugs mentioned above.
  • Create the HUD's event log display.
Medium Priority:
  • Implement the Attack action. 
  • Implement destructible containers.
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
    • If this works, add the ability to dynamically color MHFont objects too.
  • Add hazards and bonus spaces to the game board.
  • Create the in-game chat component.
    • But first, fix the issue with the lost messages by making the data structure static.
  • Finish the level design guide.
  • Finish asset lists for current set of level designs.
Low Priority:
  • Model the characters.
  • Animate the characters using Shaun Hager's animations.
  • Add sound effects to the actions menu buttons.
  • Add validation to the actions menu so that unavailable actions have a different appearance.
  • Implement the Heal action.
  • Finish the "whose turn" display.
  • Finish voice scripts for narration.
  • Finish the team creation screen.
    • Put in the floor image for the captains to stand on.
    • Replace plain gray buttons with captain character images.
  • Let's see if we can allow the player to change video modes dynamically from the options screen so they don't have to close the program and rerun it to change resolutions.
  • Design the web site.
  • Get coin display graphics from the former art team.
    • Add it to the team configuration screen.the character configuration screen and the recruitment screen.
  • Replace the temporary column header graphic on the character equip screen.
  • Test and troubleshoot the multiplayer modes.

Saturday, February 4, 2012

Progress Report (02/04/2012)


This week I finished up the token system (at least until the combat system is functional) and I updated an old MHFramework utility, SpriteTester 2. Not bad for a week that was overwhelmingly monopolized by a tremendous volume of schoolwork.

No, that's not a TLC image. It's a frame in the loading animation from Chaotus' Archery Range.
Accomplishments:
  • Updated SpriteTester 2 to work with the latest MHFramework build. 
    • This utility will be necessary when I begin working on animations for this game.
  • Each team is given a few free tokens at the start of each round.
  • AI players can now draw tokens on their turn.
  • The Draw Token action now deducts an action point in accordance with the game rules.


Known Issues:
  • Something is keeping the human players' characters from performing two Move actions in a row. 
    • The workaround of just trying again still works. It alternates -- works the first time, fails the second, works the third...and then you're out of action points.
    • The bug does not manifest in the Draw Token action. It's specific to Move only.
  • The game gets stuck in the lobby if the host is a spectator rather than a player.
  • Several bugs specific to Join LAN mode:
    • 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 lobby doesn't turn control over to the player until the host has signaled ready. (I believe this is the exact same bug mentioned above that traps players in the lobby.)
    • Chat messages get lost when switching 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:
  • Make the inventory screen customizable for attacking and defending.
  • Fix the actions menu bugs mentioned above.
  • Create the HUD's event log display.
Medium Priority:
  • Implement the Attack action. 
  • Implement destructible containers.
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
    • If this works, add the ability to dynamically color MHFont objects too.
  • Add hazards and bonus spaces to the game board.
  • Create the in-game chat component.
    • But first, fix the issue with the lost messages by making the data structure static.
  • Finish the level design guide.
  • Finish asset lists for current set of level designs.
Low Priority:
  • Model the characters.
  • Animate the characters using Shaun Hager's animations.
  • Add sound effects to the actions menu buttons.
  • Add validation to the actions menu so that unavailable actions have a different appearance.
  • Implement the Heal action.
  • Finish the "whose turn" display.
  • Finish voice scripts for narration.
  • Finish the team creation screen.
    • Put in the floor image for the captains to stand on.
    • Replace plain gray buttons with captain character images.
  • Let's see if we can allow the player to change video modes dynamically from the options screen so they don't have to close the program and rerun it to change resolutions.
  • Design the web site.
  • Get coin display graphics from the former art team.
    • Add it to the team configuration screen.the character configuration screen and the recruitment screen.
  • Replace the temporary column header graphic on the character equip screen.
  • Test and troubleshoot the multiplayer modes.