WWI Naval

The computer program mentioned in some of the WW1 naval blog posts is described herein. Updated November 6, 2018.

Skagerrak is (or was) a computer simulation of WWI fleet actions in the North Sea. It was written for the TRS-80 and then for the Atari ST in the 1980’s. The gunnery algorithms were extracted and modified for use as a miniature support program covering approximately 1904-1920. The current program uses the macro language of the Apache OpenOffice spreadsheet program. Although not fully tested, it also seems to run under LibreOffice.

Current player’s guide: Skagerrak Player Guide 15 NOV 2018

Ground scale is variable, but in order to play on the available table space, 500 yards per inch is currently used (1:18000 scale). Capital ship spacing in column was about 500 yards stem to stem, so the ship miniatures should be less than an inch long, i.e., a miniature scale of 1:9600 or smaller. 1/6000 scale models are currently used, so there is some distortion for the longer ships. The code keeps accurate positions, so the distortion is mainly an aesthetic issue. The time scale is 5 min/turn. The code updates position and damage each minute.

For each turn, course, speed, formation and targets may be entered. Ships in formation attempt to conform to the movements of the lead ships in each unit. Destroyer and torpedo boat units can be set to take station on larger ships when not conducting torpedo attacks. Torpedo doctrine can be selected, e.g., speed/range settings, numbers to launch. Funnel smoke, smoke pots and smoke screens can be generated. Primary and secondary gun targeting and torpedo targeting can be automated. Tertiary gun and DD/TB gun targeting is always automated.

Various text files are generated each turn with detailed and simplified results and plotting data. Output files for each side with limited information on sightings, damage, primary and secondary targets, positions, courses and speeds are copied to Android tablets for use by the players.

Shorelines can be specified using line segments. Other obstructions can be specified as quadrilaterals and can be minefields, islands or shallow water. Mines can be swept by minesweepers.

Visibility can be constant, or variable in distance and/or direction. Wind can be steady or variable in strength and/or direction.

Algorithms and modifiers (adjustable via spreadsheet cells):

Magazine explosions due to propellants. Set by nationality and date.
AP shell breakup. Set by nationality and date. Modified by angle of fall and target angle.
AP shell sensitivity (premature explosion). Set by nationality and date.
AP fuse delay reliability. Set by nationality and date.
Dud shells. Set by nationality and date.
Range rate effect. Set by nationality.
Torpedo and mine reliability. Set by nationality.
Shell handling faults allowing propellant fires to reach magazines. Set by nationality.
Speed made good is a function of seastate, waterline length, acceleration (or deceleration) and turns.

Hit probability adjustments:

Range (fraction of theoretical gun range).
Long range (>8000 yards) based on ship class and scenario date.
Change of target.
Under fire; function of weight and accuracy of incoming fire.
Firing ship maneuvering.
Target maneuvering.
Concentration (mitigated at short range).
Target speed.
High speed (increasing penalties for speeds over 18 knots; function of maximum speed and maneuvers).
Downwind; function of apparent wind direction, ship speed, size, coal burning and guns firing.
Upwind; function of apparent wind, wind speed, wind angle from bow.
Sun glare; direction and penalty set when needed, no model of sun movement.
Obstructed by ships; function of speed, size, coal burning, guns firing, making smoke, smoke pots, smoke screens.
Target size; function of displacement.
Visibility per scenario.
Target angle (mitigated at short range).
Range rate.

Rate of fire adjustments:

Range vs visibility range.
Under fire; function of weight and accuracy of incoming fire.
Visibility per scenario.
Seastate (per ship class and weapon).
Time of flight.
Rapid fire (selected automatically based on hit probability) reduces or eliminates some of these adjustments.

Damage location adjustments:

Target angle.
Range (fraction of theoretical gun range).

Armor penetration adjustments:

Range (fraction of theoretical gun range, incorporating both angle of fall and velocity).
AP shell failure (Oblique impact breakup, filler sensitivity, duds, delay fuse failure).
Target angle.
Turret face curvature.
Barbette curvature.


Line ahead, line abreast, quarter line, line of bearing, several types of screen. Ship spacing is adjustable (nominally 500 yards except for screens).
Divisions can be ordered to take station in relation to other division lead ships, ahead, abeam, astern or on the quarters. Division spacing is in multiples of an adjustable division distance (nominally 2,500 yards).

Development: It is not intended to provide this code to others. The idiosyncrasies of the code environment and the user interface make it impractical to get it to function on another system. User support could not be provided. The code will probably continue to be modified for the foreseeable future.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: