Monthly Archives: October 2014

Making of Tower Bridge

We have decided to make levels that are some what British. So we started to make Tower bridge, not to be mistaken as London bridge. I mocked up a small block version of it to test how it would play on the game. Discovering that the camera needs to be on one side of the bridge so you can see the character. Placing the player spawn points on one side and a mass of zombie spawn points on the other made the level work as if the zombies were trying to get over the bridge for there next meal. The bridge was looking plain so I added some cars and road blocks even a few of the side fencing to get in the way. Surprisingly  it resulted in the zombies doing crazy jumps towards the Animals. All the fast zombies run like mad men across the bridge.

Screen Shot 2014-10-14 at 12.57.52

To create a more finished design, I went to tower bridge with my camera and took pictures to use as textures. I must of looked like a really strange tourist taking closeups of bricks , floors and paint work… Screen Shot 2014-10-18 at 23.26.26

Back at the studio I started to make a cleaner model with the reference and using the photos to texture the bridge. Some of the images needed to be flattened to match the look of the game. This involved taking a photo that was at a slight angle and getting rid of the perspective on window frames, door ways and arches. It took a long time to get right. Screen Shot 2014-10-20 at 18.31.51

UV mapping cleverly I managed to keep the texture quite small . Most of the bridge is repeatable from the two big towers to the bridge banisters. So took this into consideration when laying out the textures. Creating Tiles that can be used across multiple places and details like windows that can be on both sides of the tower.

towerBridge_jumpers

There is still work to do on the level but bridge is almost done. The thing with doing this level is that it’s not just the bridge. I’ll have to put detail into the water and also the background building. My plan is to create repeatable windows that can be used in tiles across multiple simple building shapes and also iconic ones like London’s town hall.

The water will need to use a shader with animation on it to make the waves look good. I took some photos of the Thames water and its defiantly not blue! So I’m going to attempt to use shader forge along with research about water shaders to create an awesome final shader.

 

 

Using InControl in Unity for Local Multiplayer, reconnecting controllers

InControl is an awesome plugin developed by the guys at Gallant Games. What it does is allow super easy configuration of multiple input controllers to give similar outputs, meaning you only have to setup the controls for your game once, rather than for every single different type of controller you would like to use. This allowed us to quickly setup NZA to run with Xbox360, PS3, MOGA ect. controllers with minimum effort.

So InControl  is great, but where it falls short a little bit is when a controller disconnects and then reconnects. Now this is not InControls fault, the problem lies with the fact that controllers don’t have unique identification codes , read more here.

How did I get around this problem? Well if the game was singleplayer there is a simple solution, use InControls built in ActiveDevice. This uses whichever device was last touched to give the output, so as soon as the device reconnects it works again. But I have multiple controllers being used at the same time, so ActiveDevice is no good.

So here’s what I did.

When a new player joins the game, they are assigned an InputDevice to there profile. This device is then also added to a static List<InputDevice> “playerDevices” on the GameController. On the PlayerController an int “deviceID” is also assigned for quick reference to the device in “playerDevices”.
Now thats all setup we create an InputDevice “mInputDevice” on the PlayerController like so:

InputDevice mInputDevice{
        get{
            return GameController.PlayerDevices[deviceID];
        }
    }

Now the PlayerController will always reference the list in the GameController to find it’s device.

Now we just make a small addition to the InputDevice.cs . Adding the following line lets us keep track of which devices are attached.

public bool active = true;

Now we know if a device is active, we add this to the Attach and Detach events:

void DeviceAttached(InputDevice device){
   Debug.Log"Attached: " + device.Name );

   for (int i=0;  iGameController.PlayerDevices.Counti++) {
       InputDevice InD = GameController.PlayerDevices[i];
       if (!InD.active){
          if(InD.Name==device.Name && InD.Meta==device.Meta){
                GameController.PlayerDevices[i]=device;
                break;
            }
        }
    }
}

void DeviceDetached(InputDevice device){
    Debug.Log"Detached: " + device.Name );

    foreach(InputDevice InD in GameController.PlayerDevices){
        if (InD==device){
            InD.active=false;
            break;
        }
    }
}

What this does is set the device to be not active when it is disconnected. Then if a new device is connected with the same name and meta data it will automatically assign it to PlayerDevices list, allowing the player to continue playing!

Obviously if another identical controller is connected before the original one, the controllers will switch. But there is nothing that can be done about that.

If you want to remove a player from the game (they quit) then you can just set their device to null (in the PlayerDevices List). This way it wont effect the other devices.

So that’s working so far for me, feel free to post in the comments if you have a better way of doing this!

Mysteries of shafting 

I have been working on the character movements today and found that the shafting animation of the bear (that’s the side to side animation) wasn’t quite right. I was making the legs move from parallel to apart, instead of a crossing leg motion.

So why did get this animation wrong? The bear has such short legs and wide hips he can’t exactly cross his legs properly.

Once that was fixed, the animations faded from back to side to forward better but still didn’t look quite right. What was it? Simple mistake it was shafting left when going right and right when going left, whoops! Quick fix looks better at last :D

bear_shafting_wrongwrong!
  betterbear_shafting_game

Sticky Grenades

Working on sticky grenades today, didn’t think it would be too hard. I hoped it would work as follows, throw grenade, wait till grenade hits object, parent grenade to new object and then remove the grenades rigidbody.
Which did work great… On walls…
The trouble was when the grenade attached itself to a zombie, it attached to the main capsule collider not the individual bones of the zombie…

Screen Shot 2014-10-15 at 21.06.34

As the zombies are rigged for ragdolls, it shouldn’t be too hard to use those colliders for the sticky grenades. The problem with this plan is we don’t want the bone colliders interfering with the animations. The easiest way to do this is to make them triggers. So now I have a load of colliders that I want the grenade to stick to, but I want the grenade to ignore the capsule collider.

So I thought of a few ways of doing this, I could make a new physics layer for the grenade which ignores the capsules layer. But that seemed a bit messy.

That’s when I realised that the grenade didn’t actually have to do any colliding, as it could stick to the first thing it hit. Boom, the sticky grenades became triggers, which means the grenade wont physically collide with the capsule. Now using a little bit of extra code to ignore the zombie colliders and everything works!

Screen Shot 2014-10-15 at 21.24.22

 

What’s going on?

Last week: We were working on the zombies, concentrating on adding characteristics animations. Like them shouting, pointing at a player, going crazy and even pulling off their head and throwing it like a grenade.

zombie_madness

We added two more speeds of zombies, crazy fast, and just a bit slower then normal run. Which is going to make the game more difficult and also make it seem more manic. Then we worked on the damage from the zombies so they hit you directly when they swing for you and jump at you. And also now the zombies eat you while you’re on the floor being rag dolled so getting knocked out by your own grenade is a bad idea.sloth_head_sml

A lot of work has been done  on characters, setting up the giraffe and sloth in game as well as creating custom animations to add more characteristic moves to the players. The sloth is meant to have this cool slow swagger. Thinking that he’s chilled in all situations, not a care in the world. Bring on those zombies. He so needs some awesome shades!sloth_customWalk

With the giraffe I was looking at how to make it shorter without making it actually shorter so I thought about giving it a little bit of a hunched back and a curvature of the neck to shorten it would add more character. Created some animations for the walk, run and idle poses to add more hunched look. I think we will have to experiment and keep an eye on it to see if the long neck causes any problems with going through doors etc. modo_giraffe

We are looking to add more to the levels and how to theme them around where we live in the UK. Having animals walking around famous landmarks in London would make the game look awesome. So yesterday we decided to mock up some ideas creating very rough block prototypes of both stone henge and tower bridge. Two totally different types of levels one a small region that all the zombies come to one point and one that the zombies end up charging across the bridge like an army coming to eat you. Pretty awesome on some of the tests, where we put some cars in the way and put all the spawn points for the zombies on one side of the bridge. They all came running towards the player and jumped like made men over the cars. Its MANIC.  Rob created a mockup of Stone Henge to see what it was like to play. A small level where there is just nowhere to hide! They come at you from all angles.

Screen Shot 2014-10-14 at 10.55.38 Screen Shot 2014-10-14 at 12.57.52

Welcome to Aniode

Welcome to Aniode’s exciting new blog. This is where we will be posting up all the awesome new content about our latest projects!

Currently we are working on a new game called “Nature’s Zombie Apocalypse” where Animals are fighting back to save the world against the zombie human race. There are elephants wielding a mini guns,  gorillas swinging baseball bats and don’t forget the duck with a flamethrower! It’s CRAZY out there and it’s time for animals to save the day!

bearHi