Tuesday, 8 October 2013

Development main changes (Making-of Post-mortem)

First steps

At the beginning of the project we planned to add several mechanics, like a simple 3rd person shooter. Our plan was “Starting with something small”, we only wanted to develop a few short levels that could help us telling the story we were planning to tell. But during one year we realized that a RTT and a TPS are two different games, and one year is quite little time to develop two games. In fact, for a student’s team, developing a single whole game is quite hard work too (Even having 3 experienced programmers).

We started with this project on 2012 September. We hardly knew each other and, even knowing that we wanted to make a game, we didn't know what kind of game we were comfortable with. So we iterated on the idea of RTS, RTT, TPS, until that evening when we made "the brainstorming". We mixed Half Life with Apocalypse Now but using it in a biker’s context. A few weeks later we found that our idea was already exploded in the TV serial "Sons of Anarchy", where one young man discovers the truth behind the scene and try to get away from that lie.


It's time to start seriously

On January we finished our game engines module on the university. We hadn’t enough information about the available game engines, neither experience working with them, but at least we knew the features of each one of them. At this point we knew that our game was too big to expend time in fighting with UDK or CryEngine, and Unity 3d looked like the more suitable idea for a quick but big development. So we started the plug-in research, we coded our first shaders and we started coding the main core of our game.

At this point the roles were quite clear, Carlos and Xavi started with the core and the Hud programming, and I started with the Main and Game Menu. We found a great plug-in that allowed us to make the 2d items in Flash but, unfortunately, we didn’t have any 2d artist, so the most of the images we used were dummies that we planned to replace with renders later. That was great for the Hud but the main menu had to be different. Due to these reasons I decided to model, animate and run it in 3d. In this way the Main menu was the first finished stuff on the game but it took more time than we were expected.

The Earthquake

And then we reached May. Xavi and Carlos had the main core done. We had a lot of stuff done for the TPS mode and RTT mode, but our game was quite far from the end and the time was running short. So we needed to remove stuff and to focus on the main “awesome” features of the game. As a result, we decided to remove the 3rd person shooter mode from our game.

We had designed the AI core thinking in sharing the most of the code for both gameplay modes, but the fact was that the deeper we were diving on the RTT mechanics, the more complex was including the 3rd person features. But, even with the increasing complexity of the core, we were not sure that we couldn't afford that project. But then one of the artists left our team. This was the biggest challenge for us. We had enough work for five people during two lives and now we were only four. And, due to those circumstances, we realized that we needed to remove stuff and to focus on the RTT mechanics.

As a result, our roles changed a little bit. We were initially 3 programmers and 2 artists. But at that moment we needed an additional artist to replace the missing one.

I think that it’s important to understand what role we had and what were the main changes that we needed to do:  

  • Carlos was the main programmer of the code, and when the pathfinding started to create problems he was the guy who replaced our initial module. He had programmed the Hud for the main gameplay. So he was the programmer with the deepest knowledge of our core. Consequently, he took the lead.
  • Xavi had worked the most of the time on the 3rd person mode (which was discarded in order to move Xavi to other tasks like the RTT effects programming) and had helped Carlos with the core; he coded the sound engine, and had created several particle effects.
  • Marc had modeled several buildings, some characters and props, and he also had created some preliminary scenes with unity.
  • And I had modeled the entire Main menu, the first Harley (Yeah!). I had coded the entire Main menu taking care of the screen ratio and I had helped with some shaders and other stuff.

Unfortunately, the greatest part of the work that the leaving modeler did was for the 3rd person mode so it was discarded.

How to survive

So I talked with the team because I had taken my decision: I was going to play the technical artist role. It was the logical decision; I was the programmer with less knowledge of the core, and the candidate with better artistic skills. So initially I tried to do part of Marc’s work but that was not enough. Marc was having troubles with the animation and we needed to finish that. I changed the role again and I became the main animator of the project. In this way, Marc would be able to finish the main scene and to focus on characters and props modeling, texturing, lighting, and rigging...

But even with those changes the creative process was quite slow and we needed to find a way to make it quick and pretty. We decided that the time we were using learning stuff was too much, and that we needed to make some tasks in a more automated way. So we created the next working pipeline:

  1. We created a base model (This model would be always the same).
  2. We applied minor deformation on the base model in order to create different characters. (Marc)
  3. We created 2 or 3 textures for each character, allowing us to crate lots of characters for our game. (Marc)
  4. The animations made for the base model were copied to the new character. (Juan)
  5. Then I only had to fix minor issues on the animations and to create their special actions. (Juan)

Once this pipeline was created it only took us 2 month to finish the essential animations for our game.

On June we received our classmate’s opinions. In general lines, they told us that our project was only “a lot of graphics” and that there was no gameplay. We knew that those issues were due to the fact that one programmer was doing animation stuff, and a lot of gameplay features were coded but not showed because the models were not ready yet. We then understood that we had reached a high level with the 3D Art and that we needed to focus on the gameplay from then.

On July we started with the pathfinding issues. The characters were colliding between them and this was provoking that the physics engine often was pulling the bikers off the road. We needed to avoid that kind of problems. Debugging the core code was impossible if a character received that kind of input. So Carlos took the decision of changing the pathfinding engine. We all were aware that he was spending a lot of regular sleeping hours doing that.

Furthermore, we started mounting the scene. We created the controllers for the animations; we also created the routes for the IA. We had made tests before and we knew that it was going to work. But then was the time for mechanically repeating the process one time and another until all characters were prepared, all the routes were created, all the buildings had its colliders, etc.

Some makeup


August and September have been the best part of our work. Making the things prettier; adding special actions... each change on the code have been greatly visible on the screen.

And we have used the last week of September to create a promo video, the game cover and some marketing stuff.

What we learnt

Maybe now is too early to reach any conclusion, but there are a lot of things we have learned that we want to tell you:

  • Even knowing your limits, there is always some unexpected stuff that happens when you less expect it. So, even if you are planning work for five people, make sure that three people can finish something deliverable, because shit happens.
  • You need to make sure that your work is done and then you have to help others to finish their. Once the basic tasks are finished, you can start with the improvements, but not before. We discarded a lot of work with the 3rd person mode.
  • Talk, talk and talk a lot with the team. It doesn’t matter if you can or can’t finish your work if the team knows it. Scrum works really well for that stuff.
  • You have a life and you don’t want to lose it. And even when you can continue for a while, your girlfriend or wife maybe not. We are lucky in that way XD.



No comments:

Post a Comment