Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GEOCommNetwork Program rework #2275

Merged
merged 29 commits into from
Apr 8, 2024
Merged

GEOCommNetwork Program rework #2275

merged 29 commits into from
Apr 8, 2024

Conversation

Ballatik
Copy link
Contributor

@Ballatik Ballatik commented Oct 17, 2023

Add Commercial Applications 2 program, deprecate GEOCommNetwork, move applicable contracts over
Add Optional FirstGeoSync contract. Requires positive power, player keeps craft
Update Required FirstGEOSat contract. Requires positive power, player keeps craft
Add Required FirstTargetedGeo contract. Requires comsat payload, craft transfers, bonus for precise targeting
Update Optional GEORepeatComSats contract to require target. Bonus for precise targeting
Replace GEOComSatNetwork with 3 and 4 sat versions.
Add optional targeted Molniya contract
Add MolniyaNetwork3 contract
Add optional FirstTundraSat contract. Requires positive power, player keeps craft
Add required FirstTargetedTundra contract. Requires comsat payload, craft transfers.
Add optional repeatable targeted molniya and tundra contracts
All repeatable contracts scale from RP1ComPayload setting, and payloads get larger after each completion.

Notes:

  • The first sync, stat, and tundra contracts require power instead of payload to encourage the player to make useful satellites for those, and they get to keep them. They are optional, so if you don't want one there you can skip it.
  • The rest require payload and are transferred on completion. Payloads are increased from similar ComApp1 contracts.
  • Lowered funding to bring it in line with ComApp, but kept duration at 2 years since it can be done with 5 launches, 3 if you've got a big enough LV. I was able to do it in 5 with a small upgrade to the LC that I already had for early lunar, and the total build time for those launches was a little under 700 days without maxed engineers. Up to 5/7 launches, more of which are higher dV. Adjusted to 3 years, 800k funding.
  • Windows for the targeted geosats are very loose. 4 km works out to about 36 degrees, with a bonus at 2km or 18 degrees. In testing this was tight enough to make me think about how to get to the right spot at the right time, but was pretty easy to execute once I thought about it.
  • Added the Molniya network option for those in the higher latitudes. I can't think of a way to check spacing like we can for geostationary networks, so I removed the 2 minute stability check. That way if the player launches them on one vessel, they will at least need to separate them before getting into the right orbit or they will all get assigned as Sat1. Added a maxpayload during an intermediate orbit parameter instead. It ensures that the player decouples when the period is less than 6 hours and then sends each satellite to the intended orbit.
  • I did all of my testing with Principia installed, though that generally that makes contracts more finicky, not less.

Update program definition and description.
Add optional Geosync contract
Update FirstGEOSat orbit parameter and requirements
Add required FirstTargetedGeo
Update GeoComSatNetwork to require spacing
Update GEORepeatComSats to require target
Replacing comsatpayload with antenna parameter since testing satellites are kept by the player.   Makes more sense to give them a possibly useful relay instead of a customer bus.
Bring funding inline with CA, leave duration at 2 years.
Change reputation values from placeholders.
Loosen location parameter for network to reduce tedium.
Fix contract requirements/disallows
Replace antenna requirements with positive power
Add optional bonus for being closer to targets 9need fixing)
Fix bonus for precise targeting
Adjust reward to account for bonus
Fixed bonus scaling in GEORepeatSats
Uncommented program requirement for program so I can test it all in sequence
Added max payload and an intermediate orbit as a way to force at least some spacing when all 3 are launched at once.
Also fixed naming issue.
@NathanKell
Copy link
Member

This is neat! I think this would work even better as just Commercial Applications II. You're already part of the way there by including Molniya contracts, but I think a program centered around first GEO and Tundra launches, repeatable targeted Molniya/GEO/Tundra launches (where Molniyas have way more comsat payload than in CommAppI), and some networks.

The idea being that you should be able to complete CAII missions at the low end with something on the order of 70t on-the-pad (i.e. Thorad or Delta L class), maybe ~130t for the heavier end of the GEO payload range.

Disable GEOCommNetwork Program, add ComApp2 program
Change references from GEOCommNetwork to CommercialApplications2
Move contracts from EarthSatellites to Com App 2
Add Tundra and Molniya targeted and repeat contracts
@SierraHotel84
Copy link
Contributor

Since it came up in the CA1 program and I see it mentioned in the OP, is there any way to check orbital spacing without requiring something like Skopos (assuming it does, I've only read through the description of it)? We can check the base orbital parameters and require specifics like orbital period, but is there a way to compare timing/distance between sats, so that a 3 or 4 sat commnet, for example, actually needs to be spaced equally in orbit?

@Ballatik
Copy link
Contributor Author

Since it came up in the CA1 program and I see it mentioned in the OP, is there any way to check orbital spacing without requiring something like Skopos (assuming it does, I've only read through the description of it)? We can check the base orbital parameters and require specifics like orbital period, but is there a way to compare timing/distance between sats, so that a 3 or 4 sat commnet, for example, actually needs to be spaced equally in orbit?

For Geostationary, I have it requiring waypoints since if you are over a waypoint and geostationary, you will stay over the waypoint. We can require spacing by spacing the waypoints.

For other orbits, I have not found a way (but would love ideas!) As a partial measure, an intermediate orbit with a max payload at least requires that single launch completions separate the 3 (or 4) parts before reaching the target orbit. In practice, my 3 sat Molniya done this way ended up spaced about 5 minutes apart. Increasing the orbit check duration to about 30 minutes would force you to finalize on 3 separate revolutions which would end up being spaced more, but doesn't really change what the player would be doing and doesn't force "good" spacing.

@SierraHotel84
Copy link
Contributor

Good call on the waypoints for geo, you're right that would work well for a geo network. I saw that in one of the original contracts and figured it would be good for CA2. Just don't know if there's anything similar that can be done for lower orbits. It's too easy to just dump off 3 or 4 sats on a single launch and have them all count.

Various sorting and naming fixes
fixed antigrind calcs
adjust payload and reward scaling for repeatables
extend program duration to 4 years
Adjust funding to bring it more in line based on number/size of launches
Make contracts available so that anyone on the deprecated GEOComm Program can complete it.
Various formatting and text fixes
Adjusted repeatable contracts to increment payload correctly
@Ballatik Ballatik marked this pull request as ready for review October 26, 2023 00:05
This reverts commit 0e75ccf, reversing
changes made to c59d3a2.
Made repeatable contracts not acceptable at the same time.  They share the same anti-grind cooldown, but could be circumvented by accepting all 3 at once.
Removed waypoint messages from targeted GEO contracts.  between the standard and ideal locations, you could see quite a few in/out messages while getting to the right spot, and you can see it in the contract window anyway.
Lowered duration from 4 to 3 years.  Required contracts took me just over 2 years if I did it right after ComApp1, but only 6 months if I did it after.
@NathanKell
Copy link
Member

Sorry I missed this was ready for review. I'll take a look tomorrow or otherwise ASAP. 👍

Made firstTargetedMolniya optional since you do a Molniya in CA1.
Changed Molniya and Tundra targeting to use waypoints instead of orbit parameters.  It allows for a bit more play in LAN and eccentricity while still making you do what those orbits are meant to do.
Adjusted Molniya network intermediate orbit to make it clearer.
Changed some descriptions to make it easier to see which satellites you keep.
Added notes to Tundra and Molniya contracts to remind player about the orbital parameters since they aren't explicitly required.
Loosened time requirements to allow for principia orbit shifts.
Changed Molniya Network to track waypoint loiter instead of orbital parameters to match the rest of the contracts.
Adjust Tundra target range.
Limit to one GEO network contract
@Ballatik
Copy link
Contributor Author

Ballatik commented Mar 3, 2024

Changed tundra and molniya contracts to use waypoints instead of orbital parameters. It allows a bit more flexibility in specifics while still requiring you to do what those orbits are meant for.
Clarified some notes and adjusted some difficulty.
I've run through it successfully on 3 careers now (test, russian, american) with no issues.

@siimav
Copy link
Contributor

siimav commented Mar 24, 2024

See #2342. Can it be fixed in the context of this PR?

Reset RepeatSat_Completion on completion of prerequisite contracts to avoid overly rewarding first repeat.
@Ballatik
Copy link
Contributor Author

See #2342. Can it be fixed in the context of this PR?

It now treats any of the prerequisites for unlocking the repeatable contract as repeat number 0, and resets the timer when completing any of them.

type = HasResource
resource = ComSatPayload
minQuantity = 124.9
maxQuantity = 249.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the intention of max to prevent double-dipping with another contract? Since you overrode the title then the existence of this upper limit isn't communicated to the player in any way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally a Molniya network would be spaced out for constant coverage, but there's not a way to check for that. Instead, I opted to at least make sure the player doesn't launch all 3 on one vessel and then decouple them into identical orbits. This allows you to launch them all at once if you want to, but requires you to decouple before finalizing your orbit which will give at least some spacing.
I'm not sure how strongly people feel about preventing the first case, but if we want to keep this check I should definitely clarify the contract.

@siimav
Copy link
Contributor

siimav commented Mar 26, 2024

Looks like the capstone of this program is either a GEO commnet or a Molniya commnet. Both of them require the same 125 units of payload which makes one way easier to do than the other. Maybe it would make sense to give Molniya a higher payload requirement to make this a bit more interesting of a choice.

Clarified separation mechanic.
Upped payload requirement to bring difficulty closer to GEO network
@siimav
Copy link
Contributor

siimav commented Mar 26, 2024

Correct me if I'm wrong but 'Tundra Orbit Test Satellite' and 'First Targeted Molniya Orbit Satellite' look double-dippable...? Not sure if there are others.

@siimav
Copy link
Contributor

siimav commented Mar 26, 2024

image
You should use hide children attribute in these cases.

@Ballatik
Copy link
Contributor Author

Correct me if I'm wrong but 'Tundra Orbit Test Satellite' and 'First Targeted Molniya Orbit Satellite' look double-dippable...? Not sure if there are others.

You could do them both with a single vessel, but you would need to go to a tundra orbit first and then lower to a molniya (with an additional 350ish m/s) since the molniya contract transfers the vessel on completion. You could also launch them both on the same vessel, separate the tundra before the molniya completes, then raise its orbit.

Tundra Orbit Test Satellite and Geosynchronous Test Satellite could also be doubled up, but would require about 400 m/s and 2 restarts to make the change. Geostationary Test Satellite is similar but would also involve an inclination change.

I feel like all of these options involve enough extra work that it's reasonable to leave the option there, but I can also see making them mutually exclusive just for clarity's sake. All of the other contracts either transfer on completion or are exclusive based on direct exclusions or prerequisites.

@siimav
Copy link
Contributor

siimav commented Mar 27, 2024

350 to 400 dv really isn't a lot and is easily achievable with even a HTP thruster. I would prefer the optionals to be mutually exclusive.

Copy link
Contributor

@siimav siimav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@siimav siimav merged commit a94bacb into KSP-RO:master Apr 8, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants