Friday, 30 April 2010

Energy Cell Finished

Finished texturing the "Energy Cell", I have also built the vertex shader which uses the world position offset to rotate and bob it up and down, this creates a floating effect.

I have also added leaf falling particles to Outlast.

Shaman bots now spawn with two different type of variation meshes, although the second mesh has a few glitches that need adjusting.

Thursday, 29 April 2010

Couple of Matinee sequence finished.

Last night I finished two Matinee sequences and added sound to both:

- Falling boulder sequence, this is where the big bridge exit gets blocked by falling boulders and then Alpha gets ambushed by shamans. The only thing left to do is spawn the bots and get them to jump Alpha.

- Finished the Trap door sequence, this was a little tricky because of the way UDK handles rotations in Matinee, I had to check the "Quat Interpolation" box and key frame every 90 degrees to get the correct rotation.

Both these sequences are hooked up to triggers in kismet.

I have also added a cloud effect to the mist/fog, this really helps to bring the scene to life and make a believable enviroment. Finished optimizing the level, only volume culling to go, but I'll leave that to last. A total of 40mb was saved once I ran through the whole level, this has helped increase frame rates.

Wednesday, 28 April 2010

Alpha's Weapon

Here's a couple of screenshots showing the model for Alpha's weapon. I'll be spending the next couple of days implementing this and the shamans weapon into the game with Hwyel, as well as beginning work on the textures.

Increased optimization of speedtrees.

This morning I ran through all the speed tree actors and drastically increased lod'ing and decreased billboard distances. I also optimized their shaders and took all the collisions off the trees which the player cannot touch. I am also going to take away shadow casting on any tree which doesn't need it (the ones really far away). On top of this I have optimized and fixed the glitching Banyan trees by decreasing the leaf count.

Once my computer have finished building/rendering the level I will run some tests to find out how much the effect the optimizations have made.

On a side note, I have nearly finished constructing the big bridge at the front of the ruins. I re-used a lot of assets so we did not need to make the bridge from scratch.

Later today I will texture and create the material for the energy cell and will post screenshots. I also intend to implement the main game mechanics for replenishing energy.

Tuesday, 27 April 2010

Added basic health increases.

- Added basic health increase to Alpha when he kills a bot.

- Created dissolve material that will be used when bots get killed by Alpha & started hooking it up in kismet, although I think this may be difficult. I can replace materials when I know what actor needs it, although when a bot dies it activates a death event but fails to tell me what bot actually activated it, and without know the bot name I cannot replace it's material. Working on solving this atm.

Bot Kismet Logic Finished.

Wooo, final finished the respawn system, I believe there aren't any major glitches in it, although I have built in fail safes to try and counter anything that might go wrong when spawning lots of bots. Here's a screenshot to show you the rough layout of kismet at this time:

I must say this gave me a major headache at times, this is my first time working with kismet and it was very hard to know exactly what was going on and when it was happening, I'm glad nearly all of the bot spawning/movement/control logic is out the way.

Kismet things to do next:

- Material replacement on bot death, this is so that they appear to disintegrate once being shot by Alpha.

- Health gain when Alpha kills a bot, at first I'll keep this basic but I am hoping to spawn a energy bot at the location of the bot death, then get the energy bot to travel to Alpha, once within range (basicly touching Alpha) it will give health to alpha then disappear.

- Timer/progress counter that activates when Alpha is within a certain distance of the energy cell and deactivates when Aphla is to far from it.

Non-kismet things to do next:

- Texture and build the material/vertex shader for the energy cell.

Monday, 26 April 2010


Hey, over the past week I have put the animations for the second NCP on hold until I have a better grasp of how we will create the melee attacks in the engine. I have since been working on the weapons, and below are a couple of sketches for the Alpha characters weapon. For the design I looked to intergrate the energy cell and elements of the character to give the impression that it's a part of the character/armour.

As well as the Alpha weapon I have also began work on the Weapon for the Shaman NPC character, which is a staff capable of ranged attacks. Here is a early draft of the staff model -


Fraps completely mauls the gamma/brightness of Outlast, will have to do checks on other computers to check the levels are correct ingame. Won't be posting any videos until this issue is sorted.

O and I'v fixed most of the major wave spawning glitches, it was a major headache, although I do have more to fix.

Pre-battle travel paths.

Running into a few problems with getting multiple waves to follow the pre-battle paths. I know what/where the problem lies, i'v been reworking kismet nodes to get it working, as soon as I'v done that I'll upload a video.

Sunday, 25 April 2010

Bot intro

Our bots will need to enter the battle in a natural way, they need to look like they know the enviroment very well. One of the things I am keen to implement is to get the bots to jump and navigate across the ruin walls, almost like they are ambushing Alpha from all directions. I came up with a solution that I have nearly finished implementing, the idea is to use hidden jump pads to force the bots to jump across walls and big ruins, then use a couple of extra nodes/waypoints to get them to their patrol route or within combat range of Alpha. Will post a video later showing one of the enemy introduction scenes.

AI Fix, Game Over Sequence & UI Interfaces.

Yesterday's work:

- Fixed Shaman AI glitches, bots now work nicely. Only very minor glitches occur. The major aiming glitch was fixed by getting the shaman bot to look at an attached actor above the players head instead of actually looking at the player, this is because kismet behaves strangely by tell the bot to look at the players controller/spawn instead of the players actual location.

- Created the game over death sequence, when the player dies the camera shot changes to a birds eye shot of the player and starts zooming into the player, it then fades to black with a game over message.

- Created all the base UI menu interfacess, clicking the game .exe the player can navigate the main menu UI and join the game, once the game has ended the player can navigate the scoreboard UI, they then have the options to restart the level or return to the main menu.

Friday, 23 April 2010

Kismet Shaman Ai

The Ai bots are going better than I thought, I found a tutorial online which helped me extend and modify scripts to get navigation meshes working with bots instead of just croud agents. The only problem was that the tutorial was in Russian lol, but I got the gist of it and with my amazement it worked. Now all our bots run around without node paths, free to navigate individually. I spent most of the day setting up all the Ai events in kismet. It's working well, only a couple of small glitches that I have to iron out.

At the moment i'm working on the shaman which is a ranged bot that spawns minions that do melee damage. At the moment the shaman bot patrols when it cannot see the player, only when it can see and is within range will it hunt the player. The shaman can only fire while standing still and stops before coming into melee range. If the player runs towards the shaman, the shaman will run away to try and avoid melee contact, afterwhich will return to do more ranged attacks.

Thursday, 22 April 2010

Custom Crosshair and HUD

Heres a screeenshot of our new custom crosshair, interactive health and energy bars:

Bots continued

Tryed a variety of different methods getting bots working with Nav meshes and I have got it to work to some degree. I'v got a problem with kismets "Move to Actor", I setup a test to get the bot to follow me through kismet however it seems my player location is only updated once and so the ai only moves to that location. On a plus though, the AI navigates without nodes and even avoids trees and ruins etc.

Some more reading:

Wednesday, 21 April 2010


So today I setup the shaman bot, its works in game although a little glitchy at the moment, working on fixing it. I'm also learning about navigation meshes, which is a new feature that isn't 100% implemented in udk, a custom ai controller would be needed to make use of it but there are base scripts out there to work on. I am confident there's enough information and time to get it working with the current build. Nav meshes are far superior to node pathing & when working correctly make some truly kool AI navigation as they aren't confined to a single path. It's also faster to set a level up with nav meshes through an automated process. It would make great gameplay to get the AI to react to the environment so fluently.

Heres some mroe details on it:

Tuesday, 20 April 2010

HUD Fixed

Fixed all the problems with the HUD. Started getting the shaman bot into Outlast, had a frustrating problem earlier which caused me several hours delay while working on the shaman scripts, found out I was using the old game directories instead of the new March engine build, it's always the simple little mistakes which catch you out in the end.

Hud Visuals

Ok so the Hud visuals are done and they work well, a few things to fix.

- Health and Energy positions need tweaking to work with different resolutions.

- A minor bug with opacity controls when firing for the first time.

- Need to make the Crosshairs respond to firing, this is to make the weapon feel its giving a little kick.

Will post some screenshots of the HUD in a couple of hours.

Sunday, 18 April 2010

Coding the Hud.

Its been a productive couple of days, spent saturday night learning more unreal script. Today I have managed to get the ammo/energy and health to be shown on the hud, I had to create a new hud which wasnt extended from UTHUD to get the results we need. I have also hooked up a post processing effect which gets activated when the player has low energy. The post processing effect desaturates the scene & adds a noise visual effect to repesent power loss. When this is combined with sound I believe it will make a dramatic effect.

Saturday, 17 April 2010

Minion Model

Over the past week I've been focusing on creating the second enemy, modelling and textuxing. Here is a Screenshot taken from UDK, so this is more acurate to what it will look like in-game.

I'll be spending the next couple of days rigging and animating the character ready to put in the game.

Friday, 16 April 2010

UDK Build Updated

Ok so before I can do any more major scripting I had to update to the latest UDK build, I must say I wasn't looking forward to doing this because it's never a smooth transition, specially if you have code written with older builds. So January too March build has a lot of changes, epics certainly been busy. Some very exciting features, too many to list here but expect performance increases (e.g. Painted vertex colors now use half as much memory, which I have used a lot.) with better mip-mapping (Makes the texture look more high res, so better graphics!). :)

Although it's taken time to transition to the new build, the final project will benefit a lot because of it. I have a few script errors to sort out but they don't break any script, more like just warnings. Anyway I'll be going over the code again in the next week and make sure everything is running perfectly. I've got a problem with my frontend starting menu in the new build, I think it's not compatible with the new build (although I was going to completely re-do it), will post again when I fix it.

On top of sorting the latest build I've been setting up a nfringe with visual studio 2008, nfringe is a programming enviroment that at the moment only works with VS2005 & 2008, this will greatly improve programming speed, with very impressive intergration with udk, basicly makes VS work with Unrealscript.
If your a student you can get your free copy of Visual Studio and a lot of other free goodies over at:

Anglia Ruskin students can log in with their libary card number and password (If you have logging in problems, log in the libary through Anglia Ruskin's website then visit Dreamspark).


- Added post processing to indoor rooms, this gives a natural transition into bright/dark areas just like how the eye adjusts to light.

- I also added the new crosshair.

- Started on more coding to do with the HUD and game mechanics.

Wednesday, 14 April 2010

Pods Racing Game.

Haven't posted in a while, on tuesday our team "Pulse Pixel" took part in a games jam at Anglia Ruskin University, we had 12 hours to make a two button, two player game using the Unity engine.

Controls: Player 1 - Left & Right Arrows, Player 2 - A & D Keys.

Finaly got round to uploading it:
Play Pods Now!

Could be a really nice future side project, I really enjoyed doing the coding, was very intense and I'm looking forward to doing the next jam. I think we did very well for the time seeming none of us was very familiar with Unity.

*Edit - link code doesn't work, copy & paste in URL to play.

Monday, 12 April 2010

Ruins instanced.

Ok, so I finaly finished changing all the ruin assets materials over to instanced versions of my new shader I posted ealier. Took a while as each instance needed different diffuse and normal maps, and some of the settings needed individual tweaking. Having all the ruins run on only one big shader increases performance as only one shader has to be compiled, then all the settings get changed for indervidual materials. I want to create a similar shader to handle all the foliage in the level, this wouldn't take a lot of time as the foliage materials do not have high instruction counts. The foliage shader would also handle all the variables for the world postion offset, giving each foliage easy access to wind and interactive controls if they need it.

Sorted a few bugs with the lighting which caused the blue tint on the shadows to disappear, the shadows now give the feeling of being nice and cool. A few collision issues were fixed on the temple and I started doing some coding with the hud. The hud now runs our own class and I have started implementing our own crosshair. The camera has also been adjusted so that it is at the correct distance from the player.

Heres a screenshot:

The green cross in the middle is a place holder for the textured crosshair which will be made soon.

It might look to contrasty, I am having problems with my gamma settings. Will check on another computer asap.

Sunday, 11 April 2010

Temple Finished.

Finished all the temple textures, tomorrow morning I'm going to check for errors. Got a little todo list to get done before going to Uni to recap over Unity for the Tuesdays game jam.

RotateAboutAxis node example

Just thought I would post this for future reference and as an example on how to control the RotateAboutAxis node.

In the example the object would rotate around the Z axis (0,0,1 - X,Y,Z) depending on the alpha (strength). A full rotation is equal to Pi which is "3.141593".

This node can be used to create all kinds of clever effects involving the rotation of vertices on a mesh.

Saturday, 10 April 2010

Minion NPC

Hey, here's a sketch for the second enemy, who is designed as a melee based character as opposed the shamans ranged combat. The concept behind the character is that it acts as a creature/gaurdian that the shaman summons from the earth.

Friday, 9 April 2010

Shaman Character

Hey, not Posted in a while, i have been spending the past weeks creating the first NPC, based on the sketches i posted earlier. Below are a couple of screenshots. I will be reworking the textures, as well as creating variations. I am currently finishing the animations for the character, so they can be tested in the game.

I am also concepting the second NPC, and will have some designs posted up soon.

Finished Loding.

Ok, finished Loding all the assets through the UDK lod generator, only a few assets had problems, either they didn't lod at all or they would lod the wrong parts of the geometry first... in which case they couldn't be lod'ed. These items will need to be manually lod'ed.

The game now feels a lot smoother, however it still needs more optimizing.

Wednesday, 7 April 2010

Sound continued.

Insects, wind, birds and any other ambient sounds have been added, although I am researching the best way to add in game music. I believe I will be using a mixture of kismet and soundcues to produce random loops with the ability to change the music depending on if the player is in combat. There's a lot of game music to mix together, I am hopeing to finish it tomorrow.

The ambient sounds really add to the enviroment, It's very pleasing to see the level come to life.

Tuesday, 6 April 2010


The game music loops have been completed, tomorrow I will start laying all the different loops into kismet. The final goal will be to get the music to react to the gameplay depending on if the player is recieving damage and by how much. Inserted all the water sound effects into the level, I will also add wind sound effects tomorrow.

Monday, 5 April 2010

Terrain Optimized

Finished optimizing the terrain shader, I had to cut a feature which was too expensive. Taking into account the size of the terrain it was a massive drain on performance. The optimized version is about 250% more effient with less textures and a drastically lower instruction count.

Sunday, 4 April 2010

New Screenshots

Ok here are some of the new sections finished, theres still some more optimizations to complete. I am reassessing the terrain shader as I belive it's to complex and adds minimal visual features, I will be able too increase performance by cutting some of those features.

Saturday, 3 April 2010

Optimizing shaders.

Been very busy lately, finished the level design for now, it's looking really nice, however still optimizing the level. If I dont get on top of optimizing it now the game wont be playable in the later stages. Tomorrow I am optimizing the vertex shaders so they can all run off one instanced shader. I am also checking all the lightmap resolutions and LODing all ruin the assets.

Thursday, 1 April 2010

Water Shader

This is my water shader modified with parameter nodes so that it can be controlled by instancing. Using this I can easily change the reflection texture and UV scaling to suit any water position and size, as well as giving me greater control over normal intensity's and panning speeds: