Rejected Hull blocks as Cubes or slabs, player slab creation.

    Joined
    Nov 25, 2015
    Messages
    6
    Reaction score
    2
    I would like to recommend some major changes to the way Blocks are handled.

    Currently some blocks come in many forms, enough to be a hassle and with slabs that has become more complex. The new slab forms we have beam promised will increase that. This does not mean I think slabs are bad in fact I think they are the answer.

    To put it as simply as I can if a block has multiple forms then as far as inventory goes lets do away with everything except cubes. Currently once a cube type is put in the hotbar it shows a different quantity number for every form of that cube. There should be one number, The quantity of cubes you have. Edges, corners and all the other forms should just be slabs made from those cubes, all of them. This will simplify inventory management since if you have the cubes you can make any slab you need from it be it edge, corner or whatever. This does not mean the current hotbar interface for selecting cube, edge etc should be changed. Those are good standards. Its just that with this everything not a cube is a slab made from the cube, standard or not.

    Also we have been promised some new slabs, edges for example, OK, that's nice, but. What I really want is to be able to define my own slabs. I want a button beside the slab slider that will let me view an exploded cube so that I can chose the pieces I want for my slab. If I want a half size edge slab then I would set the slider to 2 and chose the right pieces to make the half height edge slab. Well, OK maybe not that particular one since that should be a standard slab but you get what I mean. I do not mean that slabs would explode into a hundred pieces when damaged, that would be unplayable and slabs don't do that now. The new slabs would need to be treated as blocks in their own right the way current slabs are. To design a slab the button (advanced?) beside the slab slider should be clickable at all slab slider settings including 0 so even full cubes can be edited. Each setting on the slab slider should pop up a different exploded view.

    I also want to be able to be able to save and load slabs I have designed. Tying the copy/paste system into the slab creation view would probably be simplest but its up to you. One thing. It should not be possible for the users to assign actual slab names. Names should be defined by the pieces used to make the slab and duplicates should be forbidden. This should make slabs much more multiplayer compatible. When making actual new slabs the ability to add comments would be good and having the copy/save system use those as names would be even better. You would need to deal somehow with conflicts however. When a player tries to save a slab that is already in inventory they should be told the already existing name or if its a standard slab then it should say so and A blurb should pop up on how to use standard slabs.

    I admit the way you implement this could really complicate multiplayer. There would need to be a system from the get go to automatically upload players slabs to servers with the blueprints that use them or things would break.

    One thing I can see developing from this is furniture. There is a sever shortage of decoration in StarMade and if this is implemented I believe that will change fast. Making blueprints that use blocks made from unique slabs incorporate those slab definitions would allow Players to make lamps and beds and all sorts of other items and trade the recipes so plan to provide a forum for that please.

    This would be a major change but I believe this would help solve some of the inventory issues with cube pieces and the shortage of decorations in StarMade. It would also in my opinion make building much more versatile and interesting.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    The game currently handles each block shape and color as a completely separate type of block, because blocks don't hold enough data to define their own shape/color internally (Holding that much data would make the game really laggy if you want to build things larger than corvettes and frigates) so this isn't really possible. Under the current engine, the game would basically have to assign a new blockID to every funky slab you make in every color you decide to use it in, and even if we expand from the current 2047 total block types, that would start to fill up faster than you'd think.
     

    Bench

    Creative Director
    Joined
    Jun 24, 2013
    Messages
    1,046
    Reaction score
    1,745
    • Schine
    • Wired for Logic
    • Legacy Citizen 6
    As Ithirahad mentioned, due to the scale of the game blocks can only hold so much data before larger ships just aren't possible due to the file sizes and intensity onto the engine itself. It also effects the way the engine positions blocks in 3D space as it's essentially along the same lines of requests that have come up asking for multi-blocks in the one block space. When it comes down to it there's a number of technical issues that won't enable this sort of thing in the game. We feel at the moment we've hit a good middle ground that allows enough flexibility and versatility while still scaling and not affecting performance too much.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    I still don't quite see why microblock furniture can't be done. Just save it as a separate subfile. But I can see the issue with large-scale things, yeah.
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    There is an element in the periodic table named Orangutan.ium or something like that :)
    If slabs have automated names, something funny may occur ^^​

    I think there should be a block in O-shape. 4 sides painted (on the inside too) which you can jump through.
    And an U-shape (2 of them make a tiny corridor to walk in.​

    I want anything that makes it possible to give more details without requiring 3m thick walls to have a door sliding open in-between hull.
    Luckily 1m thick walls with painting are now possible. bulky, maybe with missing edges, perhaps buggy character collisions... but it is now possible to make a corridor look broader than previously.​
    –––––––––––
    When building a ship, I want to place the cubes first and then paint them with shape.
    How it is internally done is not important, as long as inventory management is not an issue because of that.


    As long as you don't have 3m thick walls/ceilings anymore and logic does not require a whole sector for a few bits data storage, it is fine.
     

    Bench

    Creative Director
    Joined
    Jun 24, 2013
    Messages
    1,046
    Reaction score
    1,745
    • Schine
    • Wired for Logic
    • Legacy Citizen 6
    I still don't quite see why microblock furniture can't be done. Just save it as a separate subfile. But I can see the issue with large-scale things, yeah.
    The way I understand it is; Because the engine uses the grid system to place things and the way it's all set up, it's not possible to have sub-blocks. Slabs work because even though the actual model is squished, it still counts as one block in that one region
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    But the idea is that it wouldn't really be a sub-block. Think of display blocks. They're just one block, that links to a 255-character text string. Microblock furniture would be one invisible block, that links a special 4x4x4 (or 8x8x8, or whatever) chunk of block data saved somewhere else in the entity file. Since this would take up just as much data space as a normal blob of blocks (maybe a bit less since logic would presumably not be available) it'd be terrible to use in large scale, but for things like furniture I think it'd be alright.
     

    Bench

    Creative Director
    Joined
    Jun 24, 2013
    Messages
    1,046
    Reaction score
    1,745
    • Schine
    • Wired for Logic
    • Legacy Citizen 6
    But the idea is that it wouldn't really be a sub-block. Think of display blocks. They're just one block, that links to a 255-character text string. Microblock furniture would be one invisible block, that links a special 4x4x4 (or 8x8x8, or whatever) chunk of block data saved somewhere else in the entity file. Since this would take up just as much data space as a normal blob of blocks (maybe a bit less since logic would presumably not be available) it'd be terrible to use in large scale, but for things like furniture I think it'd be alright.
    I get what you're saying, but I still don't think it's practical from a technical standpoint. There's totally different factors we haven't even looked at like how the collision engine would handle it as it'd then have to be comparing two groups of position data etc. We're aware of the desire for more decorative items, we're looking at other options though.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8

    I get what you're saying, but I still don't think it's practical from a technical standpoint. There's totally different factors we haven't even looked at like how the collision engine would handle it as it'd then have to be comparing two groups of position data etc. We're aware of the desire for more decorative items, we're looking at other options though.
    Don't even bother calculating ship-to-ship collision for complex shapes; if anything they should act like full blocks for ship collision. Astro collision... well, no idea. I don't have a good enough idea as to how these sorts of things work.
     

    Bench

    Creative Director
    Joined
    Jun 24, 2013
    Messages
    1,046
    Reaction score
    1,745
    • Schine
    • Wired for Logic
    • Legacy Citizen 6
    Don't even bother calculating ship-to-ship collision for complex shapes; if anything they should act like full blocks for ship collision. Astro collision... well, no idea. I don't have a good enough idea as to how these sorts of things work.
    Neither do I entirely, I just know in the past Schema has had a lot of technical reasons why sub-blocks just don't work.
     

    nightrune

    Wizard/Developer/Project Manager
    Joined
    May 11, 2015
    Messages
    1,324
    Reaction score
    577
    • Schine
    • Top Forum Contributor
    • Thinking Positive

    Neither do I entirely, I just know in the past Schema has had a lot of technical reasons why sub-blocks just don't work.
    Minecraft Forge got it to work, but if not optimized correctly it lagged games. This is a cool feature for late game development or StarMade 2 :D
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Minecraft Forge got it to work, but if not optimized correctly it lagged games. This is a cool feature for late game development or StarMade 2 :D
    Forge got it to work because their entire game is the equivalent of one of our entities, just stretched out approximately ad infinitum. The result being that they can afford to use tons and tons and tons of metadata and the game won't really care too much. In StarMade, there's no space for metadata under normal circumstances. It's technically possible, but isn't a standard part of the block structure, and is kinda... laggy. I wouldn't recommend using it on a large scale, so things like using metadata for hull shapes is ruled out completely.
     
    Last edited:

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    2x2x2 micro-blocks are possible with just 1 byte of data. It can even be mixed with HP if the blueprint is saved separately (for repair).
    This is equivalent to 255 possible shapes/orientations which currently take 6 bit too?
    You just need 2 IDs, one for implemented shapes, 1 for cubic sub-blocks.
    Slabs, HP and orientation currently takes 14 bit separated while everything together it would only take 12 bit.​

    4x4x4 nano-blocks requires additional meta-data.
    This is 8x as much data and doesn't fit into 1 byte. It requires 8 bytes (2-3x current block data).

    This might be possible when you get close to a seat (16x16x16 blocks radius) because then you only need that data loaded once per player and when requested.
    Especially when it doesn't affect physics except for players.

    But it is a little bit extra coding work, but nothing a good developer can't do (assumed he has enough time and moral).

    Don't make a whole 1'000'000 mass ship out of these blocks - it would be as big as a YouTube video.​

    8x8x8 divisions is too much to ask for.
    That is 64 Byte of data per block.
    A ship with 100 mass would be bigger than an uncompressed empty MS-Word document just because of that.
    A ship with 1'000'000 blocks (yes, they do exist) would be 5-20x bigger than most videos you watch on youtube.​
     
    Joined
    Jan 16, 2015
    Messages
    298
    Reaction score
    81
    Guessing the block thing is a Java limit? Seen games like 7 Days to Die on Unity that have a bunch of different shapes, like curved pipe joints and more, actual models in the cube space.

    Man I love StarMade but so hate Java as a gaming platform.
     
    Last edited:

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    Guessing the block thing is a Java limit? Seen game like 7 Days to Die on Unity that have a bunch of different shapes, like curved pipe joints and more, actual models in the cube space.

    Man I love StarMade but so hate Java as a gaming platform.
    You speak about polygon-models (even if they are block-shaped), not sub-blocks (2x2x2 inside a 1x1x1 for example).
     
    Joined
    Jan 16, 2015
    Messages
    298
    Reaction score
    81
    You speak about polygon-models (even if they are block-shaped), not sub-blocks (2x2x2 inside a 1x1x1 for example).
    Well I was talking about both actually.

    Guessing the block thing is a Java limit?
    In relation to the sub blocks and their limits.

    Seen games like 7 Days to Die on Unity that have a bunch of different shapes, like curved pipe joints and more, actual models in the cube space
    In relation to using models in place of blocks. Which I assume java can do. e.g Astronauts and spiders.

    Sorry for not being clearer.

    Edit:
    Actually are the blocks themselves not actually polygon models?

    I beleive voxels are building a model or surface using pixels volumetrically or something and not polygons and 'Voxel game' these days seem to have been hijacked to mean any game with a cube aesthetic.
     
    Last edited:

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Guessing the block thing is a Java limit? Seen games like 7 Days to Die on Unity that have a bunch of different shapes, like curved pipe joints and more, actual models in the cube space.

    Man I love StarMade but so hate Java as a gaming platform.
    They're just using a different system; nothing to do with Java. Minecraft has something of a 'different system' as well; they have like 4 thousand something IDs, and more than enough metadata space to accommodate whatever the heck you want. They use Java, though.
     
    Joined
    Jan 16, 2015
    Messages
    298
    Reaction score
    81
    They're just using a different system; nothing to do with Java. Minecraft has something of a 'different system' as well; they have like 4 thousand something IDs, and more than enough metadata space to accommodate whatever the heck you want. They use Java, though.
    I'm not entirely sure how this relates to what I was saying I must admit.
    As for block limit, I'm talking about technical capability for the game/engine.

    Kind of along the lines of what bench was saying.

    I just know in the past Schema has had a lot of technical reasons why sub-blocks just don't work.
    Which I read as limitations to the game/code/Schema's ability or whatever.

    I was curious as to the limits of what can be used in a space normally used for blocks, be it block shapes, sizes or models.

    My reference to 7 Days was I have seen other games/engines that use models as blocks for more variety and detail and if Starmade was capable of such.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    No, all I'm saying is, it's not a Java problem. It's just the way that StarMade's block structure works. It could have been made differently, at the cost of scalability and performance.