Overall, I am extremely happy with how my FMP turned out. As with all projects, when the time to hand in comes around, there are always things I wish I did differently or things that didn’t go as planned; there always will be. But at the same time, there are things that went better than expected too. Considering my only prior experience with CryEngine was some very light work on the ‘Off the Map’ Project, I feel that I have learnt an extreme amount about CryEngine, creating my level tidily and efficiently and also learning a lot about how to use the engine, 3DS Max and things like scripting and flowgraphs in conjunction with another to best optimize and enhance my level.
For my concepting I wish I had done a little more rather than spending most of my time on the whitebox, as I don’t feel I fully captured the style I wanted my level to emit. As a result of this I feel certain areas of my level don’t fully blend well with the corresponding areas and doesn’t feel as naturally constructed as I would have wanted. One such thing is the Chinese architecture; I concepted more with Hong Kong streets in mind, and the only hints of traditional Chinese architecture are the roofs and bridges. The resulting image is that of modern buildings with tacked on looking elements.
The main concern myself and others had with my FMP was the scope of it – it was simply too much to do within four months. While I did bring down the scope after my initial pitch, I still kept the city at a believable size. One of the main ideas and points behind my FMP was efficiency – the construction of a large environment, using a lot of prior planning and modular assets, interchangeable texture sheets and using CryEngine’s shaders to their full extent. I also intended to have scenes with a lot of detail, but keeping the framerate down by using LoDs and as few texture sheets as possible. By doing this I was able to create large areas around the playable space that didn’t take that long to construct, quickly making the scene seem larger than it was. Creating a whitebox straightaway immediately helped me lay out the general path of my level, adjust the areas to fit the lighting and level flow accordingly and have a base to build upon. Creating an asset sheet and plan at the same time helped me to also put into perspective how much I had to do, and how long to allocate myself for each asset. Using Excel I was able to construct an easy to see and follow plan which helped me stay on track. I was also able to create square grids that I divided up into sections, allowing me to plan out how to spend texture space on sheets that would have many U or V tiling coordinates.
While time management was mostly good throughout, I did make a few stupid decisions or spent too long on certain assets, hindering me greatly in the long run. For instance, creating my air conditioners first thing simply because I really wanted to was a really bad idea. They turned out fine, but I simply spent far too long on them, and justifying them as ‘an important’ asset was a poor excuse for the time I spent on them in correlation to what I should have been doing. The rooftops also spent a lot longer than I had intended as I didn’t fully understand how to create them as proper modulars (creating precise pivot points and sticking to set sizes) and how to quickly place them in CryEngine (there would always be small holes at meeting geometry). Once they were sorted they didn’t cause any more problems, but as with the air conditioners, I spent too long on them in regards to the payoff (I didn’t even use them all that much in the level as they were too restrictive for easy placement). As a result of this management, I never got my boats done at all. I decided around the end of April that I should just not do them and instead focus on polishing up what I did have. My time management for my asset production in March and April went much smoother, and I was able to create assets quickly and efficiently, whilst keeping the production value just as high. I wasn’t too sure about how many tri’s CryEngine could handle at first, but throughout the project framerate was nowhere near an issue, and idles comfortably around 45-60fps. Knowing this I pushed in a few more tris than I typically would have on assets, especially those where I had to be conservative with the normal maps. This is also where I am very glad I created LoDs for the vast majority of objects with more than 300 tri’s – not only because its good practice despite being something people generally dislike doing, but also because it definitely helped keep the framerate high, and thanks to CryEngine auto detecting when to use LoDs, you can barely even notice them loading in the actual model.
In regards to my modelling, I think the only thing to say relative to my other projects is that I’ve got quicker at it, while maintaining the same quality. Modelling is definitely my strongest ability, so for the duration of this project there was nothing I found too difficult or hard to create, and I always had LoDs and texture usage in mind. The tram was the hardest asset to model as it required an interior, so creating geometry that was extremely precise and didn’t intersect all the time was very challenging. Modular asset creation was relatively new to me and so my first modular assets, the roof top pieces, were very awkward to create and tile properly. Luckily I learned from this eventually and the rest of my modular pieces went much more smoothly. I tried to pack everything as tightly as possible, but also saving texture space with similar faces where necessary. Some objects however, like the windows, benefited from having separate similar UV space as it allowed for more variety in the texture sheet.
Texturing is something I feel I have greatly improved, but still lack definition in certain areas, notably the speculars. While a lot of my level didn’t offer very many interesting speculars (not much was metal) I still feel some areas came out rather flat and undefined. I did a lot of high poly baking for my normal maps, and for things that tiled I tended to use CrazyBump. I am pleased that I managed to source a lot of texture reference myself, and going to Chinatown helped immensely at understanding the culture. Even in those few streets in London the culture was hugely different to everywhere else in London and I was able to grab some scenes and textures that I used later in my project. I tried to make my textures as authentic as possible, using my reference where possible and double-checking all the Chinese language and themes that I used.
CryEngine itself was the perfect engine for this project as it offered so many good shaders and tools for my level. The only downsides to it are that I found the gizmo and general interface far more awkward to navigate and use compared to UDK or 3DS Max, and that while the shaders it offers are fantastic, it offers very little in the way of customization and personal optimization. One such issue was when I was trying to create a desaturated texture that used CryEngine’s colour tool for the hue. This would’ve allowed me to have created tonnes of 1kb material files of many different colours. The problem was that when used in conjunction with vertex painting, the blended layer also adopted the colour change, which didn’t look authentic at all. The only solution I could find was to save out five separate colour textures instead, which is exactly what I was trying to avoid.
I also had consistent issues with the shadows and it creating nasty banding when objects were parallel to the sun. I managed to mostly sort this by fiddling with the Time of Day parameters, but the problem still persists, albeit not as bad as it was. Finally, animation in CryEngine proved to be extremely cumbersome. More to the point, you can’t really animate the same you can in UDK, so you have to do it all in 3DS Max and just hope that it exports correctly. I exported a lot of objects with animations and almost all of them I ended up exporting in a different way to the last one. So while I’m pleased that I managed to get a lot of animations in, I don’t think that I fully grasped the production cycle. The tram was by far the most ambitious of my assets, and the result is about 75% of what I wanted. It looks how I wanted, but only works to a degree. You can get in it and ride it to the top and back, but you basically have to run whilst in it to not fall out of the proxy. I also animated it near perfectly in 3DS Max, stretching the cables and twisting the turntables so that it always stayed within the track, but upon exporting discovered that (as far as I know) exporting vertex animation on non-character assets doesn’t work, so the wires clip through the track or not at all in some locations. Overall the tram works nicely, but definitely not as well as it could have.
Organization was one thing I feel went great throughout the whole project. Apart from some iffy naming and placement choices in CryEngine’s SDK, all my assets and files are named and structured correctly, and I never had any issues with losing or trying to find my files. I tried to name everything (including Photoshop layers) as though it was a group project and other people would need to use my layers.
In conclusion, I am extremely pleased with everything I have learnt from my FMP and very pleased with the general outcome. If I had used my time more wisely and stuck more strictly to deadlines I believe I would have been able to get everything finished – mainly the dock area – and generally add a lot more detail to the surrounding area. While I’m pleased that I managed to maintain a large scale, I feel it did hinder me in the long when it came to polishing up what I had, as there was simply too much to refine. I do feel I was successful at recreating the happy, colourful concepts I produced, and avoided creating a grimy claustrophobic city, if at the expense of some of the Chinese culture I wanted to capture too.