Saturday, June 05, 2010

PIC-Guam Game Development Status 6/5/10

This is my first blog post using Windows Live Writer.  It may take me a while to get the formatting right…

I’m continuing to make progress on the prototype for PIC-Guam.  In May I spent over 26 hours working on the game.  I have better momentum now that I’ve had since the last Origins trip for PC Eylau in 2005.

My post last October was quite optimistic in a couple of areas.  I underestimated the amount of work to be done to produce a viable prototype, and I overestimated the amount of time I would have over the 2009 holiday season to work on the game.

I only really got a clue when I finally created a coordinating task for the prototype that listed everything I wanted to accomplish.  Here’s the text from my notes:

a    perform task PG-100515=1:
        Guam Prototype Coordinating Task

        this sets the agenda for completing the Guam prototype

        notes 5/15/10: 0810..0842
            planning
done            figure out what is missing
done            mark as P3I tasks not part of the prototype
done            add P3I's to P3I list
done            derive or locate a task for each missing item

        plan
            what is missing from the prototype (Orote scenario)

PG-100515=2     movement (UI, DB, game system)
PG-100528=1:    turn sequence
PG-100515=3     fire combat 
                     defensive (UI, DB, game system)
                     offensive (UI, DB, game system)
PG-100515=4     assault (UI, DB, game system)
                     P3I: movement after assault
PG-100515=5     complete the Orote data
PG-100515=6     head to head play mode
PG-100515=7     AI play mode 
                     P3I: AI plays both sides
PG-100515=8     UI hex window
PG-100515=9     UI unit window
PG-100515=10    UI fire attack window
PG-100515=11    UI assault attack window
PG-100528=2     Game Status window
PG-100515=12    UI game messages window
PG-100515=13    victory conditions - no NME units left
PG-100515=14    present the prototype to Chris

PG-100515=16    release the game as a CTP to the Beta group
PG-100515=17    make a Guam Release Coordinating Task 
                    

So far I have completed most of movement and enough of the turn sequence to move forward.  I documented my progress in the recent demonstration video posts.  I’ll continue to do so as I complete new features.  The tasks above fall into 4 categories: game system, AI, UI, and coordinate (with Chris and the Beta group).  I plan to do them in roughly that order.  I estimate this will take 100-200 hours to complete, or 4-8 months of notional calendar time.  Assuming my estimate is not too far off (yeah, right!), I think the prototype may be complete by Christmas and available to the Beta group in early 2011.

Labels: , , , , , , , ,

Saturday, October 17, 2009

Game Status Update 10/17/09

OK, here's the deal. PC Eylau is not dead, but it is on the shelf. As Miracle Max said in The Princess Bride, it's only mostly dead. Though there has been a shakeup at Clash of Arms that could lead to publishing the game without an AI, I think the game needs to be re-implemented as a C#/WPF game in order to produce a stable product. Taking into account the time estimate for that work and a guess as to the size of the market for that game, and comparing that with the cost/benefits for PC PIC-Guam, there''s more money to be made for less effort for PC PIC-Guam.


So PC PIC-Guam is a go. I am moving forward with the PC PIC-Guam prototype by replacing the WPF Docking Library with AvalonDock (4-8 hours). After that I will move the prototype to the Visual Studio 2010 beta in order to get support for unit testing (1-2 hours). Then I will implement a couple of views and enough UI controls to drive basic game play; at the same time I will begin work on the game system code with the goal of prototyping basic combat for the head-to-head play mode (SWAG 20-32 hours). This totals up to 25-42 hours, or 6-11 weeks at 4 hours per week. Adding 6 more weeks to account for the birth of our baby, Christmas vacation, final review for the 70-502 WPF cert test, and family visits, I estimate I will complete this work around February 14th.


Once I complete the prototype, I will update my project plan and get with Chris about releasing the prototype to the test group as a preview.

Labels: , ,

Sunday, July 05, 2009

PC PIC-Guam Status 7/5/09

I've written the high level design for over 80 percent of the decisions to be made by the AI, so I've switched over to working on the UI prototype for a while.


Today I got the code working for the cursor position on the map, and I adapted the PC Eylau code for mapping the cursor position to the map hex. I also figured out how to fix some problems I'd had with that code in PC Eylau.


Other UI techniques I will prototype include

  • use PIC-Guam map on screen
  • show a unit graphic on a hex
  • show a stack graphic on a hex
  • click through a stack
  • click to select a hex
  • apply overlays to a hex: current hex highlight and colored overlay
  • shade a hex
  • make a hex transparent; restore the normal appearance of a hex
  • context menu
  • menu
  • docking toolbars
  • docking windows
  • splash screen;video clips
  • help | about dialog
  • scrolling credits
  • play a music file
  • store all graphics in a separate resource assembly (not sure of term)
  • MVVM
  • stack view; allows cycling through units easily
  • drag and drop
  • display part of the map (a megahex) in another view
  • display part of the map (a megahex) in a dialog
  • animated buttons
  • progress indicator
  • animated/smooth movement of hexes from hex to hex during movement
  • playback of movement (replay)

Labels: , , ,

Sunday, June 07, 2009

CppDepend Beta Test - First Impressions

I downloaded and installed CppDepend this weekend and ran it on the PC Eylau source code. It works fine aside from a few very minor fit and finish issues in the UI. I found out a number of things about my code I was not aware of, and I can see how CppDepend will be a very useful tool for developing code smells.


If you're doing serious software development, your team needs a tool like this.

This is just a place holder entry for now...my laptop is not talking to the network here at home and I refuse to sneakernet JPGs in this day and age. I am posting this from my wife's laptop. I'll write up a better entry with more detailed observations, plus screen shots, in the next day or two. Scout's honor.

Labels: , , , ,

PIC-Guam Progress

I am continuing to playtest the PIC-Guam game. I have been reviewing the rules, particularly from the point of view of writing a computer "AI" opponent. My latest set of questions includes

  • Do landing units have to stay in their lanes? For example, the way the lanes are drawn it looks as if Red 1 can land in either 2712 or 2711.
  • Can you add a note about the lagoon half strength rule to the CRTs?
  • Is a lagoon hex considered to be a non-clear hex? Can I cause X fire casualties by firing into a lagoon hex?
  • 2.12.1.2 Which hex is the "sea" hex? Is the sequence properly sea-lagoon-beach, or really lagoon-beach?
  • 2.12.1.2 What happens if landing units are stuck on the lagoon or beach? Do stacking limits prevent further entry to a lagoon or beach hex, delaying further landing waves? Do stacking limits apply in a lagoon hex?
  • 3.4 What is the size of an HQ unit? Should there be an exception to 3.4 Stacking that permits a regimental HQ to stack with its regiment in violation of the stacking rules?
  • 2.12.1.2 Can a landing unit move from one lagoon hex to another? Can a landing unit move outside the designated lanes?
  • 3.6 Can Japanese replacements be chosen for an HQ unit that was destroyed?
  • Are Naval units placed at the "start of each turn" per 11.2, or are they placed in Movement phase? In other words, when are ships placed on the map?
  • Can 6.2.4 Air-Ground suppression take place if the Japanese unit is in a fortification?
  • Does 5.5 Japanese infiltration apply to all Japanese units, including armor?
  • 2.12.1.3 I think the last sentence should be removed. It seems to me that per 2.12.1.2, a unit in a lagoon is obliged to either move to a clear beach hex (see my first question above), or is obliged to perform an Amphibious Assault against an enemy controlled beach hex. There appears to be no logical way for a US unit in a lagoon to perform an Amphibious Assault against a non-beach hex.

I think this is a great set of rules. It is pretty easy to play, very easy to develop an AI for, and reasonably faithful to what I have been able to learn about the Battle of Guam in 1944. I am very happy to be participating in the playtest.

I'm currently putting together a proposal to develop a PC-based game for this title. I don't know whether GSI of TX will be interested in it, but I certainly am: I think I can build the entire game, including multiple play modes and an acceptable AI opponent, in less time that I can complete the work on PC Eylau.

Labels: , , , ,

Saturday, April 25, 2009

Game Dev Status 4/25/09

I'm making good progress on the "One Div" version of the AI for PC Eylau. I have put in just over 12 hours of work so far this month. The CreateAttackOrdersFromAssignment() code looks like


This is pretty simple. If the enemy cannot contact us this turn, move to a phase line along the axis of advance towards the current goal (a victory hex location). If the enemy can contact us this turn, define a FEBA based on a phase line along the axis of advance conforming to the enemy locations, and move to this FEBA to place units so they can deliver attacks with maximized estimated results. If the enemy is in contact already, adjust units' locations to improve estimated attack results.

The code fans out from there and becomes somewhat more complex in the realization of these aims. I'm still working on CreateMovementToContactOrders() at this time. Once I have something to show, I'll see about putting together a video.

Labels: , ,

Sunday, October 19, 2008

PC Eylau Beta 8 Release

PC Eylau Beta 8 is now released to the test group. This is a password-protected installer. The password is restricted to persons in the test group who have signed the Non-Disclosure Aggreement. Passwords will be mailed to the NDA list in the next day or so.

Here are the Release Notes.

vive l'E!

Important safety tip: clicking on the links above may cause the hosting site (FileFactory.com) to attempt to download spyware onto your PC. It happened to me, but my McAfee software prevented this. Your mileage may very, so be cautious. I will find a better file hosting solution as soon as I can...it may be a week or so.

Labels: , ,

Friday, March 28, 2008

Game Development Status 3/28/08

monthly total 7 h 41 m; yearly total: 20 h 17 m

I took the afternoon off and worked on the game today. I'm still working on decoupling the AI thread from the main thread storage.

I'm guessing it will be another month or so before we can crank out another "beta". I want to finish the decoupling work, then fix a few of the more obvious bugs that have cropped up recently, then at least get through the single-division, test version of the "Opening Moves" scenario with the AI.

Chris already gave the good housekeeping seal of approval to putting out a new version.

This next version should be available on this site between the end of April and the end of May, depending on my progress and my other commitments.

By the way, the software will be distributed on the Yahoo gsibetatest2 site with a password...this will be made available to each person who has signed the non-disclosure agreement (NDA).

vive l'E!

Labels: , , ,

Wednesday, November 21, 2007

Game Development Status 11/21/07

I put in some work on the game for the first time in two months today. The game just hasn't been a high priority for me lately.

I updated the installer and tested it on a couple of laptops. I need to activate a copy of Vista before I can resolve Chris' issues with the installer.

While exploring the setup project, I found the View User Interface option in the context menu from the setup project node in the Solutions Explorer window. This provides a tree view of the installer dialogs, and allows for adding additional dialogs such as a EULA dialog, a Splash dialog, and a Read Me. Each dialog exposes a property allowing for configuration of the logo art displayed at runtime. This was exactly what I had been looking for over the course of many online and MSDN searches...funny how I had never found it before.

In any event, I should be able to activate Vista next week and hope to have a fix for the installer under Vista available for Chris presently. It may be a Merry Christmas indeed for the Beta group.

Labels: , , , , ,