skip to main content
Coconut Lizard welcomes Ryan Holt, Associate Programmer to the team!

Coconut Lizard welcomes Ryan Holt, Associate Programmer to the team!

Coconut Lizard is excited to welcome Ryan Holt, Associate Programmer to our growing team! To mark Marek starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Marek Kočvara, Associate Programmer to the team!

Coconut Lizard welcomes Marek Kočvara, Associate Programmer to the team!

Coconut Lizard is excited to welcome Marek Kočvara, Associate Programmer to our growing team! To mark Marek starting, he has shared a few things about himself. Read more within...
More
TAGGING ALL THE THINGS!

TAGGING ALL THE THINGS!

.lib file has a finite size. 65535 entries in-fact. This sounds like a lot, but it quickly gets big when you use the _API tag on a class and not functions the whole class is tagged. And when the limit is reached you get an error: LNK1189 "library limit of 65535 obj exceeded
More
Coconut Lizard welcomes Seth Crowther, Programming Intern to the team!

Coconut Lizard welcomes Seth Crowther, Programming Intern to the team!

Coconut Lizard is excited to welcome Seth Crowther, Programming Intern to our growing team! To mark Seth starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Michael Lindsay, Technical Animator to the team!

Coconut Lizard welcomes Michael Lindsay, Technical Animator to the team!

Coconut Lizard is excited to welcome Michael Lindsay, Technical Animator to our growing team! To mark Michael starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Robert Flitney, Graduate Programmer to the team!

Coconut Lizard welcomes Robert Flitney, Graduate Programmer to the team!

Coconut Lizard is excited to welcome Robert Flitney, Graduate Programmer to our growing team! To mark Robert starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Stephen Storrie, Lead Build Engineer to the team!

Coconut Lizard welcomes Stephen Storrie, Lead Build Engineer to the team!

Coconut Lizard is excited to welcome Stephen Storrie, Lead Build Engineer to our growing team! To mark Stephen starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Ben Pearson, Associate QA Tester to the team!

Coconut Lizard welcomes Ben Pearson, Associate QA Tester to the team!

Coconut Lizard is excited to welcome Ben Pearson, Associate QA Tester to our growing team! To mark Ben starting, he has shared a few things about himself. Read more within...
More
New Project Announcement! Exoborne

New Project Announcement! Exoborne

All of the team at Coconut Lizard are excited to announce that we are working alongside our sister studio, d3t and the team at Sharkmob on Exoborne. Find out more within.
More
Coconut Lizard welcomes Louise Brand, Office Manager to the team!

Coconut Lizard welcomes Louise Brand, Office Manager to the team!

Coconut Lizard is excited to welcome Louise Brand, Office Manager to our growing team! To mark Louise starting, she has shared a few things about herself. Read more within...
More
New Project Announcement! EA SPORTS FC 24

New Project Announcement! EA SPORTS FC 24

All of the team at Coconut Lizard are excited to announce that we have been working alongside our sister studio and the team at EA on EA SPORTS FC™ 24. Find out more within.
More
Coconut Lizard recognised as a GamesIndustry.biz Best Place to Work for 2023

Coconut Lizard recognised as a GamesIndustry.biz Best Place to Work for 2023

We're excited to announce that both Coconut Lizard and d3t have been recognised by Gamesindustry.biz as a Best Place to Work for 2023.
More
Coconut Lizard welcomes Aiman Khan, Graduate Programmer to the team!

Coconut Lizard welcomes Aiman Khan, Graduate Programmer to the team!

Coconut Lizard is excited to welcome Aiman Khan, Graduate Programmer to our growing team! To mark Aiman starting, she has shared a few things about herself. Read more within...
More
Coconut Lizard and d3t achieve silver in the Mind Workplace Wellbeing Index

Coconut Lizard and d3t achieve silver in the Mind Workplace Wellbeing Index

Coconut Lizard is delighted to announce that we have been awarded with Silver in Mind’s Workplace Wellbeing Index for 2021/22. Read more.
More
Coconut Lizard welcomes Dovydas Šimoliūnas, Graduate Programmer to the team!

Coconut Lizard welcomes Dovydas Šimoliūnas, Graduate Programmer to the team!

Coconut Lizard is excited to welcome Dovydas Šimoliūnas, Graduate Programmer to our growing team! To mark Dovydas starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Jason 'Jax' Whitaker, Senior Programmer to the team!

Coconut Lizard welcomes Jason 'Jax' Whitaker, Senior Programmer to the team!

Coconut Lizard is excited to welcome Jason Whitaker, Senior Programmer to our growing team! To mark Jason starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Carl Rutter, Programmer to the team!

Coconut Lizard welcomes Carl Rutter, Programmer to the team!

Coconut Lizard is excited to welcome Carl Rutter, Programmer to our growing team! To mark Carl starting, he has shared a few things about himself. Read more within...
More
Shining the spotlight on Game Designer, Corey Smyth

Shining the spotlight on Game Designer, Corey Smyth

What does a Game Designer within the games industry do, and how can I become one? Find out as our very own Corey details his journey, along with his top tips for those looking to enter the industry.
More
Animation Budget Allocator

Animation Budget Allocator

We demonstrate the minimal setup required to use Unreal's Animation Budget Allocator. This plugin allows the equivalent of LODs to be applied to skeletal mesh animations.
More
New Project Launch Announcement! Dead Island 2

New Project Launch Announcement! Dead Island 2

All of us at Coconut Lizard are excited to announce that we have been involved with the next instalment of the much-loved zombie saga, Dead Island 2, which launches today (21/04/2023). Read more within.
More
Coconut Lizard welcomes Daniel Jorden, Graduate Programmer to the team!

Coconut Lizard welcomes Daniel Jorden, Graduate Programmer to the team!

Coconut Lizard is excited to welcome Daniel Jorden, Graduate Programmer to our growing team! To mark Daniel starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes James Charsley, Programmer to the team!

Coconut Lizard welcomes James Charsley, Programmer to the team!

Coconut Lizard is excited to welcome James Charsley, Programmer to our growing team! To mark James starting, he has shared a few things about himself. Read more within...
More
Shining the spotlight on Regional IT Systems Administrator, Paul Rowland

Shining the spotlight on Regional IT Systems Administrator, Paul Rowland

What does a Regional IT Systems Administrator within the games industry do, and how can I become one? Find out as our very own Paul details his journey, along with his top tips for those looking to enter the industry.
More
Coconut Lizard welcomes Stephen Archibald, Associate VFX Artist to the team!

Coconut Lizard welcomes Stephen Archibald, Associate VFX Artist to the team!

Coconut Lizard is excited to welcome Stephen Archibald, Associate VFX Artist to our growing team! To mark Stephen starting, he has shared a few things about himself. Read more within...
More
New Project Announcement! Dead Island 2

New Project Announcement! Dead Island 2

All of us at Coconut Lizard are excited to announce that we are involved on the next instalment of the much-loved zombie saga, Dead Island 2. Read more within.
More
Shining the spotlight on Associate Programmer, Tia Ylinen

Shining the spotlight on Associate Programmer, Tia Ylinen

What does an Associate Programmer within the games industry do, and how can I become one? Find out as our very own Tia details her journey, along with her top tips for those looking to enter the industry.
More
Coconut Lizard welcomes Ben Scroggins, Lead Programmer to the team!

Coconut Lizard welcomes Ben Scroggins, Lead Programmer to the team!

Coconut Lizard is excited to welcome Ben Scroggins, Lead Programmer to our growing team! To mark Ben starting, he has shared a few things about himself. Read more within...
More
Shining the spotlight on Senior Producer, Daniella Zelli-Lim

Shining the spotlight on Senior Producer, Daniella Zelli-Lim

What does a Senior Producer within the games industry do, and how can I become one? Find out as our very own Daniella details her journey, along with her top tips for those looking to enter the industry.
More
Coconut Lizard welcomes Peter Skager, Technical Artist to the team!

Coconut Lizard welcomes Peter Skager, Technical Artist to the team!

Coconut Lizard is excited to welcome Peter Skager, Technical Artist to our growing team! To mark Peter starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Darron Atkinson, Programmer to the team!

Coconut Lizard welcomes Darron Atkinson, Programmer to the team!

Coconut Lizard is excited to welcome Darron Atkinson, Programmer to our growing team! To mark Darron starting, he has shared a few things about himself. Read more within...
More
Coconut Lizard welcomes Florina Panaite, Programmer to the team!

Coconut Lizard welcomes Florina Panaite, Programmer to the team!

Coconut Lizard is excited to welcome Florina Panaite, Programmer to our growing team! To mark Florina starting, she has shared a few things about herself. Read more within...
More
Find Blueprint Info Direct From Visual Studio With This One Neat Extension!

Find Blueprint Info Direct From Visual Studio With This One Neat Extension!

We describe a Visual Studio extension that allows developers to search and find references to elements contained inside Unreal Engine Blueprints without launching the editor.
More
Editor Feature: Recent Assets Menu

Editor Feature: Recent Assets Menu

We add a recent assets menu to the UE4 editor to complement the recent levels menu.
More
Strings and Other Things

Strings and Other Things

We untangle the Unreal string types, and outline how to choose the one you need!
More
A Collection of Little Fixes

A Collection of Little Fixes

Using static code analysis, we look at some of the easy-to-miss, tiny little bugs/mistakes in Unreal Engine's codebase.
More
The Consequence of the Missing References

The Consequence of the Missing References

We delve into Sequencer, looking for optimization opportunities using PVS Studio, a static code analysis tool... with some interesting findings.
More
Slate 101 – Building a Leaderboard

Slate 101 – Building a Leaderboard

Figuring out the basics of UE4's Slate syntax is sometimes daunting for programmers when they first use it. In this post we discuss some core concepts in order to help out new Slate users, and possibly refresh the memories of those who don't use it all that often!
More
Getting Into Games Dev – Part 2

Getting Into Games Dev – Part 2

So, yeah, I started writing this story in July 2017 with Part 1 ... and intended to finish it a month later. It's now March 2020 ... nearly 3 years have passed ... and the world has most definitely moved on from wondering what happened next in my route to the games industry! So, yeah, let's pick right up where we left off...
More
The Curious Incident of the Archive Corruption

The Curious Incident of the Archive Corruption

During an optimisation pass on an internal project we spotted a few areas in UE4 deserialization code that could be hardened up. This post presents those fixes.
More
Blueprint Extension: Hide Unrelated Nodes

Blueprint Extension: Hide Unrelated Nodes

This is a new feature for both the blueprint editor and the material editor. When selecting regular nodes (except comment nodes, document nodes and the material output node) in the editor, this feature will fade out nodes which don't affect the selected nodes and nodes which are not affected by the selected nodes to make sure that users can focus on the nodes which are related to the selected nodes.
More
Loops and Bubbles

Loops and Bubbles

Some quick fixes for mini bugs. A superfluous for loop, and some visual tweaks to comment bubbles!
More
Be Vewwwy Vewwwy Quiet, We’re Hunting UObjects

Be Vewwwy Vewwwy Quiet, We’re Hunting UObjects

While hunting down some mysteriously vanishing UObjects we stumbled across a more fundamental problem in the garbage collector.
More
Trash Compactor

Trash Compactor

We recently found a huge leak in the UE4 garbage collector, particularly rearing its head on dedicated servers for large open-world games. Servers for arena type games with short play times (<1 hour) seem to be little affected, and clients don’t see the problem much either. “Huge” is not hyperbole here – we’re talking the garbage collector alone using up to 10 GB of ram in under 24 hours of server operation!
More
Placating The Natives

Placating The Natives

In this article we delve into Blueprint Nativization, a relatively new feature of UE4 that offers significant performance improvements for many projects. Sadly, it often doesn't work out of the box - we've spent some time fixing and improving it for a particular project that we were working on. We have a LOT of changes to present here - some of which have already been implemented into UE4.
More
PhysX: The Case Of The Leaky Cloth

PhysX: The Case Of The Leaky Cloth

We found quite a large leak within Apex 3.4 (currently used in Unreal Engine 4, amongst others) - in a relatively short run of the title that we were working on, we saw over 150mb of leaked memory. Here, we present some changes that will fix this
More
Getting Into Games Development (Part 1)

Getting Into Games Development (Part 1)

In this post our MD, Robert Troughton, starts his story about how he got into the games industry
More
So Long MAX_PATH… And Thanks For All The Fish!

So Long MAX_PATH… And Thanks For All The Fish!

Almost every developer that we've spoken to seems to have, at some point, encountered the MAX_PATH limit problem... this post talks about how to PROPERLY fix it
More
Is It A Drive? Is It A Directory? No, It’s…

Is It A Drive? Is It A Directory? No, It’s…

In this post, we look into why IPlatformFileCreateDirectory() was responsible for nearly 1 million allocations during a full cook of KiteDemo and why FPaths::IsDrive(), a huge 100-line function, is being used just to determine whether a filepath begins with a drive mapping... all for the purpose of further speeding up Unreal's cook process just a little bit more
More
Cache-ing Up, Cache-ing In

Cache-ing Up, Cache-ing In

As part of modifying the file profiler we looked at the file IO activity on starting the UE4 editor with one of the lightweight sample projects, noticing that certain files were being read multiple times. Each was being read in their entirety up to 200 times simply opening the editor. In this post we show you why this was happening and how it can be fixed
More
The Quickening Of The Light Map UV Generation

The Quickening Of The Light Map UV Generation

Lightmap UV generation in UE4 can take a considerable amount of time. Here, we take a look at it and present some optimisations that can yield 5x faster performance
More
The Improvement of the File Profiler

The Improvement of the File Profiler

UE4 has a little-known profiler for analysing file operations (with the intention that this information can then be used to make optimisations). In this post we take a look at that - and we make some improvements to make it (even more) useful
More
The Case of the Locked File

The Case of the Locked File

We were seeing frequent file IO errors in relation to temporary files created during cooking (particularly when compiling shaders). Our findings for why this were happening were surprising. Here we present a clean way to fix the issues
More
The Long and Winding Path of the Cook

The Long and Winding Path of the Cook

Long file path problems are commonplace when cooking with UE4. We took a look at it - and found that the engine was being too aggressive with its checks for whether or not a path really was too long
More
It’s A Size, Jim, But Not As We Know It, Not As We Know It…

It’s A Size, Jim, But Not As We Know It, Not As We Know It…

A really small bug fix is presented here - with a lot of Trekkie banter to fluff the piece out... and why not?
More
Static Code Analysis With PVS-Studio (Part 6)

Static Code Analysis With PVS-Studio (Part 6)

The sixth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
Sign Of The Times

Sign Of The Times

PVS-Studio pointed us toward some code with suspiciously mixed signed/unsigned math. This was actually causing some issues - and here we tell you how to fix them
More
Clear And Reset Danger

Clear And Reset Danger

A common programming mistake is fixed here, this time in the FBX importer
More
Static Code Analysis With PVS-Studio (Part 5)

Static Code Analysis With PVS-Studio (Part 5)

The fifth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Sadness of the Ignored Null Pointer

The Sadness of the Ignored Null Pointer

In this post we present an optimization coming from removing some pointless null pointer checks. The way that we found this was quite interesting
More
Speeding Up The Time Limit Controls

Speeding Up The Time Limit Controls

When a process takes a long time to complete, it makes absolute sense to put some time limit checks in so that you're not starving other work. What you don't want to do, of course, is to have those checks slow your original task down further by any considerable amount - here, we found that exactly this was happening .. so we present a solution
More
The Battle of the Lean and the Inlined Bone Functions

The Battle of the Lean and the Inlined Bone Functions

We took a look at the inlining of a certain part of the codebase and were shocked with what we found... we then went about improving it
More
ToString() Or Not ToString()… Wait, What’s The Question?

ToString() Or Not ToString()… Wait, What’s The Question?

ToString() is one of the most commonly called functions in UE4 - certainly across the editor, the content cooker and such. Here we take a look at it and make it over twice as fast
More
Tiny Code Fixes – Part 1

Tiny Code Fixes – Part 1

Here we present several small code fixes and improvements in a nice little package
More
Package Versioning… How It Works… And An Optimization

Package Versioning… How It Works… And An Optimization

UE4's Package Versioning is a bit of a dark art for most.. here we try to remove some of the confusion around it - while, again, offering some improvements through optimization
More
Portrait Of A Serialize Perf Killer

Portrait Of A Serialize Perf Killer

With performance critical editor and cooker code, it's well advised to consider performance when adding tests for rare errors. Here we take a look at this and show by, by considering the CPU pipeline and code cache, a simple change can yield a significant performance improvement without reducing stability
More
Sweeping Up And Disassembling A Physics Macro

Sweeping Up And Disassembling A Physics Macro

Macros can often be useful to make certain programming tasks simpler - but they can also cause hidden performance headaches that might otherwise be avoided. Here we look at one of those - and how to improve it
More
Static Code Analysis With PVS-Studio (Part 4)

Static Code Analysis With PVS-Studio (Part 4)

The fourth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
When Are Shopping Lists A Waste of Time?

When Are Shopping Lists A Waste of Time?

We take a look at some list generating code with UE4 - and why it was completely pointless
More
Using The Disassembler To Highlight Optimization Targets

Using The Disassembler To Highlight Optimization Targets

We use the debugger's disassembly view to look at FPaths::IsRelative() after it shows up in our profiling tests. Then we optimize it
More
Static Code Analysis With PVS-Studio (Part 3)

Static Code Analysis With PVS-Studio (Part 3)

The third part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Cook, The Resave, His Garbage And Her Optimization

The Cook, The Resave, His Garbage And Her Optimization

We present here a way to improve cook times by reducing the frequency of garbage collection
More
The Case Of The ExportHash String Monster

The Case Of The ExportHash String Monster

We found CreateExportHash() was showing up in profiling the cooker - so we optimized it. Our findings and changes are presented here
More
Static Code Analysis With PVS-Studio (Part 2)

Static Code Analysis With PVS-Studio (Part 2)

The second part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
Patch Content Early – NOT At Runtime

Patch Content Early – NOT At Runtime

We present an optimization that removes a significant amount of memory churn from the animation code
More

Static Code Analysis With PVS-Studio (Part 1)

The first part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
A Huge PhysX Memory Churn Reduction

A Huge PhysX Memory Churn Reduction

Here we implement a scratch buffer to reduce temporary memory churn passing through PhysX
More
The Smallest, Coolest Optimization

The Smallest, Coolest Optimization

While profiling a game's runtime, we found that 40% of memory allocations were coming from a single function. The fix/optimization involves adding a single character
More
The Clue In The Code Comments

The Clue In The Code Comments

We present a tiny little fix for a simple - but serious - coding error in the UE4 codebase
More
Go to Top