Muzzle Flash

This is an effect I started a while back and never got round to finishing. I wanted to get it done in between finishing first semester and starting another project. Its got quite a few problems, but I think I’d rather move on from it and start something new rather than focus too much on it. I thought I would find more time to work on this, but I had quite a lot of personal stuff to sort out after hand ins….and I bought Dragon Age: Inquision.

<p><a href=”″>Muzzle Flash Test</a> from <a href=”″>Amy Stevens</a> on <a href=””>Vimeo</a&gt;.</p>

Second Prototype Evaluation

I finished this last week, but wanted to wait until I could do a proper rundown before posting it.

The second prototype focuses on the idea of moving from abstraction to realism and exploring the player’s mind.

What Works

The entry point works really well. The candles and mandala set up the player’s expectation that this will be a meditational game.

The tree as a symbol for the player’s mind is good – its subtle, and I’m not entirely sure that anyone but me will “get it”, but that’s OK. I think the more subtle my symbolism is, the more of a universal appeal the game will have. To some it might be very significant, to others it just shows how far on they are with the game.

The overall theme and design of each corridor ties in with the themes well and do seem to relax the player.

Sound is really relaxing and atmospheric – too bad I don’t own it! I need to get in contact with a sound designer.

Colour scheme in the nature room is really warm and relaxing feeling.

What Doesn’t

The white flashes when moving from room to room work nicely, however the player has to walk though them, which they might not be aware of, it would be better to walk to a trigger, show the white, then teleport them.

I think the use of corridors might be restricting the player quite a bit. Most of the games I’ve used as inspiration use the illusion of an open world. I could use effects like wind to create invisible walls that have context and are therefore not so intrusive.

The lighting is completely overblown – this is difficult when switching between machines. I’m moving over to my laptop for development now, so I’ll make it for this screen. Most video games use gamma adjustment for this but I don’t think its really a realistic goal to include in my project.

I think the areas need a lot more movement and life to them. There is not enough going on to make the player stop and wonder.

The transition from realistic to abstract needs to be slower, with something in between. Lynn suggested using hand painted textures and changing the tree as the player moves on, as currently it goes abstract – real – abstract which isn’t representative of going into the mind.

Godrays need to flicker less – very jarring.

Tree early bug – when the player does the water then nature rooms sometimes the tree fx appear early.

The game needs an exit point. I talked about this in my concept doc where I said the game could have an eye close/open mechanic.

I feel the ending needs something slower and more obvious – right now it just quits. Again, this could draw on the eye thing.

Despite the large amount of “What Doesn’t” comments, I am actually really happy with the current prototype. Its just early days and a lot of time was spent figuring out what I wanted to do. I think I’m getting close to what I want.

I can’t really comment on the mood at the moment, as I feel I am way to close to the project. While I do feel relaxed, it is hard to shut down the critical voice when viewing your own work.

Stress Testing and Particle Optimisation

The game is running slow in parts, so I need to look at my fx and see where I can speed up the frame rate. The rift slows things down a bit, so I’m going to do optimisation in two stages, one for monitor and one for rift.

Monitor Stress Test

Water Real

Has already had some optimisation done. Uses fixed bounds and has lower spawn rate. Works fine but the visual impact has been reduced greatly, a shame since the fx is supposed to be the forefront of the game. Will experiment with improving this. Frame = 100

Game = 16

Draw = 100

GPU = 100

Water Abstract

Same as realistic. Can notice jumps in frame rate when passing underneath fx though. May leave this as is and see.

Frame = 100

Game = 12

Draw = 100

GPU = 100

Nature Real

Runs very smoothly. No issue at all.

Frame = 16

Game = 9

Draw = 16

GPU = 16

Nature Abstract

Runs very smoothly. No issue at all. Go nature rooms!

Frame = 10

Game = 8

Draw = 10

GPU = 10

Fire Real

Frame rate drops considerably, messes with sound and ability to move. Incredibly jarring. Needs fixed. Frame = 250 Game = 12 Draw = 250 GPU = 250 Fire Abstract A tad slow, noticeable to me but perhaps not to players. Will leave for now and see if anyone notices. Frame = 113 Game = 12 Draw = 113 GPU = 113

Monitor Optimisation

Realistic Fire

First issue here is that there are too many fx visible at once. I took out the first ones to allow the player to at least get orientated before the game starts chugging! Didn’t improve anything when near the fx, but better on entry.

Second thing was adding fixed relative bounds, so the particles only draw when they can be seen. This took me down to about 200 for frame.

I then halfed the spawn rate of all emitters, coming down to about 150, and removed the second smoke emitter, coming down to 100.

Realistic Water

I read on the unreal documentation that material complexity was an issue for particle optimization, so took out the roughness, refraction and metallic of the water material, as it didn’t seem to be having much effect anyway – it didn’t look anywhere near as good as in the first prototype. Its running at around 100 now too.

Essentially the game is now running at a consistent 15fps. Too low I know, but at least its consistent.

Game Ending

I wanted something to happen at the end of the game, to show the player they’d completed it and to provide a nice exit point. I looked to proteus and flower for inspiration, noting the circular particles that form in proteus and the ribbon trails on the tree in flower’s first level.

tree9 tree11

I did the code first and ran into a few mistakes along the way. I tried IsValid first, the idea being that I would check to see if the orbs existed and if so, create the fx. This didn’t work, so I tried a branch with an IsValid condition. What I learned by hooking this up to a key press and testing it, is that the object is always valid, regardless of weather or not it is visible.


As an alternative, I decided to use a hidden variable that would “score” the player and assign a point for each room completed. When the count reaches 3, the fx would appear. This wasn’t too hard to set up – I created a float variable,


I connected this to a branch and audiocomponent to test, and it worked.


Then I needed some artwork to connect to it! I created a sort of fake ribbon by creating a curve in maya, extuding some polygons around it, and doing a planar map for the whole thing. This means that I can pan a material up it to give a ribbon like effect. I used this technique in Seek to create the cutscene and have had a lot of good feedback on it.


I also added some shiney dust particles and a trigger box, that when overlapped by the actor, ends the game.

Itree7 tree6

The effect itself is very simple right now and was sort of created as a placeholder last night when I was far too sleepy to be creative. If I can get the optimization and bug fixes done before the end of today I’ll work on making it much better.

Portal FX


I thought the hub room needed something to indicate which rooms the player had been though, so created a sort of glowy portal that dissapears after that corridor has been traversed. As I’ve been having optimization issues with some particle fx, I decided to do this as a material. I created a cylinder without end faces, and made a sort of striped texture.


In the material editor, I panned this to add some dynamic movment, and multiplied a gradient with the opacity to make it appear more magical.



I then had this flash in and out to give a sort of pulse effect. Multiplying the emissive by a cosine wave did this, but I had the issue that when it wasn’t there it would go black, which was very obvious.


To fix this, I added the pulse to the opacity instead of the emissive.


I then added another cylinder underneath, with a low opacity emissive to act as a sort of fake light.

portals7 portals8 portals9

The code was quite simple, I had to search around a bit to find destory actor, but once I found it it was simple to add it to the end of the orb code.


I think these colour coded fx add to the idea that each room is different, which is great, and give visual cues to the player to move on to the next portal.