Developer Diary for Penumbra: Black Plague: Part 2 - by Frictional Games |
January 3, 2008
The voiceovers are an area that has received more attention in Black Plague than it did in our previous Overture game. In Overture we had one character speaking to the player through a radio, in Black Plague this has been extended to around five characters speaking to him through various media. As we are working with a small budget we have not done any animated and synced characters. This is also a design choice as we believe horror is created by being lonely and isolated in an unknown territory, so don't expect any friendly chats over a cup of tea!
As Internet savvy as we are when it comes to how we develop games, we set about arranging for the voice creation in the same way. We found some interesting sites that enable voice seekers to come in contact with voice creators (actors).
This turned out to be an incredible smooth process where you create a project for each voice you need, give as much detail as you want and add some lines for actors to make auditions to. After posting the projects live it took less than an hour before the first audition files dropped in and a couple of days later we had a nice selection of voices to go through and select actors from. For any fellow developer we can certainly recommend this approach, its also affordable as they post projects using sub-standard rates and leave it up to the actors to decide if they want to addition regardless.
As it would be, we are not the only ones Internet savvy, voice actors are too! Tom (the writer of Black Plague) supplied the voice actors with the scripts and had a chat with each one going over the script before recording. For some of the key characters it was also possible for him to attend the recording over Skype and give live directions, which has resulted in some very tailored performances for Black Plague.
All in all it can safely be said, voice actors work in a manner that fits our production methods lovely.
One of the more important things you need to do in a game is to make sure that everything is as optimized as much as possible. However, since optimization often happens as one of the last things in development there is not always time for it and the game does not perform as good as it should at release. When it comes to Penumbra: Black Plague, the entire backbone for the game was already made which meant we did not have to spend a great deal of time to get things to work, instead we could focus on making things work fast at an early point in development. For the gamer, this means that Black Plague will run smoother than Overture and we have also been able to add more eye candy and can make the game look prettier without making it run slower.
Next up we also found a large slowdown in the animation code and as we examined it more closely we found several bugs and slow pieces of code. The skeleton that is used as a base of all animations is a hierarchy of bones that usually starts with the pelvis and then spread out to the other bones of the body (spine to shoulders, shoulders to upper arm and so on). This means that to when you update a bone, the positions and rotations of the bones below it in the hierarchy, called children, need to be updated as well and normally this is not a problem. However in an animation all bones get updated at the same time and because the children always got updated as well for each bone, there was a lot of redundant updating. The fix was very simple and just a matter of not updating any children until all bones had had their animations applied. And as if this code was not bad enough there was also a bug that attached all the children twice to each bone making the redundant updating twice as costly. This was also easy to fix and once it was done, things ran a lot more smooth.
The above was just a little taste of the code optimizations done. We have tried hard to reduce processing time on all calculations made by the engine and we are not done yet.