WWI Naval

The computer program mentioned in the ‘1/6000 Naval’ blog posts is described herein. Updated June 5, 2017.

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. The program uses the macro language of the Apache OpenOffice spreadsheet program.

Ground scale is variable, but in order to play on tables as small as 4×6 ft, 500 yards per inch is currently used (1:18000). Capital ship spacing in column was about 500 yards, 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 positions and firing 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 by each side, 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.

Shorelines can be specified using line segments. Other obstructions can be specified as circles and can include mines. Mines can be swept by minesweepers.

Algorithms and modifiers (adjustable via spreadsheet cells):

Magazine explosions due to propellants. Set by nationality.
AP shell breakup. Set by nationality. Modified by angle of fall and target angle.
AP shell sensitivity (premature explosion). Set by nationality.
Dud shells. Set by nationality.
Range rate effect. Set by nationality.
Torpedo and mine reliability. Set by nationality.
Shell handling faults allowing propellant explosions 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.
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.)
Target angle.
Turret face curvature.
Barbette curvature.


Line ahead, line abreast, quarter line, 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 2500 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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: