Tuesday, 16 November 2010

Brains Eden 2010 at Anglia Ruskin University

Outlast was shown at the Brains Eden Exhibition 2010, here's some footage:


Friday, 18 June 2010

Bot difficulty variable

- Added bot difficulty variable in kismet which changes shaman/minion health, weapon strength, fire rate & whether or not shamans can spawn minions. This gives fine control over each stage's difficulty. So now difficulty scales properly with each stage.

- Fixed a few trigger glitches

- Modified/improved the first cut scene

To do:

- Add extra elements that helps a player determine if they are within charging distance of the energy cells. Give the player a natural/intuitive reason to stay within the energy cells range, to help teach the player the games objectives.

- Create a training level on Alpha's ship, this will help/guide the players to control Alpha and will teach the player game objectives.

I leant a lot watching people play Outlast for the first time at the degree show, players expect to be able to jump into a game and play without taking the time to read instructions, they want to learn the game while playing the game (Which is fair enough). So games with or above mid-level control complexity or game mechanics should help the player to learn and improve over time, bit by bit to stop player frustration.

Saturday, 29 May 2010


- Infinite Ammo glitch fixed.

- Spawning error message fixed.

- Outlast footage now shows on game startup.

Thursday, 27 May 2010

Outlast Ingame Footage!

Ingame footage:


Please feel free to comment and rate!

GamePad & Outlast Trailer

Ok so degree show is next week and I've been trying to get everything together, it's all going nicely. I've also joined a team of people making Archasis as an Environment Artist, visit www.Archasis.com for more info.

I spent yesterday making a GlovePie script which would emulate my GamePad inputs into key strokes to control Outlast at the degree show. The reason I did this is because it seems my GamePad isn't supported by the unreal engine, I have mucked around with the input.ini quite a lot and this seems like the only way. The hardest part was getting the acceleration to work properly and actually get the analogue sticks to control nicely ingame.

This morning I have finished editing the Outlast trailer / ingame footage and in the process of uploading it to youtube. Will provide the link shortly.

The only major problem I've stumbled across is that there's a major bug in Outlast to do with the ammo. Although I will be fixing this later today.

Sunday, 23 May 2010

Ambush bots added

-Added Elite Minions which ambush Alpha at several different locations, Elite Minions are more powerful than normal Minions.

-Added dissolve sound & death sounds for Shamans and Minions.

-Increased Minion spawn chance, Minion speed & hit chance to make them more deadly.

-Decreased spawned bots by 1 on the last stage to compansate for bot difficulty increase.

-Fixed a bug which enabled the player to fire during cinematic sequences.

-Kismet spawning error still happens on rare occasions.

Friday, 21 May 2010

Bug Fixes

I've been trying to get all the fixes done to Outlast before the degree show. Fixes include:

- Massive optimization fix, frame rates increased. This pretty much resolves all the performance problems, man this made me happy.

- Tempary fix has been added to the enemy death dissolve, there's a problem with kismet not animating the material variable when the game is run from outside of the editor. By adding the animation to the material itself and destroying the bot I can fake the effect and get similar results. One of the problems is that by doing this I give up a lot of control over the material when played, this means the dissolve transitions wont sync and the player will see the bot disappear when destroyed.

- A few bot fixes on the last stage.

Other updates:

- Fog has been added to the beginning of the level.

- I have spent most of my time trying to get rid of kismet errors involving in summoning/spawning the minion. Normally it works fine, however when more bots populate round Alpha some bots will try to summon minions which will collide on spawn creating errors. I have already tried various different trace methods with no success. It may need to be done in code, if anyone has any ideas let me know :)

I am also in the process of getting some in game footage to post on the degree show website.

Thursday, 13 May 2010

Hand in day.

So... Hand in day :)
We've got a beta ready and playable, we busted our guts every day but we finaly got there! In the end the project was probably too big for only two people within the time frame but I don't regret doing it. It's been an incredible learning curve and I hope to put those newly learnt skills to good use. Thx goes to Ross for working with me, the UDK forums users and anyone else who has given us advice.

Monday, 10 May 2010

Kismet solution for summoning bots.

Been very busy lately, deadline is this Thursday & haven't had time to update. To many things to list now but will say progress has been incredible. e.g. New animations, particles, sounds, nav meshes working, new AI bots & lot, lots more.
Will post Thursday morning before hand in.

Just wanted to show this kismet sequence, will come in handy for people who want to spawn bots from other bots. In our case the shamans summon these brute minions, spawns cannot spawn on other bots because of the space required. To solve this, the location vector and rotation of the summoner has to be taken and manipulated so that the spawning bot spawns in the right direction and is offset enough to allow the spawn:

Saturday, 8 May 2010

Physical Assets

- Finaly got round to adding physical assets to our custom pawns, this makes them behave correctly when killed instead of stretching everywhere as soon as they go into a ragdoll state. It took around 2 hours to get th

- Finished the graphics settings, there are three presets with different settings. I used the process I mentioned in the previous post, which works well. Having all the graphic console command settings called through script helps make quick adjustments and is re-usable. These settings may need to be tweaked later to get the ultimate combination for each preset. It took a while to weed through all the settings and commands and to test if they worked.

- Added a comfirmation screen before exiting on the pause menu.

- Fixed an issue with the skybox glitching on some machines.

- Imported & setup Ross's Alpha weapon into UDK.

Friday, 7 May 2010

Menus, Loading Screens & UIScenes.

Wooo, sorry.. Tiredness getting to me lol. Been a couple of days since updating, I'v been working pretty much non-stop. Here is a general breakdown:

- FrontEnd completely built and very close to being fully functional, the only thing left to do is tweak the graphic options so low end machines can run Outlast. The frontend includes the following options, Start Game, Free Roam, Options, Exit. The Options menu includes a resolutions menu and a graphics menu. Resolutions options include fullscreen or window mode, it includes a wide variety of resolutions at three different aspect ratios. The graphics menu includes low, medium and high graphic settings. Due to the way UDK handles graphic changes, the game has to be restarted for the settings to take full effect. Menu music and sound has been added to the buttons and menu transitions.

Believe it or not this whole process has been done without any coding (Which would be the proper way), instead I'v expanded a UIScene kismet hack I learnt from Hourences. The basic idea is to relay radio button pushes in the UIScene to the levels kismet, the level then keeps track of all the variables and any console commands that need to be issued to do certain tasks. This method can then be expanded by calling custom exec functions in Unrealscript from kismet, which I believe is what I'm going to be doing to change large ammounts of graphic settings quickly, the other option would be to call all the graphic settings indervidually from console commands (Which would be a huge mess). Heres a screenshot of my frontend level's kismet handling all the menu logic:

- Four loading screens have been added with custom tips, took me a while to realize but they are actually bink files located in UTGame->Movies. If your making your own loading screens make sure you keep the naming conventions, so... UT_loadmovie1.bink, UT_loadmovie2.bink, UT_loadmovie3.bink etc... Then just edit the DefaultEngine.ini under "[FullScreenMovie]" and add the loading screens movies. A few other things to keep in mind, you may need to keep the resolution the same as the default loading screens, convert using the RAD video tools program and you may need to convert several duplicated frames instead of just one still image, this is mainly because I had problems converting a single image with RAD. e.g. LoadingMovie_1, LoadingMovie_2, LoadingMovie_3... These would all get picked up as an animation sequence by the RAD tool and for me worked. If you want custom tips messages then look in the localizations folder in the UTGameUI.int file.

- Pretty much all the Menus are built and working. This includes an in-game Pause menu, ready menu, controls menu & Scoreboard. The scoreboard kill count was linked in through a datastore bind. Here's a screenshot:

- Splash Image changed to give a personal touch. Both game and editor.

I must say, spending time to round the game up like this has really brought Outlast out and given it an identity. I'm looking forward to finishing it. I know I'm always promising fraps footage but I think I will give it another go, I'm sure I can get round the Gamma recording issue.

Wednesday, 5 May 2010


Hey, over the past couple of days i've been modelling and texturing the capsule which the alpha character crash lands on the planet in. There are also animations for the opening and closing of the shutter, which will hopefully used for the opening cutscene. Here's a couple of screenshots of the model with the diffuse texture only:

My prority in this final week is to finish any texturing, including the weapons, and improving the earlier character textures.

Tuesday, 4 May 2010


Heres a few recent screenshots:


Today I'v been making the FrontEnd for Outlast, heres a screenshot:

The Outlast title pulses by changing brightness. I have also animated the menu buttons to change to pale yellow when focused and white when they are pressed. I am currently working on implementing a the options menu which will give the used the ability to change the resolution depending on their system specs. Menu music has also been added.

Recent Additions

- Modified kismet sequences so they can handle varying bot amounts, spawning, respawnings and travel sequences will now work properly, this means they can be re-used from stage too stage.

- Added bot reset sequence, this basically stops the bots from respawning and kills any bots that are alive. It will completely flush out any bot loops running in kismet and allow for a fresh bot spawn for the next stage. The bot reset get triggered once an Energy Cell has been captured and before any stage begins for a safeguard. The bot reset will only effect stage spawning blots, any bots spawned outside/between stages will be using a different system.

- Imported the shaman staff ingame, a new weapon script was created with a new attachment script.

- Modified shaman weapon particle colour and projectile.

- Imported minion brute, he spawns but I haven't configured the bot to engage Alpha. A new melee weapon script will need to be made & a summoning sequence needs to be made.

- Added Camera matinee sequence for introducing doors opening. Once stage 4 has been completed they activate and shows the player the possible routs they can take to progress.

- Added sky particles to help players navigate to the energy cells.

- Created a UIScene for the pause menu, and added a function to call the UIScene when escape is pressed. The pause works but at the moment the menu buttons do not, I'v put it on my to do/fix list.

Sunday, 2 May 2010

Particles and sound.

-Added pulse charge to energy cell, this tells the player they are within range and are capturing the energy cell. The more the player captures the faster the energy cell pulses. Sound has also been added.

-Added an energy cell explosion once it has been captures, sound has also been added.

-Ammo is replenished once the energy cell has been captured.

-Toyed with particles emited from the player location when healing or energy has been revieved. I have still got to tweak these.

-Sound has been added to health increase.

Saturday, 1 May 2010

Kismet workaround for getting rid of weapon/pickup drops

Woo 100th post, anyway todays fixes:

- Made a work around in kismet which destroys weapon/pickup drops as they spawn.

- Fixed the disintegration of the bots when getting killed by alpha.

The solution to the first problem actually helped me figure out the second. There's a little option in the trigger event called "use instigator", this basicly stores the instigator of the event into a variable.

Here's a screenshot of the first solution within Kismet:

Combine this kismet stuff with a trigger volume which goes round the entire map and it works like a charm.

On another note, I have the Capture timer working and it triggers an explosion once the energycell has been captured. There's quite a lot left to do on that kismet sequence but it shouldn't take that much longer. I am having problems however with the UIScene not rendering every frame, I'm currently using the UIScene as a HUD for the count down timer. If the IUScene doesn't get updated every frame my timer material will not display correctly.

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: https://www.dreamspark.com/

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:

Tuesday, 30 March 2010

Shader Built.

Today I finished my shader, I tried to build it with as much flexibility as possible. This shader will help with performance and save time in the future. When this shader is instanced the user can set the following options:

Optional Textures:
- Diffuse Texture
- Diffuse 2 Texture
- Diffuse Detail Texture
- Specular Texture
- Specular 2 Texture
- Normal Texture
- Normal 2 Texture
- Normal Detail Texture
- Mask Texture

All diffuse textures have colour, contrast, brightness and desaturation controls. All Specular textures have contrast and brightness controls. All normal maps intensity controls. The mask has colour, contrast, brightness and clamp controls. Each texture has their own UV coord settings and each texture can be turned off if not required.

Detail layer doesn't need a specular map, so to save memory I did not include it.

Another optional feature is rim lighting, which includes a falloff, colour and intensity controls.

The last feature is one of my favorites, by using the object world position and adding it the the texture coords the shader can offset the textures position. Controls include optional XY and/or Z movement depending if the user needs full or partial texture offset based on the objects XYZ movements. For example, a brick wall texture could be created so that it is seamless horizontally but not vertically, this could be intention due to additional texturing requirements utilizing the top or bottom piece of the texture, using my shader the user now has an object with the ability to texture offset horizontally without having to recreate the material.

Here's the overview of the shader in the material editor:

It's one of my largest shaders and my first truly flexible material using instancing. And here's all the options in the menu:

I have added the new shader to about half of the ruin objects, tomorrow I will finish the job. The new shader looks gd and improves the look of normals, I will post the results soon.

Monday, 29 March 2010

Level Design

Iv mainly been level designing for the past couple of days, as well as optimizing meshes by loding them and did a lot of lighting changes. I changed the lighting because I noticed the screenshots where rather dark on other computers, so I researched some lighting techniques and watched a lot of video tutorials and now I believe the lighting is coming a long very nicely. I added rim lighting effects to a lot of different meshs to bring out contours and to produce a cartoonier style effect. I will post some screenshots once I'v built the level.

Optimizing the game is a ever growing task, I'm now realising how important it is and have a lot of tricks up my sleeve to increase performance. One of those tricks it to build a shader which can be instanced between all the ruin objects, this will mean only one big shader has to be compiled, it will also mean I can re-use the shader for future projects veru easily. Again once I'v finished the shader I will give you a demo of it and some screenshots.

Friday, 26 March 2010

Colour changes.

Increased the vibrance of the foliage with a few more tweaks to the material post process. Heres a few screenshots:
*Edit - Changed the lighting to brighten the dark areas up slightly.*

Thursday, 25 March 2010

Ropebridge ingame.

I'v used the world position offset to add wind to the bridge, by painting the vertex colours I was able to anchor the ends. Even though the bridge is not interactive I believe the result is believable.

Offsetting textures based on the world position offset.

Today I'm doing research into how we can make the ropebridge interactive, although in doing the research I'v come across a material expression which offsets textures based on the object position (something I thought would be great but never got round to looking into). Heres a screenshot of the nodes:

So today Iv gone through all the stone textures in which I added this expression. Now it's very difficult to see any repeating texures. :)

Wednesday, 24 March 2010

Foliage added.

And here is a maya render of the bridge with only a diffuse map. I will now use crazy bump to create the specular and normal maps. Then I will add another uv set for lightmaps.