Replace light/heavy/window blocks with single block that has material attribute - take 2

Ilsa Loving shared this feedback 2 days ago
Not Enough Votes

I posted this before but the topic got hijacked by unsavoury community members so I'm trying this again. Since there was interest, here is a more comprehensive spec.

The current system of light/heavy/window blocks results in a massive proliferation of duplicate blocks that is both annoying to wade through as well as fundamentally game limiting. Introducing any new material type requires re-implementing the same multitude of blocks repeatedly.

I propose having a single set of blocks that has a material attribute. This would both reduce the total number of blocks exponentially, and unlock entirely new design possibilities.

Examples

  • Wonder Woman's invisible jet
  • A old century wooden schooner, with sails that actually flap and billow with the wind.
  • More biological looking ships, such as the Vorlons and Shadows from Babylon 5.
  • Customizable player created parachutes

Implementation Details

  • Implement a single, expanded set of basic universal shapes. In particular, expanding the available round options would allow for more innovative designs such as the forementioned bioships.
  • Introduce a "morphing block" whose sides would adjust to form fit to the neighbouring block on that side. This would be a fast and easy way to add nicer transitions between disparate blocks without needing a vast catalog of transition shapes. Maybe a have a couple of different types of morph blocks with different adjustment styles, such as one that uses straight edges, while another uses bezier curves.
  • Initial Material suggestions include: Light Steel, Heavy Heavy Steel, Wood, Glass, Fabric, Stone
  • Not all blocks would support all materials. For example, it doesn't make sense to have cloth 1x1 blocks, but it does for panels. From a programming perspective, the shapes could a material blacklist.

User Experience

  • The Material would be chosen from a pallet of options, with LA being the default until changed by the player, similar to how skins are currently used in SE1. All future blocks would be built with this new material until changed again.
  • Possible variation: The placed block would always be a base scaffold block, and the material attribute would not be applied until you started building the block.
  • The material type would be set and immutable once the block started being built, and could not be changed without entirely removing the previous block first.
  • In SE1, adjacent armour blocks get visually merged so they appear seamless. This should be expanded so that all adjacent blocks of the same material are visually merged. This would further eliminate a variety of block shapes. For example, you would no longer need different window sizes.

Additional QOL ideas

  • Make it possible to drag both materials and skins to the toolbar, to make it easy to switch between a few particular ones, as we already can with shapes.
  • When hand grinding down blocks, pause for a second before removing the final scaffolding, to give the player an opportunity to rebuild the block with a different material instead of having to place the shape again.

Replies (3)

photo
1

If this is implemented I think you would have to choose the material before placing the block if it is to work in survival. The different material blocks would presumably have different component costs and would need to know what that is when you place it. But in general this seems like a nice idea, not sure about the morphing block though. That seems likely to cause a lot of issues to implement.

photo
1

Thank you. And yes, I agree that both are a bit of a long shot. The morphic block one in particular would require the engine to be able to generate blocks dynamically rather than just placing fixed assets, and I have no idea if that's actually possible.

photo
1

Most of this seems a very reasonable idea, and except for the morphic block I think it would work well.


Voxel in Dual Universe behaves more or less as the described morphic block would. Before the addition of the vertex tools people would build "reactors" to shape voxels they could cut and paste in to exact shapes by manipulating what edges took priority when things were getting morphed. The voxel system allowed for beautiful and complex ships of even higher detail than what the unified grid system allows, but it was prone to odd distortions and wrinkles that could be difficult and time consuming to correct (assuming you knew how to fix them at all).

Personally, while I recognize making morphic blocks work would be a challenge, I'd be less concerned with getting it to work as intended than I'd be with the extra time needed for the game to figure out what is going on when you enter loading range of something with a large number of them, DU's more popular markets were notoriously difficult to approach and safely land at because of all the stuff parked around them trying to load in.

photo
1

I was thinking more about this, and I'm wondering if the morphic block is really that difficult to implement. They are literally already doing this with landscape, and block deformations caused by damage.

photo
1

It probably wouldn't be hard, and having a few blocks would be fine, the problems will more stem from people's laziness and general lack of self-control if given access to such a block.

-The more lazy individuals would use it in place of common transition-blocks because it is easier to just keep it on the hotbar than to spend the time finding and switching to that one exact shape they know is there but don't already have prepared, easily resulting in the use of hundreds or thousands of them in a build.

-The individuals with grandiose ideas will use it in conjunction with the unified grid system to produce something the size of an ISD with fillagree on its fillagree on every surface large enough to accommodate greebling, likely using tens of thousands of such a block.


It isn't that I think it would be a hard block to add to a new system, its that I think people have no self-control and would lag a multiplayer world hard with it.

photo
1

Cosmetically you could do a morphing block today. However Havok doesn't allow for custom collision models on the fly that would be required.

photo
photo
1

This is the format you should have led with to start and is much more structured and thought out than your original attempt. If you had led with this from the beginning there would have been far less issues of people getting it wrong as you say. There are still issues but at least now you've presented it in a more orderly manor so you get props for that.


"The current system of light/heavy/window blocks results in a massive proliferation of duplicate blocks that is both annoying to wade through as well as fundamentally game limiting. Introducing any new material type requires re-implementing the same multitude of blocks repeatedly."

There's a few misconceptions here as to how the modeling side of things works as well as the implementation of the armors that we'll get to in a moment. First though, sorting through the duplicates can easily be solved with 2 block categories similar to what we have now in SE, 1 for light armor, 1 for heavy armor. Slap a search bar on for good measure on top of it and folks should be able to find anything easily enough. If they can't then they've got bigger problems to worry about.

Next, the game is not limited at all by having a light armor and heavy armor variant of various shapes. If you want to argue that it clutters the block menus, that one I might give you. But to suggest it limits the game is incorrect. As I explained last time, all you need to do is get your basic block shape put together then slap one of the materials on for either light armor or heavy armor visuals. From there you render it out, swap to the other texture visual, then render it out a second time. The color/skin part is easy enough to do and doesn't require you to completely redo every single block each time you make a new skin. There are certain materials you can assign to each face of a block while in Blender as an example that tell the game "this is a metal face that's colorable" which then allows it to have it's color changed, or cycle between existing skins such as the Disco, Clean Armor, or Rusted Armor skins. You only need to set this once. Far as the SBC entries go for the blocks, you need to make an entry for the light armor and heavy armor variants. This can be as simple as defining your light armor stuff first, copy pasting to get a quick start on the heavy armor, then change the needed bits to differentiate the two. All of this can be handled in an editor like notepad ++ and be done in just a few minutes depending on how many blocks you're working with.

Again you only need to define them once. The only annoying part is if you want the block to be deformable as hooking that up can be irritating, but once you set it the first time that's it, just swap to the alternate armor visuals and fire it out a second time. This assumes you even use armor deformations at all.


"I propose having a single set of blocks that has a material attribute. This would both reduce the total number of blocks exponentially, and unlock entirely new design possibilities."

No actually it's not going to reduce the total number of blocks as all you're doing is changing how you go from light armor to heavy armor. There will still need to be different entries in the SBCs for them as light armor and heavy armor do NOT have the same component costs. Also removing block options doesn't unlock new design possibilities at all.


"Implement a single, expanded set of basic universal shapes. In particular, expanding the available round options would allow for more innovative designs such as the forementioned bioships."

Adding more shapes is simple enough and so is making them work with the skins system. So no argument here.


"Initial Material suggestions include: Light Steel, Heavy Heavy Steel, Wood, Glass, Fabric, Stone"

"Not all blocks would support all materials. For example, it doesn't make sense to have cloth 1x1 blocks, but it does for panels. From a programming perspective, the shapes could a material blacklist."

I like the idea of extra skin types. Technically speaking if modders had access to more stuff related to the skin system we could make our own skins now and folks could have what they wanted or do full on deco packs of them. You want wood, glass, fabric stone, industrial light armor, industrial heavy armor, dark matter, or some other look variant it could be done. However the issue in this instance is it would require Keen to expose stuff that could be used to obtain the DLCs for free. So a way to prevent that would need to be implemented. The pseudo work around is to apply a an alpha mask of sorts to a 2d texture and slap said 2d texture on each of the armor blocks as a work around. I say "of sorts" because there's a little more to it than that but you get the idea. It's not perfect but it can be done. Personally I don't think they should be restricting any blocks from accessing certain skins, but to each their own as that's a matter of cosmetic preferences.


"Introduce a "morphing block" whose sides would adjust to form fit to the neighbouring block on that side. This would be a fast and easy way to add nicer transitions between disparate blocks without needing a vast catalog of transition shapes. Maybe a have a couple of different types of morph blocks with different adjustment styles, such as one that uses straight edges, while another uses bezier curves."

Cosmetically speaking, this can already be done now in SE1 if all you care about is just the block looking like it's tailor made for that specific instance you're slapping it down on. However the issue you're going to run into is the game needing to create custom collision model data on the fly and the old Havok physics don't play too kindly with that sort of thing. This may be less of a thing in the newer version of Havok they're using but we'll know more once we have the mod tools in our hands what we can and can't do. While I would love to see this actually become a thing as most of the community would, it's likely not going to happen because the game doesn't play well with having to calculate custom collision shapes. It requires them to be static or Havok flips out. They may surprise us and figure out a way around this in SE2 and I really hope they do. But for now I don't see this part of it happening. I wish Havok didn't have that limitation but it does.


"The Material would be chosen from a pallet of options, with LA being the default until changed by the player, similar to how skins are currently used in SE1. All future blocks would be built with this new material until changed again."

For purely cosmetic skins this isn't an issue and is already a thing. If one wished to expand on it one could.

"Possible variation: The placed block would always be a base scaffold block, and the material attribute would not be applied until you started building the block."

"The material type would be set and immutable once the block started being built, and could not be changed without entirely removing the previous block first."

These two go together so addressing them together. All of this could work for purely cosmetic skins just fine. However where it won't work is trying to use a skin type feature to change between heavy armor and light armor while the world is up without some massive changes. Reason being is again the physics engine. The game has to know before the block goes down what kind of block it's placing so it can apply the appropriate collision data, component costs, weight, and other data with physics. It's not something you can just change on the fly willy nilly, especially while the game is running. I've adjusted component costs for some of my custom blocks before which is easy enough. However it required the world to be off and allow it to change on loading the world up again. So until this fatal flaw is addressed, changing from light armor to heavy armor and back again the way you're proposing simply isn't possible. Doesn't mean we can't do more skins and such though.

Now assuming the above wasn't an issue, making it immutable or "locked" once you start building could address the issue of the block being changed on the fly by unsavory people as mentioned prior and add some security to it. There would still need to be some extra protections to prevent the "oh s***" scenario of the game changing the block type to "default" if using the non-default setting.


"In SE1, adjacent armour blocks get visually merged so they appear seamless. This should be expanded so that all adjacent blocks of the same material are visually merged. This would further eliminate a variety of block shapes. For example, you would no longer need different window sizes."

A toggle for this sort of thing would be an absolute must. Because there are times I would want to have everything merge seamlessly and times I wouldn't. Using your window example, I typically have a set of windows on the bridge of my ship people can look out. On average a 2x7 is the size in total area. For a station that doesn't move it could be cool to have a seamless window that only shows individual block boundaries should part of the window break. However for my actual ships I wouldn't want this for the windows as to me visually speaking it makes the windows not look as structurally sound. There is no harm in having different size window blocks in the game by default.


"Make it possible to drag both materials and skins to the toolbar, to make it easy to switch between a few particular ones, as we already can with shapes."

I see no issues with this being possible for hotbars since we're getting it for BPs along with singular blocks. Personally I would attach the skins to the paint gun like you're spraying on the skin, but that's just me. More on this in a minute.

"When hand grinding down blocks, pause for a second before removing the final scaffolding, to give the player an opportunity to rebuild the block with a different material instead of having to place the shape again."

Assuming it were implemented this would need a toggle otherwise it would be extremely irritating having to essentially grind blocks twice if I wanted to remove it. Also it contradicts this: "The material type would be set and immutable once the block started being built, and could not be changed without entirely removing the previous block first." So this part you need to figure out which one you value more as they can't both be true at the same time in the same way.


Ultimately I do not see a need for a feature like this to switch between heavy and light armor blocks when we can give people better search options and filter options to find the blocks they need. This feature to be frank is like trying to reinvent the wheel when you get a flat tire vs just slapping your spare on. Nothing forces people to keep both the light armor and heavy armor variants on their bars unless they choose to do so. In my worlds I have access to 5 different armor types, 3 modded, and the 2 vanilla. I don't even keep the vanilla ones on my bars and I can still find everything just fine using the block categories on the left side of the G menu, and searching at the top if I have to. Heck better filter options could even be added to screen out certain blocks you don't want to see.

Also this doesn't eliminate the heavy/light dichotomy you complained about before, it simply changes the form the game uses to present it to the players and makes it needlessly complex. Not only this, but having to grind down every single block twice essentially to remove them would be irritating if I wanted to switch block types. If I'm in creative mode its as simple as right click the previous block out, left click the new block in. This doesn't add anything new but just makes it take longer to build certain things and more irritating to swap out blocks. Not to mention the technical hurdles that are impossible with things as they are now thanks to Havok. If something like this was going to be done, it should've been done early on in the franchise. This seems like alot of unnecessary work when your issues can easily be solved with better menu filter options. Discounting the morphing block bit of course.

photo
1

If only there was a way to select an area of faces, sub divide the poly and use a smooth feature.

Leave a Comment
 
Attach a file