• 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.

HGS combat simulator - rough draft

AndreaV

SOC-13
I would write this up in UML but don't think it would translate well here. Anyhow comments are invited (basically what have I forgotten)

TCombatShip
Properties:
Name
BaseAgility
EffectiveAgility (this is base agility limited by Mdrive)
Marines
ShipsTroops
OtherCrew
IsInReserve (is the ship in the line or not)
TargetPriority (something for AI further down the track, how valuable a target is it)

Has
USPItems (one for each item on the USP and backup item)

TUSPItem
Properties:
ItemFactor
Number

TComputerUSPItem
Inherits from TUSPItem
Properties:
IsFib

TWeaponUSPItem
Inherits from TUSPItem
Properties
Bearing (max number that may be used)
Allocated (how many have been fired)
 
Last edited:
Depending on how you intend to handle the "current ship" vs the "ship class", some of the following may already be inherently sorted.

Meta game decisions;
Is there full disclosure of all stats before combat starts? Or are stats revealed as they become apparent.
Are the carried craft launched before combat or not?
Have the fleets arrived from "somewhere"? Are the fuel-tanks full or is fuel left determined before the battle, depending on time, point of origin and last refueling opportunity. Fuel carriers will complicate this a little.

Relating to damage;
Number of weapon Batteries left (they can be repaired during battle)
The last surviving battery, starts losing its USP rating (and can also be repaired, but often better to repair a previously knocked out battery)
Use of Back-up computers, screens & drives (highest rated system is the one on-line)
Other back-up systems; bridges
Fuel left (as opposed to fuel capacity) Fuel is lost at a rate of 10dton per fuel-1 hit or 1% of total tank size, whichever is greater. Complete loss of "fuel left" is a ship killer.

On the AI front;
Allocation of secondary batteries to missile defense as opposed to offensive work.
Choice of HE vs Nuke missile use
Choice of Long vs Short range
Rules for allocating damage to opponent

On the Fleet design front
Is the ship intended for the front line (vs a support ship, fuel or ship carrier, troop ship, hospital ship, Courier/Scout/Mail, Civilian, Supply ship, etc)
What ship opponents is the class designed for? (conditions for entering the line)
What are the ships targeting priorities? (loosely ties in with what the ship is designed to fight)

Just some thoughts. Drop me an email direct if you would like a further hand. Matt@stevens dot net dot nz
 
The discussions on crew code are really really convincing me we need a program like this.

I've been working on the rough draft and I think I have a starting point (unfortunately all scribbled on various scraps of paper at the moment). I'm not planning on writing an AI in the first iteration, get it working as a hot seat PBEM first. But I want to allow for it later, so need to avoid painting the program into a corner. Likewise with fighter squadrons.

Looking at the rules, it shouldn't be too hard to code. Its just rather a lot of data needs to be tracked.
 
Andrew,

I understand UML, and I imagine BytePro does too, and there may well be others. Go ahead and post it or a link to it.

What format is your diagram in? An image, or Visio, perhaps? I have Visio 2007 along with Office 2007 including Access.
 
Andrew,

I understand UML, and I imagine BytePro does too, and there may well be others. Go ahead and post it or a link to it.

What format is your diagram in? An image, or Visio, perhaps? I have Visio 2007 along with Office 2007 including Access.

:rofl: As with virtually all my initial software project the documentation its done with pen and paper. At the moment this exists as a set of rough scribbles on various scraps of paper and a couple of base class declarations in Pascal. Disadvantage of trying to squeeze hobby projects into 70+ hour working weeks and keep a LSVT partner happy.
 
Andrew,

  • what is your plan to track the damaged and undamaged state of each ship?
  • how do you tell the difference between the USP items? i.e. what property lets you know this is the laser vs missile vs crew code...?
  • what is the relationship between your objects and the persistent database?
Matt raised all sorts of concerns, but I should think that most would be covered by the rules you are intending to implement, i.e. High Guard or TCS or your own private rules.

OTOH, for software, particularly for this, you need to consider the higher levels first:

  • How are the respective fleets to be entered and identified?
  • How are results to be communicated? via email, test reports, etc?
  • How are fleet commands to be entered? via test commands, GUI, etc
PM also sent.
 
Fully implemented a HG combat simulator in the early '80s in 2 or 3 days, IIRC. It was, of course, done in a procedural language (OOP ones being rather scarce at that time - though I might have played with Smalltalk by then) and no OOA&D* was in order ;)

Took a look at HG today - probably haven't looked at the combat rules in over 25 years! Only used them a couple 3 or 4 times in play - they just didn't cut it for us in our roleplay centric games.

Anyway, the state data was easy - just extend the USP to include relevant missing data element, its really only a 1D requirement. I.e. counts per rating for backups (M & J having 6, but PP having 50) and batteries plus for frozen watch revival turns remaining. Ended up probably around 128 bytes - wasteful, but not overly so. Even on old 8-bit computers where memory was still stated in Ks, one could handle a few dozen ships - which wouldn't be much compared to today, but the text based interface (likely 40 char!) was a bit clumsy for handling more than a handful. Today, no reason one couldn't handle thousands of ships using the same techniques, but taking advantage of standard GUIs.

Everything gets a number (index). One USP+ for the design, one per round to track current status. (I.e. damage tracked). A weapon/defense limited version for attacks/defense per ship to ship and manuevers. I even supported multiple combatant fleets (rules only cover 1 on 1), IIRC.

Pretty simple really.

After looking it over, though, I can't say HG combat interests me in the slightest - it just looks like a 70's strategy game to me - and terrible for an RPG.


*Yeah, I understand UML - having used state diagrams, use cases, OMT, etc. before UML came on the playing field and glad when it did. Played with SmallTalk (and Lisp had some OOP things, IIRC) but first serious use of OOP languages was using C with Classes in '85 - ironically same year C++ was released commercially.
 
Thanks to both Bill and Byte, I've actually put this bit on hold for awhile. I just realized I've altered something like 10% of the code in the past month and there have been a distressing number of errors lately (think I'm up to four or five). So I'm going to focus on trying to break the damn thing for awhile :)
 
What? Only 10% change - pttt - you should have that debugged mañana! :D

Well, don't let me dissuade you - I enjoyed making it. Just didn't find much use for it. If I were gonna expend the effort today, I'd probably make up my own, but that comes also from a 'been there/done that' feel...
 
Back
Top