Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

Space Engineers Improvement - Physics Triage

Discussion in 'General' started by Dwarf-Lord Pangolin, Apr 5, 2017.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. Dwarf-Lord Pangolin Senior Engineer

    Space Engineers has a problem. It's in competition with a number of other games that do the things they share with Space Engineers better than it does, but the one thing that makes SE distinct -- its physics system -- is frequently more trouble than it's worth. People, including myself, are sorely tempted to give up on SE and move to other games. I've been eyeing Skywanderers, because it lacks physics, not in spite of that. Physics, as presently done by SE, is just not fun.

    But I don't want to leave SE. I want it to be fun. But in order for that to happen, Keen needs to change some things.

    Keen needs to kill Klang. And here are my suggestions for doing so. (Please note, I have no idea how Havok works, nor how Vrage works, so how much any of this can be implemented is debateable. This is just a springboard for how physics can be made more of a feature and less of an irritation.)

    1. Single grid large and small blocks
    Right now, the majority of my ships use subgrids. The only reason this is true for most of them is so they can weld small grid drones/missiles and launch them. Even with safety lock engaged, this greatly increases the potential for Clang to happen. This is a problem that many players face -- some people use missiles, some want nifty control consoles in compact spaces, some just want dining tables -- because we cannot directly attach small grid blocks to large grid blocks. This problem could have been avoided by Keen very early on if they had elected to use a single size of block; they had good reasons for multiple block sizes. However, the problem can still be solved very simply: allow small blocks and large blocks to be placed on the same grid.

    We know that this is possible; a very simple tweak to blueprint files allows players to do it, albeit with some issues because the feature isn't supported. So the reason it isn't a feature is not because of technical concerns.

    The reason that Keen has given for refusing to implement this -- a concern that players will build overly-complex ships that the game cannot handle -- is inadequate, because players already do that. If they can't build what they want on a large grid, they attach small-to-large rotors, and stick things on there. If that doesn't work, they build small-ships-gone-large, which vastly increases the block count. And even sticking to a single, large grid, players go nuts with the block count all the time; the first thing I do when starting a new world is disable the block limit. It's time for Keen to accept that this is a lost battle, and allow players to reduce the opportunities for Clang by letting us place large and small blocks on the same grid. This will reduce the number of potential physics calculations.

    2. Minimum collision speed
    Regardless of the mass of the objects involved, or whether one is a ship and the other is voxels, if the speed of the collision is under 20 meters/second, no damage should be done. This would make fighters, mining drones, player-made missiles, and ground vehicles much more fun. I understand that's not realistic, but as things presently stand it's just not fun. You have to baby just about everything, and in the case of ground vehicles, that's just not possible frequently. Fixing my ship because of huge holes left by missiles is kinda fun; buffing out innumerable little dents is not.

    3. Simplify high-speed collisions
    We've all been there. We make a ship with a big-ass main gun, we point it at something, and we FIRE ZE MISSILES! And ... nothin'. Maybe a little dent. Not much to write home about. And then the next time we fire it, maybe we get a giant hole. Maybe we don't. But regardless, the results are almost always underwhelming; you just fired a round as fast as it can go in this game, you should get better results than that!

    There are a lot of reasons for this, most of which I don't understand in theory, but I do understand part of the reason. SE calculates physics in collisions on a per-block basis. Every block involved slows the projectile down, which reduces its damage. For collisions above a certain relative velocity threshold (say 90 meters/second and up), it needs to do this on a per grid basis.

    Again, I don't know enough to understand technical implementation, but here's my two cents: if the relative velocity is high enough, get the two grids' mass and velocity. Get the total energy of the collision from that. Then calculate what blocks are in the path of collision (some kind of simplified raycasting?) Take their hitpoints, and subtract the energy involved in the collision from them; if the energy exceeds the block's HP, flag the block for deletion, don't even bother with the physics. Run this check until the collision's energy is exhausted. Delete all destroyed blocks, and apply deformation effects to bordering blocks.

    The projectile is treated as a single object, which in some sense is more realistic; remember, the projectile isn't just traveling at 100 meters/second, it's traveling as fast as anything can in Space Engineers. Players expect to see fireworks when a 20 metric ton projectile hits something moving at max speed, not a little dent. I could be wrong, but I suspect this would speed things up in collisions, because the game won't have to calculate the collision down to every single voxel. This would also make large ship to large ship collisions more interesting, catastrophic collisions, instead of extended fender benders.

    4. Softer voxels
    I don't know if this is possible, but if the voxel in question is dirt, or grass, or similar, it should be a lot less tough than even light armor. If I'm driving my tank around, I'm more afraid of grass than missiles. So, if it's possible, those voxels should take damage long before they do damage.

    5. MAKE SUBGRIDS GREAT AGAI -- err, I mean, safe
    Although it might be realistic for complex, multi-grid machines to be capable of destroying themselves, for most of us it's just not fun (for the rest of you, seek help). So, when we must use subgrids, doing so should be safe. As long as grids are attached to each other, they should not be able to damage each other. They can block each other's movement, but the game should run a quick check for such collisions, and if they blocks are attached in any way, no damage should be done. Adding a toggle to enable such damage would be ideal, but regardless, the exploding has to stop.

    And finally, although not related to physics exactly:

    6. Make building ships simpler
    The reason players requested large grid welders and grinders was because Keen's original vision -- that of players welding everything by hand -- was too frustrating. Large grid welders and grinders are a good addition to the game, but they haven't addressed the concern they attempted to fix: building our stuff is still annoying (remember, most players want to build bigger stuff than Keen intended; no idea why they didn't see this coming). The logistics of building welder arrays are formidable, the lag from them is no fun for anyone, and even if you make it work, a lot of blocks won't weld, either from size issues, or from only attaching to a single face (another problem all its own).

    So Keen needs to take a serious look at introducing some mechanism of either letting players access their blueprints already built, or add a method of simplifying construction. I strongly suggest they look at Rexxar's Automated Shipyard, and the Nanite Control Factory mods. Even if they chose an alternative method -- spawning ships from a shipwright NPC, perhaps -- we need something better.

    I'll be making a similar thread later for SE's weapons system, and its propulsion system.
    • Agree Agree x 1
  2. Spets Master Engineer

    ...and then to build the Nanite or Automated shipyard you will need a rare material, hard to find, hard to take, to assemble the components. This materials are only available in certain planets or asteroid sector(for people that can't handle planets), but this places are plenty of environmental hazards, solar storms, corrosive atmosphere, volcanic area, and so on... and now you have solve also the lack of survival and adventures features in SE

    by the way, as I told you on reddit, SE is not the only game with the stooopid clang
  3. GrindyGears Senior Engineer



    an (un)healthy blend of small and large grids with are designed with avoiding clang in mind...


    Believe it or not this world has damage enabled, and as of right now it has no issues with moving parts or interactions.

    I really and truly am tired of people complaining they are broken or completely unusable, Yes there are a number of bugs (which most can be worked around), and yes there are a few oddities (when they iron out the bugs i'll make a video), but overall if you take your time and lay things out they really don't clang that badly. (if at all) most of the time any explosions or self destructs are my own damn fault for forgetting to remove a cross bar support, or slightly miscalculating a distance.

    Most of the issues from multi grid / subgrids are multiplayer related.
    Please don't take away any actual engineering in favor of a cheap collision care free system, I will fight tooth and nail to keep it so.

    (Disclaimer: I want bugs fixed and would like it to be easier for the average joe, but your idea of fixed is skirting around a problem instead of fixing it)
    • Like Like x 2
    • Agree Agree x 1
  4. Dwarf-Lord Pangolin Senior Engineer

    Yes. Yes, it absolutely, 100% is.

    Because I don't think they can fix it to a satisfactory degree. I'm super happy for you that you can build ... um, whatever that is, but every single time I step into multiplayer, anything with subgrids doesn't work. Every single time, without fail.

    And I am really and truly tired of not being able to play my game. Nor, at this rate, will I be able to when it leaves development, because Keen has made it clear that they care more about this game being a physics sandbox than, I dunno, something to play.

    You want to build cool stuff like that? Be my guest. Nothing that I have suggested would take away any of that. Every single block would still be there, and work just the same as it does. Things just wouldn't explode -- in an utterly unrealistic manner, I might add -- when you look at them wrong.

    Because most of the time when my stuff explodes? It does it because SE's physics is taken straight out of Loony Toons. You can talk all you want about how good physics is in this game; maybe my CPU just hates Havok. But it's not that stable for me. It is mercurial and temperamental. A piston pushing against the interior of a ship can move the damn ship; I can reload a saved file dozens upon dozens of times, and get completely different physics-based results each time. The same missile can hit the same target in the same place at the same velocity, and produce utterly different results. This is what one missile did less than 10 minutes ago. This is what the same missile did immediately after that -- hitting from above, not forward. I'd love to think that was because the ceiling of the command center that's underneath the gutted nav deck deflected the force fore and aft, but the real reason is because the missile had "ACME" written on the side. Talk all you want about how stable the physics in this game is; it ain't. Ask anyone who's tested PMWs. Objects moving at high speed in this game might as well be friggin' leprechauns for all the sense they make.

    Also, I'm sorry, but: I never claimed that physics was "broken" or "completely unusable." What physics is, is too frustrating for the average user to be bothered to try to learn, which is a problem in a game which has them as its sole redeeming feature to make it preferable to other games. Skywanderers? Skywanderers lets doors and hatches just phase through the walls. Unrealistic as hell, but vastly preferable to this, where the local Walmart has more advanced doors than what I can reasonably build in this game and use in multiplayer. And the end result is more realistic, because you can build the kind of complex, working machines you can in real life without the workarounds you need to get past SE's idiosyncrasies.

    That being the case, there is a very good reason for adjusting the physics system to make it more fun. By your own admission, these problems manifest in multiplayer; well ... that's what a lot of people got this game for. From the website:

    That part is old; very old. It's been up about as long as I can remember. Maybe one of the other greybeards will correct me, but I don't remember that part ever not being up there on the website, and I'm pretty sure it's been there from Day 1. So yeah, physics! Yay! But not such that it prevents us from playing the game. Playable physics. In multiplayer.

    That thing you built (which, BTW, is really cool; crane for shipyard construction?) Small and large blocks together. So unless you've cunningly hidden your rotors, you're using the blueprint trick or a mod -- and if you have cunningly hidden your rotors, why the hell ought you to? Shouldn't you just be able to stick a half-meter-cubed piece of metal on a 2.5^3 piece of metal? Yes. Yes you should. And not being able to is an absurd source of artificial difficulty. Changing that is meant to improve realism.

    Minimum collision speed? That's meant to deal with those times like when a torpedo is leaving its tube at a very gentle speed relative to its launching ship, but the launching ship is moving at 90 meters per second (so is the torpedo). It gently taps the side of the tube, and explodes half the ship, despite having no warheads. Happens all the freaking time. Nothing wrong with the design; the missile's accelerating at the same rate it does while the ship is sitting still and that causes no problems, SE just spazzes out sometimes and forgets that it's supposed to care about the objects' relative speed, not their total speed. It's meant to improve realism.

    Simplified high-speed collisions? Do real world objects collide the way they do in Space Engineers? Do real-world kinetic missiles and ships deform the way they do in Space Engineers? No. No they do not. They make big holes, they do not act like they're made of crumple zones half the time, and made of Explodium the rest. It's meant to improve realism.

    Softer voxels? When was the last time you saw a tank bottom out on grassy dirt? Did it utterly destroy the tank? No. No it did not. It squooshed the grass and made some mud, because grass is not made of landmine. It's meant to improve realism.

    Safe subgrids? Not so realistic, that one, I'll grant you, but it would be a hell of a lot more realistic than what we have now, where one twitch explodes things. It's meant to improve realism (perfect? No. Improve? Hell yes. And if that's not the experience you've got, then maybe Keen's step should be optimizing the game, and figuring out what hardware the game hates, because it clearly loves yours).

    Yes, you can engineer designs that work around these problems -- but you shouldn't have to. The only reason you have to is because the game is random, as it now stands. It is broken. And it needs to be fixed. And if the only way to make it more realistic in effect is to dumb down the theory behind it, then they need to do that.

    Except, you're not just using actual engineering. You're using that, but you're also using workarounds to problems that shouldn't exist in the first place. Because while some of these proposed changes are unrealistic, they're nowhere near as much so as the things they're meant to prevent are, which are the result of the current system. You don't like that option? Fine, let's add another checkbox; I'm pretty sure letting things continue to explode will be easy for them!

    And respectfully, I will fight tooth and nail to make this game something people can enjoy smashing their ships together within, in multiplayer -- the game the first trailers represented it as being. If simplifying the physics in certain situations is what's required to make multiplayer work (disclaimer: I would prefer it if they don't have to), then so be it. Gameplay is king.
    • Agree Agree x 2
  5. GrindyGears Senior Engineer

    I'm writing this on a phone so if it seems short handed I'm sorry.

    It also seems to have screwed up my order of quotes...

    This snippet here is relating to when you said "not removing engineering" part of engineering is making sure your parts will interact with each other properly and not collide, some things are unavoidable, but if you take the time these issues can be minimized.

    See above quote sorry.

    I dont have that particular issue, I generally don't play MP and I'm not crazy enough to take my giant clang beasts into mp until they fix it a little further.

    So, you apply an infinite force against an unmovable object and just expect the game to cope with it no issues?

    Hell you play any game and die in it your body has a chance to fall slightly into the ground and spurge out... That's perhaps something you should avoid in the future of you don't want your shit to clang.

    It wasn't you specifically, but the community in general, however let me solve about 95% of your clang issues:

    Small grid, use 8mm offset on multi rotor hinges, they are much more stable (-40 cm on large) use multiple pistons when possible to distribute load better. (be wary of current orientation bug) and that's it.... Literally that's the only difference between success and failure (and some time spent laying out and designing. But still)

    There are a few cases where this behaviour is preferred, like you said doors are a great example of this. But that style of physics in general bothers me because it's not realistic like you said, and imo lazy at best.

    Systems like that usually also tend to ignore masses, so you'd require a radical change to the way SE works, probably down to the core.

    But this boils down to bad multiplayer code and mediocre mechanism code. If they fix the multiplayer and get it close to single player, these problems should go away, unless you don't have faith they CAN fix multiplayer, otherwise all is lost regardless if they make the changes you suggest.

    The only mod I use is digi's control module mod to actually animate the machines.

    If you must accuse me of mods or some kind of blueprint hack I'll have you know that it's not very hard to click "add small head" button in terminal, and copy pasting on a blueprint of a hinge I have in my library, which leads to some intense body work...

    Seriously look at the pistons again, on each end you can easily see the large grid rotors...

    (for record that's an excavator boom minus the bucket.)

    Again, the fact there is people who can get around supposedly nitroglycerin parts says something doesn't it?

    I take offence that you say it's not engineering, I spent several hours playing around with various peg board configuration trying to get the maximum motion out of using as much of the pistons stroke as possible, all while ensuring no internal collisions will happen.

    Even if you make the physics to be hyper over simplified it doesn't change that people can't work out in there head how to design a class 3 lever with a hydraulic, or make a set of parallel 4 bar linkages, you don't see people complaining over at kerbel space programs forums because the design challenges are too difficult. Read some stuff online, look at real life examples, understand how things operate and unlock all that is SE
  6. Taemien Apprentice Engineer

    20m/s is roughly equal to 45mph. So while I don't disagree with a minimum collision speed. 20m/s is just too high. Perhaps about 5m/s is closer to realistic. Maybe push to about 8 at the most. And this is assuming relative to the two objects. If one is going 20m/s and the other comes behind at 25, then the difference is 5m/s. Would be interesting to see this work on MP.
    • Like Like x 1
  7. halipatsui Senior Engineer

    20 m/s undamaged is pretty generous since it translates to 72 km/h
    • Like Like x 1
  8. PLPM Junior Engineer

    To be fair, my biggest issues with CLANG are usually at speed, you can have something incredibly smooth when static, but as soon as it has some speed it become extremely hazardous, specially when SE changes sectors.
    • Like Like x 1
  9. Dwarf-Lord Pangolin Senior Engineer

    Ooooo ... kay then. No offense, buuut I'm not going to bother continuing this discussion, because that alone is enough to indicate that you and I have vastly different conceptions of what the point of this game is, and further back-and-forth will be solely unprofitable for both of us. I wish you well in your endeavors.

    I suspect you are both right, and I'm not attached to the 20 m/s figure at all. I wanted to suggest a high starting point as an example of something that would create a demonstrable change. And yes, this would all be relative to the two objects. Basically, this would be a quality-of-life improvement; having to repair my ship because I messed up a landing and slammed my ship down onto the pad is one thing. However, you frequently get stuff exploding from collisions that would maybe scratch the paint or lightly dent metal in real life. This would help prevent that silliness.

    Precisely. I can launch player made missiles from a stationary ship till the cows come home, and everything is fine. Get the ship moving though, and it frequently goes nuts -- it's still possible, but it's not reliable. This is a large part of the suggested minimum speed idea; whether the ship is moving or not won't matter then, because it won't even bother with the physics damage for those safe, relatively low-speed collisions.
  10. GrindyGears Senior Engineer

    Then i'll leave it on this note:

    The game is through my interpretation an engineering game that should be focused around mining and resource gathering, The way you play is most certainly very different as I personally have very minimal desire to build PMW's and similar devices. as far as im concerned thats a area of engineering that just reeks of boring. I like moving parts, and a single merge block strapped to a rocket with explosives just doesn't do it for me.

    And you know what? That is just fine. People can have different play styles or ideas of what the game should be, but i'm still going to draw a line in the sand and dig in, where you try and take away from MY engineering, so you can have YOUR engineering.
    • Like Like x 2
  11. carnivore Apprentice Engineer

    What I take from this, besides a sudden urge to buy Skywanderers, is that physics according to Space Engineers is pretty much incompatible with what Space Engineers has become. For what I assume is the vast majority of us, the unwashed, non-excavator-building masses, SE's "physics" is a detriment not only to creativity, but most importantly, fun. It's why we play games.

    I get a ton of satisfaction out of simply designing things in SE - something I can totally relate to our high minded excavator building engineer overlords on. (Seriously, that is beautiful, but let's be honest, you can't scoop dirt in this game, man.)

    Although we build different things, I think we can ALL agree that we'd like to be able to use the things we've built as intended and with our friends. I think the vast majority of us would like to be able to build realistic, interesting things on a scale that SE's grid system and physics engine doesn't allow. For some of us, that's on a larger scale, but personally, I'd prefer if I could make things smaller. It seems like everything has to be enormous to work in this game.

    The more I think about DLP's suggestions, the less I feel we even need the physics engine at all. I love the realistic aesthetic of Space Engineers, I just hate the unrealistic work arounds required to exist in this universe of insane physics.

    We are Engineers right? We build realistic war machines in a realistic world, and unrealistic things happen. It's a bit disheartening knowing I'm only building these things as a personal challenge. Not that it's not fun, but being 2017, I'd like to think I could see them in action as well.

    I absolutely adore Space Engineers, but this game is getting way too mature for this to still be such an issue. As I see it, it's only a matter of time before someone captures the same aesthetic and also nails the building and gameplay side of things down. As they have been for years, my fingers are still crossed that it will be the Keen SWH team.
    • Agree Agree x 1
  12. halipatsui Senior Engineer

    As a mech builder i am heavily against simplifying the physics.
    Keen might or might not get them right in the end but if SE would be reduced to building boxes with x amount of thrusters, y amount of weapons and kappa amount of storage the game would feel pretty dull to me.
  13. Sinbad Senior Engineer

    if what you want is fairly good Newtonian-ish flight AND an incredibly powerful and flexible building system, try Avorion. its not too bad for combat either. just google a few player made ship screenshots and have a look.

    if you want physics instead of fizzix, go play KSP and get the RO mod pack. thats some hard core stuff right there.

    SE is in a nice in between zone that has enough physics to allow fiddly excavators, and enough creative freedom to allow 1:1 scale Galaxy Class star ships.

    if the block textures blanked out every time the ship turned left, or if putting a refinery on light armour caused an explosion, folks would kick up a fuss.
    but thats on the same level as what the current implementation of the physics is doing. its worth kicking up a fuss.
    just as no one would suggest a solution that removed all textures, or made it impossible to put a refinery on light armour, no one would suggest that the physics be removed or made less accurate as a preferred solution.
    just that maybe the current handful of mathematical shortcuts that make physics calculations possible with decent sim speed are not working out very well, and maybe its time to look at different paths to the same goal.

    for one: remove the elasticity of all jointed parts. pistons are bouncy and stretchy, and they shouldn't be. Rotors can have their rotor parts pushed out the side of the rotor and still function. it doesnt take a great deal of force to do either of these things. and once the part is deflected like that, there is a massive force applied to put it back into position. if it cant move back into position, the force is applied to the connected grids instead, throwing things around.
    take away the bounce, and crumple some blocks instead, or put a strain gauge property in there and make the block non-functional if it taps out. i personally believe 90% of clang is cause by the elastic nature of what people intuitively think of as rigid connections. only a build that is designed to allow for and minimise elasticity can survive clang (thats @GrindyGears's second secret) and if people intuit a rigid connection, most wont build that way. then clang, when parts start to displace, they collide and explode.
    • Agree Agree x 1
  14. carnivore Apprentice Engineer

    Those are all good games. I have them. I might have gone a bit overboard there at the end. As fortune had it, I found this thread after about four hours of projectile testing. I had hoped things had been refined a bit, but I ended up experiencing exactly what DLP described.

    I just want the game to work. As for the suggestions in the original post, I'd buy SE again twice to get those features.
  15. GrindyGears Senior Engineer

    @Dwarf-Lord Pangolin, perhaps I should restance a little bit, I don't disagree with most of your suggestions, but they generally have little to do with my play style:

    1) As much as I would like the ease of use that could spawn from such a system, this is a feature I know has been discussed to death, and I think it ends up being an insane amount of work, like borderline rewrite. (which at that point just make a new improved game from scratch)

    2) As others have said 20 is pretty high, 5 would probably be okay.

    Im not sure but I'm going to guess many PMWS, get up to more than that thresh hold in a short enough time they could still cause damage, but as I don't frequently design them, this is merely conjecture.

    3) I dont entirely understand these things either, but as a first thought, I think it's kinda a bad idea.

    I remember a long time ago you could make gravity cannons that could rip through 40 layers of heavy armor, then they changed the way collisions work to take the whole grids mass into account. With the way you propose o think it could break the balance of things as a tiny little missile (relative to usual size of some....) could easily gut a massive dreadnought. You think people banana boat griefing is bad now? Wait till those impacts shred everything because the overall size isn't counted properly.

    I think something could be worked out, but it's going to need more refining.

    4) don't really know how this works, seems interesting enough, my only grievance would be if a grid has a high ground pressure (like my machines) they could "sink" into the ground with very little bumps.

    5) you know my opinion of this.

    6) There are "engineered" solutions, but generally speaking I agree. Though I feel as though to actually balance this would require a great deal of work and probably nerfing the mods (assuming a direct rip of mod)
Thread Status:
This last post in this thread was made more than 31 days old.