Tuesday, February 03, 2015

Back Again for a While...

I noticed today that this blog was no longer accessible.  It seems my gmail account was disabled and that took the blog with it.  Silly Google.  I may have to look into moving this into a more reliable provider.

In any event, I've been busy.  Personal update.  In 2014
  • I attained the Microsoft C# Specialist certification.
  • Wound down one scrum team at work, participated on another as a supplementary architect and then took over a third as primary architect.
  • Delivered presentations at work on Windows Phone 8 programming and Xamarin iOS programming.
  • Completed a Windows Phone 8 app and most of a port of the same to iOS using Xamarin.  Laundry timing utility.  Coming soon to the respective app stores.
  • Prepared for and survived a week long trip to Disney World with my family.

I'll likely keep this blog for personal comments, but I'm very likely to repoint coherentlite.com to a new blog if I use CoherentLite as a company name for the apps work.

My goals for 2015 are
  • Walk 10000 steps per day.
  • Work 4 hours per week on my apps and other interests.
  • Work 2 months (at 4 hours per week) on the PIC Guam AI proof of concept.

Labels: , , , , , ,

Saturday, July 10, 2010

PIC-Saipan/Tinian Game Review Part I

Chris sent me a review copy of Pacific Islands Campaign - Saipan/Tinian at the end of April. I finally found some time to review it this week. (After the release date...sorry, Chris!)

The maps are beautifully executed and easy to read. The counters are good: the die cuts are crisp and well registered, and the counters punch easily with no separation. All the charts are well laid out and easy to use. There were a few minor typos in the rules book but, as I said, this was a preliminary copy. I pointed out all the issues I could find to Chris, and I'm certain the production copies have the necessary corrections.

I setup the Japanese counters on Saipan. This is a useful and necessary step for the Japanese player. Necessary, because you can't play the game without first setting up the counters. Useful, because it gives the player an idea of what can and can't be done.

Saipan Setup

The "center of gravity" of the Japanese units on the island is in the geographic center of the island, and near the northern beaches. The rules prohibit free setup of units except for three companies of naval troops, and only three fortifications may be placed on beach hexes, though a total of 18 fortifications may be placed on the entire island.

Northern Beaches Free Setup

Based on these limits, I would recommend a strategy similar to the de facto historical one. Similar, but not quite the same. Historically the Japanese fell back to the north and defended stubbornly. I recommend the same approach, but suggest it be done systematically. Place the three naval companies and the three permitted fort counters on the northernmost beach hexes. This is a forlorn hope as the odds are against those units surviving the amphibious assault phase, and the southern surviving unit will almost certainly be annihilated during the remainder of the turn. Still, these units will buy time. All units north of the lines of fortification counters head south, except perhaps for some engineering companies as described below. These units will be needed in the south early on anyway, so move all that are not needed to prepare fall back positions.

Fort setup perspective

Carpet the hexes from 3717 southeast to 3219, forming a line across the island. Do the same thing from 3817 to 3320. Place the last three forts on 3420, 3521, and 3620. Have all units south of that line fall back towards that line. Sacrifice a few units if needed to slow down the US advance. Have any engineering units in fortification hexes upgrade those fortifications the first turn. (Remember 3420, 3521, and 3620?) Engineering units will continue to pave the north half of the island with forts. Once arriving at the first east-west line of fortifications the US units should have to struggle against fortifications all the way to Marpi point.

Once the Japanese have consolidated to the north, always fight in the best terrain and under forts. Attrition is the key. Always keep six steps of units in each hex on the FEBA to ensure the hex will not be overrun. As long as you can feed units into the line, the US cannot advance. Try to channel the US units into clear hexes where possible to maximize casualties.

Don't place artillery in clear hexes in order to avoid counterbattery fire.

Consider falling back occasionally in order to provide subsequent opportunities for Defensive First Fire. Also fall back to shorten lines as casualties mount and to skip over clear terrain that does not favor the defense.

Always cause casualties. The odds are extremely against the Japanese player achieving the time limit victory conditions. Most likely, the US will be knocking on the door right around the timing in the historical schedule. The best the Japanese side can hope for is to cause enough US casualties to reduce the victory level, and perhaps cause enough caution in the US player to have a better chance of delaying past the historical outcome.

The final bit of advice I can give the Japanese player is to use Banzai attacks frequently and prudently. There is no US Defensive First Fire at night, so you can safely mass and shift units. The 3x attack factors multiple and the +3 die roll modifier for Banzai attacks allow you to attack stronger units or stacks with weaker units and still cause casualties. Consider having an engineer platoon with artillery support Banzai charge a lone infantry company in clear terrain. The odds will be about 1-2, and the net DR should be +4. This gives a 2/3 chance of eliminating a company with a platoon.

Next I will compare company counts, average attack/defense factors, and total steps for the Japanese and US forces. I will also setup the units on Tinian and write up some notes on that part of the battle. It may be some time before I complete this...check out my "command central" for working on these notes, especially the background.


Command Central

Labels: , , , , ,

Tuesday, June 15, 2010

Ready, Fire, Aim (Oops)

I'm working on the fire combat model for the PIC-Guam prototype. I added a FireCombat class to contain the information about the combat. I added a Turn class with lists of FireCombats for the US and Japanese fire phases, and added a list of Turns to the Game class. Then I got down to work. I added a bunch of code to support combat results table (CRT) processing. FireCombatResolution, OddsRatio and FireDieRollModifier are all enums. I also added FireCombatCRT and FireModifier classes, and nonserializable static lists of same to the main FireCombat class. Finally, I added a constructor to FireCombat and a couple of methods to setup the lists of FireCombatCRTs and FireModifiers.


And that was my 49 minutes for today.

Labels: , , , ,

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: , , , , , , , ,

Wednesday, July 08, 2009

D2SIG Meeting Notes

I attended the
D2SIG meeting last night at the Microsoft offices in Houston. Claudio Lassala from EPS gave a good talk on Data Binding in WPF. He came prepared with a number of good examples of different techniques that explained not only the current thinking on data binding, but also some of the earlier techniques that fell short. Claudio knows his stuff, and dived down into the code frequently to make his points.

He covered DependencyObject, INotifyPropertyChanged, ObjectDataProvider, basic data binding with static resources, Data Templates, relative source binding, Value Converters, and many many more. It slices, it dices, it chops, it juliennes fries.


Along the way there was some good give and take with the audience. There were several people speaking up who were either working with data binding or about to. Side topics included mention of MVVM, Prism (Glenn Block),
WPF Toolkit, and MVC.

I'm going to have to start attending D2SIG on a regular basis. I decided a few weeks back to focus on WPF and MVVM as "force multipliers" for PC PIC-Guam. I need to get a lot of result for as little effort as possible in order to stick to my 1000 hour time budget. I also need to get a lot of quality out of my UI design work (such as it is). This D2SIG will help with both.


WPF resources I've read lately (and will understand better in the future) include

I took notes during the presentation. For a 2 hour meeting, I came up with an estimate of five and a half hours of follow up tasks!

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: , , ,

Friday, June 26, 2009

PIC-Guam Progress 6/26/09

I'm continuing to test out the rules for PIC-Guam. Chris showed me a recent draft of the map and updated rules. I've been doing map exercises on the landing beaches. I've also been writing up design notes on an AI for a computer version of PIC-Guam. This has helped to generate rules questions on the board game.

I've been trying to min-max the Japanese side towards victory (for various definitions of victory). Chris has already had to change the setup rules for the "Recapture of Guam" main scenario, restricting the number of fortfication counters on beach hexes and reducing the number of free setup units. Chris wrote a good set of rules for PIC-Guam, but I'm really trying to explore the boundaries from the point of view of a programmer. My most recent questions include (in no particular order).

  • Can an Engineer company build forts on the same turn it reshuffles from 3 platoons?
  • Can a suppressed friendly unit be used to take a casualty resulting fromm a friendly assault?
  • Can a unit build up/break down in a ZOC? Does this provoke defensive first fire?
  • Does a retreating unit with no place to move take step losses instead/?
  • Can a retreat path look like a "J", or an "L"? Must the retreat path be in a straight line, or be directly away from the FEBA?
  • Does Banzai charge exploitation stop at ZOC's?
  • Can 3 Engineer platoons build a fort, or must they reorg into a company first?
  • Can arty, air, and naval units make attacks on their own? How? What limits? Just wonder if there is anything aside from interdiction.
  • Is it permitted to allow the US player to allocate all his naval support in one combat? If not, what limits are there?
  • Does the Japanese player get defensive first fire against units moving into adjacent lagoon hexes? (i.e. during Amphibious phase)
  • Does a US unit suffer any adverse effects from retreating into a lagoon hex from a land hex? Is this even permitted?
  • Can a US unit withdraw from a lagoon hex to a sea hex?
  • If the stacking limits are exceeded on the beach, in the lagoon, or in the sea hex for a landing zone, do follow on waves stack up and ultimately (possibly) delay later waves?
  • Can the US player voluntarily hold back some or all units in a wave to a later turn?
  • Do the Division and PMB HQs trace supply back to IIIMAC HQ? Do they trace supply back to the beach before IIIMAC HQ lands? If so, can it be any beach? (I'm guessing that it has to be through friendly controlled hexes, which argues against a unit cut off from the southern beach being able to trace supply to the northern beach before link-up.) If a regimental HQ from one beach fights its way through to the other beach, can it get supply there?
  • Can Engineer units be replaced? Can other units also be replaced? (I guess all non-armor units can be replaced, using the replacement pool...just making sure.)
  • 3.6 How many units, of what size, can be replaced for one point? (I guess one company, but I'm not sure.)
  • 2.12.1.1 Typo: replace the word "beach" with "LD/Sea". Refers to placement of the next landing wave on the map.
  • In the optional reinforcements rules, does the reference to 9th Tank Regiment refer to the HQ unit?
  • Can naval units support amphibious fire and assault? (I'm guessing per 11.3 that CL/DD ships can.))
  • 11.9 Does shore battery fire apply only to units on the beaches, or can shore batteries target lagoon and LD/sea hexes, too?
  • Do the artillery/HQ rules apply to Japanese units? If so, what about the short range artillery units integral to battalions?
  • Does Supply count after exploitation? If I exploit out of supply range, do I suffer the effects of out of supply?

Labels: , , ,

Saturday, May 16, 2009

PIC-Guam Playtest - Call for Testers

I'm participating in the playtest for Grognard Simulations' boardgame Pacific Islands Campaign - Guam. I spoke with my friend Chris today; he's the grognard at Grognard Simulations. It turns out he's looking for another couple of playtesters. Just one or two at this time. There is no compensation associated with being a playtester that I know of, but playtesters do get a playtest copy of the game and probably get a mention in the credits in the rulebook.
(I'm not quite sure of this last, but it's a typical practice.)

Ideally a playtester would have good boardgaming experience with wargaming titles from
Clash of Arms Games, Avalon Hill, SPI, Victory Games, MMP/The Gamers, GMT, and so on. Playtesting consists of playing the game scenarios as many times as possible with an eye towards discovering problems in the rules, in the force structure and/or in the play balance.

Contact Chris via the Grognard Simulations site. You can also contact him to get put on his mailing list to be notified when the game is available for purchase.

On a related note, I've put the PIC-Guam banner add on the blog.

Labels: , ,

Monday, December 22, 2008

Grognard Simulations Site

My friend Chris has re-established the Grognard Simulations web site. The site is quite new and is still waiting on some additional work, but it does have links to Eylau (pricing information is a place holder, I think) and to the new Pacific Islands Campaign - Guam boardgame.

Labels: , , , ,