First of all, I know that it is strange to talk or explain anything about something that was not mention or explained before, so I will start from the beginning.
We are currently doing in GAM450 class a game project. I am part of a team with 3 other mates, Jon Sanchez, Eneko Egiluz and Aitor Tejedor, called Dystopia and we are doing a game called Dualtron, using the Unity3D engine(first time using a 3rd party engine).
We are in the fourth week of the development of the game and we reached the prototype milestone in which we have to deliver a playable game with the main mechanics of the game implemented.
I will explain a bit about the game.
2D side scroller, 2 players cooperative action platformer.
The main idea of the game is that two player are separated, each one with its own playable area. They can not be together and have to share the only resource they have, a gun. They can either give the weapon to the other character or take it from it. The game is meant to be focused in full cooperation between the players, they will have to coordinate not only to share the weapon but also because the level triggers that one activates will have effect on the other’s area. This means that they have to completely relay in the other to advance, and if they do not care and one of them dies, both die.
Another feature that we want is to have a very responsible character movement, like in the old arcade games of the 80s and 90s, in which the player has a total control over the character.
With this idea in mind we started working, and now I am going to explain what were my tasks and how I did some of them.
Since I took the role of the designer in the team I had to develop and expand the main idea of the game, clarifying the points that were either unclear or the ones that we did not thought at the beginning. I did a GCD explain the base concept of the game, having a point to start.
The next thing was starting playing with Unity3D, learning how it does things and getting used to the interface and editor. It is the first time that we are not using a custom engine made by us from scratch, so even when Unity3D is a great tool and most of the things that it has are familiar to us, it is hard to not know exactly what it is doing inside the black box, but it is something that we have to get used to.
Another thing that we had to test was how big the levels will be. Because with two players in the same screen as it is a split screen game, it does not leave much space for each to play. So I had to do some test on how the game will look and after some iterations we decided the current size of the levels and characters.
Now that we knew the tool it was time to start building the game. The best approach is to quickly create small sections to test different gameplay elements or mechanics and iterate over them. To do so Jon and me designed 15 small gameplay test, each one testing a possible mechanic that could be included in the game. Once we have all of them in paper we split the work and each one of us was in charge of building some of this sections. I had to build Section 6 (Destruction of floor in Chain), Section 7(Fan Moving Bridge) and Section 4(Kamikaze Enemies).
Section 6 (Destruction of floor in Chain)
This section consists in walls and floors that are connected between them as if the were a chain, the main idea is once the first token is shot the rest of them will be destroyed sequentially in order. With this feature, the level consists in two different type of floor chains, the ones that the first player can destroy and the ones the second player can destroy. The idea behind this level is to mix both types of chains getting in the middle of both characters as obstacles or floors so they have to coordinate themselves to destroy the chain in order to advance.
To create this, I had to create the elements of the Chain with their behavior to destroy them sequentially waiting a fixed time between them.
Section 7 (Fan Moving Bridge)
Section 7 consists in several platform that are propelled upwards by fans or some othem force when they are activated. They will be triggered by the other player shooting to a trigger. The complexity of this level is that both sides have fans and platforms so they need to keep the platform in the air as they advance.
I used a variation of the chain destruction to execute the fans sequentially, I had to create the fans behavior as well as the platform that got propelled.
Section 4 (Kamikaze Enemies)
This section is an arena in which the character will have to kill all the enemies that spawn, in order to continue. When they reach a certain point doors will close the section and the enemies will start spawning. This enemies have two states, one is just waiting for an amount of time and it does not suppose any danger to the players, and a shorter one in which they will move fast towards the player, and if in this state it touches the player it will kill it. This forces the player to cooperate sharing the weapon but also giving them time to run away from the enemies when they are ‘hibernating’.
I did the behavior for the enemies and also modified a bit the rotating turrets that Jon did to use them as the spawners.
That was mainly all my work with the sections, but I could not resist touching the player even if Eneko was who started with it. I modified the behavior improving the sensitivity response with the sticks and making it more configurable. Also, while testing the game with each section it felt natural to add a double jump to the player and a wall jump, providing the player more freedom and control. I also modified some of the movement using ray casting to detect walls and handling the movement by ourselves instead of letting Unity3D physics handle the detection, because we were having some problems with it, and also added a small delay for the jump to be triggered after the character loses contact with the floor, because sometimes, although it is not, it seemed unfair when it could not be triggered.
Another big task was to test everything not only what I did, we are four testing a game that needs at least two players, so we tested almost every level made.
Some of the challenges we are facing are learning Unity3D, as I said it is a great tool, but we still do not know all that it can offer. It is complicated to merge anything with Unity3D so we decided to split the work as much as we could, and that is why each one is working in individual sections.
We want a challenging game, and it is hard to manage the difficulty of each section and even more when you are the one doing it. You know exactly what it does and the how to pass it, so it is not that hard, until someone that never played the game dies in it a hundred times.
We are having problems also with the perspective view. We decided to change from a plain 2D to a 3D environment although all the gameplay happens in 2D, in 3D everything looks more appealing, with lights, shadows and a sense of depth. But with 3D comes some other problems like perspective, and it is difficult to know where something is landing or when it will hit the floor.
Another challenge is how the camera will move to show everything and do not be annoying, we have two characters and one camera that needs to follow both of them and do not distract them from the game.
We have a bunch of mechanics that work and can be mixed to create more complex situations but we probably have to expand it and think of more ‘Sections’ to keep exploring the cooperation that we want in the game, and as I am the designer that responsibility is on me.
What is next
The next step is to solve all the problems we have found after a little playtesting.
Keep building more sections and testing them.
Put together a level with the sections we have and test if they work as a complete level.
Begin with the fusion state, two player, one character, that both will have to control, and test it with some mechanics.
Beautify the levels, figure out a theme or the visual style of the game.
Add tons of feedback (sounds and visual effects) so the players know exactly what it is going on.
In general the game is going in the right direction, we have a bunch of mechanics to play with and keep improving. There are still some ideas that need to be implemented and tested, so I think that we will have enough material to have a fun game.
My main concern it is to nail the difficulty curve and teach the player step by step until they master the game, but we still have time to test, gather feedback and fix what does not work.
In four more weeks, the next milestone. We should have a first level finished and a second one in the works.