Wednesday, June 30, 2004

Game Dev Status

Worked on Eylau for another couple of hours last night. I typed up my list of remaining tasks required to take the game Beta and sent them to Chris, along with the post-Origins 2004 baseline.

I then continued on with my effort to allocate Corps assignments down to the Corps' divisions. I am thinking now that the whole Corps assignment vs. Division assignment question should revolve around the allocation of Command Points. Leaving the assignment with the Corps means that the CP will be allocated (if available) to the Corps. Division assignments mean that the each Division "competes" individually for CPs. Given the way the CP and Manuever Unit rules work, I will probably keep the Corps assignment if all subcommands (divisions) of that Corps are in command w.r.t. the Corps Leader.

[some more thoughts...
It occurs to me as I write this that the number of assignments should correspond to the number of things I want the AI to be doing in a given turn. An assignment is just a unit of work for the AI; a "division" of labor. Right now I am characterizing plans using two criteria: success vs. failure, and coverage of all FEBA goals (victory locations) vs. incomplete coverage. The AI is set up to pick the best plan -- this is the most successful plan that covers all the goals (if possible). I think I can avoid breaking up Corps assignments into Division assignments as long at the number of Corps present is >= the size of the FEBA. I'll also need to add code to ensure that each engaged Corps may only be assigned to nearby goals, and that Divisional assignments can maintain Corps command span integrity (for offensive missions). The AI should allow Corps command span limits to be exceeded in the defense. And any Corps not in contact should be free to move to either flank. Thus the reserve becomes even more important.

I wonder if I should write the FEBA-selecting code to keep the number of goals <= the number of Corps (on the Imperial side) or Divisions/Detachments (on the Russian side)?

I'll have to look at the FEBA-selecting code for the larger scenarios (once I have written it), and revisit all my thinking here.

I also need to do some more thinking about kedging.

Thinking about surfaces and gaps (and salients) as they apply at a high level, say the level of characterizing the FEBA. I may be able to do something effective by determining whether segments of the FEBA are concave or convex.

In any event, I need to add code to pick the main effort division. I also need to add code to further characterize the divisional assignments. Of course the main effort division is probably going to have either attack or defend as its mission at any time. But the supporting divisions in the Corps need not stick to the basic mission. I can see the Corps using a supporting division to screen or defend a flank while the main effort division attacks. I imagine the cavalry brigade of an infantry Corps might be used for a spoiling attack if the Corps is defending.

I got the Imperial units in Assault of VII Corps to move last night. I had been moving Augereau and his aide while at the convention; last night I moved the divisions. Strange behavior: VII/2 moved out right away, while VII/1 did not move for the first few turns. They should both have moved immediately and continuously. Perhaps the line of advance limiting function is limiting based on the presence of friendly units as well as NME units.

[more thoughts...
I was wondering last night how to enforce the special rules of this game, from an AI perspective. The special rules require that the Imperial side advance for a while before it is allowed to retreat. The special rules are setup this way to establish the historical scenario. I think the way to do this is to change the Imperial victory conditions after the initial advance requirement has been satisfied.

Sunday, June 27, 2004

Origins Day 4 Status

The last day of a 4 day convention is always an interesting time. A lot of mixed emotions are usually running through my head on such a day: I never want the convention to end but I'm ready to get home...good feelings towards my fellow gamers...gotta buy those last few things in the dealers room...need sleep badly!

We got checked out of the hotel and over to the convention by 11am. Chris set up in "The War Room" and I made my first purchases in the dealers room. There were far fewer people stirring at that hour; nothing like the huge lines at registration and mobs around the dealers room doors that were present on the previous days. Sean Astin was signing autographs at a table in the main hall. Of course, as the day went on more people showed up. Demographics are always different on Sunday as well. More spouses who are apparently not gamers themselves are in attendance, mostly to see the sights and prevent their significant others from spending little Bobby's college money.

According to Charlie, we're going to have space in the dealers room to run demos of the finished product next year. Charlie wants to run a ticketed event (buy your ticket, play the game)...we'll see how well that works out.

OK, it's real now. The light is at the end of the tunnel. My rough, really preliminary and extremely-subject-to-change dates are as follows: Alpha around 30 November 2004, Beta around 2 January 2004, Gold no later than 30 April 2005. In production/for sale at Origins 2005. I have yet to run these past Chris or Charlie, and I haven't made time estimates of the remaining work to be done.

I made a list of features and non-functional requirements for going alpha/beta with the game. It's a pretty big list, and a lot of it involves research, so I guess the thing to do is to continue developing as often as possible.

Saturday, June 26, 2004

Origins Day 3 Observations

Another good day. We set up inside "The War Room" itself today. Much old-school wargaming going on, very few munchkins (age- or attitude-wise) in attendance. Had a steady stream of people come by and check out the game. Few people wanted to sit and try it, but many expressed interest in picking up the finished product. Ed Wimble came by and was very interested in the game. Chris showed him the ropes, and Ed was rarin' to go. He said there's enough of a game now [in hotseat mode] to really interest him.

The dealer's room rocks! Plenty of specials in store. I picked up a boatload of Ogre minis to share with a friend. I also picked up some very nice dice from Crystal Caste.

Working steadily on the game: two weeks ago we could barely get the AI to move a single division, now we move about half the troops on the board in a meaningful manner. I am working on code to breakdown Corps-level orders to its divisions. I am also working with a new test scenario: the Assault of VII Corps. The Opening Moves scenario proved to have a number of special cases pertaining to forces entering the board in a meeting engagement. I am choosing to ignore those cases for the time being in order to concentrate on core functionality. I think we'll be in Beta before the end of the year...we keep peeling the onion in terms of finding new work to complete, but I think there aren't so many layers left anymore.

Friday, June 25, 2004

Origins Day 2 Observations

A good day today. Busy, but good.

We picked up our "The War Room" credentials and occupied a table in "The War Room" area. This is both good and bad: "The War Room" caters to old school wargames, which is our best demographic, but only 10-15% of the con attendees go through that area. It is much better to be in the dealer's room, where we can show Eylau to a wider audience.

I spent time today working on delegating Corps assignments to the Corps' divisions. I did so by adding an extra plan "branch" to the plan enumeration tree each time the command for an assignment had subcommands in play.

Cool stuff: a lot of different commands were moving in the Opening Moves. IV Corps was not moving, though. That's what I'm debugging tonight.

Blew some money in the dealer's room on dice. Chessex rocks!

Today's movie quote: "Spandex is a privilege, not a right!"

Thursday, June 24, 2004

Origins Day 1 Observations

9:00 am EDT
I'm sitting here in the lobby/lounge of the Crowne Plaza hotel, feeding my e-mail habit via their free WiFi hotspot. All around me, gamers are getting ready for the first day of the Origins 2004 convention; a herd of overweight, glasses-wearing, nerdy gits, not unlike myself (takes one to know one, I guess). I must admit I'm looking forward to this convention. I'm struck by how much socializing is going on. With each other, gamers are very social animals. Demented and sad, but social. (Did I mention it takes one to know one, yet?)

I was up late last night, working on the game. I made some good progress: the Unit Info dialog now displays on startup, and the map jumps to a reasonable location on startup as well. I made some progress on getting 3rd echelon units to move in the Opening Moves scenario.

12:07 pm EDT

Working on the game again. During the 9am session, the AI was moving multiple commands in the Opening Moves scenario, but there was a combinatorial explosion of permutations that at up the CPU and memory to an unacceptable level. I am changing the plan generation code to try either a Corps or its subcommands, but not both, in the same plan.

I am also considering evaluating the plans as they are generated instead of in a separate step. If I only keep the top 3 plans, this solves the memory problem.

The place where I am working has a pretty good view of a crosswalk between the convention center and the hotel, so I'm observing my fellow gamers from time to time. I'm reminded of Norman Spinrad's descriptions of fans in He Walked Among Us. Yeah, it takes one to know one, but the curve goes a couple extra sigma away from the mean this weekend. I'm enjoying myself very much.

Bad news. Chris and I met up with Charlie of Clash of Arms this morning. Apparently game designer Richard Kane is having bypass surgery today instead of attending the convention. Get well soon, Richard!

Other bad news. [heard second-hand, so this may be a bit garbled] Charlie had apparently arranged to have two tables for demos. When he got to the con, the two tables were not in evidence; he was told that they were in the "demo area". We're still trying to figure out what that means, as there is no demo area in the dealer's room. As things stand, we are not demoing the game at this time.

10:05 pm EDT

More bad news, then good news. Charlie suggested we stake out a table in "The War Room", an area of the convention devoted to war games. Chris and I did so, then found out an hour later that "The War Room" was a special fee paid area. Bummer. Chris later cleared our use of that area with the GAMA folks, and Charlie arranged to have our badges upgraded with "The War Room" privileges. Cool.

The rest of the afternoon consisted of another work session on the game, a first pass through the dealer's room, the first of many purchases (Munchkin Fu and some KoDT), a fine dinner, and a nap.

I am working on the game yet again, fueled by an excellent cup of Java's coffee. YEEESSSSSSS! This evening I will finish the code that will produce 3rd echelon assignments in the high level AI. We should actually be able to run a real scenario to completion once this code is in place.

Wednesday, June 23, 2004

Five, seven, and five
Such an odd metaphor means
The mind accepts it
Origins Day 0 Status

25 hours for the month, 174 for the year, 374 since last Origins.

Bottom line: not ready for prime time.

Details: As of last weekend, I had the test scenario running reasonably well. The test scenario starts IV/2 Div at the map's edge, near (52, 1), and places the Russian 8th Div in the starting positions for the Opening Moves scenario. With the collision avoidance code in place, IV/2 moves ahead and engages the Russians with weapons fire pretty effectively. Code for Assaults and Charges is incomplete, as is code for anything above divisional level. There is no code to handle defensive missions yet.

I tried running the current code with the complete Opening Moves order of battle, but could not get the computer AI to move any units. Fixing this problem is my task for tonight.

In any event, Chris and I will be in the dealer's room (if possible), demoing the program at the Clash of Arms booth.

Wednesday, June 02, 2004

Game Development Status

I now have the code in place to allow a command to move faster than its calculated rate of advance in a movement to contact situtation.

Next I will work on collision avoidance code.

3 hours of effort so far for the month.

Tuesday, June 01, 2004

The power of Lysol compels you!