Replies: 6 comments 20 replies
-
Yes. Just look at how the ISS looks inside after some years of living there - that is what habitation means, even from a psychological point of view. And if you want to include a more first-person perspective like commander mode, adding personal decorations and equipment to your own quarters inside a hab would also make sense to increase immersion. As starting point, what about having a type of non-functional gear, that can be attached to walls. And once this works, we can go on giving the gear functions or psychological effects. |
Beta Was this translation helpful? Give feedback.
-
So, say, we want to visualize an EVA suit. It's easy since we already have But let say I need a floodlight that can illuminate the inside and outside of a building. And we can also install these floodlight in an outside site station or have a line of them will illuminate a road between buildings. So, for small item such as a floodlight, an EVA suit or even a chair, is there a better way to track it instead of using the Btw, it's really long overdue for adding in the logics for these movable furniture inside each building. |
Beta Was this translation helpful? Give feedback.
-
Well, my 2.5 cents (Euro) there: Lets assume, we have no EVA suit lying around on the ground in the base, if we do things properly. We have a EVA suit station, where an EVA suit can be stored, when not in use, which would be a piece of furniture in the base, with a state. This furniture object would refer to a FurnitureDefinition object for defining its properties in game as data. I think, you agree, that avoiding too many special subclasses would be better for getting things done, if we could also do things by composition there. For making Equipment show up on top or inside furniture, we should associate it with a "VisualizationSpec" object, that defines the important data that is needed for a client to display it. For which graphic files should the client look by just naming the identifier and revision to look for, maybe with hierarchy of increasingly abstract graphic identifiers, so that clients, that not yet support the precise visual for this Equipment can still display a more generic substitute until it gets its update. In a perfect world, the graphics client would ask its own graphics repository server, if the graphics exist and download it, while displaying the locally existing data as temporary deputy. For placing an Equipment on or into furniture, we need to tell the simulation, how large the item is. This could be done in the Equipment class or ideally in a "geometry outline" class, that allows it to be more compex. Next, the simulation needs to know, how this object can be placed. There could be multiple ways (laying on top of a table, hanging on a wall, using a Siemens air hook), so it makes sense to define this in an object and associate it with one or more Equipments. I have no idea yet, how to fully describe what is possible, so I don't attempt it. We should extend the enum of valid identifiers for how to place Equipment as needed. Once we know how large it is, we can think about how to store it best. Do we use a grid? Simply a volume that gets magically reduced by just the volume of the object? This could depend on how the object will be stored: Socks carefully placed flat on a table require a different layout compared to just stuffing them into a drawer - while storing a ladle in a drawer would be a pleasure for the goddess Anoia. Finally, I think we should wrap the Equipment actually into a "PlacedEquipment" class object when put into or onto furniture that acts as decorator pattern. This would have the elegant side effect, that we could easily define different states of the equipment without changing the equipment object. A carefully folded EVA suit would be a new PlacedEquipment object, instead of having to handle special states for equipment that can be folded. Maybe an EVA suit needs to be disassembled when doffed and reassembled when donned - then the Equipment EVA Suit would be created when donning it, while the Furniture actually only knows the PlacedEquipment objects that describe the components of an EVA suit and the EVA suit object would be destroyed, when doffing it and storing its parts in the EVA suit locker. In that case, the StoredEquipment could be completely unrelated to Equipment that can be used, in contrast to for example, a microscope in the lab or a microwave in the kitchen. To be efficient, such layout decisions should only be done ONCE and kept stored as long as they are not changed. And finally, the client used to view the simulation should decide how to render things. An Roguelike terminal client for Mars Sim (like the console?) would not care about the graphics information at all maybe, and only handle PlacedEquipment information, or could use the VisualizationSpec just for displaying an image or a rotating 3D model of the object in a side window. While a full 3D client for Mars Sim could display the whole scene in glorious 3D using all the information the core simulation passes to it and maybe even adds some temporary data to accelerate the rendering. Or a simpler client could just ignore it completely. Also, the simulation engine could be made customizable to only support layout algorithms of a certain quality. Like, for increased performance, just using user predefined slots on furniture surfaces, instead of deciding by a more complex calculation, if and how a piece of equipment could be placed there - and leave it to the player setting the simulation up, how complex he likes it. If a layout calculation is not supported by the engine, its specification would be ignored in the Layout information for an object and only the supported modes will be used. And also the other way around: If we forgot to update the layout information for an old piece of equipment to support a new layout engine, only the supported modes could be used to still be able to place the object, even if more complex calculations would be supported by the engine. And just log a warning to the developers ONCE that the object needs more work. For placing lights and other objects outside the base - we could define them as light-weight buildings, maybe just having only the most necessary information for such objects in a common super class, and define the old complex large buildings and underground structures as "new" Buildings. While storing them in a trailer or on a rover would again be the same use case as inside buildings and into or onto furniture. So, the actual handling of such layout decisions should be in a component object for both buildings and rovers, instead of writing the same code twice. Maybe this means that the inside of rovers can be customizable for free. Well, why not? |
Beta Was this translation helpful? Give feedback.
-
Sure. but we can already build separate daughter mining outpost, etc. I guess what you want is to be remote depots to function UNIQUELY and they will supplement what's missing from its main settlement in terms of having some missions and tasks for settlers to go there to do things. |
Beta Was this translation helpful? Give feedback.
-
But what are the mission aspects of expanding a typical settlement ? I almost feel like we need to CLEARLY DEFINE goals for players to follow through, instead of just giving them a sandbox to play whatever they want. |
Beta Was this translation helpful? Give feedback.
-
Yes since MarsOne is now out of the picture, we need to piece together in how the ERV can be used, instead of making it like a resource processing plant. But to do so, we need to take a look at the current weight of each item and sum them up to see if it makes sense to bring them to Mars and if it's feasible on the kind of payload space we envision... May be only after we add in new codes to check for the space and weight requirement, then we can work on using ERV to return people and items ?! What do you think ? |
Beta Was this translation helpful? Give feedback.
-
Currently, each building has a standard look and configuration, as defined in
buildings.xml
By definition, a habitation module is supposed to be a highly customizable building.
So where do we start to add customization to buildings such as
Lander Hab
?Beta Was this translation helpful? Give feedback.
All reactions