The future of science fascinates me. Particularly, how humans will inevitably twist it to their own nefarious schemes. In the Psylum, this takes the form of a slice of life in the neglected former lab of a jaded scientist. I wanted to create a single player experience, complete with an interactive environment. Not only that, I wanted to create a story. The walls of the Psylum are awash with history, and I wanted to show some of that history through its graphics. It’s set a little bit into the future; far enough that service robots and enhanced body parts have become widespread. I wanted the player to feel some kind of connection to the environment, so I created a little robot- “Robro”. Robro is powered down when you meet it, and in order to advance you need to give it a battery. Later in game, when the player gets stuck in a deadly trap, it comes to the rescue. I also wanted to give the player an interesting way of interacting with the environment, so I designed a simple ‘hacking’ game as part of the game’s objectives. In order to achieve these goals, I had to learn several new skills; using the Kismet system, several texturing techniques, Scaleform, and more.
A large part of my initial research involved using Scaleform. I knew that I wanted to create some kind of interface and possibly an objective system, so I experimented with creating some in Flash. Initially, I wanted to create a hacking interface for one portion of the level – the player would come face-to-face with a patrolling turret, which they could disable by sneaking into a nearby supply closet and playing the hacking minigame. I started researching simple methods of how I would ‘disable’ the system by making the player re-wire the system- basically a logic-based point-and-click. I decided that the robot itself shouldn’t be too hard (there are many tutorials out there as well), but by the time I had started the project in earnest, I quickly realized I wouldn’t have enough time to complete all of this. Thus, the hacking minigame became the more simple combination lock puzzle in the Lab.
A section of programming in kismet whose difficulty took me by surprise involved (what I thought) was a simple mechanic; being able to pick up and drop an item. And subsequently pick it up again. What I estimated would take me only a day or two to figure out ended up taking the better part of two weeks to solve. After numerous frustrations I ended up on the Unreal forums, followed by posting on Polycount. One kind poster aided my progress, although they didn’t outright give me the solution. In the end I think this was better, since it forced me to actually solve it myself, and thus gain a better handle on the Kismet system. In the end, this enabled me to allow the player to ‘give’ the battery to Robro, powering it on and giving a layer of immersion to the level.
One of my favourite research elements is mesh particles. This did not take up too much time to solve, but did end up eating some development time fine-tuning it. I would up with a fairly good end result, which was to simulate a wall exploding from an over pressurised pipe. I also used this to simulate a section of roof collapsing. The particle also used physics, which took some time to fine-tune as well. This looks especially good in combination with static meshes, as the chunks of debris will collide and bounce off them, giving an extra dynamic flow to the destruction.
Other elements of research and development were mostly simple; how to trigger a secondary Matinee sequence using the same InterpActor (Robro) and not have it blow up; how to chain the Objective system to Kismet and have new actions trigger new animations in Scaleform; and possibly one of the most useful, simple elements of the Attach function for InterpActors. This last one allowed me to attach dynamic spotlights to Robro to simulate its eyes and ‘brain’, as well as attach particles to objects (like sparks on the elevator door), and objects to other objects (cash and documents in safe, and the chains on the CPU cores in the main room).
I had set out to learn a lot more about Kismet, and I think I did a good job of it.
What Went Right
Because I spent so much time in Kismet, I found that whenever I needed to create an event, I could solve the logic for it much quicker than before. I picked up many new texturing techniques, especially where hard surfaces are concerned. Initially, I was worried that I would not be able to populate the Psylum, as it is a large area. However, in the end I found out that I could recycle props quite effectively, and without it being obvious. One of the most positive and enjoyable aspects of creating the Psylum was the grunge areas; specifically, the very first room (I call it the ‘Reception’ area). Because it is supposed to be quite ragged and in disrepair, I had to come up with ways to show this. I gained a lot of knowledge in how graffiti is created, and who the people are that come up with it- I tried to come up with a variety of meaningful stencils and other pieces instead of scrawlings and tags (although there are plenty of those too). I researched several graffiti artists, including Banksy and other prominent artists and came up with several of my own. I tried to simulate how paint drips after being hastily applied, as well as the wearing away and uneven nature of its application. It gave me a whole new insight into the art form as a whole, which I believe is a significant achievement in game design, and should be applied more often.
What Went Wrong
Looking back on this project, the worst culprit of what went wrong resides in the planning stage. Originally I actually had a whole other section in the level (the turret and hacking minigame were part of it), which I ended up having to scrap due to time difficulty. I had underestimated the sheer volume of objects I needed to create and the time it would take to create them. From this, I have learned that creating an entire level on this scale requires a finesse in planning, otherwise it all starts to choke near the end of development. Had it not been for many (many) late nights, the project would have been severely lacking. If I were to redo the project, especially with a more realistic appreciation of the time it takes to create several pieces, I would plan for difficulty in larger pieces; I had much difficulty coming up with the model for the large CPU that sits in the main room.
The original design (left) had a more streamlined appearance; its design was based on a horseshoe crab’s shell. I had difficulty modeling this, and several iterations later I realized that it had a flawed design, in that it would be difficult for players to jump up and run across it. Thus, a new design (right) was created.
Had I known what I learned over the course of the project, I would say that it would have been done a month earlier. Most of the delays posed were because I had to learn new things on the fly; reading documentation and following tutorials takes up quite a bit of time, and this passed beyond the initial research phase. I also lost time in learning neat things that didn’t really have that much of an impact on gameplay; specifically being able to pick up and drop items. As much as I learned from it, the time it took to perfect it ate up a lot of much-needed development time. It is only used in a few places- the battery which you give to Robro, and a few plant pots you can throw around. Had I planned better, I could have devised new gameplay mechanics which utilized this, and possibly saved myself some time creating different pieces of gameplay.
One of the elements of the Psylum I wished had made it into the final product was fairly simple, but I just did not have enough time to devote to it- animation. Robro was designed from the beginning to be a simple model, and thus easy to animate. It only has a few points of movement- its arms, head and front door. Originally, when you gave Robro the battery, it would grab it with an arm, which would retract into its torso and close its doors. It would then flap its arms, rotate its head and speed away. I thought this would bring a lot of life to the character, and would be an excuse to learn a new skillset. Unfortunately, time did not allow for this, and so Robro only has simple Matinee animations. Overall, I think I definitely learned a lot more from my mistakes than from what went right!
I believe that the Psylum capstone is a success. For me, the long hours have paid off with an impressive display piece that you can play- something I’ve always aspired to achieve in art. For me, I gained a lot from the experience. As sleep depriving as my schedule became, I too became more intent on completing the project. It would be the focus of thought on my walk home, and would occupy my thoughts before going to sleep. I sometimes became disillusioned with the project, especially near the end when the workload seemed impossible; insurmountable. However, I would open up UDK and play the level a few times, and find little things that brought me back into focus- Robro reacting when you give it the battery, or the Lab section filling up with noxious fumes. After adding rain and background buildings, I felt a sense of real movement in the project- and this was only a few weeks before the end. If I only learned one thing from this project, it is that the work is definitely a labour of love. You can be hungry, tired and miserable, but only if you truly enjoy your work can you craft something meaningful. Overall, I would say that this was one of the most significant things I have ever undertaken, and am happy with the final result. The capstone definitely is an asset to me, in demo reel form and from sheer knowledge gained. Oddly, even though I am glad to be done, my imagination is already dreaming up new landscapes and designs.