Level Retrospective: Inkblots
The following is a retrospective I wrote after the completion of the level, Inkblots. This singleplayer level was created in UDK in roughly sixty hours, and included custom textures, key bindings, and voice-overs. You can learn more about this level on my portfolio, which includes documentation, screenshots, and a walkthrough video.
What Went Right
There were a surprising number of things that went right when creating this level, including the pre-production, the voice-overs, and the key bindings. I was determined to not touch UDK until after completing all of the pre-production, and I managed to write up over ten pages of what was going to happen in the level. Finishing all of this before opening UDK was extremely helpful, so when it came time to build the level, I knew exactly what I needed to do and the process I would use to do so.
Of all the work that went into creating this level, the custom voice-overs were what really made it all come together. They provide key narrative information to the player, and add to the atmosphere of the level. To create these, I recorded myself speaking in both a German and British accent (German for the psychologist; British for the news reporter), and edited them in Audacity. The inspiration for the audio style for the finished voice-overs came from the Bioshock series’ audio diaries, as well as television broadcasts from the 1950s.
I initially thought that the custom key bindings would be difficult to implement, as I had never touched UnrealScript prior to making this level, but with proper research, I was able to rather easily implement them. By changing the code for the first four number keys, I was able to map item usage to each key and create a Kismet sequence that controlled the effects of using items in the level.
What Went Wrong
As with every project, there are always a few things that don’t work out as intended. For this level, that included changes from the original documentation, technical issues, and custom textures. The original pre-production called for a lot more than what was put into the final version of this level. There was going to be a more dramatic ending to the level, but this was scrapped due to performance issues that the additional assets created. Without the original ending, the player might be slightly confused as to what happened. Adding to this confusion is the lack of a custom HUD, which was originally going to be added to show players which items they had collected, how many of each, and what number key each item was assigned to. The custom HUD would have proved incredibly useful, but a lack of knowledge of Scaleform made the task of creating it too time consuming.
Other problems with the creation of this level had to do with technical issues, such as new versions of UDK released halfway through production and changes to Unreal packages. Roughly halfway into development of the level, a newer version of UDK was released, which promised improvements to some of the bugs I had encountered in the editor. I decided to switch over to the newest version, but upon opening the half-completed level in it, I soon discovered that the level no longer functioned properly. I then had to scrap about ten or fifteen hours of work to recreate the level (lost time was not included in my time estimates above). Furthermore, some of the packages that were in the previous version had been removed, which meant extra time exporting those assets from the previous version and importing them into the latest one. If I had simply stuck with the same version of the editor, I could have finished the level sooner and avoided these issues.
Because UDK did not offer the kind of textures I wanted for the normal version of the level, I decided to create custom ones. I found most of my textures on CG Textures, and edited them in Photoshop to get them to look the way I wanted. However, upon importing these textures into the level, I realized that they did not flow well together. I spent about an hour trying different textures, until I finally decided that there were more important things I had to work on.
- Research is always helpful. There were several things that I did not know how to do prior to working on this level, but I did my research beforehand, and was able to implement those features with ease when the time came.
- Don’t switch editors in the middle of a project. As noted above, I switched to a newer version of UDK after about half of my level was created. This proved to be a colossal waste of time, as I had to rebuild everything I already had.
- Stream levels to cut performance issues. While I did not encounter any performance issues while playing the level, I did notice a lot of lag when recording the playthrough. To counter this, I am working on streaming the two versions of the level through Kismet, so that only one version of the level is loaded at a time.
- Don’t expect everything to work out on the first try. I found that I had to try a number of different techniques for implementing certain features, such as the hint system. I eventually found that the best method was to have silent sound cues with subtitles, but it took me quite a while before I found this solution. If I would have given up and cut the hint system, the level would not have made much sense.
- Take the time to add in details. I wound up not including any furniture in the normal version of the level, which made it feel unrealistic. Adding in simple furniture to each room in the apartment complex would have given the player a reason to explore more, and would have kept the area from looking unlivable.
Although I have technically completed this level, there are still a lot of improvements I would like to make, namely with the normal version of the level. The dark version came together rather nicely, but I feel that the normal version is lacking, especially because it is so empty. In the dark version, it makes sense that everything is so empty, but the lack of furniture in the normal version takes away from the fact that it is supposed to be more realistic. Creating and adding in furniture, even without variation, would be a huge improvement to the normal version. Furthermore, the textures for the normal version of the complex could be replaced. The idea was to make this level very bright and ugly to the eyes, since this is a place that the main character would not want to be, but the chosen textures do not flow well enough together. Additional experimentation with textures for this part of the level could keep the intended affect, without appearing too visually unattractive.
Another improvement that should be made is to stream the two versions of the level, rather than having both of them fully-loaded in the same space. Streaming the levels will cut back on any performance issues that might exist and will help to keep the levels running smoothly.
I am actually rather pleased with the way this level came out, even though there are changes I would still like to make. I feel that the level captured the atmosphere and narrative that I sought to create, and the bit of adventure game styled puzzles worked out better than expected. That being said, I am currently working on incorporating the improvements noted above to make the level even better, and any updates will be added to both my portfolio and this retrospective.