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

feat(data): Creating Unclassified and Unclassified Minor Categories #9986

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

Zitchas
Copy link
Member

@Zitchas Zitchas commented Apr 11, 2024

Content

When doing analysis of our overall ship set, there's a whole variety of ships that are basically just dumped into categories because they need a category; or otherwise don't really fit within the player's paradigm. As in, these are ships that are never acquirable in any vanilla in-game way (the Shooting Star being the exception), aren't manufactured or produced conventionally speaking, and generally aren't representative of the categories they've been placed in.

This creates two categories: "Unclassified" and "Unclassified Minor"

The former is the primary category that virtually everything was placed into; while the latter is for any of these unclassified things that were previously designated fighters, drones, infants, or otherwise something that suggests they might be carrieable.

Basically, this affects the Void Sprites and all the rest of the space creatures and a few of the person ships that aren't identifiable manufactured ships.

Yes, I have included the Archon in this list, because a) it's a placeholder, b) we don't actually know what it is, c) it's not obvious to the player that it is even manufactured, or d) it's true purpose. And at the end of the day, it just messes up the tables to have this basically invincible ship tacked on to the list.

Gameplay Impact:

With the exception of the Shooting Star, This is generally not a directly in-game visible change.

It is, however, highly visible when using an all-content plug-in, the Endless Sky Encyclopedia, spreadsheets, or wikis; which all generally use these categories. As such, for those that discover this piece of information about these ships, I feel that listing them as "Unclassified" makes them more mysterious and less misleading; and thus helps to reinforce their nature.

Testing Done

Played the game. Tested that the Ayym can still pick carry, launch, and recover Jje.

Save File

Any pilot, anytime, anywhere; but effects will generally only visible when using an all-content plugin

Performance Impact

none

Edti: By BeccaBunny's request, the Shooting Star category has been reverted to "Heavy Warship." as being deliberate for entertainment value.

@Zitchas Zitchas added the content A suggestion for new content that doesn't require code changes label Apr 11, 2024
@beccabunny
Copy link
Contributor

I disagree with changing the shooting star's category, it was put like that intentionally simply because I found the concept of a space rock classified as a heavy warship amusing

The other edits make sense to me

@Zitchas
Copy link
Member Author

Zitchas commented Apr 12, 2024

Sure, I can change that.

edit: Done.

@Zitchas Zitchas marked this pull request as ready for review April 12, 2024 11:09
@warp-core
Copy link
Contributor

I don't think the given reasoning really makes sense for recategorising the Ursa Polaris.
Sure, it might look somewhat unique for a space ship, but that's not really how categories work.
Its stats aren't really any more different to any normal ship than any other person ship.

There are also several "ship"s in the game that don't have any category. If we're adding an "N?A" type category for stuff that seems a bit odd in the normal categories, it seems reasonable to also put those category-less ships into it as well.

@Saugia
Copy link
Collaborator

Saugia commented Apr 12, 2024

I would add the vyu-Ir to this list as it's intended to be an unknown Ruleian ship - could have been a HW, could have been a LW, could have been some Utility ship, etc. yet is organic.

@Zitchas
Copy link
Member Author

Zitchas commented Apr 12, 2024

OK, I've added the Hallucination, Asteroid, and vyu-Ir. I wasn't sure about the lore behind that one, thanks for clarifying.

This leaves the two timer ships, the nanobots, and the rescue dummy. I'm reluctant to include these three because they're not ships at all, they're not even pretend things that are kind of similar to ships. They're just flat out mechanics.

Honestly, if these were to be given a category, I'd want to label them "Game Mechanics." If people are interested in having that, I'm happy to oblige here.

Regarding Ursa Polaris, I was actually more inclined to go through the Persons list and label anything that wasn't an actual (no attributes modified) variant of a real ship as unclassified, thus limiting the actual categories to things that actual fall within the game's normal framework. If it's sufficiently disruptive that people want to remove it from the game, it probably isn't representative of its category anymore.

As to Ursa in particular, while it does not have egregious stats, it's not purchasable, it's not acquirable, it's not part of any in-game lore anywhere, it doesn't even match any faction aesthetics. The fact that it's a "heavy warship" that has a cargo capacity matched only by a handful of Superheavy's just doesn't really jive. (the highest cargo capacity of any Heavy Warship the player might conceivably get their hands on is the Ra'at Ik 621 with 288) In any case, the point isn't to argue the Ursa Polaris's stats, the point is to set it outside the mainstream categories so it is clear it is outside them, and not just an oddball outlier in the Heavy Warship category that might be subject to correction or rebalancing in the future.

Anyway, if people would like the game mechanics ships in a "Game Mechanics" category, just say so, and I'll do it.

Hallucination, Asteroid, and vyu-Ir
@bene-dictator
Copy link
Member

Honestly, if these were to be given a category, I'd want to label them "Game Mechanics." If people are interested in having that, I'm happy to oblige here.

I'd hesitate to do that since I think we should want to have as few "ships" doing these roles as possible. I'd keep the nanobots and the Remnant rescue dummy as unclassified.

@Zitchas
Copy link
Member Author

Zitchas commented Apr 13, 2024

Oh, definitely. If we had the mechanics to fully replicate what those timers ships do, I'd replace them in an instant. Categorizing them as "Game Mechanics" could be just a means of collecting them as a group of ships that exist exclusively for the purpose of game mechanics, nothing more.

Including Timer Ship, Ion Timer Ship, Nanbots, and Rescue Dummy
@warp-core
Copy link
Contributor

As to Ursa in particular, while it does not have egregious stats, it's not purchasable, it's not acquirable, it's not part of any in-game lore anywhere, it doesn't even match any faction aesthetics. The fact that it's a "heavy warship" that has a cargo capacity matched only by a handful of Superheavy's just doesn't really jive. (the highest cargo capacity of any Heavy Warship the player might conceivably get their hands on is the Ra'at Ik 621 with 288) In any case, the point isn't to argue the Ursa Polaris's stats, the point is to set it outside the mainstream categories so it is clear it is outside them, and not just an oddball outlier in the Heavy Warship category that might be subject to correction or rebalancing in the future.

Many of these characteristics are also true for other person ships. Usually, it's the outfit and weapon space that is abnormally high. This one happens to have a high cargo space value as well. There are plenty of other categories that this could go in if that's the problem. I don't think this is otherwise sufficiently different from other person ships to be categorised so differently from them.

@MasterOfGrey
Copy link
Member

Worth noting that that if the Ursa Polaris is going to remain in the regular ship categories, it should be in the Utility class.

Copy link
Contributor

@mOctave mOctave left a comment

Choose a reason for hiding this comment

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

Looks good! My only concern is that Unclassified Minor is a bit of a confusing name. Maybe "Unclassified Carried"?

@bene-dictator
Copy link
Member

Categorizing them as "Game Mechanics" could be just a means of collecting them as a group of ships that exist exclusively for the purpose of game mechanics, nothing more.

It seems to me that this class would just be temporary if we plan to replace them; I don't see the need for another classification in that case, if it's for all of four ships. And if #9089 is merged (provided a dev can get their priorities in order and finish off the multitude of PRs that have been laying around), hopefully two.

@Zitchas
Copy link
Member Author

Zitchas commented Apr 17, 2024

It seems to me that this class would just be temporary if we plan to replace them;

While I have said I would love to replace them, there is currently no indication anywhere that anyone considers this a priority, or even on the "to-do list" at all. I know it's currently beyond the scope of my ability to do easily, and it isn't even really on my priority list at all, either. It's something I'd like to see happen, but not enough that I'm going to put effort into it.

Case in point, the linked PR hasn't exactly been pushed along with energy. In any case, changing a ship category when the ship is deleted in favor of an actual game mechanic is not exactly a problem. It's not adding work or anything.

@@ -125,7 +125,7 @@ ship "Void Sprite" "Void Sprite (Infant)"
thumbnail "thumbnail/void sprite infant"
"never disabled"
attributes
category "Light Warship"
category "Unclassified Minor"
Copy link
Collaborator

Choose a reason for hiding this comment

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

This isn't a carried unit, so should probably be unclassified rather than unclassified minor.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's an infant, which is to say minor, void sprite. Even if there's currently no void sprites that carry it, it still felt appropriate in terms of lore to name it as such.

Copy link
Collaborator

@Saugia Saugia May 5, 2024

Choose a reason for hiding this comment

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

Categories are meant to be mechanical terms of a ship's purpose - i.e., utility, heavy warship, etc., - they aren't necessarily a reference to a ship's lore, but to its functionality from a statistical/defined perspective. So in this case, for mechanical consistency, if we are to have a minor tag for unclassified, it makes sense that it should be tied to a difference in function, not lore, which would be the ability to be carried in this case.

In its own example, Unclassified would refer to a lack of ability to properly determine the purpose of the ship or where it falls under, rather than an inability to identify genetic make up, etc..

Copy link
Collaborator

Choose a reason for hiding this comment

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

If unclassified minor is meant to be specifically relative to a ships' (or species') size or growth compared to others, it would make more sense that there is an overall notable amount of lifeforms like this, though I don't think there are enough to warrant that distinction, and ultimately, the minor is necessary because the carriable Jje need to be a separate category anyways.

Otherwise, it makes sense that any non "-ship" would just be Unclassified. It seems odd to have multiple types of "Unclassification" for something that is a result of ambiguity - if we saw to different aliens in real life, say, one large. "old" and large in numbers, and one small and "young", I'd imagine we just call them "aliens", not "alien minor" and "alien"; the minor designation is more a result of a necessary functionality.

Co-authored-by: Quantumshark <thedup.adg@gmail.com>
Copy link
Contributor

@ziproot ziproot left a comment

Choose a reason for hiding this comment

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

I prefer unclassified (carried) as it is easier to understand the purpose behind it and it doesn't lead to confusion with ships such as the infant void sprite, which cannot be carried. I also don't think as many categories are necessary. All "unclassified" ships are ships that you don't actually use in game. I would be fine with this PR being merged as-is, however, I would prefer if these changes were made.

EDIT: As per a developer request, I have changed it to unclassified with a space at the end.

Comment on lines +29 to +30
"Unclassified Minor"
"Game Mechanics"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
"Unclassified Minor"
"Game Mechanics"
"Game Mechanics"

Copy link
Collaborator

Choose a reason for hiding this comment

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

I still think there's reason to separate any ships specifically made for a game mechanic to operate, as opposed to ships that exist within universe and are able to be classified or not. These are two very different things - one is code/mechanic based, one is purpose-based within the game.

Copy link
Contributor

Choose a reason for hiding this comment

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

Updated

@@ -125,7 +125,7 @@ ship "Void Sprite" "Void Sprite (Infant)"
thumbnail "thumbnail/void sprite infant"
"never disabled"
attributes
category "Light Warship"
category "Unclassified Minor"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
category "Unclassified Minor"
category "Unclassified"



# Ships of these types can be carried by other ships.
category "bay type"
"Drone"
"Fighter"
"Unclassified Minor"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
"Unclassified Minor"
"Unclassified "

@@ -21,7 +21,7 @@ ship "Jje"
swizzle 0
"never disabled"
attributes
category "Fighter"
category "Unclassified Minor"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
category "Unclassified Minor"
category "Unclassified "

@@ -123,31 +123,31 @@ ship "Ayym"
"hit force" 4500
engine 0 0
"steering engine" 0 0
bay "Fighter" -36 40
bay "Unclassified Minor" -36 40
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
bay "Unclassified Minor" -36 40
bay "Unclassified " -36 40

@@ -383,6 +383,7 @@ mission "Remnant: Rescue"
ship "Rescue Dummy"
# sprite "ship/behemoth"
attributes
category "Game Mechanics"

This comment was marked as resolved.

@@ -300,6 +300,7 @@ mission "Deep Archaeology 5"

ship "Timer Ship"
attributes
category "Game Mechanics"

This comment was marked as resolved.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Same as with the Ion Storm, this is explicitly used for a mechanic, not a ship classification.

@@ -20,7 +20,7 @@ ship "Vyrmeid"
swizzle 0
"never disabled"
attributes
"category" "Fighter"
"category" "Unclassified Minor"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
"category" "Unclassified Minor"
"category" "Unclassified "

@@ -77,7 +77,7 @@ ship "Vyrmeid" "Vyrmeid (B)"
swizzle 0
"never disabled"
attributes
"category" "Fighter"
"category" "Unclassified Minor"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
"category" "Unclassified Minor"
"category" "Unclassified "

@@ -128,7 +128,7 @@ ship "Vyrmeid" "Vyrmeid (C)"
swizzle 0
"never disabled"
attributes
category "Fighter"
category "Unclassified Minor"
Copy link
Contributor

@ziproot ziproot May 5, 2024

Choose a reason for hiding this comment

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

Suggested change
category "Unclassified Minor"
category "Unclassified "

@MasterOfGrey
Copy link
Member

I'll second the swap to "Unclassified (Carried)"

@Zitchas
Copy link
Member Author

Zitchas commented May 6, 2024

To be honest, the point of "Unclassified" is to be less specific, not more so. Just calling it "Carried" sounds so... normal? plain? generic?

minor doesn't specify anything clearly, although it allows us all to assume various things.

If it was changed to something else, I'd rather "Alternate Unclassified", "Different Unclassified", or something.

Actually, perhaps the best option might be "Unclassified " (as in only different from the other name by the addition of a space; so it won't appear to actually have a different name)

@ziproot
Copy link
Contributor

ziproot commented May 6, 2024

Yeah, I was considering just having both options be “unclassified” but I wasn’t sure if that would be too confusing. If you think that is a better option, I would be fine with that. I don’t think the extra space is necessary, as the current implementation uses “unclassified minor” as both a carriable and a parent category.

@Saugia
Copy link
Collaborator

Saugia commented May 6, 2024

Actually, perhaps the best option might be "Unclassified " (as in only different from the other name by the addition of a space; so it won't appear to actually have a different name)

I think this would be the best option, rather than having different "types" of unclassified, since the only thing that is separating anything here is the fact that the Jje are carriable to have an "interactive" mechanic with the Ayym. If I had to think back before I created these and if we thought about this then, we'd probably just have the "Unclassified" category for all of these, and then I would have to give something different to the Jje anyway. Since this is essentially file-based, having "Unclassified " would work and be consistent, in my opinion, rather than having an irregular second category that applies to one other (current) example.

@warp-core
Copy link
Contributor

Making a category name that looks like a typo is probably not a good idea.

I'm having difficulty understanding the opposition to the presence of "(carried)" given that carriability seems to be the key differentiator between the ships that are being assigned to each category.

minor doesn't specify anything clearly, although it allows us all to assume various things.

Why is desirable?
It sounds like you're saying you want the name to have whatever meaning the reader wants to assign to it? That doesn't seem like a particularly useful thing to do.

@Saugia
Copy link
Collaborator

Saugia commented May 6, 2024

Either way, my stipulation is that the necessity of a secondary category is due to the functionality of the carrier mechanic here, otherwise, the "Unclassified" category would apply to everything else (rather than there being various types), and I support this PR overall. I'm less worried about the specific name for a "Fighter". Perhaps we should avoid confusion with a possible typo, but I think either " - (carried)" or " - minor" works.

@Zitchas
Copy link
Member Author

Zitchas commented May 6, 2024

I don't like "carried" because that very explicitly states that it is akin to a fighter. The whole point of this is to label them as things we don't understand, so anything that establishes a baseline comprehension is undesirable. We don't know if these are immature members of the species, or parasites that cling to it, or specialist bred minions to defend itself with. And more to the point, we definitely don't know what future carried unclassified ships might be. There are a lot of uses for carried things, with the classic fighter-like entity is only one.

@warp-core
Copy link
Contributor

The whole point of this is to label them as things we don't understand

This is a very strange approach to assigning labels that never appear in game. Your description even states:

This is generally not a directly in-game visible change.

While, in character, these things may indeed not have any meaningful categorisation compared to other ships, these categorisations don't appear to serve any in-character purpose.

The only good reasons for changing the categories of any of these ships are out of character ones. And, out of character, we know exactly that the differentiating factor between these two categories is that one of them is carryable and the other is not.

@Saugia
Copy link
Collaborator

Saugia commented May 6, 2024

And more to the point, we definitely don't know what future carried unclassified ships might be. There are a lot of uses for carried things, with the classic fighter-like entity is only one.

We don't explicitly add things to the game for the sake of the possibility that something might be in the future; I actually remember some discussion prior that you mentioned we should worry about what's already in the game. Currently we only have so many of these "alien ships" - if there were as many aliens as human ships (iirc, around 60) in the game, then I would be convinced a purpose to have a secondary class for them, as we do with L/M/H warships. As it currently stands, there only around 10 that fit this, with a few extra being game mechanics, which are more than well-covered by a single category, with the other one being necessary due to mechanics.

Again, categories are purpose/use/organizational structure-based, not lore based. I think it would be completely acceptable that within missions or discussions that we dive into the biology of a lifeform, but for something that is specifically used as an organizational tool that isn't seen in-game, it only needs to be used for that. If this was an in-game organization then it would be a different discussion, and I would feel your points would make more sense there.

That said, since this often occurs in the past, I don't think going in circles about this will do anything but have this PR sit open for months. The PR introduces a new class to place these odd examples in for organization. I see the acceptance of a brand-new class for organization a plus and useful addition to the game's structure. Rather than argue about specific details and be stuck forever, I think we should be happy about the desire for this addition and move past it for what fits best with the current game's structure.

@Zitchas
Copy link
Member Author

Zitchas commented May 7, 2024

This is generally not a directly in-game visible change.

While, in character, these things may indeed not have any meaningful categorisation compared to other ships, these categorisations don't appear to serve any in-character purpose.

As you are no doubt very well aware, people read the data files, categories get put on ships in wikis, and people take those categories as lore. They might not be intended as lore, but intentions are pretty much irrelevant when someone not party to the development process reads "fighter" as the category in the wiki and takes it as in-game fact. Given that this is the case, we might as well label it something that contributes to the lore instead of something that directly goes against it.

@mOctave
Copy link
Contributor

mOctave commented May 7, 2024

Unclassified Minor sounds like a truant. If minor is being used as an adjective, it's bad grammar and confusing. Of course, the point of these labels aren't to be grammatically correct, and as you mentioned, this isn't going to be all that visible in-game, but it's still awkward and hard to read. Even if this just gets switched to "Unclassified (Minor)" it would be an improvement.

On the other hand, "Unclassified (Carried)" is still a pretty vague description. All it says is that it's a ship which can be moved around by another ship, which is a fact that is potentially already observable in-game. It's not making any assumptions about these ships like Fighter/Drone would, just providing a basic descriptor. I don't think there's any organisms that use the bay mechanic to simulate budding or something like that, are there?

But beyond this argument over semantics and grammar...

While the labels don't particularly matter in-game, they do matter in another place: development. Not just vanilla development, but also plugin development. As someone working on any sort of content, I want the labels I'm working with to be clear and easily understood wherever possible. We've already been doing this for conversation labels, opting for readability over conciseness. "Unclassified Minor" is ambiguous, which might be good for the in-game experience... which is exactly where no one will ever see it. I'd much prefer to do away with all that ambiguity in the development process.

As you are no doubt very well aware, people read the data files, categories get put on ships in wikis, and people take those categories as lore. They might not be intended as lore, but intentions are pretty much irrelevant when someone not party to the development process reads "fighter" as the category in the wiki and takes it as in-game fact. Given that this is the case, we might as well label it something that contributes to the lore instead of something that directly goes against it.

Okay, but people are also going to hack their saves, build up massive fleets, or read spoilery stuff in the data files. The only potential issue here is that of wikis, but that's a very small issue: you're already making a massive improvement on the lore side of things here, and I personally don't think it's worth the tiny bit of extra benefit that kind of obfuscation might have.

Again, I'd definitely like to see this merged, and if it's going to be Unclassified Minor I can live with it, but I'd much prefer the clarity of "Unclassified (Carried)". And, please, please, not "Unclassified ". That would be a content creation nightmare.

@ziproot
Copy link
Contributor

ziproot commented May 7, 2024

I used mOctave’s suggestion of carried because that’s the distinguishing factor here. The category only exists because there needs to be a separate one for ships that are carried, with “carried” being a game specific term involving a ship being able to dock to a different ship. The carried immediately shows anyone looking at the file that this ship is unclassified and is carried, as opposed to the other unclassified ships that cannot dock.

This is in comparison to, say, unclassified minor, or unclassified, which doesn’t just refer to the carried ships. Again, I would be fine with unclassified by itself as well, if people don’t think that would be too confusing, but I think this makes the most sense to prospective viewers of the file who want to know why the category exists.

Of course, I made my suggestions a comment and not a change request because it doesn’t matter too much here. If leaving the PR the way it is is how this gets merged, fine.

EDIT: Forgot that I used carried because mOctave suggested it, my bad.

@MasterOfGrey
Copy link
Member

As you are no doubt very well aware, people read the data files, categories get put on ships in wikis, and people take those categories as lore. They might not be intended as lore, but intentions are pretty much irrelevant when someone not party to the development process reads "fighter" as the category in the wiki and takes it as in-game fact. Given that this is the case, we might as well label it something that contributes to the lore instead of something that directly goes against it.

Since the categories got ported to data files it's entirely possible to have other categories be carried that aren't fighters.

Arguably, given that, making it obvious that it's (carried) makes it more obtuse, since if it were genuinely similar to a fighter it would in fact be classified as "Fighter".

And it is not.

Using Unclassified and Unclassified (Carried) is being explicit about the fact that they're all unclassified and not understood. Text in brackets is very clearly not a matter of lore, but of game mechanics - since categories have to be defined to enable carried behaviour.
There is no conflict with the lore here - and arguably, the mystery is heightened by not implying some kind of status with Minor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content A suggestion for new content that doesn't require code changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants