The basis of the game has been completed and can be played with two players. The only things left to do for the hand in are small, finishing touches, mainly to do with the visuals.
The first task was to add lights to the map. As we were doing this, we encountered a problem with shadows from the main directional light in the scene. All of the shadows from the models cut off half way through, as if they were intersecting the floor plane. It took a while to find the source of this problem, but it ended up being the bias being set to 2 instead of 0.
To make the application look professional, we added in a custom icon for the task bar along with a mouse pointer.
On the main menu, we added in a section for controls where it displays an image of the mouse, keyboard and a controller for the user to view. This is accompanied with annotations detailing what each of the buttons do once in game.
Particle effects were also added to the map. A combination of fire, smoke and ambers were created and pieced together in the braziers by Gary for extra visual effects. I also created a small script that is placed on to Point Light objects that make their intensity change at randomly intervals to create a flickering effect.
The last particle effect that was added was dust. I played around with some values to create a kind of whirlwind visual with dust particles swirling around the outside of the Colosseum. This small touch added to the atmosphere and instantly made the game look much more player and appealing.
There are many more features that we are hoping to add into the game such as networked games, 4 player co-op, a new camera system, soft locking when in combat, weapon pick ups, more characters, more maps, level traps the list goes on.
Today we replaced all the models and textures with the final, updates version. The animations for the characters were also added to the game including attacks, cheers, ducks and idles.
Once all of the models were in the Unity project, I assisted with piecing together the map. The models for the map are all individually modelled, down to each crate and barrel. This task was frustrating as this was the Level Designers job and it was left to a Programmer and an Artist with no input from the Level Designer at all.
Even so, the map was created quite quickly and started to take shape with all the textures and detailed models.
To get the game to a standard that is suitable for the hand-in, there are a few more finishing touches that need to be implemented such as lighting and little configuration changes.
After the main menu was completed, the next piece of UI that needed to be completed was the in-game HUD for the players. This was not thought about in much detail as we were told by the UI Designer that he had it under control. We did manage to come up with a simple and clean layout that had all the essentials displayed.
The health bar is displayed in the bottom left of each players screen and is rendered on a dark background. No value or percentage is shown, this is to keep players guessing on how much more damage they can possibly take steering away from hiding away from the action.
The players score is displayed in the bottom right of the screen and is accompanied by a label, ‘Score’.
In the top right there is the timer, which displayer the pre-game and main time depending on what is relevant. Above the timer is the minimap which I started to develop. At the moment it is just a birds-eye view of the map with the players not being rendered by it. This will eventual be changed to a radar style map showing the locations of players, we made this decision after testing the gameplay and finding it fairly difficult finding the other player when there is only two.
Since our UI Designer has not produced any work so far after 6 months of development, the responsibility has fallen to me to create it.
We decided that the temporary UI system was not sufficient for the final game as it was too buggy. Instead we used the new UI tools that were added to Unity 4.6 and change the main menu to be mainly 2D based.
The menu can be navigated with both the keyboard-mouse and controller inputs which is suitable for all players. The character select screen with the 3D models being highlighted by spotlights is functional but does not currently allow the player to selected a character.
This new menu runs a lot smoother, is more stable and looks much cleaner and appealing. The menu buttons were made by Gary and the main background was creating by Sary.
Overall this new menu seems to fit the game better then the last one and does everything that is needed at this time.
Today we merged in Richards work on the combat into the game structure I had previously set up. It seems to work very well with the IInputs that is used to control the players.
The combat works with a new method of using an event type system.
Implementing this system with the game mode structure that was added to the game last week was an easy task and makes the game playable. Some testing and experimenting with weapon damages and player healths still needs to be done to configure the gameplay.
The input manager that comes built in to the Unity engine is very limited for what we want to do. It requires a fair bit of modification in both the editor and code every time we want to change a control around.
I did some research into this and found that it was quite complicated and required extensive work to implement our own system, so instead we managed to find a free framework made by somebody else that was fairly easy to extend and modify for our own needs.
Using this system made the input much more stable and easy to modify when we need to.
The game modes have now been set up and use a common interface. This allows us to implement whichever class is needed. At the moment only the Headhunters game type is implemented but a Last Man Standing template is present to show the process of creating new game modes.
The Headhunters game mode has a pre-game timer (where the players cannot move as the game starts), a game timer and once the game is over, there is 5 seconds where movement is disabled and the game displays the winner.
A score limit is stored but is not used at the moment, this will be implemented when the game types eventually get more complicated with assists or team points being included rather then just the kills.
I have managed to implement simple ‘fly-away’ controls for the camera. This is just to make it easier when exploring the city and to monitor the outcome. Clamps have been implemented on the Y axis to stop the user being able to rotate the whole way around, this will come in useful when the camera view is changed to be first-person with gravity.
Before I change it to first-person I will looking into adding in some kind of algorithm to consider a ‘centre’ of the city. This will add in a percentage chance of picking out each type of building (Large, Medium and Small) so that Larger buildings are more congregated towards the middle of the centre whereas the smaller buildings will appear more towards the edges of the city.
Since my last blog post, a lot has been implemented.
The temporary game menu now also has fully implemented controller support so there is no more need to use the mouse to get into the game if the player intends on using a controller to play. From the main menu the user can currently use the left and right bumpers on any connected controller or the ‘1’ and ‘2’ keys to specify how many local players will be playing. Once this has been picked the game will add in the chosen number of players, splitting the screen horizontally in half if playing split screen. For balancing purposes we have decided to force the players to user a controller when playing split screen as we see this as a controller based game primarily.
Spawn points have been placed around the track so when spawning a player, it picks a random spawn point and assigns that as the starting position.
We have another presentation on the 24th February, 10 days time, where we will present the game in its current state at the time. I am still waiting on the new improved map and updates horse and chariot models, hopefully all of them will have colours on them, even if it is just block colours and not just textures.
Our next step will be to implement game types using the game state (this has been started with simple timers but nothing more advanced then that so far) as well as starting on the combat system since we have the ability to test collisions between 2 players now.
Progress Review poster for the Final Year Project for reference.
Progress Review – L1018977 (PDF)