Post Mortem: Cold Fusion
Introduction
Cold Fusion is a singleplayer level for Crysis that I developed. The whole production took roughly ten months, from the early concept phase, until final release. This was the first open-ended level that I created. In this article I will depict the goal of this project as well as consider its strong and weak points.
Goals
I wanted to create a level that fully supports Crysis core mechanics and offers player different playing approach (stealth, sniping and all-out shooting). The goal was to take all what the core game has to offer and, if possible, extend it even further.
- Winter setting
I really enjoyed playing Crysis winter location and, on top of that, I always wanted to create a winter setting open-ended level with semi-linear path with multiple approach to the objectives. This was a perfect opportunity as Crysis Editor allows not only for creating good looking and believable settings, but also let you script using FlowGraph with is much easier than doing things in code. Having all that I could focus on creating fun experience withing an Arctic location that feels and plays well.
- Controled Freedom
As I stated previously Cold Fusion is an open-ended level with semi-linear path with multiple approach to the objectives. I wanted to give the player freedom of choice and actions he/she undertakes, but all happening in a controlled area. The level is designed with couple of choke points in mind, such as entrance to the main gate, but player can approach the main base through three completely different paths and taking advantage of various gameplay available. This allowed to have the feeling of a larger area, almost like on open level, but still knowing what actions has been undertaken by the player.
- Exploration
One of the goals I had for this project was to reward the player for exploration. I managed to achieve it in two ways. One of them was to reward player with back entrances, secret passages, risky mountain routs etc. that let the player to the back of enemy lines, allowing for preemptive attack. The other was to reward the player with additional ammo supply and weapons. I also designed POI to further encourage the player to explore the map. I also added secondary objectives which are far from the main path, but completing them gives the player many benefits in the final boss fight.
- Gameplay
As a level designer I always favour 'gameplay first' approach and this project was no exception. I tried to use all available mechanics that Crysis offers and utilize them in my level. I build the level to facilitate all gameplay approaches (stealth, sniping and all-out shooting), as well as reward careful planing, observing enemy routs and exploration. There are also some risk/reward sections and secondary objectives that are meaningful for the main ones. As I didn't add any new content to the game in terms of assets, I focused mostly on creating fun and innovative gamepaly experience for the player.
What Went Right
- Rapid prototyping and early project testing
I went to the editor as soon as I decided on the rough layout of the map as well as objective placement. Testing the level early on let me figure out the scale of the level, which was polar oppose to what I assumed I would need in the preproduction phase. It turned out I would be fine with one fourth of the level size that I initially planned and that I need to bring some objectives closer to avoid boredom. I could also test out how much space I would need to support all play styles.
As for rapid prototyping some objectives were not fun to play and some parts of the initial plan could not be fulfilled due to technical limitation, but going to the editor early on I could adopt the changes almost instantly, or test if some elements can work at all. What is also nice about CryEngine is that it offers in-editor Brush tool to make prototyping even more efficient. Simple geometry can be created and tested without the need to use any 3D application.
As for rapid prototyping some objectives were not fun to play and some parts of the initial plan could not be fulfilled due to technical limitation, but going to the editor early on I could adopt the changes almost instantly, or test if some elements can work at all. What is also nice about CryEngine is that it offers in-editor Brush tool to make prototyping even more efficient. Simple geometry can be created and tested without the need to use any 3D application.
- Staying true to the original vision
I am really happy that I managed to stay almost one hundred percent to the initial vision of the map that I decided in the preproduction phase. I decided to use this particular engine for this project because it can easily create good looking winter location and, what was also very important, gameplay mechanics offered by the engine allowed me to make the game as I intended. I really liked the mood of the Crysis 'Ice' level, and I wanted to create a similar mood with my level, though in more realistic setting. There is probably one big element that had to be cut from the original plan, but it was due to technical limitation and I did not change the vision on the initial Cold Fusion map.
- Supporting differen gameplay approaches
I wanted to support different play styles as it adds a whole new level of gameplay to the map. And, what is also very important, I do not know who is going to play this map, so I wanted to satisfy all tastes. Having different playing approach (stealth, sniping and all-out shooting) also fits perfectly the setting of the level and follows gameplay references the project is based on which is Metal Gear Solid. Lastly, I did not wanted to waste the potential that Crysis's game mechanics have to offer so it was a natural consequence to design the map this way. Not all parts of the map support all game approaches, but I did my best to ensure that major places will offer as much variety as possible.
- Project Scope
I wanted the level to be close to original levels from Crysis in terms of size and I think I got pretty close to it. As I stated before getting from preproduction phase to development, the size of the level got decreased but, at the same time, smaller area has been filled with more content. I am also happy with the play time I managed to get. Depending on the play style it takes roughly twenty to thirty minutes to beat the level. Overall, the scope of the level got bigger that I initially assumed, but hopefully it all happened with the benefit for the final product.
What Went Wrong
- Obsolete technology
Crysis one was a graphical revolution back in the days, for some was even treated as a benchmark to test his/her computer. It also offered very neat gameplay mechanics that offered varied gameplay approach as well as huge in terms of size levels that very often lasted more than thirty minutes each. Time have past and what once looked amazing, now looks just OK. Do not get me wrong, it still have some nice looking bits, but technology moved forward so much that it cannot be compared with nowadays standards. The same applies to FlowGraph which offers many Nodes that are labeled obsolete and not all of them work as you might expect. It is still quite usable engine but comparing it with the new ones available now on the market is just unfair.
- Cutting down on features
The bigger the project gets the more time it requires to finish. I planned this project for a shorter amount of time but in the end I had to spent some more to finish what I had started. Even with this additional time I had to cut down on some features but I did all my best to keep most of the original ideas I decided on in the preproduction. I also had to cut down some features due to technical limitation of the engine. When planing the entire level and choosing the editor I assumed all things can be done withing it, but I should have checked prior to implementing gameplay what is possible and what is not. I will definately do it in my future projects.
- Project Scope
Everyone has a tendency to aim too high and I am no exception. I wanted to create a short level taking into consideration development time as well as the size of it, but of course I ended up adding stuff to the core part which made the level 'grow' already in the preproduction phase. Same thing happened in the production phase when building the level I often had and idea like 'it would be nice to add this to the level'. The plan was to develop the level in three months and spend next month bug fixing and polishing, but I ended with over ten months from start to full completion. Of course I am happy I finished it, though I had at some point an idea to drop it all together, but finishing an overdue project have a feeling of failing rather than succeeding.
- Insufficient testing time
Putting more time into production of the level ended up having less time to test it properly. I did not wanted to add more time to the project as it already got out of hand. I would really like to spend some more time testing the level but I have new projects to be done and as you might expect new projects are always more interesting than the old ones. Of course I will fix all bugs that I or other players find.
Conclusion
Completing this level was a big thing for me as finishing a big project is never an easy task. The project turned out to be 3 times bigger in term of time, as well as more ambitious then I established at first. Even though it is finally done, I wish I spent more time tweaking and improving it, but due to technical limitation some of the initial ideas had to be dropped while in development. The final objective had to be changed (the interior of the base emerging through frozen lake) and it had to be replaced with something different.
Of course if I would spent more time and create custom assets, add more detailed models etc. I could create something close enough to what I intended.
I'm happy I managed to bring this project to an end. I learned a whole lot in the process, especially about planing ahead, sheer size of the project planed, open-ended level design, engine-specific workflow and, what I considered the most important, how to bring your vision to conclusion, despite all the adversities you have to face along the way. All in all, it was a great experience.
Of course if I would spent more time and create custom assets, add more detailed models etc. I could create something close enough to what I intended.
I'm happy I managed to bring this project to an end. I learned a whole lot in the process, especially about planing ahead, sheer size of the project planed, open-ended level design, engine-specific workflow and, what I considered the most important, how to bring your vision to conclusion, despite all the adversities you have to face along the way. All in all, it was a great experience.