In 3d games, a lot of attention by developers is focused on elements of the engine that might hinder the players’ immersion in the game. These can be big projects, like defeating the uncanny valley (see my last post on realistic characters), or little eye-catching bugs or features of a game that drastically differ from how a user expects things to look.
The ugly reality of near clipping
In the world of 3d games, we rarely deal with volumetric objects (objects that have an ‘inside’), but rather most of our assets are hollow on the inside. This saves a lot of performance and usually doesn’t matter for the player unless the game needs it (for example a game where you need to dig into the ground, or a flight simulator with volumetric clouds).
A game’s camera usually has a specific area in which it will render these objects, consisting of a near plane and a far plane. If an object is too close or too far, it simply won’t be rendered by the camera. However, if an object just barely intersects with the near plane, the ugly reality of hollow objects shows itself to the user: Continue reading “Avoiding Ugly Camera Clipping In Unity3D”
Getting characters right is one of the most difficult topics in the 3d realm. While today’s technology allows for companies pushing characters in offline renderings way beyond the uncanny valley, and even into the realm of super-photorealism, games still make it difficult and expensive to achieve believable characters.
We have already witnessed smaller budget games going for incredibly detailed characters, as seen in Hellblade: Senua’s Sacrifice: Continue reading “Cheap And Realistic Characters For Indy Games”
Why ‘hierarchical tasks’ are a bad thing for realism
To get the behavior of the inhabitants in the life simulation part of my game right, meant hours of searching for just the right logical elements at first.
I started off with my beloved tool Behavior Designer, which is a behavior tree addon for Unity. It already offers a lot of the features that are needed to make the AI reason about its surroundings, such as tasks to let it see, hear or even navigate using a* or other means.
This was a great starting point since you can literally implement a basic, walking AI within seconds.
However, all the functionality of actually interacting with the game world did not help me at all, if the AI couldn’t actually decide on what to do in a realistic manner.
Continue reading “Implementing A Utility AI”