Type 2 Prototype - Optimisation and how much of a pain it is!

Optimisation and how much a pain it is to work within it

 

Optimisation along with lighting has been incredibly difficult to work with as optimisation especially is an area where its all about refinement in code as well as in the environment.  I did look into and worked a bit of optimisation into my demo where I worked and talked about my attempts to optimise my prototype.

Emissive Lighting

Emissive lighting is something that I found by chance from an article from an indie designer who talked about lighting.  Lighting the emmisive is good but it has issues in regards to control of emissive and also how it attenuates against the other assets in the world.

Emmisive is easy to edit when you make it into a parametre but the issue is that other than mucking around with the value, there isn't much more control that you can do in regards to the control of the lighting coming out of the wall.  I did effectively try to use this on walls, but it had no effect and stained areas that i didn't want it to.  I think the idea of working around with it in different ways may be helpful but it was an interesting tool to work with.


Culling Volumes

Culling volumes was something that I found from youtube, the cull distance volume essentially removes items from rendering from a distance until the player gets within a certain distance and then renders it in.  Think of it like an LOD but for rendering the items instead of changing the quality of the object like an LOD does.

I found this helped with optimisation but the settings are incredibly confusing with the values in both the size of the asset and rendering distance.  Although effective, i believe that its helpful but Unreal can be a lot more effective in how its utilised as well as the settings with its explination or maybe doing a selector of rendering at certain distances.


Event Ticks

Through development and my degree as well as tutorials.  There is an thing that I've seen which all about using event ticks.  Event ticks are ticks that don't ahdere to a standard tick rate but instead tick every par sec of your processor, the faster your tick of your CPU, the more ticks it'll do.  For one process, that is okay but when you put a lot onto it... that's a lot of processing on that CPU tick.

A better example to describe what I mean is Animal from the muppets treasure island.  For a tick rate, you don't really need to do a check over 1 second rates or possibly .5.  So in the film, animal hits a triangle every second which is what you want but when he goes crazy and drums like a crazy person and that is what happens when you put work onto an event tick.

The way I worked around this with help and suggestions from a colleague, is to use a beginplay event which calls it once and then make a set timer by event or function which you can set the timer to what you want and then set it to a custom event.

This way I have more control on what i can tick and also at the same time not overloading the system.


Comments

Popular Posts