In the course of developing the Battle Royale game mode we’ve made many performance, memory, and workflow optimizations that not only benefit Fortnite: Battle Royale but every developer using Unreal Engine 4.
In the course of developing the Battle Royale game mode we’ve made many performance, memory, and workflow optimizations that not only benefit Fortnite: Battle Royale but every developer using Unreal Engine 4.
With AR and mixed reality content creation on the rise, Epic Games’ Principal Technical Artist Ryan Brucks breaks down the process of crafting a basic chroma key function in UE4.
With AR and mixed reality content creation on the rise, Epic Games’ Principal Technical Artist Ryan Brucks breaks down the process of crafting a basic chroma key function in UE4.
White Paper Games Technical Artist James Burton shows the process used to create the locomotion system of the AI characters in the upcoming game ‘The Occupation’.
White Paper Games Technical Artist James Burton shows the process used to create the locomotion system of the AI characters in the upcoming game ‘The Occupation’.
We’re adding NVIDIA Aftermath technology to 4.15.2 in order to collect better data about GPU related crashes so we can more quickly address them in Unreal Engine. Here’s where we are and what to expect.
Gameplay Tags have existed in the engine for several versions, but in UE 4.15 the interface and performance were greatly improved, so now is a great time to start using them.
Gameplay Tags have existed in the engine for several versions, but in UE 4.15 the interface and performance were greatly improved, so now is a great time to start using them.
ARM Mali Graphics Debugger (MGD) allows developers to trace Vulkan, OpenGL ES, EGL and OpenCL API calls in their application to understand their effect frame-by-frame and to help identify possible bottlenecks in the code.
ARM Mali Graphics Debugger (MGD) allows developers to trace Vulkan, OpenGL ES, EGL and OpenCL API calls in their application to understand their effect frame-by-frame and to help identify possible bottlenecks in the code.
Hi everyone! I’m Jay from High Horse Entertainment, a two-man team based out of Los Angeles. Our first project, Disc Jam, is an arcade action sport in which timing and reflexes are critical to succes, so maintaining a high frame rate is largely important for the game experience. Here's how we hit 60 FPS on Intel Process Graphics with Unreal Engine 4.
Hi everyone! I’m Jay from High Horse Entertainment, a two-man team based out of Los Angeles. Our first project, Disc Jam, is an arcade action sport in which timing and reflexes are critical to succes, so maintaining a high frame rate is largely important for the game experience. Here's how we hit 60 FPS on Intel Process Graphics with Unreal Engine 4.
Very few standalone applications exist that do not interface with external APIs or services. The Helios SDI Plugin allows for the easy integration of external data into UE4 clients by interfacing directly with a web server using auto-generated Blueprints nodes. Here's how it works and how to get started.
Memory leaks are an elusive category of bugs and often take quite a while to manifest. These bugs occur when we allocate memory for something then lose track of it without freeing up the memory it’s using. While it’s hard to patch up every leaky allocation, there are a few techniques we can use to find the largest offenders and make sure they stop hogging memory that they don’t need.
During development, it’s a good idea to take a look at what exactly UE4 is sending to the platform’s shader compiler. This post will allow you to debug any issues associated with it.
During development, it’s a good idea to take a look at what exactly UE4 is sending to the platform’s shader compiler. This post will allow you to debug any issues associated with it.
The Intel RealSense cameras use infrared light to compute depth in addition to normal RGB pictures and video. To assist in the development of applications with this technology, Intel created the RealSense SDK, a library of computer vision algorithms including facial recognition, image segmentation, and 3D scanning.
The Intel RealSense cameras use infrared light to compute depth in addition to normal RGB pictures and video. To assist in the development of applications with this technology, Intel created the RealSense SDK, a library of computer vision algorithms including facial recognition, image segmentation, and 3D scanning.
Of all of the sorts of bugs a large codebase can have, the dreaded "random memory overwrite" is often the most difficult to track down. The symptoms are misleading. If a random memory overwrite occurs, the actual symptom, a crash, can occur anywhere in the code base. The bugs are distributed across the team and the team members are left scratching their heads wondering how flawless code is crashing. Eventually enough evidence accumulates that it becomes clear that some code somewhere is writing to memory that does not belong to it.
Of all of the sorts of bugs a large codebase can have, the dreaded "random memory overwrite" is often the most difficult to track down. The symptoms are misleading. If a random memory overwrite occurs, the actual symptom, a crash, can occur anywhere in the code base. The bugs are distributed across the team and the team members are left scratching their heads wondering how flawless code is crashing. Eventually enough evidence accumulates that it becomes clear that some code somewhere is writing to memory that does not belong to it.
Unreal Engine 4 provides a generic analytics interface that analytics service providers use to wrap their native libraries on the respective mobile platform. The generic layer allows the game developer to write their code or Blueprints once, while allowing them to select from one or more analytics providers. Find out about plugins already in the UE4 source, plugins available from third parties, and information about how to write your own here.
There’s a class of gameplay bugs that are hard to track down just via user reports. These types of bugs typically involve complicated steps where the AI has made a decision based upon the state of the game at the time. UE4 has a tool to help in this regard; we call it Visual Logger, and here's how to use it.
In 4.9 we’ve exposed the teleport flag to several blueprint nodes, and this seemed like a good opportunity to give some detail on how it all works. Check it out!
In 4.9 we’ve exposed the teleport flag to several blueprint nodes, and this seemed like a good opportunity to give some detail on how it all works. Check it out!
Slate is an “immediate mode” UI framework, meaning it redraws the entire UI each frame. This is great for very dynamic interfaces that are rich with graphics and animations, but results in unnecessary processor usage when nothing in the UI needs to change. This feature introduces a new “Active Timer” system to Slate, allowing it to enter a “Sleep” state when no UI needs to update.
Slate is an “immediate mode” UI framework, meaning it redraws the entire UI each frame. This is great for very dynamic interfaces that are rich with graphics and animations, but results in unnecessary processor usage when nothing in the UI needs to change. This feature introduces a new “Active Timer” system to Slate, allowing it to enter a “Sleep” state when no UI needs to update.
Slate often has to deal with deep and wide hierarchies of widgets, expressing the sizes and positions of children in terms of their parents. Sometimes these are simple relationships like text in a button, but occasionally those relationships are much more complicated. Read on.
Slate often has to deal with deep and wide hierarchies of widgets, expressing the sizes and positions of children in terms of their parents. Sometimes these are simple relationships like text in a button, but occasionally those relationships are much more complicated. Read on.
In Unreal Engine, TArray is a dynamically sized array of typed elements. TArrays are very convenient to the programmer, and they are used *a lot* in our codebase. However there can be some subtle performance issues that can arise, and for optimal performance, you need to make sure you understand what goes on behind the scenes.
Getting started with Unreal Engine 4 projects became a lot easier with the release of version 4.7. Epic Games and Microsoft have provided direct access to Visual Studio out of the gate when you download Unreal Engine 4.
Understanding how your game is performing with players is important to having a “sticky” game that players return to again and again. Here are some ways to help measure your game's success.
Understanding how your game is performing with players is important to having a “sticky” game that players return to again and again. Here are some ways to help measure your game's success.
Is the frame rate in your game low? Do you know why? Could it be because you have too many enemies spawned at once or is it because one specific enemy is expensive? Could it be because you have a ton of visual effects or because of that sweet skill system you wrote? Read on to find out.
Is the frame rate in your game low? Do you know why? Could it be because you have too many enemies spawned at once or is it because one specific enemy is expensive? Could it be because you have a ton of visual effects or because of that sweet skill system you wrote? Read on to find out.
This post is the first in hopefully a series of in depth, highly technical discussions of features in UE4. This is a follow up to my talk Real Shading in Unreal Engine 4. That talk explained the shading model used in UE4. This post assumes the reader is familiar with the course notes.
This post is the first in hopefully a series of in depth, highly technical discussions of features in UE4. This is a follow up to my talk Real Shading in Unreal Engine 4. That talk explained the shading model used in UE4. This post assumes the reader is familiar with the course notes.
Recently, I had an email conversation with a Gears of War fan about the differences in networking quality between each of the three games in the series. One thing that we can point to in terms of increasing the quality of the networking experience is our use of the Unreal Engine’s built in network simulation features.
Damage support is a feature of the base Actor class, making it widely available. The system provides easy access to common functionality for quick results, while also being extensible to allow you to customize your damage model when needed. We’ve also made an effort to avoid making assumptions about how to respond to damage, meaning you won’t find any notion of “hit points” or “death” in the engine. These concepts tend to be very game-specific, and we’ve found that attempts to generalize them end up causing more pain than they prevent.
While the Unreal Engine has enjoyed Linux support in the past, with Unreal Engine 4 we want to make Linux a first class member of our platform family. Our plans regarding the Linux platform balance the needs of both our internal projects and some partner projects, alongside the larger needs of the Linux community.
While the Unreal Engine has enjoyed Linux support in the past, with Unreal Engine 4 we want to make Linux a first class member of our platform family. Our plans regarding the Linux platform balance the needs of both our internal projects and some partner projects, alongside the larger needs of the Linux community.
In the Unreal Engine 4 code base, we have started taking advantage of some of the cool features added in C++11. We are cautious when adopting new language features because we target a wide range of platforms with varying compiler support. One of my favorite new features though is 'range-based for loops', which now works on Unreal's TArray, TMap and TSet containers. Here is an example of how this can really clean up common game code.
In the Unreal Engine 4 code base, we have started taking advantage of some of the cool features added in C++11. We are cautious when adopting new language features because we target a wide range of platforms with varying compiler support. One of my favorite new features though is 'range-based for loops', which now works on Unreal's TArray, TMap and TSet containers. Here is an example of how this can really clean up common game code.
In these videos, we start from a C++ template, and start adding in new features to create the beginnings of a sample game! We end up with a main character that is losing power every frame and has to collect batteries to charge back up before the game ends.
In these videos, we start from a C++ template, and start adding in new features to create the beginnings of a sample game! We end up with a main character that is losing power every frame and has to collect batteries to charge back up before the game ends.