Operational Warfare Developer's Blog

Developer's blog for the Operational Art of War series

About the author

Ralph Trickey maintains TOAW III
I set this Blog up for fun, and for my own edication! Nothing is guaranteed, it's for my own use primarily, so even if I say that something may happen with the next release, please understand that it may not. I plan to post random thoughts and other things like that at random times here. I don't have a specific plan for what will be here.
E-mail me Send mail

Recent posts

Recent comments

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Money quote for this release...

We added in a debugging feature that's intended to help some designers fine tune how Elmer plays the first rounds of their scenarios, and to understand how Elmer plays. It's pretty rough, but I think some of the designers may use it. In a single player mode, you can press a key (the | key right now, but I'll change it before release) and it will move all your units the way that Elmer would, does overruns and sets up the attacks, all you have to do is press the 'E' key and the '1' key to end they turn, yes I'm sure. Or you can fine-tune Elmer's decision to meet the strategic demands.

We now allow single player games to be loaded into the editor, edited, and played. I figure between those two features, there is probably 1-2 players that may try playing solo games by allowing Elmer to move each side with some guidance from them. (I've seens one request on this blog from someone that did it in CoW, so hopefully he's listening ;)

I definitely want to expand on this for the next game, and I'm sure I'll get some feedback on it, both 'why are you wasting your time' and 'great idea, but...'.

Obviously, Elmer plays better in some scenarios than others, but...

Here's the quote from one of the TOADs, it wasn't me, but I'm getting the same feeling... 

Elmer does a better job than me in setting up first round battles and leaving a large percentage of my turn for further movement and combat... I'd rather see this feature disabled in PBEM mode

 


Posted by Ralph Trickey on Friday, March 13, 2009 6:46 PM
Permalink | Comments (4) | Post RSSRSS comment feed

Translations

Getting a little closer. I just pulled the player options out of the save games and into an ini file, and a dialog. Having some of the options like the air assistant in the save game files got annoying since they'd revert to the last save game played.

I posted a request on gamesquad for some translations.

Ralph


Posted by Ralph Trickey on Monday, March 02, 2009 12:34 AM
Permalink | Comments (3) | Post RSSRSS comment feed

More readme portions

Here's some more of the untranslated readme.

Thease are arguably the two biggest features. New Turn Order was a major rewrite, but now the two sides are symmetrical. New Supply Order was a major rewrite of the supply to make it a continuous instead of the jumps the old system has. That is a good change, and it also open the way for events to adjust the supply of individual points up and down and trun them on and off to better simulate beachheads, encirclements, etc.

Cheat Prevention
There is now a PORandomSeed in the INI file. If set to 0 (default) it will always use the next randon number. If set to -1, it will always use the random number stored in the save file. If set to a number it will use that number. PBEM games are always treated as -1. This means that reloads of a PBL PBEM game will produce the same results. This also means that I will be able to reproduce bug reports.

New Turn Order
The old turn order option used to do all calculation for supply, recovery, and other items occurred between turns and was a bit unfair. The new turn order splits that processing inot three parts. There are now things like air combat and weather which still happen at the beginning of the turn. Things like supply and movement recovery now happen at the beginning of each side's movement instead of at the beggining of the turn.

New Supply Order
Instead of being a 3 level approach, we now use a formula based on the movement points of a virtual "Supply Unit" which has motorized movement and a 50% unit density.
The exact formula is 1.10 / (1.375 ^ (SupplyDistance / SupplyRadius))
Designers can also set supply levels for supply points either initially or through events.
Supply Units also have an enhanced effect, they will effectively move the unit closer to the supply point based on the supply radius.
Take the case of the supply radius is 5 hexes and the supply unit is 10 hexes away and the unit is 14 units away. Because the unit is less than 5 (supply radius) or less heses away from the supply unit, we enhance it's supply by moving it 5 hexes closer to the supply source.
Supply Radius 0 is treated like supply radius 1 by the new rules.


Posted by Ralph Trickey on Saturday, February 21, 2009 5:24 PM
Permalink | Comments (16) | Post RSSRSS comment feed

More elmer fixes, still getting ready for the next push.

Elmer wasn't always using his airborne, and when advancing more slowly wasn't being aggressive enough. He was also sometimes doing the pee pee dance. That's changed.Innocent

I don't have a picture for some reason, but the tutorial is becoming harder and harder. It's going to be tough to hold Pusan.

You can probably recover, but it's a different game (I hope)


Posted by Ralph Trickey on Thursday, February 05, 2009 5:25 PM
Permalink | Comments (5) | Post RSSRSS comment feed

Eye/Ear Candy readmo (draft)

Bits from the draft readme. They still need to be translated into English ;)  I've probably forgotten some.

Eye/Ear Candy

We now export to JPG instead of BMP. There is a JPQuality INI entry that can be between 1 and 100. 100 is full quality.

I've added two volumes, one for the background sound and one for the effects. They are controllable through the ini file. They go from 1 to 100.

I also added a left-right quality to the sound. You should be able to hear the sound occurring on one or the other side of the screen.

Added .ini option to disallow mouse wheel zoom.

Mouse wheel zoom should work in all screens.

Next/Previous combat on the combat screen, and the P key will now cycle through most potential combats instead of just actual combats.

"Movies" option now defaults to saving only the micromap. There is an OPART.ini switch to restore the save of the full map, if desired.

Added now 'Movie' option that will try to create a movie given sequentially named scneraio files. Open a scenario, and hit create movie to create a movie. More detailed instructions will be needed.

PlaceNames

#1-3 in a placename selects the font Placename 1-3.

<1-9 in a placename select the mapOptional1-9 bitmap. You can select multiple bitmaps.

#1Test will display Test in the PlacenameFont1 style.

<1OilRig Will display mapOptional1.bmp on the map and OilRig, and OilRig in any combat reports, on the info line, etc.

ToolTips - These follow the cursor

includes a picture of the terrain like the 3D map.

The top line now may include the unit name.

The Second line now also includes SP: as the last entry It's currenty the value x 100.

The Third line now includes

MP - Supply MPs to get here (Includes everything.)

RA - Supply Rail MPs to get here.

RO - Supply Road MPs to get here.

SU - Supply Distance to nearest Supply Unit.


Posted by Ralph Trickey on Saturday, January 24, 2009 9:30 PM
Permalink | Comments (0) | Post RSSRSS comment feed

XML Language Text files

Here's another sample. This one is of the XML language text files. These should be a lot simpler than the DLLs. It also allows partials, that is, if a scenario only changes a couple of the strings, only a couple will ge needed in this file. That should also help with future upgrades.

XMLanguage2.zip (146.71 kb)


Posted by Ralph Trickey on Saturday, January 24, 2009 9:26 PM
Permalink | Comments (2) | Post RSSRSS comment feed

Elmer

OK, I took some more time, and this seems more likely to be valid. This is turn 4. I haven't 100% validated it yet, but it seems a lot less likely to be cheating. Either me or someone else needs to try the communist side and see if they can duplicate it.

I fixed a couple of old problems and a couple of new ones caused by the new pathfinding. He's also got a better understanding of the difference between armor and infantry and how it affects relative strengths instead of just looking at the numbers on the counters. He also understands how artillery works better.

 


Posted by Ralph Trickey on Saturday, January 03, 2009 2:44 PM
Permalink | Comments (5) | Post RSSRSS comment feed

Lights!

I looked at the movie option for some reason, and realized that I'd done only half the job.

It now should record one side at a time of a PBEM or v. Elmer game. It will record both sides of a hot-seat or Elmer v Elmer game.

Oh, yes, I may be able to make it record AVIs with snapshots of each turn end, but that's more difficult. There's almost no documentation on how to do it.

Ralph

 


Posted by Ralph Trickey on Tuesday, December 09, 2008 2:49 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Pathfinding and Supply

I'm posting this so taht people can understand what was, and what it's changing to.  It's mainly for the people that are looking at what features may/may not fit into future releases, so that they can understand a bit of the mecahnics, and why some things aren't as diffucult as they might seem.

The 'old' way of finding your way from point a to point b was to try to go in a straight line, then look for a different line, etc. Then do special processing for roads, etc. It was extremely slow, but worked well enough on small maps.

The 'new' way is something called A*. It works differently.

A* works by figuring the distnace from the source to the destination, and then starting at the source, calculates the cost to move into the 6 hexes around it. It marks these as 'open' and the starting hex as 'closed'. It them looks through the map and finds the hex where the cost to move into that hex + the remaining distance is the lowest. Once it's foind that hex, it looks at the 6 hexes that are adjacent to that hex, and figures the cost to move into each of those hexes.. If the cost is less, it sets that hex to 'open'. If it's more (like the starting hex would be) it leaves the hex alone.

By doing this, A* will snake a path towards the ending hex. If there's a path to the target, A* is very fast, The only problem with A* is that it will potentially look at every possible hex trying to find a solution if there isn't one. Even on a 300x300 size map, that hasn't been a major problem so far, but if we go to 700x700, it's going to be about 5 times as many hexes.

There are ways to fix this problem by prepopulating a grid, and numbering each hex with a number 1 through N that represents a contiguous region of land or sea. I'll wait and see if I need to do that. That would at least cut down on the search space for 'impassible' paths

It's also possbile to make this allow for trains, planes and ships for Elmer's use, but I haven't tried using these yet. It's probably going to break some scenarios, so it has to wait. Once the program is modified to allow for pathfinding through multiple transportation means, that should help Emler, especially in places like the Pacific.

One very interesting feature about A* is that it's possible to modify it to be useful when you have more tha one source/destination. For example, when retreating, you could use that same algorithm, and stop once you'd reached a command or HQ unit. It would be a little better than what currently works, but probalby not noticeably different in most situations.

Another interesting applicaiton would be for things like supply. It's possible to 'seed' the map with all the supply points, and then to move outward from all of them at the same time , filling in the supply map. This is a LOT faster than the current method, it's also a lot more flexible. The old method made 4 passes through the map. Once for Rail, Roads, etc. The new methid doesn't need to hard code those levels, and can be a lot more flexible, and easier to modify. If we want to allow for supply to travel through friendly owned ports, that's possible, if we want to attentuate by distance instead of doing 4 levels, that's possible. Heck, if we wanted to allow for supply points to provide different levels of supply, that may be possible too.

It's also going to (eventually) provide some perfomance boosts for Elmer. Most of the Elmer code still uses a brute force method of determing his next target. We can do faster/better than that.

I probalby did a poor job of explaing how A* works. There are a lot of tutorials about it on the Net now. The important thing to remember is that is kind of flows out like water, looking for the low spots, and is very fast for a lot of things, and is very improtant for this game going forwards. The fact that is handles multiple sources/destinations makes it very useful for a lot of things.

 

 

 


Posted by Ralph Trickey on Sunday, July 13, 2008 8:50 AM
Permalink | Comments (3) | Post RSSRSS comment feed

User Interface design

If you do anything with presenting data to users, this is something that you should watch. There are a lot of neat ideas in here that I want to apply to TOAW or the next game. It's definitely got some really good ideas. I'm going to pick up the book too, although i don't know when I'll have the time to read it. It talks about things like using the font size and contrast to help direct peoples attention to the important pieces, keeping the attention focused on one spot (like tooltips) and several other details like that which most people don't consciously think about. Some of the things I can implement now, and some (most of the contrast ones) will have to wait until the next game.

 One example would be looking at the pop up menu to see if it makes sense to center it on the place that I might expect a user to click by the context. I don't know if it's possible, but it's something to look at.

http://www.dnrtv.com/default.aspx?showNum=112


Posted by Ralph Trickey on Saturday, June 07, 2008 1:09 PM
Permalink | Comments (0) | Post RSSRSS comment feed