Showing posts with label screenshot. Show all posts
Showing posts with label screenshot. Show all posts

Tuesday, May 15, 2012

Combat Results Screen

I'm trying hard to catch up to the project timeline, and though I'm making some decent progress, I'm not there yet.  Tonight I implemented the Combat Summary screen, though it's not 100% finished yet.

Specifically, the things that are not finished are:
  • The "Close" and "Don't Show Again" buttons are still missing.
  • The Power Token descriptions are not yet being populated.
  • The Combat Results toggle is currently being ignored.
Once these things are finished, then Requirements 2.3, 2.4, and 2.5 will be complete.  Aside from these, the screen is working beautifully! Here are two examples:





Friday, May 4, 2012

Grenades Work!

I'm having a teeny tiny little celebration here because I now have proof that GRENADES WORK!

Look at the screen shot below.  The Blue Team was lucky enough to have a grenade in the troopers' inventory from the initial token draw before the match began.  The Pink Team had not yet moved, so all of their members were standing together in a group.  Trooper Lucien had a clear shot at them, so he launched a grenade over there and voila!  All Pink Team members took damage!

One attack by Trooper Lucien of the Blue Team damaged every member of the Pink Team. Grenades FTW!



Sunday, April 15, 2012

The Very First Successful Attack!

My friends, this is a momentous occasion in the history of Team Laser Combat.  Just now, for the very first time ever, an attack was successfully processed in its entirety.  My character, Captain Karen of the Blue Team, attacked Officer May of the Green Team.  As you can see by May's health bar in the lower left corner of the screen, she actually took damage!

Coincidentally, this also shows that the health bars work.

Here's exactly what happened:  When it was my turn, I moved Karen so she had a clear shot at May.  I clicked the Attack button, clicked the arrow pointing toward May, and then chose my most powerful offensive Combat Token.  As a result, May's health was decreased by a lot!

Success!

Friday, April 6, 2012

Milestone 1, Phase 3 in Progress

This post is just a quick update on the status of Milestone 1 Phase 3.

Requirement 1.4: The system shall provide an Auto Attack option that players may select if they would rather have the game select their tokens for them automatically after issuing the Attack command. 

Requirement 1.4 is complete.  The Auto Attack option exists and it functions correctly, both on the interface and in the data structures behind the scenes.

The in-game Options menu contains the Auto Attack option.  When it is turned on, players are not prompted to select a combat token to spend when attacking.  Instead, the game employs a simple but strategic algorithm to select one automatically.  This is the same logic that will be used by the AI when I get around to Requirement 1.6.

Requirement 1.5: After the player has selected a direction for attack, the system shall display the offensive combat tokens from the player’s inventory and allow the selection of a token to spend IFF the Auto Attack option is turned off.

Requirement 1.5 is in progress.  The Inventory screen has been parameterized so that it can initialize itself appropriately for each of its three purposes:  viewing the inventory, selecting a token for attack, and selecting a token for defense.  It also allows selection of a combat token to spend on an attack.  The token is correctly removed from inventory when it is selected.

Here's a demonstration of the differences between the "view inventory" mode and the "select an attack token" mode.

In the normal mode, the Inventory screen does not allow a token to be selected.  Instead, it allows you to switch between viewing offensive and defensive tokens for each of the three character types.

When a player is attacking, the Inventory screen opens in a different mode that removes the buttons for switching between views.  The only way to interact with the screen in this mode is to click on a token to select it.
Remaining tasks in Requirement 1.5:

  • Choosing the Attack action should deduct an action point.  It does not currently do this.
  • Power Tokens should be selectable as well, but currently only Combat Tokens can be selected.

Requirement 1.6: AI players shall be able to issue Attack commands that are subject to the same validation rules as the human players.

I haven't really started this one yet.  It seems simple on the surface, but there are a number of really bad bugs in the limited functionality that the AI already has, and these may need to be addressed before this requirement is implemented.  Further investigation is necessary before I'll know for sure.

Monday, April 2, 2012

Requirement 1.3 in Progress

I spent all day today working on Requirement 1.3 (aka Milestone 1, Phase 2).  I estimate that it's about 75% done.  Part of the validation is working and the directional buttons and labels are showing up correctly.  Check it out:

Captain Tom of the Blue Team has a combat token and, as the labeled arrows indicate, a clear shot at two enemies:  Matt and Debra of the Yellow Team.  Of course, he's also in their line of sight too, which will be a bad place to be once they're actually able to attack.
Here's what's remaining before this phase is complete:

  • The validation rules need to be completed.  Right now, they consider any character to be a target, including your own teammates.
  • The arrows need to respond to mouse clicks by tracing the line of sight to get a reference to the chosen target and then storing it somewhere temporarily so it can be transmitted to the game server along with the selected combat token to finish the combat interaction.



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.

Thursday, January 26, 2012

The Next Iteration of the Inventory Screen

Look!  Power Tokens are now being dispensed by the token generator and showing up in the player's inventory.



That's all I have to say for now.  :)


Monday, January 23, 2012

Token Inventory Screen

The token inventory screen is working beautifully, though it isn't 100% finished yet.  Here it is:

Here's an actual screen shot of the inventory screen in action.

As you can see, it differs a little bit from the mocked-up prototype I posted in my last entry (Designing the Token Display).  But the differences are better, in my opinion.  I like the final design far better than my prototype.

The unit type buttons across the top let you select the character class for whom you'd like to see the inventory. Below that you see the selected unit type and how many Heal Tokens they have.  Next you see a label showing whether offensive or defensive tokens are selected for viewing, along with the buttons that allow the player to make that selection.  Then you have the combat-oriented tokens.  At the bottom is a scrolling marquee that provides information about the token or button that the mouse is currently hovering over.

There are only two things missing:
  1. The token display needs to be decoupled so that it can be used in combat for selecting attacks and defensive moves.
  2. Power Tokens need to be included.  However, the token sources aren't generating them yet, so obviously the display can't show them.  That's a separate task coming soon.


Wednesday, January 4, 2012

Four Days Late -- Could Be Worse

The refactoring was a success!  I'm four days past the goal date I set for myself, but that's OK. I've missed deadlines by significantly wider margins than this!

At this point, everything that was working before the refactoring began is working once again.  (Disclaimer: I haven't tested multiplayer mode yet.)  A few things in the interface are a bit clunkier now that I've cut down on the multithreading, but they're functional and it may just be a matter of optimization to smooth them out again.

Once again, everyone is present and accounted for.

So, after this little two-week diversion, what's next on the project plan?  It's a lofty goal, but I would like to accomplish the following tasks in January.  Listed in order of priority:
  1. Token inventory UI
  2. Draw Token action
  3. Event log
  4. Heal action
  5. In-game chat
  6. Clean up the game UI
  7. Fix the old movement bug
Once those are accomplished, I'd like to dive right in to the remaining turn-based parts of the combat system, but that'll be another phase.

May my optimism be warranted!

Saturday, July 2, 2011

Progress Report (07/02/2011)

I'm posting a progress report because I've actually made some progress...and also because it's been a while.



Accomplishments:
  • Movement for the host's characters is working beautifully.
  • Movement for the other players works sometimes, but...
    • ...the path following animation doesn't happen on remote machines.
    • ...sometimes the characters are getting duplicated on the guest machines.
    • ...sometimes the team status display throws an exception.  This is a complete mystery at the moment.
    • ...the lobby doesn't let the guest players in until the host signals ready.  This will be a high-priority fix when I turn my attention to multiplayer mode.
  • Created a primitive version of the "whose turn" display.  Good enough for now, but not really what I want for the final version.
  • Drew a couple more level designs better suited to the new "maximum players" requirement.
Known Issues:
  • 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 in multiplayer mode doesn't turn control over to the player until the host has signaled ready.
  • 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:
  • Make the AI characters move when it's their turn.
  • Finish the level design guide.
  • Create the "whose turn" display.
Medium Priority:
  • Sometimes network errors will cause an AI to be disconnected immediately after it connects.  This causes the lobby screen to wait indefinitely for a player who will never arrive.  The server should detect this and try again to create the AI player.
    • Solution: Refactor the engine's networking modules to use the Observer Pattern. This will also correct the "Known Issue" mentioned above with abandoned team data.
  • Investigate ways to dynamically color the team uniforms.  Experiment on the placeholders.
    • If this works, add the ability to dynamically color MHFont objects too.
  • Create the in-game chat component.
    • But first, fix the issue with the lost messages by making the data structure static.
  • 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.
  • Implement the Draw Token action.
  • Implement the Heal action.
  • Implement the Attack action.
  • 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.
  • Make the AI players taunt each other in the lobby chat, just for fun.
  • Design the 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.
  • Replace the temporary column header graphic on the character equip screen.