Wednesday, November 15, 2006

Supply is a very large part of Global Conflict. Every time a unit moves or fights, it uses up supplies. This means you can't simply move units willy, nilly around the board. If you do, you will waste a lot of supply that may be needed later for a specific combat goal.

In addition, all units consume a small amount of supplies for food each turn. Units carry a certain amount of supply with them and in addition may draw supply from the supply chain when needed.

If a unit runs out of supply and is unable to re-supply from the supply chain, it will not be able to move or fight effectively. In addition it will suffer from attrition and morale loss as long as that condition continues. Ultimately, the unit will eventually disband if things get dire enough.

Here's an example of how this works:

This is a shot from the beginning of the invasion of Poland. The German units are green and the Polish pink. The center icon of each unit is color coded to give a quick overall view of the condition (morale and strength) of each unit. This will change in real time.
















And here is the same view with the supply chain shown. The yellow circles indicate supply centers. The blue chain is the Allied chain and is supplying the Polish units. The red is Axis, white is neutral. The top number shows the % of supply from the supply center that is available at that point. The bottom number shows the total amount of supply available.
















Notice the line of Polish troops (pink) in the middle. They are currently well supplied but far from a supply point. If the Germans can capture the territory between the supply centers and these units, they will be cut off from supply and very vulnerable to attack.

Here's the same game a few turns later when the Germans have managed this maneuver:
















Some armor has gone around the North edge of the line and some infantry has come up from the South effectively cutting off these units. In addition, the city on the Western edge has been cut off from these units.

Looking again at the position with the supply chain overlay, you can see that these units are completely cut off:
















Note that the German units behind the line are also cut off. Its critical for the Germans to break through the line now in order to extend supply to these units as they are currently outside of the range of any of the supply cities.

In a future post, I'll introduce a solution to this problem: The headquarters unit.

HQ units act as mobile supply points allowing combat deep in enemy territory far from any friendly cities. They also have other abilities like leader specific missions, morale boosts etc. A single well placed HQ would allow the German units behind the Polish lines to continue the attack without the need for a breakthrough.

Tuesday, October 31, 2006

Here is a few turns to get an idea of how the game is played.

This is a mock invasion of Poland scenario that I'm using to thrash out the combat and movement system along with play balance, terrain effects, supply and a few other odds and ends.

It is the beginning of 1939 and Germany is ready to swoop into Poland. Here is the view at the beginning of the German turn with fog of war on:

















The show all missions option is enabled so we can see where everyone is going. Yellow arrows indicate an Advance mission. It essentially means the unit will follow its path until it finds an enemy. At that point, it will begin a low level attack consisting of minor probing operations and artillery barrages. This is a sort of attrition attack circa WWI which can bog down into trench warfare if left unchecked. We don't know where the Polish units will be yet, so we've chosen (poorly) to mostly head down the main transportation routes but have been clever enough to route our armored units on paths more likely to be open using their speed to bypass enemy resistance.

This is the situation after the resolution phase. At this point, the entire turn has been calculated by the game engine and is waiting for each player to play it back from their point of view.

















This is part of the way through the playback. The grey arrows indicate the extent of the units movement during this resolution phase. At the end of the playback, all units will be at the beginning of their next mission. At this point, the player can edit the mission in response to new information and events or allow units to continue with their current mission.

There may be turns in which no new orders are given because every unit appears to be doing the correct thing. However, far more likely, players will be re-adjusting missions based on combat results and newly revealed information. Also, units may on their own break down and retreat due to combat losses or otherwise modify their own missions based on unforeseen circumstances.
















Here is the situation at the end of the turn. Some battles have started in Western Poland and in the Danzig corridor up north (these are animated on playback). Both armor units have managed to avoid Polish defenders and have a clear path to the goal, Warsaw. The Polish player, would probably now retreat some of his units to cut off the German armor before it gets to Warsaw. It is possible to stack up to 5 units in a cell so dog piling into Warsaw and entrenching is a viable option but it does allow the city to be completely surrounded and attacked from all 8 sides. A very risky tactic.

















OTOH, many German infantry units are stalled in less important battles. Rerouting them is an option but the path is much slower once the main transportation lines are abandoned. Controlling key cities and river crossings is a good defensive strategy to delay the opponents advance. Since we are only allowing WWI style advances at this stage, it is very difficult for non-armored units to make much progress. Also, armored units that do penetrate deeply ahead of infantry support run the risk of being cut off and taken out of supply.

In my next demo, I'll introduce some new missions, most notably 'Drive' which is a more aggressive, assault type mission. Its purpose is to drive enemy units off of their hex to clear a path for other units. Only armored and mechanized infantry are allowed this option.

Also, I'll be introducing the first air units and show how they affect morale and entrenchment. The combination of tactical air attacks and armored drives work together to form the blitzkrieg tactic.

Thursday, October 26, 2006

A player never actually moves units in Global Conflict. At least not in the traditional sense. Instead, each player assigns 'missions' to his units during the movement phase.

Then during the resolution phase, all units attempt to carry out their missions. Finally, each player may watch the turn play out in the playback phase. During this time, you can restart the playback as many times as you wish, scroll around the map, zoom in and out, click on units to see more detail, etc.

This system allows the player both the unlimited time to plan and move that strategy gamers enjoy and the challenge of having to deal with simultaneous movement by the enemy as well as the fog of war.

Missions roughly fall into 1 of 3 categories:

Movement - These involve various ways to move from point A to point B. What separates the different kinds of missions is what the unit will do when and if it encounters an enemy along the route. Here are some of the movement missions:

  • Move to Contact - Move along given path. If path blocked, stop and dig in. Used to establish a front along enemy lines without engaging in combat.
  • Advance - Move along path. If blocked by enemy, attack. This sort of attack is a lower intensity attrition attack which includes artillery barrages and minor probing operations along the front.
  • Drive - Move along path. If blocked, assault enemy attempting to drive him out of your path and continue to target. This is an all out blitzkrieg type assault and can only be carried out by certain unit types.
  • Retreat - Disengage from enemy and retreat to a cell that does not border enemy to recoup moral, supplies, and strength.
  • Re Base - Move air or sea units to new base.
  • Strategic Movement - Load units onto trains or convoys and move them across the supply network. Much faster and cheaper movement but can only be between connected ports and cities.

Reaction - These involve missions that react to the enemy's movements. A unit will normally do nothing but if an enemy unit enters one of its designated 'reaction cells' the unit will carry out whichever mission it has been assigned. These are some reaction missions:

  • Defensive Reserve - Hold position unless enemy unit enters one of your reaction cells. At this point, move to the cell and assault enemy in that location to drive him out.
  • Patrol - Randomly move between patrol points attempting to spot and intercept enemy.
  • Intercept - Air units intercept any enemy aircraft that enter reaction cell.

Preparation - These missions involve neither movement or reaction but instead cause the unit to prepare for some future action. Here are some examples:

  • Entrench - Dig in and create defensive perimeter.
  • Prepare for Amphibious Assault - Spend time planning amphibious assault which will increase likely hood of success.
  • Prepare for Airborne Assault - Spend time planning airborne assault which will increase likely hood of success.
  • Build coastal defenses - Build large scale defensive structures designed to make it more difficult for enemy units to carry out an amphibious assault on the coastal cells.

Wednesday, October 25, 2006

The units in Global Conflict represent strategic level military units. These include:
  • Armies
  • Corps
  • Naval Task Forces
  • Submarine Wolf Packs
  • Convoys
  • Air Fleets
These represent the smallest maneuver elements in the game.


Each unit is represented at the highest zoom level by a square chit in the nation's home color with a NATO style symbol indicating what type of unit it is. In addition, the attack, defense and base movement allowance is indicated beneath the symbol at zoom levels high enough to display them.

Here is an example of a German Infantry Unit at each zoom level:












Regardless of the zoom level, when you click on a unit, the Unit Information Screen will appear:














Status Attributes:

These are constantly changing attributes that reflect the current condition of the units. They are all expressed as a percentage with a corresponding status bar for a quick glance indication of unit health.

  • Strength - The percentage of combat ready troops available in this unit. When strength reaches 0, the unit is disbanded although it likely will have long before this point due to failed moral check.
  • Supply - The level of supply currently available. When this reaches 0. the unit will be limited in movement and combat ability.
  • Morale - Represents both the attitude and organizational level of the unit. Has strong impact on combat. Changes moment by moment according to a variety of factors.
  • Experience - Represents the level of training and experience for this unit. Grows over time especially with positive combat results. Only goes down as less experienced replacements are brought in. Has a strong impact on combat.
  • Entrenchment - Represents the level with which this unit has 'dug in' to the surrounding terrain. This is increased by executing an Entrench mission over time. It automatically goes to 0 if a unit moves.

Combat Attributes:

This is a summary of the units base combat abilities at the different terrain levels (Land, Sea, Air, Submerged). These attributes are editable on a unit by unit basis but remain static for the duration of a scenario.

Next Scheduled Event:

This shows the next event or action for this unit along with the exact date and time it will occur. It may be accompanied by a target location. These events are calculated during the resolution phase and viewed during the playback phase.

Mission List:

This is a list of the next 3 missions the unit has been assigned. During the movement phase, each player (human or AI) assigns one or more missions to each unit. They can be graphically viewed on the map as well when a unit is clicked on or all displayed at once.

Tuesday, October 24, 2006

Today I'm going to go over the map a little bit.

As I've already mentioned, this is a scale map projection of the entire world. There are two base maps and 6 different zoom levels of each. Here is the physical map at the lowest zoom level:
















And here is the political version. Note, not all of the country labels are completed yet as my goal is to get a working mini-game of the German invasion of Poland first so the emphasis has been on getting that section of the world finished before the rest.
















In addition to the base maps, there are 8 overlays that can be viewed. I'll cover those in a later post.

A square grid can be toggled on and off but not at the level seen above, it is too small to be useful as the squares are merely 2 pixels wide at this level.

Distances on the map are to scale as per definition of an equirectangular projection. In other words, the vertical distance is always the same but the horizontal distance depends on the latitude of the cell. As you get closer to the poles, the horizontal distance decreases. Diagonal distances are as they should be (square root of the sum of the square of the sides).

For example, the vertical distance is always 40 km (24.8 miles). At the equator, the horizontal distance would be the same and the diagonal distance would be 56.56 km.

Close to the poles, the horizontal distance can be as low as 6 km with a diagonal of only 40.45 km.

Diagonal movement is handled as follows:

Units are free to move diagonally as long as they would also be free to move to BOTH of the adjoining sides of the diagonal. Otherwise the diagonal is not available but it may still be possible to go around the diagonal by going through the other adjoining side.

In other words, a unit can move North East as long as it has a clear path North and a clear path East. If say the East was blocked, the unit could not move on the diagonal but may still reach the point by going North first and then East. Of course, this will result in a longer trip as it should.

What this results in is that in friendly territory, units can often move more quickly than in enemy territory above and beyond any other penalties simply because they are more likely to have access to diagonal movement options.

It also means that a diagonal front line can be formed to stop enemy penetration.

As you can imagine, the size of the map and the scaling of the distances results in a real challenge for the path finding algorithm. However, it is quite fast and accurate and is able to update in real time as the user moves his cursor around the map on a system with average performance.

This is partly as a result of treating rivers as being in cells rather than along the borders of cells. I'm not going to go into great detail on optimizing the A* path finding algorithm here but suffice it to say, that not having edge based features results in a very large optimization. This is necessary in a map with almost half a million cells.

Rivers still affect both movement and combat in a way that is logical for a game of this scale.

The entire size of the map with all of its zoom levels and both base maps in memory is about 800 meg. However, I use an 'on demand' algorithm that only loads the tiles needed for the current view. This means that there can be a slight hesitation the first time an area of the map is visited at a specific zoom level but the next time you go there, it is almost instantaneous.

Also, up to 10 locations can be stored and accessed with one key allowing very quick navigation to the specific areas of the map the player is currently interested in.

For example, you may store a view that shows all of Europe, another one zoomed in on an area in North Africa where you are involved in a battle, maybe another on Japan, etc. Then with the touch of a button you can jump from view to view without having to scroll around. These locations can be changed and saved at any time.

Tomorrow, I'll go into a little detail on the units.

Monday, October 23, 2006

Here is a screenshot from the game. It is at zoom level 5 of 6 looking at the political map of the German / Polish border right before the invasion.
















Here is a quick summary of my game:

  • This is a grand strategy level game. Units represent Corps and Armies, Naval Task Forces and Air Fleets. Players will be in charge of research, production, diplomacy and troop movement.
  • The game map covers the entire world in an equirectangular projection from just north of the USSR to the southern tip of South America. Every country that fought in the war will be represented.
  • The map consists of 400,000 cells (1,000 wide x 400 high).
  • The game uses a simultaneous movement system. Each player enters orders for all of his units and then the turn is resolved simultaneously. Then each player can playback the results as many times as they want before begining the next turn.
  • Fog of war will be implemented.
  • I plan on implementing a learning AI that should adapt to player strategies.