-
-
Notifications
You must be signed in to change notification settings - Fork 346
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
KSP2 support #3797
KSP2 support #3797
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
5c0e2f7
to
b2de5c9
Compare
This comment was marked as outdated.
This comment was marked as outdated.
b2de5c9
to
a4d676c
Compare
Yep, we can come up with a plan for that
I'd love for this to be re-factored in some way to get us HTTPs
We can probably keep the same queues, but maybe we can put a game in a message attribute and have subscriptions that filter on that attribute. It's possible we could even just re-use most of the same code and just have it switch depending on the game. |
a4d676c
to
90d82d7
Compare
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of comments from my initial read through. I'm leaning towards not duplicating our Infra to support a second game, as it's a bunch of stuff that'll be largely idle and we can do a little work for it to fit into the existing pieces. That way if we reach scaling issues we can just increase the number of inflators (it's the service that works the hardest)
What if we reduce the memory/disk requirements of the new containers for KSP2, since there will be very little metadata cloned from very small repos initially (and probably small mods, to boot, while the game is too unplayably buggy to create anything large)? I'm concerned that updating several services to clone multiple (pairs of! for NetKAN and CKAN-meta) repos and multiplex requests among them would be much larger than just a little work, as well as creating many many opportunities for new bugs. Would
That advantage is shared by both approaches, and in fact can be applied with more granularity with re-use of the containers: If we reach scaling issues, we could just increase the number of KSP1 inflators, or increase the number of KSP2 inflators, or both, as needed. |
I'm not enthusiastic about encoding attributes of the outer multi-game reality into code. The way they are now, each service knows about its own repos, queues, etc., and doesn't need to care about the high level view of how many games there are, what they're called, what repos they use, etc. I think that's great! We made these tools that do one thing and do it very well, and we already have a way to deploy them in slightly new ways. |
I will code up an approach, but from a perspective of all the services, there is no difference in logic beyond what repo to push the metadata into. Running an extra set of services just to differentiate a game seems quite wasteful. The scheduler can probably be configured separately though. It would be nice to consider a future of further game support, though well out of scope here, it doesn't seem like a significant amount of work to generalise the infra. |
We could always schedule KSP2 inflation passes every 5 minutes, if the idleness bothers you... 😁 |
Hahaha, not so much the idleness. It's more I can see in my mind a pretty trivial way to do a fairly small set of changes and it would cover an infinite number of games. |
90d82d7
to
7ec8761
Compare
a527722
to
4453410
Compare
Just updated:
|
ee619db
to
a81daf9
Compare
A few more things:
Also just pushed updates to KSP2-NetKAN and KSP2-CKAN-meta to make the latest releases inflate cleanly. |
a81daf9
to
0b77f2b
Compare
|
0b77f2b
to
7488b73
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks reasonable from my read through, and an E2E test with the attribute changed to GameId
, all looked good.
I'll leave it up to your discretion @HebaruSan - but I think the attribute name change would make sense in the context of an SQS message.
Co-authored-by: Leon Wright <techman83@gmail.com>
Motivation
Kerbal Space Program 2 is now available in early access!
While debate rages over which game is better to play right now, the community is sure to shift to the shiny new toy over time unless something catastrophic happens, and mods are already starting to roll out for the sequel. The people want CKAN!
History
#3223 and #3308 abstracted all game-specific behavior behind the
IGame
interface, which now finally pays off!Changes
KerbalSpaceProgram2
class reflecting how the new game worksInstead of selecting
buildID.txt
to add an instance, you just pick theKSP2_x64.exe
Instead of getting the game version from
buildID.txt
, we retrieve it from the EXE's propertiesGameData
is replaced by the folder for the (now main/only) third party mod loader,BepInEx/plugins
--game KSP
/--game KSP2
command line flag to control which game's rules are used for inflationswinfo.json
and parses them for juicy tasty metadata according to the SpaceWarp format--game $GAME
so the Infra can tell it which game to useMetadata repos are already created and populated with some test data:
I have not acquired author permission for the mods currently up there (except BepInEx, see KSP-CKAN/NetKAN#9584, and SpaceWarp, see comment below), so we'll need to either get permission or purge them before merge.
Fixes #2863.