• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

Looking for High Guard Combat Software

atpollard

Super Moderator
Peer of the Realm
I was thinking about trying some experiments with fleet battles … something like the old Trillion/Billion Credit Squadron HGS Tournaments … only testing ideas of fleets at different Tech Levels. Sort of “What do fleets look like at TL 9?” sort of questions.

My question is: Does anyone know of any software or spreadsheets that will calculate the results of a High Guard Fleet (or even ship vs ship) battle?
 
None that I know of, except presumably Eurisko...

There are non-trivial decision points during combat, so some sort of AI would be necessary.
 
I was going to
None that I know of, except presumably Eurisko...

There are non-trivial decision points during combat, so some sort of AI would be necessary.
I was going to waggishly suggest the same, but I’m under the impression it was more several design/sim battle sims learning runs than a standalone agent.
 
I wrote a starship design app for Space Opera and am now finishing up a major update that adds a "combat simulator". When I'm done with this I might revisit my old High Guard ship design app and tackle another major project.
 
I actually have this.

I though at one point I had an ability to fling two fleets at each other, but I seem to be missing that bit of code.

But I have all of the mechanics and such done. I know I've "flung" fleets at each other, but perhaps that was ad hoc code that didn't get captured in the source file, but was just done through the listener.

It's about 1300 lines of Common Lisp.

Code:
(defun l ()
(defun rotate-list (list)
(defun randomize-sequence (sequence)
(defun rseq (sequence)
(defun copy-ship (ship)
(defun copy-fleet (fleet)
(defun printl (label o)
(defun capture-random-state () 
(defun restore-random-state ()
(defun calculate-ship-size-factor (ship)
(defun calculate-ship-size-factorx (ship)
(defun character-to-factor (c)
(defun factor-to-character (factor)
(defun roll2d ()
(defun make-rolls (number-of-rolls target-number)
(defun make-hit-table (n)
(defun make-meson-hit-table ()
(defun make-meson-pen-screen-table ()
(defun make-break-point-table (breakpoints)
(defun dump-table (table)
(defun make-damage-table (result-list)
(defun lookup-pen-table (table attack-factor defense-factor)
(defun lookup-hit-table (table attack-factor)
(defun lookup-missile-hit (factor)
(defun lookup-missile-pen-beam (missile-factor beam-factor)
(defun lookup-missile-pen-repulsor (missile-factor repulsor-factor)
(defun lookup-missile-pen-damper (missile-factor damper-factor)
(defun lookup-beam-hit (factor)
(defun lookup-beam-pen-sand (beam-factor sand-factor)
(defun lookup-meson-hit (factor)
(defun lookup-meson-pen-screen (meson-factor screen-factor)
(defun lookup-meson-pen-config (meson-factor config-factor)
(defun lookup-pa-hit (factor)
(defun ship-has-bridge (ship)
(defun ship-has-crew (ship)
(defun ship-has-power (ship)
(defun ship-can-fire-powered-weapon (battery ship)
(defun ship-can-fire-laser (ship)
(defun ship-can-fire-sand (ship)
(defun ship-can-fire-missile (ship)
(defun ship-can-fire-energy (ship)
(defun ship-can-fire-meson (ship)
(defun ship-can-fire-pa (ship)
(defun ship-can-fire-offensive (ship)
(defun ship-can-maneuver (ship)
(defun ship-can-jump (ship)
(defun ship-can-fire-repulsor (ship)
(defun ship-has-nuclear-damper (ship)
(defun ship-pilot-dm (ship)
(defun ship-ship-tactics-dm (ship)
(defun ship-fleet-tactics-dm (ship)
(defun ship-size-dm (ship)
(defun ship-computer-effective-size (ship)
(defun computer-dm (from-ship to-ship)
(defun ship-effective-agility (ship)
(defun ship-reset-for-turn (ship)
(defun to-hit-dm (from-ship to-ship)
(defun calculate-crits-for-hit (battery hits to-ship)
(defun calculate-extra-hits (battery hits)
(defun missile-to-hit (from-ship to-ship is-long-range)
(defun missile-to-pen-beam-sand (from-ship to-ship is-sand)
(defun missile-to-pen-repulsor (from-ship to-ship)
(defun missile-to-pen-damper (from-ship to-ship)
(defun beam-to-hit (from-ship to-ship is-energy is-long-range)
(defun beam-to-pen-sand (from-ship to-ship is-energy)
(defun meson-to-hit (from-ship to-ship is-long-range)
(defun meson-to-pen-screen (from-ship to-ship)
(defun meson-to-pen-config (from-ship to-ship)
(defun pa-to-hit (from-ship to-ship)
(defun track-battery-fired (battery)
(defun fire-beam (count from-ship to-ship is-energy is-long-range)
(defun fire-missile (count from-ship to-ship is-nuclear is-long-range)
(defun fire-meson (count from-ship to-ship is-long-range)
(defun fire-pa (count from-ship to-ship)
(defun fire-battery (battery count from-ship to-ship is-long-range)
(defun lookup-damage-table (roll table)
(defun lookup-interior-explosion-damage (roll)
(defun roll-damage-table (table count factor armor is-nuclear is-pulse)
(defun roll-surface-explosion-damage (count factor armor is-nuclear is-pulse)
(defun roll-radiation-damage (count factor armor is-nuclear is-pulse)
(defun roll-interior-explosion-damage (count factor armor is-nuclear is-pulse)
(defun roll-critical-hit ()
(defun combine-damage (damage-result1 damage-result2)
(defun roll-critical-hit-damage (hits)
(defun roll-damage (battery fire-result to-ship)
(defun add-battery-if-exists (battery list)
(defun initialize-weapon-hit-order (ship)
(defun initialize-screen-hit-order (ship)
(defun find-battery (type ship)
(defun find-screen (type ship)
(defun find-spinal-mount (ship)
(defun reduce-battery (battery amount)
(defun select-weapon-type-to-hit (ship)
(defun apply-weapon-damage (damage-result ship)
(defun reduce-system (system amount)
(defun select-screen-type-to-hit (ship)
(defun apply-screen-damage (damage-result ship)
(defun reduce-fuel (ship amount)
(defun apply-damage-result (damage-result ship)
(defun apply-damage (damage ship)
(defun ship-prepare-combat (ship)
(defun reset-system (system)
(defun reset-ship (ship)
(defun select-all-weapons-of-type (ship type-list)
(defun select-all-weapons (ship)
(defun select-all-weapons-but-lasers (ship)
(defun select-all-offensive-ships (ships)
(defun fleet-all-ships (fleet)
(defun fleet-agility (fleet)
(defun fleet-fleet-tactics (fleet)
(defun fleet-prepare-combat (fleet)
(defun fleet-reset-combat-turn (fleet)
;(defun fleet-invoke-battle (fleet
(defun fight-random-ship-all-weapons (ship my-fleet their-fleet)
(defun build-fleet (id ship-descriptors fleet-battle-func)
(defun close-range-fleet-battle (arg)
(defun determine-initiative (fleet-a fleet-b)
;(defun combat-round (fleet-a fleet-b)
 
Just to follow up, what are you trying to do? Don't be put off by this if it interests you, I can walk you through some steps to move you forward.

Basic combat and damage is working.

The hard part for fighting a fleet are the conveying the decisions to the individual ships. Who do they target? What do they fire? Who's on the front line or in the back? Do I hold back lasers for missiles?

But if you want to line up some fleets Napoleonic style and have each ship target a random ship on the other side, that's really easy. Rinse and repeat until one side is dead.

Also, one thing I do not have is the power game. Specifically, if you take a Power Plant hit, you are likely going to take an Agility hit as well, but its not a design system, I don't keep track of excess power. "Whats the agility if I don't fire the spinal?" I just can't convey that intent. But since most ships die by crits vs accumulated damage, in the large I'm not sure how impactful it really is.

But here's an example of a ship:

Code:
(defparameter ship10k
  (make-ship :tons 10000 
             :m-drive (make-system :factor 6)
             :power-plant (make-system :factor 18)
             :fuel (make-system :factor 1000)
             :computer (make-computer :factor 9 :bis t)
             :crew (make-system :factor 5)
             :agility (make-system :factor 5) 
             :armor (make-system :factor 15)
             :missile (make-battery :type 'nuclear-missile :factor 7 :count 8)
             :meson (make-battery :type 'meson :factor (character-to-factor #\N) :count 1)
             :meson-screen (make-system :factor 9)
             :nuclear-damper (make-system :factor 9)))

A N Gun Meson Battle Rider. I think that's pretty approachable.

Anyway, let me know what you're trying to do, and maybe we can make this work.
 
Just to follow up, what are you trying to do?
My interests were more “parametric”. Just as an example, at TL 8, there exists only a very small number of options for weapons. So is a Billion Credit Fleet (just to pick a large sample and an equal force) better off with MISSILES or PULSE LASERS or BEAM LASERS or PARTICLE ACCELERATORS? (Assuming High Guard rather than LBB2).

Which are the more economic point defense against MISSILES: SAND CASTERS or LASERS?

The goal is to get some idea of what a PLANETARY DEFENSE FLEET might look like at different TLs.
Is ARMOR better than AGILITY? What SIZE thresholds offer advantages?

Those sort of trade-offs that could be answered by simulated fleet battles with slightly different parameters each time.
 
The goal is to get some idea of what a PLANETARY DEFENSE FLEET might look like at different TLs.
The defense fleet should be built based on the intel/lack of intel of known/possible/imagined opponent fleets. Even a build for two+ unknown random fleets that are thrown at each other for fun/testing are possible.

@atpollard , even with the options you gave in Post #8, for any fleet you build, another can be built using the same options to counter it. It all comes down to the military doctrine of the opposing fleets commanders and how deep the funding is of said militaries, if you want to start there.
 
Here is a summary I did once upon a time:

Section 1 Overview of TL changes.

TL7 Computer model 2 limits the hull size to no larger than 3,999t, the maneuver drive maximum of 2 also limits agility to a maximum of 2, power plants require 4t per EP. Armour is 4+4a.
Weapon systems are limited to the 100t missile bay and turret mounted lasers (pulse and beam), missiles, and sandcasters.

Bridge 2%

PP+fuel 5%

M-drive 2%, 5%

Armour 8->32%

TL8 ships are limited in the same way as TL 7 with regards to size, power plant and armour, but they may now have a maneuver drive 5 and hence agility of 5.
An additional weapon becomes available, the 100t PA bay, and the turret mounted sandcaster increases in effectiveness.

Note there is a spinal PA available, but it is larger than the biggest ship that can be constructed at TL8, and the power plant to power it would be half the 3,999t ship

Bridge 2%

PP+fuel 5%

M-drive 2%, 5%, 8%, 11%, 14%

Armour 8->36%

TL9 ship may now be built up to 9,999t, the maneuver drive achieves its 6g agility 6 maximum, and power generation is more efficient requiring 3t per EP. The main breakthrough is the jump drive, and weapon wise the spinal mount remains too large to be ship mounted on the hull size available.

Bridge 2%

PP+fuel 4%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel

Armour 8->40%

TL10 ship building makes enormous progress. Ships may now be constructed up to 49,999t and can at last carry spinal PA weapons. Armour becomes lighter at 3+3a. In addition to the spinal PA ships can now mount 100t repulsors for missile defence, while 100t bay missile launchers and PA are more effective, and the turret mounted sandcaster increases in capability once again. This TL also sees the introduction of the 50t bay and plasma gun weapons. The 50t bay may mount PA, missile and plasma weapon systems, with plasma guns also available as turret mounts in slightly larger turrets.

Bridge 2%

PP+fuel 4%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel

Armour 6->33%

TL11 Maximum ship size almost doubles to 99,000t, the meson spinal mount becomes available, and plasma guns of all types improve. Jump 2 is now achievable.

Bridge 2%

PP+fuel 4%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel, 3% + 20% fuel

Armour 6->36%

TL12 Ship size now reaches its effective maximum of 999,999t, although at higher TLs bigger ships may be constructed.

100t and 50t bay weapons improve across the board, the plasma turret improves once again, and fusion guns are available in 50t bays and turret mounts. Armour becomes lighter at 2+2a. Jump drive performance increases to 3 parsecs. The nuclear damper and meson screen systems come online.

Bridge 2%

PP+fuel 4%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel, 3% + 20% fuel, 4% + 30% fuel

Armour 4->26%

TL13 Ship size is now unrestricted, 100t missile are more effective achieving their maximum rating, and the meson gun is introduced. The 50t fusion gun is more effective. Turret mounted missiles and laser improve. Screens improve, and the power plant becomes more efficient. Jump 4.

Bridge 2%

PP+fuel 3%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel, 3% + 20% fuel, 4% + 30% fuel, 5% + 40% fuel

Armour 4->28%

TL14 Ship size remains unrestricted, 100t bays are more effective. 50t bay weapons are more effective, and the repulsor is introduced. The turret mounted fusion gun improves and the PA barbette is introduced. Screens improve, armour becomes lighter and jump 5 can be achieved.

Bridge 2%

PP+fuel 3%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel, 3% + 20% fuel, 4% + 30% fuel, 5% +40% fuel, 6% +50% fuel

Armour 2->15%

TL15 Ship size remains unrestricted, 100t meson and repulsor bays are more effective. 50t bay meson guns are introduced and repulsors are more effective. The turret mounted PA is available. Screens improve, jump 6 can be achieved.

Bridge 2%

PP+fuel 2%

M-drive 2%, 5%, 8%, 11%, 14%, 17%

J-drive 2% +10% fuel, 3% + 20% fuel, 4% + 30% fuel, 5% +40% fuel, 6% +50% fuel, 7% +60% fuel

Armour 2->16%
 
My interests were more “parametric”.
My stuff could certainly empower that kind of thing.

You need to have a fleet to fight against, and a (ideally static) plan to fight it.

Building up fleets is easy. Giving them different parameters is easy. Swapping out BEAM laser ships for PULSE laser ships is easy.

Then you need to come up with how you want to measure the result. Total number of hits? Number of ships remaining? Overall damage? Time spent in combat?

The ideal is to convey in code for a given ship things like WHICH ship to fight, HOW to fight it.

I already do things like fire sand automatically, but sand can be fired against lasers or missiles.

Right now, I have code like this in my fire-missiles routine:
Code:
    (loop while (and (> base-hits 0) (ship-can-fire-sand to-ship))
       do
         (when (< (roll2d) to-pen-sand)
           (decf base-hits))
         (track-battery-fired (ship-sand to-ship)))
    (loop while (and (> base-hits 0) (ship-can-fire-laser to-ship))
       do
         (when (< (roll2d) to-pen-laser)
           (decf base-hits))
         (track-battery-fired (ship-laser to-ship)))
    (loop while (and (> base-hits 0) (ship-can-fire-repulsor to-ship))
       do
         (when (< (roll2d) to-pen-repulsor)
           (decf base-hits))
         (track-battery-fired (ship-repulsor to-ship)))

Simply, while there are still missile hits, and I have sand, or lasers, or repulsors, let fly.

But I have similar code for lasers to penetrate sand. So, right now, if lasers fire first, they'll consume all of the sand, letting any later missile potentially through.

All that can be parameterized of course.

So, you have to "know" how you want to fight the ship. You have to "know" that a ship is going to fire lasers then missiles. Or not.

You can contrive it however you want, but, you have to write code to convey your will on how the battle will be fought.

And that's all doable, not "out of the box".
 
Back
Top