Wednesday 13 August 2014

UDK: First Level Complete!

Yay! My first level in Unreal has been finished as part of a Summer project, I have been doing the level for a few hours a night over roughly 2 months. The most time consuming part has been learning about the UDK engine, figuring out how certain things are done like skydomes and fog while also trying to build the entire level out of modular pieces.

As I said in my previous post, the project was given to us at the end of our first year to do over the Summer, I have no idea if it's mandatory. I chosen to create a playable level of an abandoned subway, with a character (I haven't started the character yet!) within the given resource limits. We had 15k tris and 20mb worth of textures to use, at the beginning I had no idea how this related to a small playable level.

I started with a sketchbook to throw down my ideas, while also searching the internet for inspiration and reference. I knew I wanted to have this abandoned subway lived in, for a while at least, maybe an abandoned subway turned into a bomb shelter?

I also worked out my texture budget in my sketchbook

 Once I had a good idea about the level I tried to draw out the entire thing. I did this before I spent a vast amount of time going through the How to Draw [1] book, therefore some of the constructions are off. I definitely want to return to this drawing to see if I can improve it.


I now had the difficult task of figuring out how to build this level in UDK. My knowledge at this point with UDK was non-existent so it was going to be painful, I started to create the main pieces of the level in Max but had to restart them a few times because I wasn't thinking in small enough sections.

Eventually i got on a roll with this stuff and even managed to get my collision meshes working without much problem. Unfortunately I had no idea what a lightmap was, never even heard of one, and UDK kept spitting out these errors mentioning them. After some research I realized that I would need go back and do a lightmap for everything I had built, similar to doing the UV Maps only more tedious. Doing 20 lightmaps in a row was not a fun experience.

One of my level props, an old drinks machine
As I progressed with building the level plenty more little things kept popping up similar to the lightmaps, small things I had no idea about that my level would need to be even semi-competent. Creating the skydome was one of these, so I took this opportunity to create my own. The texture for the dome broke my texture limit, but in my opinion it was more important to learn than stick within the budget. 

One of the biggest things I picked up was how versatile the UDK material editor can be, by following this a set of tutorials [2] I managed to set up an animated skydome with a working sun, all using the material editor. I began using the material editor even more, creating working lights, controlling the specularity and other things.

It became complicated
I made sure to get the rest of my textures within the 20mb budget... just. I again thought it was more important to learn about making objects light up using the emission section of the material editor instead of staying within the limit. My final texture budget (without the skydome diffuse) was 20,120kb.

Staying within the given 15,000 triangle limit was slightly easier, but I was shocked at how quick that can be filled up with level geometry. I wanted to have many smaller props to fill the level, making it feel real and alive but I soon had to scale my vision down as the tri-count quickly piled up. If I restarted the level I'd scale my idea down to simply an abandoned subway, without the "lived-in shelter" thing going on, because a 15k tri-limit is tiny unless you're going to make a low-poly game.

The final product might come short of my original concept, but when I started I wasn't entirely sure how far 15,000 tris would go. I now know the tri-limit lends it self to maybe an isometric level where the low-polycount wouldn't be directly in front of the player like an FPS. Sadly I tried to create my level for an FPS, leaving the level feeling empty. Below are some screenshots of the level!




Despite me missing the mark on my original concept I think I have created some nice looking screenshots, especially with the added post-processing and fog effects, even if I found controlling them a little confusing. I wanted to add in dust particles and some sinister ground fog but this would have further increased my texture budget.

The candle light is animated! Woooaah!

I have now a much better grasp of the UDK engine thanks to this summer project, which will hopefully place me in a better position for Year 2 as we begin to work in-engine more. For the rest of the summer I plan to continue drawing and also begin the character portion of this project, while eagerly waiting for Destiny.

Notes & References
[1] How to Draw written by Scott Robertson & Thomas Bertling
[2] Tutorials created by Julio Juarex