[IDEA] Considerations regarding modules & block groups

FatCat1978 shared this feedback 17 days ago
Not Enough Votes

One of the biggest usability concerns with modules, timer blocks, etc in Space engineers 1 is conflicting and overlapping block groups. If you see a blueprint (henceforth referred to as a module to keep things coherent)

of a cool door, and paste two onto a grid, they will overlap. timers will activate groups, of which are merged rather than distinct entities.


This is especially a problem in regards to SE2, as (presumably) you're more heavily pushing a modular building schema. it'd be reasonable to expect fully functioning, complicated modules (doors, landing bays, extending ramps, etc) to be made essentially as soon as the relevant in game blocks are added, which multiplies this issue significantly. In SE1, you can circumvent it by painfully configuring each module at a time, but I think the reasonable course of action is to have each module contained in it's own block group, and allow block groups to contain other block groups in a hierarchical structure.


The biggest change here would be making timer blocks etc target block groups via a reference as opposed to just a name - or, at the very least, have an option inside said timers/automation blocks with actions to only target groups in:


* the group it's in


* all groups in the ship


* a particular group's child groups


* all groups of a name


* a singular group determined via reference (as there could be multiple modules with the same name)


This way, when you paste in a module (or have it blueprinted in via projector), it's in it's own subgroup - and as such, doesn't conflict with others.


This would also allow more complicated script-free behavior, like missile silos having a timer block target a subgroup that handles the firing sequence - or recursive things, like a module pasting in a module, and calling in a timer on the module it just made.


In the case of potentially infinite levels of recursion, the UI might get complicated with a hierarchical structure - but I should express that this doesn't need to be "true" recursion in terms of actual physical parenting or the internal data structure.


Pasted modules could have a block group with a unique ID, and a "display name" that gets used and iterated in the same way blocks do, so instead of all the different modules combining their groups, you'd simply get:


"door module 1. door module 2. door module 3." in a foldout menu in the block terminal screen.


In addition, I think it'd be broadly handy to have predefined global groups. Stuff like "Thrusters", "Batteries", etc that're automatically produced, albeit hidden by default.

Replies (1)

photo
1

How about this, TWO possible plug-n-play options?

1) Functional blocks that use programing, timing, event control, AI or scripting need to be touching each other or are modules that can be attached/plugged into to a "mainframe" and the mainframe takes on the attributes of those subsequent blocks/modules attached by inheritance.

831eab6ecd369c116cf34db7cfd7b66b

  • If the block is touching the mainframe it becomes an isolated part of the functions you want to program.
  • aae53ffe1bc083f0413c574a7241de1b
  • If it is separated or not attached, maybe that could act as a metaphorical firewall or isolation of systems preventing hacks? IDK, just ideas.

2) Functional blocks that use programing, timing, event control, AI or scripting could be loaded with function specific DATA-PADs. The specific data-pad loaded into the programable block (like ammo in a turret) tells the programing block what it it should do.

Just like old school CD's/Flash-Drives/Key Cards plugged in, programs on the card run the system.

915bc6b99f40ff2146993d26a6abe58f

photo
1

That's more of a distinct feature than suggested, and doesn't really solve the issues currently present with the grouping system in SE1 (unless implemented alongside my proposed system). Both would work together, but I think yours is more suitable to a separate suggestion.

photo
Leave a Comment
 
Attach a file
You can't vote. Please authorize!