Author Topic: C# Aurora Changes Discussion  (Read 450003 times)

0 Members and 1 Guest are viewing this topic.

Offline Zincat

  • Captain
  • **********
  • Z
  • Posts: 566
  • Thanked: 111 times
Re: C# Aurora Changes Discussion
« Reply #1530 on: March 02, 2018, 04:18:17 AM »
It runs (like Standing Orders) during increments that are longer than one hour.

Ah, it's completely fine then.
 

Offline Kelewan

  • Warrant Officer, Class 2
  • ****
  • K
  • Posts: 73
  • Thanked: 15 times
Re: C# Aurora Changes Discussion
« Reply #1531 on: March 02, 2018, 04:32:50 AM »
@Steve regarding the Civilian Trade. 

I don't know if you omitted caching in your description of the trade route selection process, but keeping two lists per trade good with all the colonies
exporting/importing that trade good could reduce the list of potential colonies you have to check a lot.  Maybe even store for on each colony the next
trade colony for each export good. 

 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11669
  • Thanked: 20441 times
Re: C# Aurora Changes Discussion
« Reply #1532 on: March 02, 2018, 06:19:55 AM »
@Steve regarding the Civilian Trade. 

I don't know if you omitted caching in your description of the trade route selection process, but keeping two lists per trade good with all the colonies
exporting/importing that trade good could reduce the list of potential colonies you have to check a lot.  Maybe even store for on each colony the next
trade colony for each export good.

The list can change depending on whether trade goods are being moved, how many freighters are inbound, changing population, treaty signings, danger ratings, warship movements, etc.. Also, the colonies being checked are depending on a search algorithm based on proximity to the freighters and each other, rather than directly.

I could potentially recreate the twin lists each increment and generate all the potential paths and then use those paths for the freighters, but I am probably creating a lot of  paths I won't use.

Besides, this test was an absolute worst case with 400 ships simultaneously requiring assignment in a large universe and it still only took one second. Even in much larger games, the normal time would be much shorter as only a few ships would require new orders in any given increment. it probably isn't worth the effort to try to achieve even better performance.

 

Offline Hazard

  • Commodore
  • **********
  • H
  • Posts: 643
  • Thanked: 73 times
Re: C# Aurora Changes Discussion
« Reply #1533 on: March 02, 2018, 07:32:23 AM »
Would it help to keep the path lists? It might allow longer trade routes for civilian freighters, which IIRC are limited to 4 jumps in VB6.
 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11669
  • Thanked: 20441 times
Re: C# Aurora Changes Discussion
« Reply #1534 on: March 02, 2018, 07:38:04 AM »
Would it help to keep the path lists? It might allow longer trade routes for civilian freighters, which IIRC are limited to 4 jumps in VB6.

Already unlimited in C#.
 

Offline Conscript Gary

  • Lt. Commander
  • ********
  • Posts: 292
  • Thanked: 27 times
Re: C# Aurora Changes Discussion
« Reply #1535 on: March 04, 2018, 04:33:07 PM »
Quote
In C# Aurora, the cost is:
5 x Number of Installations x Systems Travelled x (Installation Type Cargo Points / 25000)

So, setting distance aside the key part of this formula is that the player pays for how many freighter runs their contract requires. If you send ten installations, each of which fits in one freighter, you pay for ten trips. If you send five installations, each of which has to be loaded in halves for transport, you pay for ten trips. Makes sense so far.

Almost every installation in the game is some multiple of 25k in size, but I'm curious how this will work out with infrastructure contracts, who are only 2500. As the formula stands, If I make a contract to move 1 unit of infrastructure I'll pay for, essentially, 10% of a trip. From the player's side of things, this makes sense. For the shipping line though, I guess what I'm driving at is this:
Will civilian freighters 'top off' their cargo holds with other trade goods when they're only transporting part of their capacity in a trip? It's a small enough thing that it's fine to not simulate, but I'm curious if that's accounted for.
 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11669
  • Thanked: 20441 times
Re: C# Aurora Changes Discussion
« Reply #1536 on: March 04, 2018, 05:11:51 PM »
So, setting distance aside the key part of this formula is that the player pays for how many freighter runs their contract requires. If you send ten installations, each of which fits in one freighter, you pay for ten trips. If you send five installations, each of which has to be loaded in halves for transport, you pay for ten trips. Makes sense so far.

Almost every installation in the game is some multiple of 25k in size, but I'm curious how this will work out with infrastructure contracts, who are only 2500. As the formula stands, If I make a contract to move 1 unit of infrastructure I'll pay for, essentially, 10% of a trip. From the player's side of things, this makes sense. For the shipping line though, I guess what I'm driving at is this:
Will civilian freighters 'top off' their cargo holds with other trade goods when they're only transporting part of their capacity in a trip? It's a small enough thing that it's fine to not simulate, but I'm curious if that's accounted for.

Yes, it is taken into account. Civilian freighters will only pick up installations or trade goods if they can fill their holds. Otherwise, they look somewhere else.
 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11669
  • Thanked: 20441 times
Re: C# Aurora Changes Discussion
« Reply #1537 on: March 06, 2018, 05:18:01 PM »
Another milestone. I've been trying to ensure that the complete game save is 100% accurate, so I don't encounter any major hidden bugs. That isn't so easy with almost two hundred tables, a lot of fields per table (172 for the Race table for example) and some tables with tens of thousands of rows.

However, recently I discovered this amazingly useful free utility (see link) that allows me to do a complete comparison on two SQLite databases, down to the contents of each field in record in each table. With that I have been able to squish a number of previously undetected bugs and finally get a 100% accurate save.

https://www.codeproject.com/Articles/220018/SQLite-Compare-Utility?fid=1636941&fr=26#xx0xx

The level of confidence I now have in the save process is a major step forward to running the first test game.

Offline alex_brunius

  • Vice Admiral
  • **********
  • Posts: 1240
  • Thanked: 153 times
Re: C# Aurora Changes Discussion
« Reply #1538 on: March 07, 2018, 04:21:54 AM »
Sounds like your approaching something that's playable soon. Awesome!  ;D
 

Offline Steve Walmsley

  • Moderator
  • Star Marshal
  • *****
  • S
  • Posts: 11669
  • Thanked: 20441 times
Re: C# Aurora Changes Discussion
« Reply #1539 on: March 07, 2018, 09:31:42 AM »
Sounds like your approaching something that's playable soon. Awesome!  ;D

Yes, will be starting on combat this week. Still got to do AI and there are a lot of minor areas as well, including ground combat - naval combat interaction. I have done about 90% of the movement orders, although still not made a decision on whether MSP should be instant load or treated like fuel and ordnance. Compromise may be special system needed for MSP transfer (spaceport, maintenance facilities, ship system) but transfer is instant.

May also look at how easy is currently is to repair on-board systems. Could change to two damage states. Damaged and Destroyed, with only the former repairable without specialist facilities.
 

Offline TCD

  • Lt. Commander
  • ********
  • T
  • Posts: 229
  • Thanked: 16 times
Re: C# Aurora Changes Discussion
« Reply #1540 on: March 07, 2018, 12:27:14 PM »
Yes, will be starting on combat this week. Still got to do AI and there are a lot of minor areas as well, including ground combat - naval combat interaction. I have done about 90% of the movement orders, although still not made a decision on whether MSP should be instant load or treated like fuel and ordnance. Compromise may be special system needed for MSP transfer (spaceport, maintenance facilities, ship system) but transfer is instant.
I think there's a great deal to be said for taking a consistent approach one way or the other. If fuel/ordnance/cargo all take take to load, why shouldn't MSP?
May also look at how easy is currently is to repair on-board systems. Could change to two damage states. Damaged and Destroyed, with only the former repairable without specialist facilities.
On-board repair is a very interesting discussion indeed. I guess the biggest gameplay change would be that destroyed engines could leave a ship stranded, lots of decisions then about scuttling it, sending a tug (into hostile territory?), or maybe adding tractor beams onto fuel/ordnance tankers for just that situation.

I suppose mechanics-wise the question would be whether you create a two step process (ie a system becomes damaged first, and then destroyed on a further hit) or if it is simply a chance of either damage state on each hit? Maybe instead of straight out damaged/destroyed you could assign a % damaged value, with the component stopping working at 50%+ and being destroyed at 100%? You could also tie that directly into the HTK mechanism, so that larger components are both somewhat resilient to being damaged and also more resilient to being destroyed.

In that case small systems are likely to always be destroyed beyond repair. You might then want to change the way Damage Control works, perhaps allow it replace destroyed systems below a certain HTK size?

Sorry, I realise this is getting complicated fast!
 

Offline Barkhorn

  • Commodore
  • **********
  • B
  • Posts: 719
  • Thanked: 133 times
Re: C# Aurora Changes Discussion
« Reply #1541 on: March 07, 2018, 06:44:53 PM »
I think you misunderstand what he means by "damaged" and "destroyed".

"Damaged" parts no longer function but can be restored by the ship's maintenance crews.  "Destroyed" parts no longer function but are broken so badly they have to be repaired at a specialized facility, like a shipyard or maintenance base.
 

Offline Garfunkel

  • Registered
  • Admiral of the Fleet
  • ***********
  • Posts: 2791
  • Thanked: 1053 times
Re: C# Aurora Changes Discussion
« Reply #1542 on: March 08, 2018, 06:00:56 AM »
+1 for consistency - have MSP transfer take time too.

The on-board repairing is not IMHO overpowered at all - it requires DC module (or multiple) to bring down the time requirements to something reasonable in combat environment, it eats up MSPs like fat kid candy, and can't fix armour. As it is, it pretty well simulates the jury-rigging and such stuff that happens on ships, and you always see in sci-fi combat.
« Last Edit: March 08, 2018, 06:02:48 AM by Garfunkel »
 

Offline TCD

  • Lt. Commander
  • ********
  • T
  • Posts: 229
  • Thanked: 16 times
Re: C# Aurora Changes Discussion
« Reply #1543 on: March 08, 2018, 08:23:51 AM »
I think you misunderstand what he means by "damaged" and "destroyed".

"Damaged" parts no longer function but can be restored by the ship's maintenance crews.  "Destroyed" parts no longer function but are broken so badly they have to be repaired at a specialized facility, like a shipyard or maintenance base.
Yes, I understood that. But if Steve is making that change then I think its worth looking into how parts change from damaged to destroyed, and whether that should be tied into the HTK system, which would seem more elegant to me.
 

Offline Barkhorn

  • Commodore
  • **********
  • B
  • Posts: 719
  • Thanked: 133 times
Re: C# Aurora Changes Discussion
« Reply #1544 on: March 08, 2018, 11:01:58 AM »
Oh, then I agree.  I think it should be something like some pen-and-paper roleplaying games do.  In Star Wars D20, you lose consciousness when your health hits zero.  You die when it hits negative 10.  Maybe something like that could be done for each part, and even tie it into repair time.  An engine with 10 health could lose efficiency every time it takes a hit, down to 1.  Then at 0 it shuts off totally.  Then it can continue losing health down to -10, at which point it is totally destroyed.  Anything above -10 can be repaired by the crew, and is repaired one point at a time.