-
Notifications
You must be signed in to change notification settings - Fork 163
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
remove the special_ship field #4889
base: master
Are you sure you want to change the base?
Conversation
On board, as long as we still put the field in new mission files for backwards compatibility. There's no reason to introduce a compatibility break. |
The field would not be saved to new missions, but it would still be recognized on mission load, and it would be saved to missions saved in retail format. This is similar to other modified fields such as the migration of |
this seems like a risky change to me. Even if it doesn't do what it's documented as doing it sounds and looks in the code like it does something? Regardless of if that something seems useless, I'd be a concerned with subtle mission rot for old missions that may have intentionally or unintentionally used that behavior. |
It's not quite that simple. The field does perform as advertised now. There are a few specific problems. First, some retail missions had spuriously-set "special ship" fields which means those retail missions now behave differently. Second, wing formations and waypoint code assume that the first ship is the leader, simply based on geometry. And that's aside from the fact that for both story and gameplay purposes, wing leaders are expected to be the first ship in the wing. |
As a matter of fact, looking through the patch, the only meaningful, consequential use of |
9dd2854
to
367e067
Compare
I'll need to update this after the latest changes. |
367e067
to
50ddfab
Compare
Updated. |
a3aa038
to
8f63cd8
Compare
8f63cd8
to
72e6a17
Compare
72e6a17
to
6bde07a
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.
I believe this does create unacceptable compatibility breakage. It is deep corner cases that quite possibly don't come up in any mission that has ever been made, but neither can we be sure of that. From reading the changes again, it seems clear that certain things do depend on what ship is the leader, such as some details of what orders the wing will respond to an how. Wings are rarely but sometimes composed of more than one ship class, so assuming ship 0 is the wing leader/special ship is not a safe change to make. Moreover, if any breakages do occur they would be subtle ones that are hard for users to notice. I don't think the streamlining is worth the potential for modrot, if nothing else.
I'll note that I haven't dug through the history to read all the changes mentioned above and compare the post-change functionality to before any of the recent fixes discussed there, so I'm basing this currently off the delta in this PR alone. I will strive to do that further reading in the near future and adjust accordingly, or reconsider my objection if another reviewer does so and finds there's no actual loss here. But even if it's simply a reversion to the status quo I also feel that removing the field from file writing is, much like the recent changes that spurred the mission file versioning changes, at best negligible benefit and minor modder inconvenience. I do not like that balance at all, regardless of how many times in the past it has been deemed acceptable.
Finally surfacing through my to-do I looked through the entire diff just now, and it's been several months so I was able to look at it with fresh eyes. And I can confirm now what I said then: the field is almost entirely vestigial. Look through the code, and look at the consequences of each of the code sections. I'll be happy to walk you through them if you want.
|
This field existed in retail, but was not used for its intended purpose. Subsequently, I modified the functionality so that it worked as advertised, but this has side-effects for retail missions which specify a special ship other than the wing leader. I'm not sure to what extent this field actually enhances a mission, so I propose removing it.
6bde07a
to
8b1e9a9
Compare
I'm afraid I still have to conclude this is dangerous. If nothing else is, the killers are Side effects for this may be tiny and they may be rare, but that to me just means they're prime for the most insidious type of mod rot that we should be striving to avoid. It also means there could be cool niche uses of that functionality we haven't thought of, which makes me against removing it without a compelling reason. |
This field existed in retail, but was not used for its intended purpose. Subsequently, I modified the functionality so that it worked as advertised, but this has side-effects for retail missions which specify a special ship other than the wing leader. I'm not sure to what extent this field actually enhances a mission, so I propose removing it.