I have an age old question, does size matter? I know that 1 unreal unit = 1 cm, but my question is, do I have to keep the scale 1:1 with real life? So let’s say I’m making an environment with a city, does my player have to be e.g. 2 meters tall, a house 100 square meters etc… or am I free to scale everything as I want to? For example at a 1:2 ratio, so in real life a human is around 2 meters tall, I would only make them 1 meter tall in game, I would make the house 50 square meters instead of 100 etc… In game to the player everything would like in real life but it would just be 50% smaller in the editor. So essentially 1 unreal unit would become 2 cm for example.
Would scaling everything down have any impact on anything at all, e.g. physics, driving, animations, ballistics, synchronization in multiplayer, would any bugs appear? Basically, what if anything can potentially go wrong if I was to do that?
Thought you are free to do whatever you wish with your project, it is not advisable to play with the word scale of an entire engine.
Remember that more than 3d models are actually affected by the scale, physics animations, code/blueprint (as they use transforms based on the engine world scale).
If it’s about 3d only than simply keeping in mind all the scale properties you use for model creation may be enough to control everything else. Major problems come when you try to play around with the scale when it comes to physics and code. It is doable but its a massive pain the more physics, animation and code you use.
The reason why I want to scale the 3D models down is because in multiplayer as far as I am aware, when making an environment on a scale of 1:1 with real life the maximum size of the landscape is 20x20km. I’ve tried to make a landscape bigger than that but when I went beyond the 20km bounds the game froze etc… From what I read in the unreal documentation they suggest implementing some kind of solution between the client and server to fake the coordinates or run multiple servers etc…
I need my environment to be around 30x30km, so I thought if I scale all the models down by e.g. 25% I would essentially increase the landscape size by 25% and that would be the easiest solution, but I’m worried about potential bugs this may cause.
Is the maximum multiplayer landscape size 20x20km or am I doing something wrong?
I also heard that unreal engine has issues with coordinates in multiplayer on a big map if you’re over 6km away from the center of the landscape, is this true?
The main reason why it is important to stick to real world scales is the shading.
For example if you want to create a round edge shader, you would also need to change its scale to match your off-world scale.
Also your specular highlights might look different depending on your wold scale.
In terms of lighting you get different AO results.
Etc…
20x20km is 400km2. This is really huge area. For example The Witcher3 has 218km2, GTA V 127km2. Your desired 30x30 can be compared to Just Cause 3 - 1036km2. You need to hire army of artist to fill that area with diverse and interesting content
Of course, you do not have to stick with the scale 1uu = 1cm. Some game genres dont need milimeter precision. But remember, further from 0 = smaller float precision
Lighting and physics are designed for the units scale, so you could potentially have some issues if you change the size, in particular if you scale things down then the physics will be less precise because the distance between steps would be greater.
You can use the World Composition tool to create large worlds without that issue though, it allows you to create the map in sections and will adjust the origin so that physics keep working. Just note that while the maximum size of a map is 20km x 20km the actual size that works OK with physics is around 6km x 6km
Well physic is pretty much useless then I might as well disable it. Are there any plans to allow for maps bigger than 20x20km and for physics to work properly or is that something vNidia needs to fix?
Does this mean I won’t be able to drive cars etc… when I leave the 6x6km area?
Is this physics limitation for the whole map or just one piece of it in world composition?
Keeping a 1:1 ratio isn’t always ideal. If you are making a game where the player is the size of an ant, it makes sense to keep the character 180 Unreal Units, so you might use a 180:1 ratio. If the player is the size of Godzilla, it would also make sense to do a 1:100 scale.
The way the engine behaves is based around character scale. The shadows, physics, clipping plane, lights, fog, etc, are all based around making things look good and behave well with a character and scale that’s roughly a characters height is 180 cm.
Its floating point limitations. At large values physics generally works but objects looks like ‘teleporting’ instead of moving.
A little excersize d9sgY8 - Online C++0x Compiler & Debugging Tool - Ideone.com
There is 32 representable float values between 500000 and 500001, but only 16 between 600000 and 600001. With enabled ‘world origin shifting’ default distance from origin is set at ~520000. As You can see, 32 values between 1 unit is acceptable for doing good work by physics
Having a “custom” scaling will maybe never be uncovered - unless you program for VR. I had used a rather cough custom scaling and in VR suddenly wondered why that woman is like 20 feet tall. Never noticed in 2D i must admit.