This topic has popped up from time to time, but I’ve never seen a resolution for it, and any information would be helpful.
Let’s say you are working on a game where you play an ant, and you’re crawling around a house. You’re at this point essentially dealing with 2 scales in your game:
- The normal scale of the house, the kind of scale that we all think about, where things are sized in inches/centimeters and feet/meters.
- The tiny scale of the ant and any interactive objects that the ant may encounter, such as other ants or health hearts or ant sized skateboards, toy soldiers, etc. The point is, objects that are extremely small, measured in millimeters.
So the most obvious way to tackle developing this kind of game is to simply make everything the appropriate scale. The problem comes when dealing with the editor. If you zoom in on something as small as an ant, it becomes impossible to deal with the environment around such a small point. In other words, the editor camera that you use in the scene view still moves around as if it was dealing with a normally sized object (like a 1’x1’x1’ box). Every time you move the camera, you fly way, way past the point you were just at. The camera’s sense of movement scale does not scale with the size of the object it is focused on (even when you focus using the F key). Fine tuning the placement of objects essentially becomes impossible.
The next thing you could do, is simply start scaling everything up. If the ant is 1:600 the size of your average human, you start scaling everything in your world by a factor of 600. I probably don’t have to tell you what that does to lighting. But in case you don’t know, it basically makes it impossible. Even if you scale your objects in max and bring them over at 1:1 (just 600x bigger instead of scaling them 600 in the transform), you’d need lights that are also 600x, and that doesn’t exist. It also screws with lightmapping big time.
Anyways my point is, and my question is that it doesn’t seem that Unity is designed to handle this scenario, and if it is, how do I approach it properly?