top of page

Capstone

Click on an image to view a larger version.

This project, which I've been calling Ancient Island, was created during my final senior project class, Capstone. The project spanned roughly 4 months (One semester) and took roughly 300 to 400 hours to complete, all while attending to another project and another class. The original plan for my capstone was to create a playable level inside of the UDK game engine where you could run around and explore the island through several linear levels. The plan was originally sound and was well thought out, however as I progressed I realized that certain aspects of the game creation would take longer than expected, such as the tree's, and that life always has distractions.



Starting out in the project I had laid out the floor plans of the island, this was most simply accomplished by taking snippets of Google maps and pasting together my own island. Once I had an idea of the island shape I wanted I drew out the paths and the locations of major game pieces. Once I had it set up I saved the main level as the persistent level, and proceeded to then create 8 other levels that would be used to stream the game from zone to zone. (This would later change.)

Bringing the images into UDK I was able to establish a size and scale for the game. (Though I did need to scale it down once I realized I was trying to make it too realistic.) Once I had it scaled I immediately began placing down a landscape and adding in sections to cover the entire map. At first I only had it cover where the player was going to be able to see, but once I got to the mountain top I realized I'd need to add landscape to the entire viewable area. So I added sections to the landscape and eventually covered the entire island with the landscape. Of course this was highly costly and wouldn't work as an end result.



After painting the landscape with some appropriate textures I had divided the landscape up into the sections I'd planned to be level streaming on the other levels I'd created. This was my first major milestone as it was something I'd never done before, but was relieved to find it was simple to accomplish. Once they were broken up I started to work on the various large objects around the level. First with the space ship, then the mountain it is buried in, then the river bridge, and so on. 



During the process of creating several of the assets I learned several important tips and lessons. I'd say the biggest lesson I'd learned was how to get such nice textures to appear on models inside of a game engine. The problem was that the model going in would have a decent texture, but it would require it to be 4096 if I wanted to have and sort of good quality showing up. Well after breaking down several other UDK premade models I realized that they tile in another texture to give it texture that the normal Diffuse just can't give. Once I realized this it made all my textures pop out like nothing other. I was quite impressed, and so were my peers.



​My next biggest hurdle was also my second biggest lesson, which was the method used to create a good, next generation, quality set of plants to populate the island with. I had no idea where to start with trying to create trees or any sort of plants, and to curve the learning process I picked up a tutorial from 3dMotive.com on "Creating Foliage For UDK". While it did take me some time to follow the tutorial itself, it was ultimately highly effective in teaching me what I needed to create such beautiful plants inside of my project. The process of also adding in vertex painting to allow for wind movement inside of the engine was also something I'd never done, and I was quite thrilled to learn all about it. In the process I even acquired a better understanding of Normals and how they actually work.



The third lesson I'd learned was how to properly set up a set of streaming levels so that as you left one area it would load the next, and also the background pieces that either would or wouldn't be seen. This was mainly googling how others had accomplished it, and then testing it out with my own levels. After several tests on various objects I was able to figure it out, and the end result works quite well, though it is quite messy inside the persistent level where I have it all located.



Also aside from just setting up the streaming levels in both the world and in kismet, I had figured out how to set up a proper distant terrain using as low a poly a method as possible. I created billboards of trees and after placing roughly a thousand billboards I had collapsed them into a single model that was only a few thousand tri's and only required a single draw call and texture call. It was a massively noticeable difference in frame rates when I finally figured out how to accomplish it.



The last skill I learned was how to set up a camera system inside of matinee and how to execute several camera's and other effects inside of the matinee track. In the end I figured out how to add sounds, animations, and how to manipulate color changes in the world. 



After all that the only thing I had left to do was to package the demo up into an executable, and thanks to a handy checklist I was able to get it done without much trouble. Overall the project wasn't what I'd hoped for in the beginning, but I am proud of the outcome. I hope you've enjoyed it.

© 2021 Martin DeWitt

  • LinkedIn
  • Facebook
  • Twitter
  • YouTube
bottom of page