This postmortem is also available in a PDF version.
Decadence was a project developed by eight students at the University of Skövde in Sweden during the period August 2007 to March 2009. The project was a total conversion, which means all art, animations and sound was developed by the Decadence team. The mod was built upon the Source engine.
Here's a short introduction to Decadence:
This postmortem will first go through a project overview, telling the story of Decadence from the project as a whole, where we have dedicated one chapter for each discipline where we discuss how we solved different issues, what problems we had, and finally discuss what we learned from each discipline's perspective.
The postmortem ends with a "final words" chapter, which we dedicated to those who stayed with us and sent us the lovely e-mails and such.
- Project Overview
- Game Design
- Level Design
- Audio, Music & Voice Acting
- Final words
Decadence was developed during a two year period, in which the team went through different development stages along the way. In this chapter we will give you an overall view of how the mod was developed, from the very first idea to release.
In the late spring of 2007 Henrik Alfredsson, designer, artist and level designer of Decadence, was contacted by a friend, a concept artist for the commercial title "The Ship" who had a few weeks to spare and wondered whether Henrik had a project going on that he could contribute some artwork for. Henrik immediately sat down and started brainstorming ideas for a game that could be developed by a small team and during a relatively small time frame. The result was half page of high-concept text that laid the foundations for Decadence.
Core values such as a 2 vs 2 shooter in which players had to move from cover to cover in order to capture an objective and use tactics rather than brute force in order to win, the arena system, unique and vivid characters, focus on storyline and set in a science fiction environment were all there from the very beginning. The original document was also very influenced by Gears of War, the hottest shooter out on the market at the time.
Henrik then pitched the idea to Filip Coulianos, Pontus Karlsson and Johan Bernhardsson, all of which studied different disciplines of game development at the same university. The Source engine became the engine of choice simply because of Henrik and Filip’s previous experience with the engine, as well as the fact that Unreal Engine 3.0 wasn’t readily available yet. Ironically, the concept artist quickly disappeared from the face of the Internet shortly after he offered to help out and never did any artwork.
Filip and Pontus started to dig into how the engine handled animations, model export ing and the like while Johan got his hands dirty with coding. Henrik focused on fleshing out the design document. During this time we had a couple of small developer LANs in which we combined research and development with long hours of gaming and fun. After a short while Claes Engdahl and Tobias Mollstam also joined the project. Claes started out as responsible for developing the visual theme of Decadence due to his concept art skills and Tobias contributed with his skills in web-development while also helping out with game design and management.
It was now August of 2007 and school started again. The Decadence team decided to put up its first milestone; to have a visual vertical slice of Decadence done by September 30th. We also had deadlines regarding the code, and the capture system for the objectives was also to be done at the same date. It would also be the date where the Decadence website would be launched stuffed with cool concept art and pretty in-game shots of the environment we had created. The deadline was really tough. We had no art in-game and 30 days to do it. During this time period we also recruited Mike Pelletier to write a story introduction to the world of Decadence, which was to be posted on the website together with everything else. On top of crazy work hours (30 hours/week) aside from the studies at the university, we decided to arrange a big Decadence developer LAN the last weekend to cope with the deadline. During this LAN everyone in the team worked really intense. The team also got help from Björn Claesson and Jonas Aronsson, two art students who helped out with props and texture art at the time. The deadline was met by a few minutes and the website got launched. News was spread over the Internet, Decadence had officially been born.
The first screenshots weren’t very polished, but the fact that the team managed to pull it off was a huge boost to morale. The coming month was spent to polish the dummy scene (or The Zoo as it was called) with better textures, more models and better lighting and then re-release the screenshots on the website.
Next big thing was an animation course at the university. The Decadence team decided to make a trailer for Decadence during this course to be able to work on the project full time at school as well as to promote the mod and then export the artwork into the engine. Erik Wiklund, a new core team member joined to help out with animation and art. The trailer took 10 weeks to develop and was completely done in Maya. The music got outsourced to composer Theodore Wohng, all the way from the Commonwealth of Australia. The result was a very moody trailer which was a way to inspire the team and to set the theme and audiovisual feeling of the universe rather than to show off cool gameplay. This trailer was never shown outside the university because we didn’t want to confuse anyone about what the mod would be about, however; a couple of screenshots from the trailer was available at the website for a period of time. After this trailer got released internally the production slammed to a halt. The team spent a couple of months resting and planning on what to do next before the project started to move forward again.
During a course in spring 2008, the Decadence team got a chance to work on the visual and design parts of the mod full time at the university. We were also offered office space with seven computers in a small room at the university. During this period Sara Wendel-Örtqvist joined the team as a story writer and voice actor manager. The project quickly gained momentum again as our programmer, Johan spent many weekends and evenings helping out with coding. Gameplay as well as many levels also started to shape up and lots of play testing was being done. In addition to this; weapons and characters were being designed and implemented into the mod. This period sparkled with energy and new props and textures was being put into the mod each day that passed! This accelerated development to an end prior to the summer holidays but half of the development team decided to continue working during the summer holidays of 2008. During this period, parts of the core game mechanics got re-designed, audio was designed, tons of prototype levels were tested and all the characters got done as well.
After the summer holidays, August of 2008, the team had the opportunity to continue developing Decadence as part of a follow-up course, which also let us keep the office space. By this time the design of the mod was almost done, we had a clear goal and had tested dozens of prototype levels to work with further. It was by now that the mod started to look like it does today. It was also during this period that the official levels, dec_boulevard and dec_deathrow, saw their first steps in development. Progress was being made steadily and the project continued to move on forwards. All the pieces that previously had been created started to be put into place and the project could be tested regularly by other students. During this period we focused heavily on accessibility and the player experience by putting together a test team of 30 people from all over the world to help us find bugs and evaluate the mod. This effort did not prove to be very successful as it was hard to keep the testers engaged and a lack of communication between the team and the testers formed.
In September, 2008 the Decadence Development Kit (DDK) was released. This was an early version of the mod bundled with documentation and beta versions of the Decadence levels to inspire fans of the mod to create content of their own. This effort did not help spark any unknown talents of the Decadence fan base, probably due to the small publicity the mod had gotten and a somewhat skeptic audience.
The team also expanded with Sebastian Aav (music) and Luke Hatton (sound effects) accompanied by voice actors Kelly Harrigan, Edwyn Tiong and Melissa D. Johnson who together created all the sounds, music and voices in Decadence.
By January of 2009 the mod was very close to being finished. A couple of minor features needed to be addressed, and some models and textures needed further polish. We also got kicked out of our office due to other students needing the space. This loss postponed the release of Decadence by two months, because now we had to try to work from our homes instead of a workplace with computers, whiteboards and everyone available at all times.
The Decadence team got contacted by sites such as FilePlanet, Podcast 17 and Planet Half-Life to help out with promotion and web-space. A month before release the Decadence trailer came out, and two weeks after that the Decadence introduction movie.
Finally on March 28th, the mod was released for the world to play.
We decided that Decadence would be a total conversion with 100% custom art, audio and animations. We had to learn literally everything about the technical aspects of the Source engine. In the early stages of art development we focused heavily on two very different, but equally important things. First off we put a lot of effort into getting our heads around the technical aspects of the Source engine. We made sure we knew how to export static models from Maya to Source, then we moved to adding animation to static models. Further on we replaced the first person weapon with an animated grey dummy-weapon. We also made sure we understood how the material system worked. This was all done in the very beginning of the project to make sure these very basic, but still extremely important things wouldn’t cause us trouble, or put the whole project to a halt when in full production. This turned out to be extremely valuable and helpful later on.
At the same time Claes Engdal, who amongst other things developed the artistic style of Decadence, brainstormed environments, themes and did a lot of rough concept art to get the team together. Discussions about the presence of advanced technology and the presence of the infected plants was a very common topic during the early brain storming sessions.
In August 2007 it was decided that we should go about creating the Zoo. The Zoo was a dummy environment created in-engine to serve as a "vertical slice" (a vertical slice is a section of the game that gets developed in forehand to get a grip of how the game should look like when it is finished) of the mod and as a scene were we could test new props and textures to ensure consistency. Ironically, we never used the scene to test new props in at all, but we learned very much about the art-pipeline, estimating time for simpler props and how to work together. It was also worked as a good milestone for the project and worked as an efficient marketing tool. We could put images on our website saying "this is how the mod is going to look like" drawing lots of attention even though we had no game at all.
After the Zoo was done we did a trailer for Decadence at the university. We hoped to salvage many of props and textures from this project which we could export straight into the engine, in most cases this didn’t happen, however; two very important models where being made during this period: Echo Aelian (one of the playable characters) and The Harley (his weapon). Both of which stayed pretty much untouched until the release of Decadence. Despite the fact that much of what was created during the trailer never was used in the mod the project helped us to get further experience with working together, and as a part of our course we also took notes each day about what we had been doing and how many hours each prop took. This helped us become a lot more accurate when estimating completion time for most art related things.
One other important thing we learned during the trailer project was to keep a consistent file structure in a project. During the trailer project everyone kicked in full gear and started to create content without first talking about where and how files should be added. This, in the end, resulted in a total mess where no one had any idea about where files were put and what name they had. We took a more organized and professional stance with Decadence after this trailer and sat down for a whole day compiling a 6-page document with naming conventions for everything, both in the source folder, and in the mod folder.
Claes Engdal was solely responsible for character design, modeling and texturing as well as two of the weapons. The other weapons where designed by Filip Coulianos and Pontus Karlsson. The characters were designed first and then the weapons. Due to the fact that different people designed different weapons the style of the weapons differs from the style of the characters. In hindsight it would have been much wiser to have the same person design characters and weapons.
Designing weapons that look good in first person view and still works in third person proved to be a challenge. The trick was that a weapon could look good in first person view, but as you put the weapon into the hands of the character, the handles could be too far apart for the character to wield it, or look really bad. Some of the weapons in Decadence had to go through several iterations until we found a design that worked in both 3rd and 1st person view. We found that having our animator have a say in the weapon design really helped out to come up with something that worked.
During spring of 2008 we had an opportunity to show off the Decadence project to a couple of folks at Massive Entertainment, most known for the Ground Control series and World in Conflict. The art team had a talk with the lead artist of World in Conflict and got an insight in how professionals work. At the time the team was in a small dip as progress was going somewhat slow. During this meeting we learned something that was, for us, a paradigm shift. The lead artist gave our art pipeline sharp criticism.
The way we worked at the time was to make one prop at a time. Person A got the request to make a car. He sat down for about four days until the car was modeled, UV-mapped, textured and then exported it into the engine. Then person A got a new request and did the whole thing over again. Massive’s lead artist pointed out several issues with this method.
- First off; working with the same model for days, or even weeks without doing anything else can be quite tiresome and will decrease productivity.
- Secondly; if something doesn’t work when the model is exported into the engine, may it be proportions or what not, it can be very difficult to address this issue without being forced to re-do parts or even the whole model.
- Finally; Doing one model at a time makes it difficult to see the big picture, and the artist may fall into the trap of overdoing props that may not even be used at all in the level.
What the lead artist suggested was that each artist should work with several models in parallel, and export the models into the engine as soon as the basic shapes was in place with just a grey texture. This way we could put much more effort into looking at the big picture and what models were used a lot and what models that needed more detail or adjusted proportions. Only when proportions and everything felt right should we do UV-maps and start texturing.
It also helped us out with productivity, because as soon as we got tired of a model, we simply switched to one of the others we were working on in parallel. We used this method as much as we could, and started to do the same when doing level design by working on all three arenas at the same time. See the "level design" chapter for more details. It made the work more stimulating, fun and improved the overall quality.
A couple of months before release we sat down and had a look at all the content we made for Decadence. As some of the things we did was a year and half old it became apparent that most of the old textures weren’t up to snuff in terms of quality. We had learned so much that one could almost see the progress in the art that we have made. To solve this issue Pontus, the guy behind most of the world textures, started revamping all of the 80 world textures we had in-game by adjusting levels, correcting colors and adding detail. By putting 15-20 minutes on each texture, sometimes much less than that, we managed to increase the overall quality of the textures to new heights. In some cases it was like a grey hue had been taken of the texture.
The team had a dedicated animator, and we concluded that we could spend the extra effort and time into having custom animations for all characters. All the animations in the mod were being done by Erik Wiklund. Rigging and animation of the characters were being done in XSI, however; rigging and animations of first person weapons was done in Maya. The animation scripts were based on Half-Life 2 Deathmatch, but some functionality to the scripts were added to allow animated idle animations, for instance.
- Vertical slices such as The Zoo are a good thing. It’s good for keeping the art team working and to have feasible milestones in the early stages of a project helps out with early recognition on the Internet.
- Keep file structure extremely clean and well documented. No one should be allowed to commit files without knowing exactly where they should be located and naming conventions.
- Keeping a record on how much time each asset took to make will help anyone become very good at estimating completion time for assets and characters.
- Working with iterations and testing models in-engine before they are textured and working simultaneously with several models proved an extremely valuable practice. This keeps quality consistent, avoids wrong proportions, keeps up motivation, and can speed up production time for assets.
- Make sure you know as much as you possibly can about the engine you are working with before the project actually starts. This way you may easily be able to tell what will and what won’t work.
- Don’t forget to take a look at the content made a while ago and see if you can improve on that with the new tips and tricks you learned along the way.
- When designing characters and weapons, make sure they work both in 1st and in 3rd person views.
Whilst the artists worked on the technical side of things, such as importing models and animations into the mod engine, the design could grow in peace. The fundamental game design grew out of the original high concept document written at the start of the project, and was radically different than what the mod ended up to be. It’s given that a document will change with time, you figure out what the best bits are and which features don’t work out. Decadence was originally planned to be a very tactical shooter, moving from cover to cover trying to flank your opponents while still advancing to the capture point. This rather slow-paced action game got infused with Half-Life 2: Deathmatch’s more hectic gameplay and the result was a much more high tempo game than originally planned. This sudden change in design could be problematic, however; we conducted continuous prototyping for everything we implemented. We managed to implement a prototype for the capture system within days by just using Source scripting capabilities. Rapid prototyping could tell us which features worked so we could expand on those.
The play testing was mainly performed by the Decadence team at the office. It was not until the mod got into full production that regular play tests with non-Decadence team members were being performed. At first we invited teachers and some classmates to try it out and let them give us their feedback. During the play tests it became obvious that the main issues the mod had was regarding understandability. The players didn’t know what to do and where to go. They also had issues with identifying team members. To address this we added icons over team mates and an icon on where the water node was situated to help out with navigation. After adding those features the mod got a lot easier to understand for beginners, but we didn’t. However we didn’t stop there.
We also implemented game tips that are being shown as the player waits for respawn to further educate the players of new features. Most games has these game tips during loading screens, but that way a player is being far less frequently exposed to the tips compared to every time the player dies.To further focus on ease of access we put a lot of effort into developing a short tutorial movie explaining the vital parts of the mod. We had test groups watching the movie before play testing and compared how they played with groups who hadn’t and it was obvious that the tutorial video did miracles. We made sure this movie was released a week before the launch of the mod to ensure that at least some of the players would already know exactly what the mod was about at launch. The tutorial video was also being played after the mod was installed to instruct those who hadn’t seen it on YouTube.
There has been some debate around the 2 vs 2 gameplay featured in Decadence, and there are a couple of reasons why we chose to go that route. As mentioned earlier, the design was originally supposed to be a slower paced game than what it turned out to be, resting heavily on teamplay. We thought this idea was still applicable to the faster gameplay, and having just you and another person on the team created a much more valued bond between players. If you want to succeed, you need to have your team mate with you. It was a fun way of making the mod more personal.
You can pick between four different characters in Decadence, which decides which team and weaponry you get. Since there are only four characters in Decadence, it gave us the chance of giving the world more detail. We could craft a backstory and a unique appearance of each character, not only did this give the world more life, but a player could identify each other easier. This also lead us to base all the maps in Decadence within the same city and sharing landmarks among them. Lastly, the original decision to limit ourselves to four players was fundamentally a question about time restraints. We thought it was better to aim to develop a smaller game, rather than approaching a giant time consuming project. We wanted to finish the project before we had to leave the university.
Balancing the two classes turned out to be quite difficult. Everyone in the team stuck with their favorite class during play tests from very early on, and since only the team played the mod in those days the classes got balanced after how the dev-team played. This got addressed as new players had a try and we all could see our mistake. The main difficulty was to balance the characters secondary abilities as they worked well in certain situations. To address this, the team focused on balancing the primary fire by having play tests were players only were allowed to use primary fire until it felt right and then start playing with the secondary fire. This "one thing at a time" strategy turned out to work quite well.
Henrik Alfredsson was the visionary of the mod for a long time during the dark ages and did the rough job of writing most the documentation in the beginning. We used a Wiki as our source for information from day one which turned out to be a good decision. As we moved into the office we used the wiki less often and relied on a whiteboard more and more. The whiteboard helped us keep record of what to do and was much less tedious than a wiki. The only down-side was that once something was erased from it, we could never get it back.
As the project evolved more and more people wanted to have their say in what should, and what shouldn’t be in the mod. The design process changed and became much more chaotic. During meetings where big decisions were being made about the product the whole team would be present. Only the one responsible for implementing the idea had a final say. Usually the one with the best idea, or the thickest skull, got his or her suggestion through.
Even though meetings could sometimes be tedious due to the long discussions back and forth they also helped out as suggestions and good ideas, often unexpected, came up and solved different issues. We never wrote down what was being decided during meetings which at times turned out to be fatal since a few weeks later on, when a particular decision was to be implemented, and no one could remember what the decision was. Most often when unexpected problems arose, a meeting was being held in that very instant only allowing people being present in the office to take part in the decision making.
- Educate the players about your game and how it works in every way you can. Game tips are a good fallback should a player have missed a small feature, but far from all players read the tips! Spending time to make a well made tutorial movie and a tutorial level teaching players the essentials proved to be extremely effective. Make sure this tutorial movie is accessible everywhere, on YouTube, at your website, in the mod menu and during the installer. It will work both as an promotional tool for your game as well as an educational tool.
- When balancing, try to strip down the mod and balance one feature at a time. Have play tests with only certain units or features allowed and balance "one thing at a time".
- Prototyping helps you find issues with your game design quickly and can give you precious time to make adjustments accordingly.
- Play test often and listen carefully to what the testers say. It is here you will learn what makes and what breaks your game.
- Keep a record of the decisions being made during the meetings. It WILL save you time.
A Decadence level is divided into three completely separated small levels which we call arenas. The goal is to control all these areas. The mod starts in the middle arena , with the two adjacent arenas being controlled by each of the teams. Both arenas on each end of it are controlled by the teams. If the middle arena is captured the mod moves to the arena in favor of the winning team. The mod goes back and forth until one team has captured all three arenas. Early on we focused the level design on just having interesting spaces where we could test the mod play mechanics. The levels were extremely rough as quality level design wasn’t a big priority at this stage.
What we did instead was having brain storm meetings in which everyone in the team who wished to attend could do so. During these meetings we discussed what environments that could house interesting game play, then we wrote down the ideas in sticky notes and put them in a pile. After an hour of brain storming and discussion we had a nice pile with both good and not so good ideas, for example one note could just have a sentence saying "something in style of The Matrix pillar entrance". We then put the notes in a line where each note represented an arena. We then created very rough in-game representations of the layouts and tried them out to figure out what sort of layout the tactical shooter we had in mind would work best at.
During early production (February - June 2008) we thought that the arena system would make level design for Decadence much quicker as each arena was so small. It turned out to be the opposite. Making a level consisting of three arenas took a lot of time. As we during early production developed one arena at a time and didn’t iterate lots of work went into the trash can as the level designer got tired of the concept once the first arena was done. At least two arenas filled with environment art and good game play never got shipped with Decadence due to this issue.
During the summer of 2008 some of the core gameplay got changed and we decided to do rapidly prototype layouts to get a better understanding of how Decadence played during this period roughly ten different arenas were quickly designed and tested with one to two day intervals. What we learned during these months helped us out considerably when we started working on the levels that shipped with Decadence 1.0. Boulevard and Deathrow were being developed pretty much in parallel from August to January of 2009. During the development of Boulevard and Deathrow we developed all three arenas at the same time and iterated heavily. The first play tests of the layouts were being done only days after the work had started and we continually tested the levels all the way to the shipping of Decadence 1.0.
During the testing we were struggling with finding interesting opportunities for players in a 2 vs 2 playground. We needed to find the sweet spot between a too big level where players couldn’t find each other and a level that was so small that players couldn’t apply tactics. Writing down what we learned proved useful to get our heads together and putting the thoughts to print proved a valuable lesson when keeping level design consistent.
As we did prototypes and tested them we came up with the following guidelines:
- The time from spawn to capture area should be between 10 and 15 seconds.
- Anyone should pick up a layout and learn it in a few minutes.
- Players play very differently. We tried support different player styles within our levels by giving each route to the water node a special "style". One could be more stealthy but also longer, and another one really fast, but also very dangerous.
- The water node area is quite fortified with cover that defenders can use to cover all entrances. The number of entrances into the water node area is usually two or three. Two of them goes straight from the spawn, while the potential third takes longer time, is more dangerous but because of this it is not often covered.
- As we wanted the mod to be appealing to the professional community we also made sure that areas were mirrored to make sure the levels were 98% balanced.
We also asked ourselves these three important questions:
- Where will the teams first encounter each other in the arena?
- Is the capture arena fun and interesting to attack/defend?
- Can you make up a quick strategy based on your first crossroad?
During September of 2008 we released what we called "Decadence Development Kit" (DDK for short) and an alpha build of the mod on our website. We did this to stimulate our community and make level designers interested in Decadence. Our hopes were that people would start developing levels for the mod to make sure that we had several levels available, or in production, at the release. We spent a lot of time to get the documentation together and putting it all in a nice package.
Anyone who decided to register on our forums and joining the developer group could access the DDK and the alpha build. We encouraged all people joining to share the alpha build with friends to help out play testing testing their levels.
About 50 people signed up and we started to send out regular e-mails to everyone letting them know about the development of the mod. We also tried to encourage everyone to send their levels to us so we could test the levels for them and give feedback to ensure that even the third party levels would follow the same design principles and meet our quality standards.
Out of those 50 we got in contact with about 3 people. It seemed very difficult to stimulate any contributions from third party. After release it turned out to be much more easy to recruit team members doing level design than to have this third party community going.
- Working with iterations is extremely important, even when doing level design. Never start doing art-passes until the core gameplay is set and fun to play.
- Core gameplay affects level design very much. If core gameplay changes one would need to re-evaluate level design guideline principles as well.
- Don’t be afraid to do prototypes that never see the daylight or throw work in the trash, the lesson you learned from the experience is often much more worth than the time you spent on the prototype.
- Don’t start with any high quality level design too early in the process, instead focus on research and have brainstorming meetings to find good places that could become interesting layouts.
- Releasing development kits and supporting third party levels proved to be more demanding than rewarding for a small project such as Decadence. If you need more maps for your mod, get more level designers into the team.
- Make dummy levels and try them out in your game as early as you possibly can. We had our first play test after 8-10 hours of work.
- Writing down level design principles helps you get your head together and makes it easier for a team to achieve consistency when it comes to level design.
In the beginning, the mod was designed to be a lot smaller than it eventually turned into. Therefore most of the design of the code was made to follow this original rather simple design and not incorporate some of the more advanced features during the progression of the project. The best example of this was the node-entities; from being rather simple (somewhere like 150 lines of code) they grew into more than 1500 lines of code, and this was for a simple entity. Since the project only had one programmer (who only worked part time on the project) an early decision was made to keep as much of Half-Life 2:Deathmatch as possible and make smaller changes that made Decadence feel unique but at the same time result in a minimum amount of code to be written. In the beginning this worked out fairly well and only smaller changes were done.
Another big decision early in the project was to extract as much editable values from the code as possible to allow the rest of the team to make changes to the gameplay. This is of course very common and done for most projects but we found a problem where group members didn’t exactly understand how the different variables worked together and on top of that there were network issues that made some problems rather difficult to track down.
Initially the code base for the Source SDK was a big problem since there are very long inheritance chains and with a initial problem with debugging this slowed the coding down a lot since every feature first had to be researched, then designed (where in the code to make the change) and then implemented. A few issues and bugs with the SDK were also detected during this time that forced the team to code rather big changes in a few places to make the code do what we wanted.
Since our initial ideas for the design of the mod didn’t work out, most features went through rather big changes during the development of the project. From a programming standpoint this would not have been a big problem if we had chosen a smaller engine or developed one from scratch. Since we started out with a very big code base some changes to our early decisions later turned out to take very long time to change. Every change that was done in the code would first need to be made and compiled (if lucky you didn’t have to recompile both server and client projects) and then start the mod and try what had been changed. Most of these bugs also required two or more players and some also required latency and was due to race conditions. As a result, every change made to the code could take up to 15 min to test (and this was if nothing was debugged and someone else wasn’t busy).
Programming wise, this prototyping-approach to development cost a lot of extra development time and gave us code with less quality in the end. A big problem was also that this change happened gradually, for it was very difficult to design for this kind of work.
A big part of Decadence was the full screen effects we used and for these we needed to write shaders. To do this in Source a new material needed to be created in the material system. Just about the time we were going to implement the new shader, Valve released (what was) the new SDK (Orange Box). First of all, this set us back somewhat since our coder wanted to minimize the code needed to be migrated to the new code base, and after this the SDK still did not support custom materials. In order to create Decadence, we were therefore forced to keep Decadence on the EP1-source base (after the release of Decadence, the code base was converted to OB but since we pulled the plug on the project, this version was never released to the public).
A big problem that arose during development was that a great number of players used hardware far bellow our min-requirements and miles from other games released around the same time. We needed to optimize our shaders as much as possible, but still there was a problem with many players not being able to play Decadence when certain shaders were used (in most cases, the health shader proved to be the biggest problem).
One difficult part of this development was how to concept the shaders. Some effects were not very clear on how they should look and there was a lot of communication between design, graphics and programming. There were also some problems in our shader pipeline (design->looks->programming) that set us back further. In the end, we wanted to improve most of the shaders but simply didn’t have the time.
A rather late feature introduced in Decadence was our stats system. The general idea behind it was to connect all servers to our website and update stats live on the homepage. This would allow for a centralized place for stats for all the players where we could rate them and a place where we could create matches. We could also collect information on every death/kill, who won matches and so forth. This allowed us to check the balance of the the maps (showing us that both the neutral arenas were extremely even).
The system was implemented using HTTP and cURL, and this proved to be a very flexible solution for us. Our main problem with other libraries was that they didn’t work very well when working with many threads. Sometimes, up to 20 threads were waiting for messages at the same time and some libraries proved to be very unstable when doing this. Another problem was how to connect players to the site in a secure way (secure in the way that an account shouldn’t be hijacked). This was solved by having a login-menu in our special Decadence-options dialog. This allow users to connect their current playing session with their community user.
Since there was only one programmer in the team, he was in charge of all parts of the coding and had to learn most aspects of Source and work a little on everything. Just learning about how all of these APIs and features took up a lot of time that could otherwise have been used for development.
Since we in the Decadence team play strongly on being a complete visual remake, we also wanted to have custom menus in the mod. Therefore, a lot of work went into the different dialogues in the mod since the normal res-type way of doing it didn’t work well for us. We made everything in code and this created an issue with scaling the menus for different screen resolutions. This is something we should have planned on earlier since this really took much longer then anticipated.
- Make sure you know what you want to do when setting off. Prototyping may be good from a design standpoint but may produce less quality and more bugs in the long run.
- Validate all changes made by the rest of the team (script wise) and document how different variables are used by the source. Do not expect designers and artists to know how network programming and lag compensation works ;).
- Do not put all your eggs in one basket, have several programmers that can focus on different parts of the code, especially if other members of the team is directly dependent on the work.
- Remember that the Source SDK contains bugs and has undocumented limitations that makes some things rather difficult. Work around problems; do not waste time on them.
- Feature creeps are very bad, avoid them. • Make sure to have a good decision chain and avoid making unnecessary changes.
As the team wanted a fast FPS game with no cutscenes at all, it was up to Sara Wendel-Örtqvist to try and find a new way to present a story. She believes that any game can benefit from having a story with characters the player’s will feel something about. Love them, hate them, loathe them or like them, any any emotion felt for the characters is good. You need a balance between love and hate. Too much love and the players won’t like when bad things happen to either character. Too much hate and the player end up hating not only the characters but also the mod. You need characters with depth and layers, with personalities that make them unique and with different personality types that might clash to make an interesting story.
We decided on having four characters, two in each team. After some discussion, we all agreed: the mod would feature three female and one male character. The first two names were already decided and then Sara had to find two female names. The four characters became Zoe Maximilia and Echo Aelian on the Looters team and Nikita Cayenne and Yelena Marikova on the Knives team.
Sara had already decided that she wanted to write background stories for each character in order to give our character modeler something to work with. These stories were then put on the webpage where anyone could read them. She started with Echo Aelian and realized with the help of our teacher, Ola Holmdahl, that this character was boring and kind of obsessed with meat. Henrik Alfredsson was kind enough to lend Sara the book Creating emotion in Games by David Freeman and the author had a suggestion on how to make character personalities. He called it a "Character Diamond" and it meant that the writer decided on three to five different personality types for each character. Sara took this method to the next level; she gave each character four personality types and then wrote a short description on why these characters had these types. She tried to implement each personality for each character into their background story and later into their voice lines. Sara gave the Echo-character a "need to be needed" which gives him more depth and made him more interesting. Here is the "Character Diamond" she wrote for him;
- Gladiator - Fought in the Stadium to gain his freedom. Autodidactic warrior, able to use all kinds of weapons and hand-to-hand fighting.
- Reckless - Have no fear and fights without a thought of his injuries or if he’ll be killed. May give his own life for a comrade.
- Needs to be needed - Because of his family’s death, he needs to be needed by somebody so that his life isn’t useless. Have no wish to die so he must make his life worth something to somebody.
- Dead family/nothing to live for - He has no wish to die but have nothing to live for. That’s what makes him reckless and that’s why he wants to be needed.
So, how do you tell a story in a game when you can’t use any cutscenes? You let the surroundings tell a story. Old decayed buildings with lots of plants growing all over them and environments that look like a catastrophe hit them not long ago. Sara wrote short descriptions about places in a city where the mod took place which then the level designers used to make their levels. Not all of them were used but it might have given them the right idea about Decadence’s environment.
What else can be done? You hire voice actors, write lines for them and coach them into impersonating the right character. It was not easy finding good voice actors and we recommend anyone who needs voice actors to do this as soon as they know what and whom they need them for. As it has already been written, Sara made "Character Diamonds" for each character and then used them to write voice lines and coach the Voice Actors she found. Edwyn Tiong, the Voice Actor for Echo Aelian, got, amongst other, these lines:
As Echo takes cover he shouts a taunt at his enemies before charging into the fight.
Echo_taunt01: "I love my HARLEY!"
Echo_taunt05: "The only good Knife is a dead Knife!"
As Echo gets killed, and then respawns to get another try at winning the mod he shouts this at his teammate:
Echo_respawn01: "I got your back."
Echo_respawn02: "I’m back in the mod."
Echo run out of bullets in a firefight, take cover and shout the following to his teammate to let her know that he needs covering fire.
Echo_reload01: "Reloading! Zoe, watch my back."
Echo get hit by too many bullets than he can handle, fall to the ground moaning:
Echo_death02: "I’m down!"
Echo_death03: "Ah damn it hurts!"
As his teammate lies on the ground hurt, he pull her up to get her back into fight saying the following:
Echo_revive: "Get up!"
We realized after some play testing that the mod was hard to understand. Some things were implemented to solve this, including game tips. We decided we should have both game tips and excerpts from the background stories displayed. While the player was dead, she could read a game tips and an excerpt from one of the character’s story.
The story in Decadence is told by the surroundings, as well as the voice lines, the excerpts from the four character’s background story and the background stories that are found at the webpage.
From the very beginning we were determined to make Decadence a total conversion, and audio is a big part of that experience. During our first media release way back in September, 2007 we got contacted by various composers who wanted to contribute to our project.
At that point in the project, we had no real need for music since Decadence was nothing more than an idea and a bunch of screenshots. However, as a part of a university course, we had to create a trailer which included audio. This turned out to be the first Decadence concept trailer. We thought that working with a composer during this trailer project could help us get some experience with outsourcing. Theodore Wohng helped us out and composed a musical piece for a trailer we created but due to personal reasons he decided to leave the team a couple of months after the trailer was done. Upon his departure, Whong suggested a couple of musicians we could contact. Among them was Sebastian Aav, who eventually ended up making the entire score for Decadence.
After this we put little effort into getting any help from outside the university campus until summer of 2008. We had to this point some in-game art assets such as environments, first-person weapons and characters. We decided it was time to get a sound effects artist on-board to bring our world to life. We learned from previously outsourcing that we needed a robust outline of the work that had to be done by the sound effects artist. This was to ease the hurdle of getting into a already far-along project as much as possible.
First off, we compiled a huge list with all the sounds needed for the mod: effects, music, voice etc. . This list consisted of an ID-number, filename, directory and additional comments for more complicated sounds such as the mods capture feature. When designing this list we tried to keep it as realistic as possible in terms of the amount of sounds needed. For example, we cut down the number of bullet-impact sounds per material as well as making similar materials sound the same. We also concluded to have the same footstep sound no matter on what kind of material the player was stepping on. Below is an excerpt from the document showing the documentation for one of the weapons in the mod:
3. harley_primary_fire1.wav -Implemented
4. harley_reload.wav; -Implemented
5. harley_secondary_fire1.wav -Implemented
7. harley_secondary_load.wav - special2 -Implemented
8. harley_secondary_loop.wav - special3 -(needs to be implemented)
6. harley_secondary_full.wav - special4 -(needs to be implemented)
Secondly, after the list was done we sat down and rewrote the standard sound scripts included in Half-Life 2: Deathmatch. We deleted all the unnecessary, pre-written audio scripts, courtesy of Valve Software, and re-directed the audio we needed to our own file structure. This way we had complete knowledge of all the sound files Decadence used and had full control of it.
Lastly, just to make sure we got it all right, we also put temporary sound-files in for all sounds. These dummy sounds were recordings of the voice synthesizer Alex from Mac OS X, simply saying the ID number of that audio file.
After the list and dummy sounds were done we started looking for a sound effects artist. One of us in the team knew a guy in Australia who offered to help us out. He had little experience with both working remotely and working with Source. Content delivery milestones were continuously being pushed forward to a point where we decided to contact someone else. Like a knight in shining armor Luke Hatton sent in an application as a sound effects artist during this time. In his reel he films himself cutting down a tree in someone’s yard while holding a microphone to record the sound, given this we instantly took him into the team and put him to work. . Luke became solely responsible for all the sound and environmental effects in the mod and proved an invaluable asset. Luke also suggested new sounds that should be added and most often we agreed.
The music was composed by Sebastian Aav who we contacted about the same time as Luke got on-board. Decadence didn’t require very much music and Sebastian did an outstanding job of delivering amazing tunes at the very first iteration. In addition to all the scores played in-game Sebastian also made a custom score for the promo trailer released a couple of weeks before release.
It isn’t easy to find voice actors that will work for the pleasure of work and not for the money. There are several forums out on the Internet where anyone can post descriptions of their project and what they need for it. We used three different forums as well as a Yahoo-group named VoiceActorAppreciation. The three forums were:
- VoiceChasers Voicechasers.com
- VoiceActingAlliance Voiceactingalliance.com
- VoiceActingClub Voiceacting.proboards.com
We got several male voice actors who were interested in the part as Echo Aelian, but only two female voice actors. After listening to everyone’s samples, we decided to use Edwyn Tiong as Echo Aelian, Kelly Harrigan as Zoe Maximilia and Melissa D. Johnson as both Yelena Marikova and Nikita Cayenne.
After reading some threads about how to post auditions, this was written and posted at the three forums and the Yahoo-group:
We are a small development team in Sweden who are currently working with a HalfLife 2 mod named Decadence. We are in need of three female and one male voice actor for our project (or one female who can do multiple voices). Each of our four characters will have about 10-15 different lines. In addition to the two audition lines, we accept other work samples as well.
The mod Decadence is a story-driven multiplayer total conversion based on Valve Software's ® Engine and combines the personal relationship to characters and surroundings of single player games with an adrenaline filled multiplayer experience. Decadence pits two teams against each other in a fight over territorial control. Each map is designed in stages to offer a more compact and action filled game play that puts focus on teamwork and strategy.
For more information about the story, please check Decadencemod.com
Voice Type: Female, 17-20. She should have an accent that, in some situations or some words, sounds a bit like Russian or Slavic. Her voice should be pitched somewhere between high and medium. She should be hot-tempered.
1. We need to take that Water node!
2. Let’s kill them all! Don’t mess with me, I’ll kill you!
20 September 2008
Recording & Sending Information
All files must be WAV(mono).
Send your auditions to voiceactor@Decadencemod.com
If the files exceed 10 megabytes, please zip them down before sending them.
- Get in touch with voice actors as soon as you can! Make sure you have deadlines for them to follow. Coach them, make sure they know when, where and how to say their lines.
- Never ever give them a bunch of lines without explaining to them how they should sound. Ask them to record the lines in different ways, if you have just a few lines that will be repeated over and over again then two different ways of saying the same line can save your day.
- Give voice actors some space too, if they have ideas on how to record your lines, let them. They might know something about your character that you,yourself didn’t know and that may make the lines sound better.
- Voice actors might come up with new voice lines, then let them record them and see if you can use them in your game. Make sure they know what kind of game you are working on and what kind of character they should impersonate. The more they know, the better.
- The complete list of voice files and the fact that we already had laid out all the groundwork proved extremely helpful and minimized confusion. It helped us focus on how everything should sound and collaborate efficiently.
- Make sure that anyone working remotely has someone within the core team to report to, and that that person is available as often as possible to help out if a question, or problem, arises.
Decadence got released March 20th of 2009 as promised. The deadline was met and the development team had a huge party in which the attendees could witness the first matches being played only five minutes after the official release. During the first days the mod got downloaded thousands of times and there were players playing day and night, but pretty soon fewer and fewer players were online at any given time. Surprisingly few bugs emerged except for the a lag compensation feature that was turned off in the code and had been forgotten to be turned back on. The team was not aware of this since almost all of the tests were being played over LAN. A quick patch (1.0.1) was released after the first week correcting this issue. By this time there were rarely any players playing and the mod, at least from a public perspective, died.
After release there were several meetings on how the team should address the complaints and respond to the feedback given by the community. From the huge amount of feedback the team got it was difficult to pinpoint any obvious feature that was missing or needed to be addressed for the mod to be successful, it seemed like the community just wanted more of everything. More of everything is something that would just take to much time to make.
A month after the release the team started looking for mappers who wanted to help out. Due to the positive feedback the mod had gotten regarding art style and level design this wasn’t too difficult. Weekly Skype meetings were arranged and everything worked well for a month or two however lack of motivation, team members leaving to get a job in the industry, and simply the urge of doing something else slowly crippled the team which eventually led to the mod dying. This time for real.
We would like to thank everyone who tried out our mod and gave us feedback and support during our development. Thank you for making this mod possible.
// Signing out, the Decadence team