Tuesday, May 6, 2014

Finish.

Here's the last update on the FMP. The last week or so was quite busy since I was trying to finish all things and bring the level to completion. The old buildings looked too monotonous since there were only two sets, so I've spend a couple of days making a third one. It is deliberately more gray and blocky than the first two in order to be more versatile in reagards to placement opportunities. The fourth building in that old square still consists of parts of the other sets, but I've replaced the materials with different coloured ones. Some additional facade decorations have been made as well. Existing decorations have been improved by getting a baked-in ambient occlusion maps.
Now, having more building modules, I have assembled a slightly more believable background in the inaccesible areas. It doesn not look like the same building copied and pasted around anymore.

A lot of smaller assets have been created to fill the scene. I've added pallets of bricks and cement bags to the areas with scaffolding. They serve both as vision occluders and additional stuff to look at.
A small adition to the futuristic area is the cleaning robot. It didn't come out as good as I wanted it to be, but still is a nice little point of interest. I've also added some signs and an ad poster. The latter looked a bit out of place, so I decided to place it only in the places where it is not very visible.
In order to breathe some life into the scene, I've decided to add some movement. Now there are seagulls circling around in the sky. From technical point of view, they are just planes with a picture of a bird, animated to continuously move in circles. There's also an animated vane on the spire of the old building extrusion, but it is less noticeable.

Some more movement is added by the falling leaf particles next to the trees. I've based the system on the particle that comes together with Cryengine, tweaking the values and changing the used texture to mine.

Other important part of immersion is sound. I've used some sound files that come with the editor. I'm not getting a degree in sound engineering, so I hope this is fine? Anyway, I've added randomized seagull calls, water sound next to the pond, general ambient wind, as well as cloth fluttering sounds. At least the scene doesn't seem to be dead when you walk around it.
And probably the last thing is the camera setup and video output. The work with trackview is enjoyable, however apparently it is impossible to get the render output rght and without any issues straight away. Like most things with Cryengine, nothing is easy and straigtforward.

So, here are some final renders and the video, enjoy.

The project is far from ideal. I definitely have taken on more that I should have. I had to take many shortcuts in order to get so much stuff done, and this means that the quality is sacrificed. Optimization is nonexistant, and the debugger screams at me with many warnings of exceeded budget.
Ideally, materials have to be reworked altogether in order not to have several duplicates. I am so used to UDKs system where you assign materials to IDs of each model that the way it is done in Cryengine seems very inefficient now.
LODs don't exist in this project. I've originally made all individual meshes in such a way that most of them are sub 1000 triangles, and cutting out any would distort the shape too much. However, there are still around 10-20 meshes which could benefit from creating a lowew-poly version of them. I simply did not have time for that, and performance seemed okay.
And while I get decent FPS even now, I can see how I can nearly double that by spending two weeks on optimization.
In any case, I am sort of glad that I've decided to take on such a large project. First of all, the fact that I could alternate between modern and old assets allowed me to not get bored of doind the same thing for nearly four months. This also allowed me to use the full spectrum of techniques that I know - sculpting, image-based texturing, spline and poly modelling. I even had a chance to make some simple animations. At some point in my life I would like to spend a couple of years making my own game with a small team, so the lessons I have learned will definitely be increadibly useful when building something even bigger than this.
Planning was rather funny. I tried to schedule what kind of stuff to do quite early in the production, but most of the plans had to be rearranged as priorities shifted. I'll have to come up with something when planning my future environments to minimize the rescheduling.
Other than that, this was quite interesting. Yes, I had periods when i was just too tired and bored of this, but generally it was rather fun. A great excersice in modularity. However, the next thing I'll do will probably be something small but detailed.