4. Realism in gameplay is hard.
Although we took a lot of the right steps in our approach to developing a realistic story and character, we seriously underestimated the impact that realism would have on our game design. A major example of this was the difficulty we faced while we were tuning the health of the enemies.
We initially set up the enemies to take a bunch of hits before dying, so that each enemy felt like a formidable opponent.
However, we soon started getting feedback from players that it seemed incredibly unrealistic for the enemies to take more than a couple of shots before going down. This meant that we had to constantly retune our setups and spawn additional enemy waves to compensate for the change.
At the last minute we also implemented an injured state for the enemies which changed their animation when they were hurt, so that they could react to getting shot in the arm or the leg.
A different kind of struggle between reality and game design happened when we tried to visually differentiate between the different enemy classes. We initially approached their character designs with the same subtle approach that we applied to the main characters, but because the enemies are usually some distance away from the camera on the screen, and hence are quite small, these subtle differences weren't noticeable by the player.
We kept tweaking the enemy designs as we developed the game, and stylized them a bit with some success. In the end we felt that we could have pushed their visual design even more, as some players still had trouble distinguishing between some of the different classes, and we'll continue to explore this issue on our next project.
5. Not enough iteration of level layout.
We had a very mixed-media approach to level layout for Uncharted. Basically, whatever worked well for the designer of the level was okay with us. Some designers started with plan-view pencil sketches or detailed layouts on squared paper.
Most of us used Adobe Illustrator and simple prototype geometry built in Maya, which let us iterate on our level designs more easily. Sometimes we would move back and forth between both applications, annotating screen captures of Maya geometry in Illustrator, and then making more changes to it.
The Uncharted level editor.
If we hadn't been so pressed for time, we would have iterated each level many more times before we moved on to the stage of creating finished environment art. We found that the more we could polish a level while it was still simple from an art point of view, the less time we wasted redoing work on the environments later on.
This stage is also a great time for designers, concept artists, and background artists to share their ideas and find ways to make them work together in harmony, so that the level both looks amazing and plays really well.
There's no doubt about it: Uncharted: Drake's Fortune was a tough game to make. Getting up to speed on the PlayStation 3 and creating a character-action experience from an untested game idea was a very challenging task.
We sweated, we cried, we laughed, and eventually, we conquered. We looked at the mountain of problems we'd overcome and, in the words of Nathan Drake, said, "Adios, asshole."
At the end, we had created a terrific thrill-ride of an action-adventure game that captured the essential flavor of the stories we loved as kids, but that felt new and contemporary at the same time. We are really proud of Uncharted: Drake's Fortune and the whole of our team agrees that this is the best game we've ever made. Now it's time to get back on the road, and see if we can't better it.
Uncharted: Drake's Fortune
Developer: Naughty Dog
Publisher: Sony Computer Entertainment
Release Date: North America: November 19th, 2007; Japan and Australia: December 6th, 2007; Europe: December 7th, 2007
Number of Full-Time Developers: Approximately 70 Naughty Dogs
Number of Contractors: 6
Length of Development: 1 year preproduction, 2 years full production
Lines of Code: Approximately two million
Development Software Used: Autodesk Maya, Pixologic ZBrush, Autodesk Mudbox, Adobe Photoshop, Adobe Illustrator