
Moleculor
Members-
Posts
7 -
Joined
-
Last visited
Moleculor's Achievements

Chaplain (2/37)
-
I would hope that there are no roles on the station 'similar enough' to each other to step on each other toes. I wouldn't expect a Janitor to be doing an Engineer's job, or a Geneticist to be mixing Chemicals. The issue this would be trying to fix would be too many of the *same* roles (too many Engineers, too many Doctors) and to make sure that people who *want* the CMO job (high) but can work as a doctor (medium) don't get bumped back to the lobby by someone else getting the CMO, and then others who get doctor jobs (medium) but would have been happy in another medium role. I'm.. not actually sure that's the case? Or if it's any different from the current status quo? Or maybe I'm not understanding your description, or maybe you see something I don't. Do you mean 'filled' as in 'run out of slots' or 'filled' as in 'someone in one of the slots available'? The way I see it being done (and I could be wrong about this being a smart/right way of doing it), the least in-demand 'High' roles would have someone in them first (though not necessarily filled, unless there's only the one slot) rather than the most in-demand. Because if you focus on putting people into the most in-demand slots first, you're pushing more of the population into that department rather than spreading out the population. Eh. Maybe? Maybe not. Most lag I've seen in BYOND involves tile changes and updates (I'm not an expert!), or any time a lot of people have to download the map. I'm not sure if spawning the characters induces the same kind of lag (they aren't updating what are known as 'turfs', I believe), or where the most of the round-start lag originates from, but if it's from merely iterating through lists and comparing values, BYOND is weaker than I ever imagined. I'd take a guess that this wouldn't actually increase roundstart lag significantly (and in fact some of the work could be done during the lobby countdown, possibly), but a couple extra seconds of lag might be worth increasing everyone's chances of getting roles they're happy with?
-
Oh thank science. I was beginning to think I was crazy. YEAH. I'm puzzled by how it'd be coded, but I haven't actually touched code (short of a tiny smidge of Visual Basic) in about a decade, and I don't know the language SS13 runs on, and I'm not entirely sure how the job preference code currently works. Possible psuedo-code: Well, for starters, I think it's important to point out that 'spawning' probably wouldn't happen under this system until everyone had a job assigned. I'll re-ask your question with the sections I change underlined. The changes to the question may actually do more to answer your question than any answer I could give. "If I'm set for "High" doctor, and the job preference system has already assigned 'Doctor' to four other people who had doctor set to High, "Medium" chef, which no one had picked as a High or Medium preference (but low might have been picked by some people), and "low" engineer, which no one selected as High or Medium and hasn't had anyone who picked 'Low' assigned to it yet because the system is probably still only working on assigning High preferences and hasn't even started assigning Medium preferences yet, but does have two people with Engineer set to 'Low' who don't have anything else set to any other preference of any kind (or everything they do have set to High or Medium fills up somehow before they get it), which would I get?" If there are doctor slots available (I don't know the limits), you'd be a doctor. If there aren't, it would then it would assign you as a chef (or whatever the lowest population medium preference you have) and then work through the rest of everyone else's Medium preferences. If your Medium (and High) preferences are all filled before you're assigned one, then it'd start trying to spawn you as a the least populated Low preference job that you have selected (Engineer if everything else you selected as Low already has two or more people assigned to it, or you had nothing else set to Low).
-
Okay. When doing that, how do I join as an AI or cyborg? (And before you say 'well, get the roboticist to turn you into one', remember, the example round *had* no roboticist, and I've very rarely if ever seen a new AI constructed.) I'm honestly still not understanding what the resistance to this idea is. Everyone who wants to play a specific role still gets to play a specific role. If six of you only want to be doctors, and there are six spots open, all six of you are going to be doctors even if that means there are no engineers and the station loses power. It means I *won't* be taking that doctor spot from you if there are already five doctors and I can instead be something with far more slots open. More people get the jobs they want, when they want, without bouncing out because of unavailable slots AND the station is better staffed AND slots stay open in more populated departments for those people who really want that role even if they forgot to ready up in the lobby. What's exactly is the problem with all of that, and why is it a bad idea? I would have thought that a suggestion that enabled more people to play the exact roles they specifically wanted while those of us who care far less move out of their way and fill in into less popular roles would be a popular idea.
-
I have never seen a 'Crew Manifest' button before a round begins.
-
That's not at all what this suggestion is suggesting. If you don't have a preference set for a job, this suggestion wouldn't spontaneously force you into that position (unless you have that random job option enabled, I guess?). I can't even figure out how you've reached this conclusion. Uh. The round I'm discussing, I was given the *literal* job of 'wander the maintenance halls looking for broken things to fix'. Short of blown lightbulbs (a janitorial job), that's never going to actually lead to work to do, especially not two minutes into the round. If I had remembered that existed (never actually seen it) I might have gone to mess with it, but still would have preferred to be in a needed role than a superfluous one.
-
Riiiight. Hence this suggestion. Since there's no distribution, you have situations where you have a completely empty Cargo department, major other roles missing, lack an AI, but you have an overstaffed Engineering. The lack of distribution is what I'm suggesting be changed. Uhwhat? Code that is written to perform a function is, by its very defintion, not 'unneeded'. Code is required for things to be accomplished. Well, I enjoy both variety and being able to fill in where needed. I don't see any way of having the character I play be randomly selected based on the job I'm assigned by the preference system, and even if such a thing existed the lack of distribution would still be an issue. I don't enjoy sitting around staring at nothing doing nothing accomplishing nothing with no goal, all because there's five+ other people doing what I'd normally be doing. If I had been dropped into an AI role, or Robotics role (a cyborg was specifically asking for one repeatedly, none were on station), or Quartermaster role or anything other than the highly-overstaffed Engineering department, I would have had something to do. Lets illustrate this another way: What if it had been Engineering that hadn't been staffed at all and Medical was instead the one overstaffed? Station loses power, because no one knows how to set up the power grid. Each department should (if sufficient population exists) have at least one or two members in it so that every department has *some* staff. It's not like NanoTransen should be 'forgetting' to send engineering staff or a Quartermaster to the station. For those that only play one department, this code would hopefully not mess with them in any way. Their preferences would be set to their preferences, and since they only have one job set as preferred, they should probably get priority in that over someone who has multiple roles set. I'm not sure how to do that when Readying up in the lobby. Is there some window that will let me see where people are choosing to play in advance, so I can alter my job preferences and de-emphasize departments that will be overstaffed? Or do I just have to 'join late' every round? And how do I 'join late' as an AI or Cyborg? I'm not sure how that would have helped me in this situation. If I had 'only' had engineering set, it still wouldn't have bounced me back to the lobby. I still would have ended up in an overstaffed department while other departments had no one in them.
-
So I was just in a round where there were no less than six engineers, and no more than two people in science. No AI, one cyborg, very little if any civilian staff (there WAS a chef!), etc. I was an 'Engine Technician' (Engineer). It, along with AI, Roboticist, and multiple other roles around the station are preferences I have set to 'medium'. Engineering was *way* overstaffed (I literally had nothing to do or work on), science had no roboticist, there was no station AI, and most of the other roles I had selected for 'Medium' preference were unfilled. Meanwhile, I was sitting next to six+ engineers, all quite eager and capable of doing engineering-related tasks.. Short version? I was superfluous. I had nothing to do, no part to play. It was boring enough that I eventually cryo-ed out. I would have much rather ended up in one of my other 'Medium' roles rather than end up as the sixth (possibly seventh?) wheel on a four-wheel car. So, to my suggestion: Even out the job assignment distribution somehow. If there are two engineers and no roboticists and no AI, and I have all three set to medium, *don't* drop me in as an engineer. There are already two engineers, we don't need more. EDIT: Multiple replies have indicated that I apparently wasn't clear enough in this suggestion, so I'm adding in additional information. 1. This suggestion applies to JOB PREFERENCES set as part of character setup before the shift begins. This means that 'crew manifests' are not available to use judgement calls on where to join. I"m suggesting that the JOB PREFERENCES system spread out people based on their JOB PREFERENCES. I thought that mentioning my job preference settings would make this clear, but this is me making it clearer. This only applies, obviously, to before-round-start distribution, not after-round-start joining. 2. This suggestion does not mean you're forced outside of your job preference roles. If there's still room in a department that you have set to medium (or high or whatever, not sure if you can have multiple 'highs'), you'll be dropped into it even if it's highly staffed already, SO LONG AS none of your other 'medium' or higher preferences are less populated. You'd only be dropped into a 'low' preference in the event of all of your high and medium roles being entirely unavailable, and if even your 'low' preferences are unavailable your standard 'Unavailable' option will kick in. EDIT2: Basically (if I'm reading the code right, have actually found y'all's Github, etc) this is a suggestion to alter the "FindOccupationCandidates()" function contained with in job_controller.dm to run through a list of *positions* instead of a list of players and assign players to those positions over and over again until the player list is empty OR to add an additional condition inside the function that skips a job if the player has other jobs at the same 'preference level' that have been filled by fewer people than the job it was about to try to assign you. If that communicates that I'm trying to say correctly. I dunno, haven't coded in years, that might be the wrong function to slip that code into, etc.