Crew Minus Crew

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    WELCOME STARMADIANS AND Fellow Starmadian !
    WELCOME ONE AND ALL TO:



    It feels like we have all been waiting for the crew update for a while now, and I think at this point people are just ready to say;



    Sorry schema, it must be pretty hard to make a game that has been a hit like this one has, and still have so much more that you want to add! But being unsure of how or when the best time to implement something, and with a dozen of half completed files of code, notepad documents, and other notes that you have stashed for another day... its just a lot to chew!

    Or maybe I'm wrong. But the point is that some things talked a while ago are still what seems to be ages out, and I have made this post here to address one of the more prominent ones.
    Crew.
    Or, more precisely, the Concept of the Crew system, and how we don't need NPC's at this point at all.


    That's right, implement the Crew system without adding in NPC's first. We need to first flesh out what it does or could do, and I will talk about that later in the post. We can add all the fancy decorations in later, like assigning NPC officers to rooms and systems for bonus that I have heard tossed about. NPC's moving about and populating ships can come in later, with all the polish and whatnot. Some people might be bummed to hear "Crew update, minus NPC's" and people will be a bit miffed about it, but we need to get the basics down first before stuff like 'pathfinding' for the NPC's.
    _____________________________________________________

    Acknowledgments
    :

    This formulated after reading through the
    Power System Overhaul MegaThread of Unending Pages, and seeing a trend emerging. Lots of people were posting about how they want Interior Space for ships to actually be a thing, and plenty of people on the other side of the isle, saying how this was the wrong way to do it. And then there was Lecic their too. Let me tell you, he would make a great representative (uncomfortable laughter) I feel the need to thank everyone who poured a lot of their time into that thread, man it is denser than a textbook to get through. And thanks to DukeofRealms cause reading through it most of the trivial unimportant back and forth had been cut and made the read go by quicker. Get some rest buddy. (Or another vacation.)


    Special thanks to these people in that monster thread for talking the most, posting the most, and in general making really quite long long long posts. So much information to digest. Whoo-boy. :rolleyes:(y):^D
    Special thanks to them for still being here after participating and reading all of that thread
    :eek:;):cool:
    plz dont leave us thx k bye

    Without that thread and all these people, I wouldn't of felt any urgency to make this thread.
    But they all kept talking in circles and past one another for page after page, and plenty of repeating topics.
    But doing some rough brain analytics of the textbook of a thread, some points did seem to shine through.
    People wanted a use for crew space, they wanted the space to have mechanics attached to it, they want freedom in how they place their space in their ships, and they would preferably like that it wouldn't be completely PVP alienating.
    _____________________________________________________
    Onto the Mechanics of this suggestion:
    We stop trying to give NPC's a task, stop trying to give NPC's functions that they would do in the ship. No more of that. We simplify, not stopping at just "ship needs number of NPC's in each section to run". No, simplifying further. Remove the NPC's role in this.


    We have two types of rooms:
    • Rooms that supply "Crew Points"
    • Rooms that require "Crew Points"
    How does the game calculate these "Crew points"? (I'm glad you asked!)
    • Volume (m^3)
    • Floor Surface Area (will be called Floor-space) (m^2)
    Mark a space using C+V on the top Left or Right corner and bottom Right or Left corner, drawing a diagonal through the room and effectively making a bounding box to tell the game what you want to do with this rectangle you drew.

    Later on it might become automated, but for now we should use C+V. C+V is a proven system and players learn it using other systems and blocks.

    So, making a room (room cutaway below), we now have this big void in the middle of our ship. Why?

    Our room here has a height of 4m, width of 8m, and length of 15m. No obstructions in the room, completely empty, making our math easy.

    • Floor-space is Width*Length, 8x15= 120
    • Volume is Length*Width*Height, 15x8x4= 480
    What the game recognizes as valid room space is hull or system blocks as the floor, walls, and ceilings to your room, 2 blocks above all floor blocks must not be systems or hull (dave is two blocks tall and gotsta squeeze through), all parts of the room must be connected to each-other, aka it wont recognize the separate room through the wall that your room surrounds like a U. I am now of the opinion that changing it to just detect the floor surface area and volume above it (like columns) does not change much to the overall outcome AND is definitely feasible to code.
    Write it to think in terms of columns, forget about walls. Using C+V to define the bounds of where to search for eligible floor tiles in a length-width direction, i
    t draws up from the top of a eligible block that can be a floor tile up to the height defined with C+V the player did. It feels way more feasible to do with Starmade code.
    With this, one could feasibly make a skyscraper and just C+V the top left and bottom right corner of the entire thing, because it would just process it all in one go, with each floor, each gap, as long as it has head-space, counting.

    What do we do with floor-space (Fs) and volume (V)?

    • Rooms that Require 'Crew Supply': CSc = (3/4)*(V) + 5*(Fs)
    • Rooms that Produce 'Crew Supply': CSp = (5/4)*(V) + 3*(Fs)
    Disclaimer: The constants are not final, and obviously they change how you would build both types of rooms. They could even both be the same equation, or be a 1:2 ratio for CSc to CSp by with the CSp equation produce half as much.

    Now, our room above will be our Crew Supply producer room, so using CSp = (5/4)*(480) + 3*(120), we get 960 crew supply resource.
    Think of this like a pool, and we have 960 units of resource to fill each of our Crew Supply rooms that require crew with. When we get to 0/960 resource by spreading it around, we make another Crew Supply Room, say a copy paste, and we would be at 960/1920.
    ---

    That covers how we get this 'crew supply' resource (better name pending). But what is it used for?

    Well I'm glad your still with me, lets wrap this up.

    Below we have a small 3x3x5 room sloppily tunneled into a cannon system. Volume should be 45 and floor-space 15, but if you notice we have a cannon computer extruding from the middle of a wall. Because the room is only 3 blocks tall, both the space below and above the computer doesn't count towards the 'room', as starmade would see it, mechanically. Thus the volume is 42 and floor-space 14.
    If the computer was placed a block higher, the floor below would have 2 spaces above it not occupied by systems or hull, and count towards the room. If the computer was placed a block lower, the top would count as a floor, as it is a system, and because their would be 2 blocks of space not obstructed by systems or hull.
    Decorative blocks are transparent to the equation and do not obstruct anything and are treated as empty space.

    Continuing on, with our volume of 42 and floor-space of 14, and using our equation of:
    CSc = (3/4)*(42) + 5*(14) = 101.5 (round to 101), 101 units of crew supplies required.


    Luckily we have 960 available, so after we connect the two rooms with a pathway that they can somehow theoretically get daves too (even if it is a 1x1 tube that uses gravity modules to move about), the game just checks that their is an open, unobstructed path by systems, hull, or decoration though, and not outside, the ship (doors, rail entities, and the like are fine though).

    So after connecting the rooms with a path, our weapons room would read 101/101 (it's full, this is ideal), and our supply room would read 859/960.
    We can utilize another 8 rooms of similar size! (or some smaller number of bigger ones) before we need to think about making another room for more crew supply. Kinda like building houses for population in the Age of Empires and Star Craft series.
    _____________________________________________________

    But what does this 101 units of resource do? It adds that many blocks to the system block count that it is connected to. So if I had a 1004 block cannon primary and that room was hooked up to that primary computer, the cannon's system primary is now 1105 blocks.

    If you had a 20% ratio of system blocks to crew resource input, then that 1004 cannon could support 2 of those rooms, and would count as a 1206 block cannon. The ratio would be in the server config, and easily changeable. I'm not sure what it should be at, something between 15% to 35% surely. We don't want too much systems being replaced by rooms, the future daves gotta maintenance something. :-p And the fact that the equations make it more efficient to have crew rooms on all your systems even with the space sink to supply all the rooms with the crew supply resource. The constants are tweak-able, if it's too good then lower them, if it doesn't subsidize the hallways enough then increase the values.

    This applies to all systems, shields, power, thrust, primary weapons, secondary weapons, weapon effects, defense effects, cargo, etc...

    And that's it. It adds to the systems block count, no %'s, just bonus block count to the system.

    In terms of docked entities and turrets, the room would be linked to the rail docker/turret docker and ideally it would open up a GUI and allow you to pick a system that the game detects exists down the chain to hook your room to.

    Note, might need to reduce the hp decorative blocks give, in relation to their mass. I know what some of you were thinking and i'm ahead of you on that. ;):-p:rolleyes:
    Another note/later feature to add, rooms exposed to space shut down until sealed again.

    _____________________________________________________
    Thank you all for reading, I hope separating paragraphs and trains of thought made this easier to read. Thanks again to all the people who talked in that power thread and gave me the drive to put this thing together finally.


    For those of you who skipped to the end. First, why. Read the darn thing. Second, this is for Crew, minus the need to program in NPC's... yet. You have two types of rooms, ones that produce crew resource like houses do in age of empires and starcraft, and ones that when connected to systems convert that into block counts for the system linked to. It provides slightly more blocks than the volume of the rooms it takes, but your system cant be all rooms with a single thruster in the center they are buffing. The rooms could be barren, they could be decorated, the equation doesn't care. It doesn't care because its Math.

     
    Last edited:

    Lecic

    Convicted Lancake Abuser
    Joined
    Apr 14, 2013
    Messages
    5,115
    Reaction score
    1,229
    • Thinking Positive Gold
    • Purchased!
    • Legacy Citizen 11
    Well, it's definitely an interesting suggestion. I think it could work in the meantime while we move towards actual crew NPCs. I would suggest that crew supply rooms not work with system blocks, only hull or decoratives. Pathways and control rooms being systems is fine though, whatever.
     

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    Well, it's definitely an interesting suggestion. I think it could work in the meantime while we move towards actual crew NPCs. I would suggest that crew supply rooms not work with system blocks, only hull or decoratives. Pathways and control rooms being systems is fine though, whatever.
    That was me just defining that you can't fill room set for npcs with system blocks and hull/armor, cause, yah know, balance. But decorative blocks dont count as blocks, so i guess one could fill the room for npcs with decorative blocks. Which is why i think there mass to hp and system hp should be revisited to disorage that.
    But with decorative blocks being treated like empty space means you can go ham with decoration the pretties and not be penalized. the math wont care. Thanks math.
    Did i clarify anything or did i talk around your point and misunderstand it?
     

    Az14el

    Definitely not a skywanderers dev
    Joined
    Apr 25, 2015
    Messages
    848
    Reaction score
    325
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    yeah! screw that antisocial Lecic guy
    lets just lynch him tbh
     

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    yeah! screw that antisocial Lecic guy
    lets just lynch him tbh
    Dood shut your mouth do you have a death wish! :confused::eek:o_O you might be his next target of evisceration!

    Well, better you than me i suppose :rolleyes::^D:-p
    Also its a damn effective filter, if you dont pass his filter then its probably rubbish. If you shout at him while hes trying to help you/explain something to you... the thread is never heard from or seen of again... dun dun duuuuunnnn
     
    Last edited:

    Lecic

    Convicted Lancake Abuser
    Joined
    Apr 14, 2013
    Messages
    5,115
    Reaction score
    1,229
    • Thinking Positive Gold
    • Purchased!
    • Legacy Citizen 11
    That was me just defining that you can't fill room set for npcs with system blocks and hull/armor, cause, yah know, balance. But decorative blocks dont count as blocks, so i guess one could fill the room for npcs with decorative blocks. Which is why i think there mass to hp and system hp should be revisited to disorage that.
    But with decorative blocks being treated like empty space means you can go ham with decoration the pretties and not be penalized. the math wont care. Thanks math.
    Did i clarify anything or did i talk around your point and misunderstand it?
    No, I meant that crew supply rooms shouldn't be allowed to have systems as the floors and walls and ceilings, since they're effectively the bunks/rec rooms/mess halls of the ship.

    yeah! screw that antisocial Lecic guy
    lets just lynch him tbh
    oi, I'll fuck ur mom m8
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    YES!
    And later I can definitively see different room types too (bunk allows beds to be 1 in height) (bridge requires computers)


    If Schema implements this and allows NPCs to be controlled by logic, we can make all the AI we want!
    BTW: The biggest thing stopping me from doing it right now is that I cannot reuse SM-content elsewhere (but regex is a good start)​
     

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    YES!
    And later I can definitively see different room types too (bunk allows beds to be 1 in height) (bridge requires computers)


    If Schema implements this and allows NPCs to be controlled by logic, we can make all the AI we want!
    BTW: The biggest thing stopping me from doing it right now is that I cannot reuse SM-content elsewhere (but regex is a good start)​
    Maybe different block types instead for beds. With this system it specifically is kept vauge for the players on purpose. I fully plan on having a bunch of medium sized crew supply rooms be decorated to be a barracks, a mess, medical, and a gym for my own ship. But it doesnt matter mechanically (yet) and thats the beauty of it. Sure their could be specialized rooms, but only as long as it doesnt take away player design choice.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Ships where gravity is not always "down" might need to create rooms where the walls are the same size as the floor, to get accurate "floor space", despite the different gravity. Yet another limitation for builders who want to build ships that simulate thrust-for-gravity.
     
    • Like
    Reactions: wafflepie
    Joined
    Nov 30, 2015
    Messages
    855
    Reaction score
    75
    Ships where gravity is not always "down" might need to create rooms where the walls are the same size as the floor, to get accurate "floor space", despite the different gravity. Yet another limitation for builders who want to build ships that simulate thrust-for-gravity.
    Rooms need a dedicated floor that all future utilities(beds and swag) need to be acessable and useable from. NPCs will autoalign to that floor, but if there isn't one then you get a negative effect on crew supply from that room.
     

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    Ships where gravity is not always "down" might need to create rooms where the walls are the same size as the floor, to get accurate "floor space", despite the different gravity. Yet another limitation for builders who want to build ships that simulate thrust-for-gravity.
    Oh jeeze how do you do it! All the block textures would be sideways to you as well, like display blocks and computers.
    [doublepost=1488994738,1488994678][/doublepost]
    Rooms need a dedicated floor that all future utilities(beds and swag) need to be acessable and useable from. NPCs will autoalign to that floor, but if there isn't one then you get a negative effect on crew supply from that room.
    Yup! And not a negative per say but definitely not optimal for the minmaxers here.
     
    • Like
    Reactions: MacThule

    Fellow Starmadian

    Oh cool so thats what this is
    Joined
    Jun 7, 2014
    Messages
    227
    Reaction score
    87
    • Community Content - Bronze 1
    • Wired for Logic
    • Legacy Citizen 2
    I probably wouldn't have seen this thread unless I was mentioned in the title, lol. About the suggestion, I think this is a pretty interesting idea! Knowing a bit about code, I can see how you could just keep this layer, and add the NPCs on top of this. IMO this is the best suggestion I've heard so far, if you include the floor system that Nickizzy mentioned.
     
    • Like
    Reactions: Master_Artificer

    Top 4ce

    Force or Ace?
    Joined
    Jul 25, 2013
    Messages
    527
    Reaction score
    274
    • Competition Winner - Small Fleets
    • Community Content - Bronze 1
    • Legacy Citizen 9
    I like this, I don't know if the ratios are right but those are details. At first I thought that having the crew required was well, required. My first instinct was to go, wait a minute, what about AI and turrets! Then I saw it provided a bonus to a system up to a point, and yeah that's way better. It allows an option to increase in performance, without requiring it.

    The numbers would need to be balanced out vs just filling that same space with systems, and also might benefit a master slave system. Like the crew space would have a personal computer that links to the computer systems you want a bonus too and allows flexibility with in the system.

    ps. I MADE THE LIST!
     
    • Like
    Reactions: Master_Artificer

    Crashmaster

    I got N64 problems but a bitch ain't one
    Joined
    Oct 18, 2013
    Messages
    453
    Reaction score
    360
    I'm curious if the room calculations in-game can be made to handle slab walls, floors and ceilings well.
     
    • Like
    Reactions: Master_Artificer

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Oh jeeze how do you do it! All the block textures would be sideways to you as well, like display blocks and computers.
    ...
    Well, you minimize the use of those textures. After that, the room can be built to look like pretty-much any orientation. You just have to understand the limitations, like which directions show thruster plating vs. thruster cavity, or jump module animated movement vs. vent.

    I haven't experimented too much with docking, but you can use docked sub-elements to show textures with the right orientation.
    (For example, for Star Trek builds, where players want to have the blue animated texture of the jump modules "feeding" both ways to a central "dilithium crystal chamber" element, I recommend putting the upside-down jump modules on an upside-down docked sub-entity. You could use two side-ways-mounted sub-entities to show two sets of jump modules "feeding" from the sides.)

    On the unrelated issue of floorspace:
    empty cargo blocks that have not been slaved to a cargo interface block yet should not be "counted" as covering floor space. If it's not slaved to anything, it will never be filled, so that floor space will theoretically always be empty (unless non-slaved cargo blocks become decorative cargo boxes....). On the other hand, if it slaved, the empty cargo block should count as a full block, when calculating available floor space. Or maybe cargo space could count if it's empty? Personally, I think cargo areas should not be crew areas at the same time, so I would say no to real-time floor-space calculation with cargo.

    Area detection blocks on the other hand (the ones invisible outside of build mode) should not interfere with floor space calculations.

    If the "floor" of the area can be determined by the direction of selecting corners, that would resolve the issue of which side is the "floor" for calculating floor space in rooms where the floor is not "down". (Example, if you select right corner first, instead of the left corner, that might be enough to determine the "orientation" of the entire room.)
    Unfortunately, this makes the area selection tool harder to use (with this mechanic, you would no longer be able to use just any ole' corner for the first selection), so the whole area would need to have a gravity-like arrow pointing to the floor, depending on which block you are pointing at to click on the second corner, in order to create the area's dimensions.
    Also, this sub-suggestion of basing the floor direction purely on an abstract selection of corners can be abused to give a room more floor space than the builder actually gives it. (E.g. selecting a corner so that one big, giant blank wall is used as the "floorspace" instead of the actual floor of the room.)
     
    • Like
    Reactions: Master_Artificer
    Joined
    Nov 30, 2015
    Messages
    855
    Reaction score
    75
    selecting a corner so that one big, giant blank wall is used as the "floorspace" instead of the actual floor of the room.)
    Crew need to get to the swag and stuff on the floor, and they can't do that while gravitied to the wall.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Crew need to get to the swag and stuff on the floor, and they can't do that while gravitied to the wall.
    In thrust-as-gravity designs, the wall perpendicular to thrust IS the floor. The stuff needs to be wherever gravity defines the floor. If stuff magically gathers on a wall, instead of falling to the floor as defined by gravity, that is a bug.
     
    Joined
    Nov 30, 2015
    Messages
    855
    Reaction score
    75
    In thrust-as-gravity designs, the wall perpendicular to thrust IS the floor. The stuff needs to be wherever gravity defines the floor. If stuff magically gathers on a wall, instead of falling to the floor as defined by gravity, that is a bug.
    The idea is that you would place all your swag on one side, then set that side as the floor. Any swag you have for your crew needs to be accessable by the crew when they are gravitated to the floor.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    The idea is that you would place all your swag on one side, then set that side as the floor. Any swag you have for your crew needs to be accessable by the crew when they are gravitated to the floor.
    Yes, the builder is going to build the ship that way; crew-accessible things (anything from a cargo interface block to a med locker) will be near the gravity-defined floor. If the builder builds his crew-accessible stuff at a location that cannot easily be reached by crew under gravity, then that's bad design. (Or specialized design, as in the case of multi-purpose rooms with different things on each wall, depending on which gravity block you activate.)
     

    Master_Artificer

    Press F to pay respects
    Joined
    Feb 17, 2015
    Messages
    1,588
    Reaction score
    612
    • Top Forum Contributor
    • Legacy Citizen 2
    • Thinking Positive
    Hey guys, just thought of something, mental breakthroug while putting on pants.

    Instead of doing the corner to corner meathod, why not just reuse the very old dock system?!!
    Wherever you place the docker is the "floor". All future npcs allign with this when generated/spawned in the room. It gives you a 3x3x3 square to work with right off the bat, and you place blocks to expand it like the old system.

    Now, the bounding box it draws is green if it works, blue if happy (all crew points generated is used up/all crew points required is filled) and red if one of these conditions apply:
    • If bounding box overlaps another room bounding box.
    • If less than 50%(or 30 if 50 is too constrictive) of the space bound is open space. (you need to have enough room in your rooms for your rooms to count as a room, kapeesh?).
    • If the box extends past the ships own bounding box.
    • If outside of your ships hull (currently impossible so disabled for now).
    The room doesnt work if that happens, and it visually tells you this.


    Now the bounding box could count in two ways:
    • It could count just volume if schine just wants "space" to be used and encorage hypothetical 10x10x10 boxes of space used for crew. Hey they can jump all they want.
    • It could count volume and floor space, which would encourage "decked" designs, with players then turning that hypothetical 10x10x10 space into a parking garage with multiple layers.
    There are other advantages to tying this to blocks, like being able to name rooms and see them in the "ship" tab in the menu like how we acess thrust and ai and other systems. Each room would have a default name like teleporters based on their position in the ship.

    In advanced build mode (ctrl) a bubble could pop up above each old docker on the ship(will need to rename it to something else) that displays room crew point capacity, and how much is being filled/supplied. Easy viewing at a distance.

    You could also have a system block I guess with a display module doing that.
     
    Last edited: