The current game environment (see screenshot) has flaws:
- Its going for a realistic look which requires lots of texture work and large textures.
- Elements like bridges and ladders require lots of tris without producing enough buzz.
- The pillars block the view even for ridiculously placed cameras. Which requires expensive z-buffer magic (blending and double draw calls) with complex programming.
- The confined environment and camera properties call for a backdrop graphic or other kind of background.
Before I dive headless into the next iteration of the environment, I should do some thinking.
Camera angle and focal length determine how much of the environment can be seen. The angle is determined by the game mechanics: one has to be able to see what one has to see to play the game. The focal length is limited: getting the camera to close will distort the view on the important game elements. Besides these contraints, the camera properties can be tailored for the background.
As the following graphics show, longer focal length and steeper angles lead to less visible environment. This effects the environment elements that can be seen, their placement, and their size. Hence it is very useful to fix angle and focal length before hand, work with a placeholder environemnt, and do all the detailed work on the environment later.
Anyhow, since a foto realistic style is beyond my abilities, would require too much effort, and doesn’t really work for an indie game anyways, I decided to go for a simple, more abstract look. Currently I am thinking about “Low Poly Terrains”. Artists like JR Smith, Alexandre Duforest, Vitaliy Prusakov, or Jeremy Kool are examples for this. It still need to test this might be very suited for my needs:
- Based on a first look on a few “Low Poly” tutorials, it seems to be doable with my skills.
- Since it is just colors, shadows, ambient occlusion (AO), and some paper/grunge texture. It should be possible to combine many les-res, pre backed AO and shadow textures with a single high-res paper/grunge texture that (re)used for all objects. Should deliver good performance. Needs to be tested to make sure it looks good.