WWI Naval

The computer program mentioned in some of the WW1 (or early 20th Century) naval blog posts is described herein. Page updated May 1, 2023.

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 1980s. The current code is a miniature support program. It uses the macro language of the LibreOffice Calc spreadsheet program, Version:

Data is included for most British, German, US, French, Italian, Austro-Hungarian and Japanese ships in the 1904-1920 period.

Current player guide:

A few notes on information used to develop code algorithms and scenarios are included here:

Code overview:

Ground scale is adjustable, but in order to play on the available table space, 500 yards per inch is currently used (1:18000 scale). WWI capital ship spacing in column was about 500 yards stem to stem, so the ship miniatures should be less than an inch long, including bases. 1/6000 scale models are used with bases about 4 mm longer than the ships, 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 weapon fire, damage and position each minute.

For each turn, course, speed, formation and targets may be selected. Ships in formation attempt to conform to the movements of the lead ship in each unit. Destroyer and torpedo boat units can be set to take station on other ships when not conducting torpedo attacks. Divisions can be ordered to take station in relation to other division lead ships. 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. Printed order forms are provided for local players and/or Google Sheet order forms for remote players.

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 can be copied to Android tablets or to cloud drives 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):

Set by nationality and date:

Magazine explosions due to propellants.
AP shell breakup. Modified by AP cap type, angle of fall and target angle.
AP shell sensitivity (premature explosion).
AP delay fuse (if any) reliability.
Dud shells (no explosion).
AP cap type.
Range rate effect.
Shell handling faults allowing propellant fires to reach magazines.
Shell burster scaling factor.
Concentration training.
AP fraction of ammo loadout.
AP/HE range breakpoint (yards).
Smoke screen or canister availability.
Wireless availability.

Set by nationality:

Torpedo and mine reliability.

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
Rangefinder length and type
Fire control director installation.

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).
Shell failure (AP cap type, oblique impact, filler sensitivity, duds, delay fuse reliability).
Target angle.
Turret face curvature and inclination.
Barbette curvature.


Line ahead, line abreast, quarter line, line of bearing, several types of screen. Ship spacing is adjustable (nominally 500 yards stem to stem except for screens).

Code 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

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com 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.