1. We've removed some functionality from SMD in preparation for a migration to new forum software. We expect to make the move before the end of August.

    Twofold Ship Building

    Discussion in 'Suggestions' started by foodice11, Jan 7, 2019.

    1. foodice11

      Jul 1, 2013
      This is a re-posted idea from a discussion thread.

      Love the new changes. But aren't they backing away from the mechanics that were intended to encourage interiors? I've come up with a way to make interiors have zero impact on ship performance apart from external doors and windows.

      Make ships into two masked instances layered on top of each other. One for the interior, and one for the systems. To understand, imagine you have made a ship with no interior; it's made only with systems and hull. Now, you would start over, this time making a ship with only an interior and hull with all the usual decoration. This is the basic premise. Separate the functional and non functional parts.

      What would this look like in game?
      If you were to build both the interior and functional "versions" of a ship in the current game build, they would appear identical (with the exception of what can be seen behind windows). With this mechanic, you would see the interior version at all times.

      What would unused empty space look like if I blow an enemy ship open?
      Pseudo blocks would fill in all the blocks of the interior version. These (and all other blocks of the interior version) would act as system blocks regarding block vulnerability. Anything touching air (or anything hull-like) on the functional version should be synchronized and exist on the interior version to show the player where his "canvas" ends.

      It should only let you place interior blocks where there are exterior blocks already to prevent tardis ships.

      I believe that while this could be obscure for a player to learn on his own, it would very simple to understand once demonstrated

      How specific issues should be handled I would gladly discuss below.
      • Like Like x 2
    2. NeonSturm

      NeonSturm StormMaker

      Dec 31, 2013
      I think you got a few good ideas here.

      First, level of detail. If a ship is 1000km away I don't need to see 3D-blocks, right?
      I probably wouldn't even need to be concerned with ship rotation except every 5-30 frames.
      So that ships at distance can be rendered not all, but only 1/5 of the chunk list every frame and once complete update the view.

      Secondly, I'd like if blocks are just 8-colour (3 bits) for rendering purposes until a "sight ray" hits a block.
      If that block is hit, he inserts himself and his neighbours into the rendering pipeline as full blocks.
      So you got a simple cheap-on-ressources background and fully textured and distinguished blocks replacing the pixels where it matters, taking distance of view into account as well as field-of-view
      (your screen borders: blocks hidden under UI elements do not need full details, maybe not even 10% of the screen edge, decreasing resolution of the heavy second rendering process so it can be cheaper).

      So, we got this model where every block has only 3 bits and the fully-fledged 24-bit representation of blocks which update the 3-bit versions.
      Things like logic-links only need to be updated once, so that 3-bit version is "not calculating 2 full frames at once".

      And lastly, if there was a way to detect which rooms are currently not available for view because it's a burried bunker, it can be used for optimisation also. But I don't know how easy that is for detection vs saved performance.

      The 3-bit representation can also be used for when there are too many blocks to render. I rather see that big battleship in 8-colour-mode than only 1 chunk of it fully-detailed. But if it were up to shine, no builds with > 200m length would exist.
      --- Updated post (merge), Jan 7, 2019, Original Post Date: Jan 7, 2019 ---
      If you understand my post, there is only empty-blocks (not placed like now) or a 1x1x1 block in one of 8 colours of fully rendered.
      You would edit the original, view the original while editing.
      Lower versions only exist for exterior viewers like somebody attacking that ship or not jet docked.

      One question: How would you handle active/inactive logic blocks or light?

      I can imagine exterior viewers always have some environmental light from sun which can be applied or view-enhancement like night-vision-devices so it actually shouldn't matter where light comes from when you pilot a ship. Cloak and Stealth are more important parameters here.
    3. Lone_Puppy

      Lone_Puppy Me, myself and I.

      Mar 12, 2015
      Oh man, when I started reading I was thinking yay Tardis. :(
      --- Updated post (merge), Jan 7, 2019, Original Post Date: Jan 7, 2019 ---
      I've often wished you could do this with logic in a similar way. I pitched the idea of using a universal computer block once, to hide all the logic within. Kinda like a Tardis block for logic. A little bit like a virtual integrated circuit.
    4. NeonSturm

      NeonSturm StormMaker

      Dec 31, 2013
      The little integrated circuit works - on a larger scale.
      The amount of wiring required may drive you off. You'd make programmable circuits and store every data bit in another link.
      Keeping track of all that, debugging it and swapping the program to run.

      There can be 4 bits for 16 different logic-rooms. Each of 16 ANDs then looks at the 4 bits or their negated (NOT) state so that only one is active.
      This ones either sets or unsets every block in a 4x4-field of logic blocks.
      Now you got 16x 16 bits of data.

      Use 8 bits to address 256 ANDs in a 8x8x4 field which set 256 ORs in a 8x8x4 field can be very complicated to setup.
      Reward: A storage for 256x 256 bits - it's 64 KB of data usable to select which doors to open close. Readonly.

      I'd argue it is theoretically possible, but not feasable until you can edit links in the blueprint via a program that frees you from having to debugg all that stuff and getting every link right. LAG aside.

      Having different block grids like overlapping 3D space with another 3D space would need a rework of whole projectile physics I think. Just open/close doors would not require that.
      #4 NeonSturm, Jan 7, 2019
      Last edited: Jan 11, 2019
    5. foodice11

      Jul 1, 2013
      NeonSturm, I think your.... a little off topic. The point of my idea is to make optimized and RP ships (the 2 extremes of ship building) compatible.
      • Like Like x 1
    6. NeonSturm

      NeonSturm StormMaker

      Dec 31, 2013
      Not the first post, I purely described how your "masked instances" thing can work
      (perhaps there is something better in practice, but i posted what I can imagine to work optimally in theorie).
      The second post I agree. I got lost in answering who I quoted.

      foodice11: How would ship strength difference be if it were the way you imagine?

      For me, a 300k mass ship should always be a considerable treat to a 100k mass one and military ships can be 2x as strong additionally.
      Military would get PvP-flagged and rumours tell about these ship's combats/sightings so you can track them.

      The 1:1 balance only works if you can balance lag and people's PCs (limit ship mass/size) and still allow enough customization.
      As min-maxer, when I see 100% bonus, I go for this asap. But 2-3% bonus by good building would make me happy too.
      It's all about presenting opportunities - they must not be too strong (beat 2x mass) but something you can go for and maybe totalling in 50-100% difference alltogether.

      Perfect would be a system where you can setup allowed bonus_thrust% ... and how much points thrust give over power or jump bonus.
      And then the system would calculate which parameters you need to get your desired results.

      So the questions arrise: which mechanics are your (server admin) favourites, how big the difference should be possible?