Unify objectives language in public facing places#7391
Conversation
|
Done |
01a12eb to
31bdced
Compare
31bdced to
33f4f72
Compare
| "\tReturns true N seconds after the specified objective in the this mission is true (or succeeded). It returns false otherwise.\r\n\r\n" | ||
| "\tThis operator works by checking the mission log. Since objective status is evaluated after event status, a delay of 0 will cause an event to become true on the frame after the objective becomes true.\r\n\r\n" | ||
| "Returns a boolean value. Takes 2 required arguments and 1 optional argument...\r\n" | ||
| "\t1:\tName of the event in the mission.\r\n" |
There was a problem hiding this comment.
Not sure what was intended by this comment but I found some other things with the help text that needed addressing as well as a sexp I missed (reset-goal -> reset-objective).
| //****SUBLIBRARY: Mission/Mission_Objectives | ||
| ADE_LIB_DERIV(l_Mission_Objectives, "Mission_Objectives", "Objectives", "Mission objectives", l_Mission); | ||
|
|
||
| ADE_INDEXER(l_Mission_Objectives, "number/string IndexOrName", "Indexes mission objectives list", "mission_goal", "Objective handle, or invalid objective handle if index was invalid") |
There was a problem hiding this comment.
Still "mission_goal" here?
BMagnu
left a comment
There was a problem hiding this comment.
Thanks for your patience on this. Internally, the SCP team has debated this for a bit now.
It's definitely useful to discuss possible QoL updates, though to be frank, we're a rather hesitant on the implementation of this PR.
Given the cost benefit considerations, we think this messes a bit too much with established FREDing.
Unfortunately, this would cause major issues with trying to follow the established and commonly referenced FREDing tutorials, especially with QtFRED changing parts of the UI, and the language being different.
It renames some very, very old (including retail!) and crucial SEXPs, causing people who are used to these to have to search and guess what they want. As an final note, scripting deprecation are always to be avoided unless there's a fundamental underlying technical reason for it that makes it unavoidable.
Personally, I think the idea is not wrong, but the implementation is way too invasive.
It'd be fine to leave the API's and SEXPs as is, and enhance the labels and help texts to strictly say "AI Goals" or "Mission Goals / Objectives" instead of just "Goals"
I think that's a fairly shortsighted take and likely led by a particular SCP member who has a hard time with change. As one of the most active contributors to SCP it would be nice to be a part of these sort of discussions but I get that there are members who don't particularly want my opinions for whatever reason. QtFRED is designed to have a whole new set of tutorials linked directly into it's help documentation and if we were ever going to unify around a common set of terms for the community going forward, now would be the time. This community lives and dies by making it easier for new members to get into making missions. This kind of thing lowers that barrier significantly. However, I'm working hard to finish one of the biggest SCP projects yet and will choose to just let this go instead trying to argue the point with a group that doesn't want to hear my position. |
In FRED and QtFRED I noticed that the Mission Goals dialogs use the terms "goals" and "objectives" interchangeably. It's not clear why and it can cause confusion because "goals" can also refer to AI Goals. The
goalobjective of this PR is to unify around a single term to minimize confusion, which aligns with one of my coregoalsobjectives for QtFRED; making mission design more accessible.With this PR in place we have
This is almost exclusively a public facing change only; that is in editors, the Lua API, and the sexp names. Internal code such as enum & variable names, and file names should probably be changed at some point so that coder language matches user language, but that can come later and in smaller chunks. Doing that here would be an unnecessarily large PR.
This PR does add two API changes. First, there is a new
ADE_INDEXER_DEPRECATEDto match the existing versions of Func and Virtvar. I copied the methods from those directly. Second, there is a new path in missionsave.cpp that will use the old sexp string names in place of the new if we're saving in retail format. I was surprised this didn't exist before, so there may be other sexps that were renamed over the years that may benefit from this as well.