Animating in C++: Curves and Easing Functions
Sometimes you only need a simple âtweenâ style animation in C++ to interpolate values or animate certain gameplay elements using Curves and Easing Functions.
Sometimes you only need a simple âtweenâ style animation in C++ to interpolate values or animate certain gameplay elements using Curves and Easing Functions.
Getting started with Unreal Engine C++ can be a bit of a struggle. The resources online have no clear path to follow or fail to explain the Unrealisms youâll encounter. In this article, Iâll attempt to give you an overview of many unique aspects of Unrealâs C++ and briefly go over some of the native C++ features and how they are used in the context of Unreal Engine. Itâs a compilation of the many different concepts that you will face when working in C++ and Unreal Engine s...
There is a better way to store and modify your project wide settings than using Blueprints or hard-coded C++. Learn how to use the Developer Settings class.
You may or may not be familiar with GameplayTags in Unreal Engine. Itâs heavily used in Unrealâs Gameplay Ability System, but can be used stand-alone in your game framework. In this article, I will introduce GameplayTags and how they can be used in your game, even if you choose not to use GAS.
For your game, you will eventually need to write some kind of save system. To store player information, unlocks, achievements, etc. In some cases, you will need to save the world state such as looted chests, unlocked doors, dropped player items, etc.
For my upcoming game WARPSQUAD, I was curious how easy it is to fetch data from a web service to be displayed in-game. The initial use case is a simple Message of the Day (MOTD) to be displayed in the main menu. Allowing for easy communication with players during playtests or (service) issues. You could use such web interfacing for posting in-game feedback too or whatever data you want to keep outside of the game executable to update on the fly.
For the Stanford University Fall Curriculum, I built a small game project using C++ mixed with some Blueprint in Unreal Engine. It has since been converted into an online course that anyone can participate in. It has been used by dozens of industry leading game studios to train their employees for C++ with Unreal Engine on top of thousands of indie developers.
What is Asset Manager?
Editing Arrays containing Structs in Unreal Engine has some bad UX. Especially for arrays with many entries as each element provides no context to its contents until you expand each element in the UI to inspect the contents. There is a way to make this look better using the TitleProperty meta-specifier! This trick is only available to arrays created in C++ that are exposed to be viewed in the Unreal Editor.
You can continue to move/rotate your camera while game logic is PAUSED in Unreal Engine. Unfortunately, itâs a little obscure to set up so here is a quick overview with C++.
The only sane way to optimize your game is by having good profiling metrics. Unreal Engine comes packed with several good profiling tools and âstat commandsâ is one such feature. It allows us to measure pieces of our (C++) code in different ways. In this short article I explain how you can use this to your advantage.
The Gameplay Framework of Unreal Engine provides a powerful set of classes to build your game. Your game can be a shooter, farm simulator, a deep RPG, it doesnât matter. The framework is very flexible and does some heavy lifting and sets some standards. It has a pretty deep integration with the engine so my immediate advice is to stick to these classes instead of trying to âroll your ownâ game framework as you might with engines like Unity. Understanding this framework is ...
Today Iâd like to quickly show how you can add UI for things like health bars, nameplates, interaction prompts and more in Unreal Engine. Itâs quite simple to do, and I hear a lot of questions about this, so today Iâll share you some tricks to make this even easier. The sample code is done in C++, but keep reading as I show you a quick and easy Blueprint-only trick too! The following guide explains the concept of how to be able to fetch the information you desire for your ...
As I have been preparing some Unreal Engine C++ tutorials, I wanted to use the Built-in C++ FPS Template that ships with the engine as a base project and found it has VR and Touch-input code in the character class which donât serve any purpose unless you are interested in VR and/or mobile. Since I needed a super simple C++ template to not scare people away from learning this language, I decided to create a simplified version with only the essentials for non-VR projects (Th...
In this post I will be covering the common keywords used with the UFUNCTION macro in Unreal Engine 4. Each of the keywords covered include a practical code sample and a look at how it compiles into Blueprint nodes. I left out the networking specific keywords as they deserve a separate post on networking in Unreal Engine 4 and instead I focus on the different keywords used for exposing your C++ to Blueprint.
Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if youâre unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.
In recent years DirectX 12 games have gotten a bad rep for shader stutters. The most common issue we see discussed at launch is due to a lack of pre-compiling Pipeline State Objects. These PSOs (required by the GPU) need to be compiled on the CPU if not already cached on the local machine and will cause hitches as they may cost anywhere from a few milliseconds to several hundreds of milliseconds to compile before we may continue execution.
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
Last year Nvidia announced DLSS 2.0 with the ability to open this new anti-aliasing solution for all games. The game-specific deep learning is no longer required as it was with prior iterations. For an indie dev that is especially exciting as the chance of getting onto Nvidiaâs SuperComputer was pretty slim. Itâs now easier than ever to add DLSS support to your Unreal Engine title!
Unreal Engine can auto-detect âoptimalâ (graphical) settings per player based on a quick CPU and GPU benchmark. The functions are available in Blueprint to hook up into your gameâs options menu.
Unreal Engine Project Settings allow a major reduction (up to 50%) of shader permutations affecting shader compile times, package size, and load times. You can find the options under the Engine > Rendering > Shader Permutation Reduction Category. Which settings you can disable will depend on your projectâs rendering requirements.
Some time ago I saw a neat solution by Cory Spooner on outlining meshes using particle sprites. The concept has been done before - but itâs interesting enough to cover it regardless for Unreal Engine specifically. We render the outline on a translucent cube or sphere that is tightly fitted around the desired mesh. We apply the outline material to this cube instead of a post-process chain. This letâs us affect only small portions of the screen rather then pay the full-scree...
In this post I will discuss depth (or distance) fog and the things I did to improve on the original basic effect while keeping this simple and light-weight. Itâs not a step-by-step tutorial, but explains the core concepts behind the effect including a download link at the end.
Unreal Engine posted an excellent MasterClass talk by Jerome Platteaux on Lighting during Unreal Dev Day Montreal 2017. The video is worth a full watch, it contains tons of interesting practical tips and explains many of the Lightmass features of Unreal Engine 4. I am writing this post to create a personal reference of all the useful data contained in this video without having to scroll through the video every time I am looking for some information. I mostly focused on the...
Earlier this week I tweeted about hit-masking characters to show dynamic blood and wounds. Today Iâd like to talk a little about the effect and how it came to be. Iâll talk a little bit about the technical details and some alternatives. The effect is a proof of concept to try and find a cheaper alternative to texture splatting using render targets. So letâs get going!
This weekend I stumbled upon a reddit post about Dr. Facilierâs interesting shadow in The Princess and the Frog and it inspired me to experiment with Forward shading in Unreal Engine 4 to re-create a similar effect in real-time shading. OP pointed out that The Shadow Manâs shadow changes the wallpaper his shadow is cast on. A subtle but quite interesting effect!
Unreal Engine leverages the power of Signed Distance Fields for Ambient Occlusion and more recently added Ray Traced Distance Field Soft Shadows. I will briefly discuss and demonstrate both effects as a result of some early research to consider using these techniques for our game. Since the core of Switchâs design hinges on fully dynamic levels, we simply cannot bake down any lighting. As a result we have to look out for a better approach to create scene definition and ton...
It is time for another Unreal Engine 5.7 Performance Highlights post! I have compiled a list of most impactful changes which make it worthwhile to upgrade to 5.7. I trimmed the list more substantially this time around to make it more digestible and really highlight the most interesting areas while keeping the more minor changes out. I have included annotations and clarifications not found in the original release notes.
The release of Unreal Engine 5.6 brings a lot of incredible performance improvements to the engine. In this alternative release notes I have filtered the list down to the most interesting optimizations and performance related changes. Where appropriate I have added my own notes, to explain more clearly or give context as these notes can sometimes be rather vague or short.
The following Highlights are taken from the Unreal Engine 5.5 Release Notes and focus primarily on real-time game performance on PC and consoles. My personal highlights have some commentary on them and at the bottom youâll find a raw list of changes that I found notable. There were so many changes that even at the bottom I choose not to include everything, especially if the release notes were vague on their benefit or actual improvement.
In recent years DirectX 12 games have gotten a bad rep for shader stutters. The most common issue we see discussed at launch is due to a lack of pre-compiling Pipeline State Objects. These PSOs (required by the GPU) need to be compiled on the CPU if not already cached on the local machine and will cause hitches as they may cost anywhere from a few milliseconds to several hundreds of milliseconds to compile before we may continue execution.
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
Last year Nvidia announced DLSS 2.0 with the ability to open this new anti-aliasing solution for all games. The game-specific deep learning is no longer required as it was with prior iterations. For an indie dev that is especially exciting as the chance of getting onto Nvidiaâs SuperComputer was pretty slim. Itâs now easier than ever to add DLSS support to your Unreal Engine title!
Unreal Engine can auto-detect âoptimalâ (graphical) settings per player based on a quick CPU and GPU benchmark. The functions are available in Blueprint to hook up into your gameâs options menu.
Unreal Engine Project Settings allow a major reduction (up to 50%) of shader permutations affecting shader compile times, package size, and load times. You can find the options under the Engine > Rendering > Shader Permutation Reduction Category. Which settings you can disable will depend on your projectâs rendering requirements.
Rotating (ambient) meshes in your world adds a dynamic element, but doing this on the CPU and having to pass it to the GPU each frame is a relatively slow operation. Without realizing you may be updating your collision every tick too, causing overlap updates and hurting performance even more.
The only sane way to optimize your game is by having good profiling metrics. Unreal Engine comes packed with several good profiling tools and âstat commandsâ is one such feature. It allows us to measure pieces of our (C++) code in different ways. In this short article I explain how you can use this to your advantage.
Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if youâre unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.
Unreal Engine Project Settings allow a major reduction (up to 50%) of shader permutations affecting shader compile times, package size, and load times. You can find the options under the Engine > Rendering > Shader Permutation Reduction Category. Which settings you can disable will depend on your projectâs rendering requirements.
Rotating (ambient) meshes in your world adds a dynamic element, but doing this on the CPU and having to pass it to the GPU each frame is a relatively slow operation. Without realizing you may be updating your collision every tick too, causing overlap updates and hurting performance even more.
Some time ago I saw a neat solution by Cory Spooner on outlining meshes using particle sprites. The concept has been done before - but itâs interesting enough to cover it regardless for Unreal Engine specifically. We render the outline on a translucent cube or sphere that is tightly fitted around the desired mesh. We apply the outline material to this cube instead of a post-process chain. This letâs us affect only small portions of the screen rather then pay the full-scree...
In this post I will discuss depth (or distance) fog and the things I did to improve on the original basic effect while keeping this simple and light-weight. Itâs not a step-by-step tutorial, but explains the core concepts behind the effect including a download link at the end.
Ever since I first wrote about creating mesh outlines in Unreal Engine I have wondered if it was possible to render them as soft outlines instead of harsh binary lines. A good example of soft outlines can be found in Valveâs games like Left 4 Dead or CS:GO.
Earlier this week I tweeted about hit-masking characters to show dynamic blood and wounds. Today Iâd like to talk a little about the effect and how it came to be. Iâll talk a little bit about the technical details and some alternatives. The effect is a proof of concept to try and find a cheaper alternative to texture splatting using render targets. So letâs get going!
This weekend I stumbled upon a reddit post about Dr. Facilierâs interesting shadow in The Princess and the Frog and it inspired me to experiment with Forward shading in Unreal Engine 4 to re-create a similar effect in real-time shading. OP pointed out that The Shadow Manâs shadow changes the wallpaper his shadow is cast on. A subtle but quite interesting effect!
With some of the recent changes to Unreal Engine 4, rendering multi-color outlines is now possible! This is done through the use of Custom Stencil, a new buffer similar to Custom Depth - but allowing meshes to render as integer values. This provides us with a 1-255 range of indices that can be used to apply different outline colors to meshes and even combine multiple features such as the decal x-ray shown below by using a different stencil index.
We recently added a new locking feature to Switch for which we needed to have progress feedback. For this I built a circular progress bar in UMG. Iâm giving away the material to use in your own projects. The download link is at the bottom. If you wish to learn more about the effect, keep reading - otherwise you can simply scroll down and download the material outright and explore it on your own. Enjoy!
Unreal Engine 4 introduced a new depth buffer along with its PBR rendering system. Itâs called âCustom Depthâ and can be used for effects like the selection outline that is built-in in the Editor, rendering of occluded meshes, or custom culling of transparency. I will discuss some of the basics of using this buffer in the material editor and explain some of the features I used it for in my own projects.
Sometimes you only need a simple âtweenâ style animation in C++ to interpolate values or animate certain gameplay elements using Curves and Easing Functions.
In recent years DirectX 12 games have gotten a bad rep for shader stutters. The most common issue we see discussed at launch is due to a lack of pre-compiling Pipeline State Objects. These PSOs (required by the GPU) need to be compiled on the CPU if not already cached on the local machine and will cause hitches as they may cost anywhere from a few milliseconds to several hundreds of milliseconds to compile before we may continue execution.
Getting started with Unreal Engine C++ can be a bit of a struggle. The resources online have no clear path to follow or fail to explain the Unrealisms youâll encounter. In this article, Iâll attempt to give you an overview of many unique aspects of Unrealâs C++ and briefly go over some of the native C++ features and how they are used in the context of Unreal Engine. Itâs a compilation of the many different concepts that you will face when working in C++ and Unreal Engine s...
There is a better way to store and modify your project wide settings than using Blueprints or hard-coded C++. Learn how to use the Developer Settings class.
You may or may not be familiar with GameplayTags in Unreal Engine. Itâs heavily used in Unrealâs Gameplay Ability System, but can be used stand-alone in your game framework. In this article, I will introduce GameplayTags and how they can be used in your game, even if you choose not to use GAS.
For your game, you will eventually need to write some kind of save system. To store player information, unlocks, achievements, etc. In some cases, you will need to save the world state such as looted chests, unlocked doors, dropped player items, etc.
For the Stanford University Fall Curriculum, I built a small game project using C++ mixed with some Blueprint in Unreal Engine. It has since been converted into an online course that anyone can participate in. It has been used by dozens of industry leading game studios to train their employees for C++ with Unreal Engine on top of thousands of indie developers.
What is Asset Manager?
Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if youâre unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.
Some time ago I saw a neat solution by Cory Spooner on outlining meshes using particle sprites. The concept has been done before - but itâs interesting enough to cover it regardless for Unreal Engine specifically. We render the outline on a translucent cube or sphere that is tightly fitted around the desired mesh. We apply the outline material to this cube instead of a post-process chain. This letâs us affect only small portions of the screen rather then pay the full-scree...
Ever since I first wrote about creating mesh outlines in Unreal Engine I have wondered if it was possible to render them as soft outlines instead of harsh binary lines. A good example of soft outlines can be found in Valveâs games like Left 4 Dead or CS:GO.
With some of the recent changes to Unreal Engine 4, rendering multi-color outlines is now possible! This is done through the use of Custom Stencil, a new buffer similar to Custom Depth - but allowing meshes to render as integer values. This provides us with a 1-255 range of indices that can be used to apply different outline colors to meshes and even combine multiple features such as the decal x-ray shown below by using a different stencil index.
Unreal Engine 4 introduced a new depth buffer along with its PBR rendering system. Itâs called âCustom Depthâ and can be used for effects like the selection outline that is built-in in the Editor, rendering of occluded meshes, or custom culling of transparency. I will discuss some of the basics of using this buffer in the material editor and explain some of the features I used it for in my own projects.
Some time ago I saw a neat solution by Cory Spooner on outlining meshes using particle sprites. The concept has been done before - but itâs interesting enough to cover it regardless for Unreal Engine specifically. We render the outline on a translucent cube or sphere that is tightly fitted around the desired mesh. We apply the outline material to this cube instead of a post-process chain. This letâs us affect only small portions of the screen rather then pay the full-scree...
Ever since I first wrote about creating mesh outlines in Unreal Engine I have wondered if it was possible to render them as soft outlines instead of harsh binary lines. A good example of soft outlines can be found in Valveâs games like Left 4 Dead or CS:GO.
With some of the recent changes to Unreal Engine 4, rendering multi-color outlines is now possible! This is done through the use of Custom Stencil, a new buffer similar to Custom Depth - but allowing meshes to render as integer values. This provides us with a 1-255 range of indices that can be used to apply different outline colors to meshes and even combine multiple features such as the decal x-ray shown below by using a different stencil index.
Unreal Engine 4 introduced a new depth buffer along with its PBR rendering system. Itâs called âCustom Depthâ and can be used for effects like the selection outline that is built-in in the Editor, rendering of occluded meshes, or custom culling of transparency. I will discuss some of the basics of using this buffer in the material editor and explain some of the features I used it for in my own projects.
In this post I will discuss depth (or distance) fog and the things I did to improve on the original basic effect while keeping this simple and light-weight. Itâs not a step-by-step tutorial, but explains the core concepts behind the effect including a download link at the end.
Ever since I first wrote about creating mesh outlines in Unreal Engine I have wondered if it was possible to render them as soft outlines instead of harsh binary lines. A good example of soft outlines can be found in Valveâs games like Left 4 Dead or CS:GO.
With some of the recent changes to Unreal Engine 4, rendering multi-color outlines is now possible! This is done through the use of Custom Stencil, a new buffer similar to Custom Depth - but allowing meshes to render as integer values. This provides us with a 1-255 range of indices that can be used to apply different outline colors to meshes and even combine multiple features such as the decal x-ray shown below by using a different stencil index.
Unreal Engine 4 introduced a new depth buffer along with its PBR rendering system. Itâs called âCustom Depthâ and can be used for effects like the selection outline that is built-in in the Editor, rendering of occluded meshes, or custom culling of transparency. I will discuss some of the basics of using this buffer in the material editor and explain some of the features I used it for in my own projects.
There is a better way to store and modify your project wide settings than using Blueprints or hard-coded C++. Learn how to use the Developer Settings class.
Editing Arrays containing Structs in Unreal Engine has some bad UX. Especially for arrays with many entries as each element provides no context to its contents until you expand each element in the UI to inspect the contents. There is a way to make this look better using the TitleProperty meta-specifier! This trick is only available to arrays created in C++ that are exposed to be viewed in the Unreal Editor.
You can continue to move/rotate your camera while game logic is PAUSED in Unreal Engine. Unfortunately, itâs a little obscure to set up so here is a quick overview with C++.
Unreal Engine Project Settings allow a major reduction (up to 50%) of shader permutations affecting shader compile times, package size, and load times. You can find the options under the Engine > Rendering > Shader Permutation Reduction Category. Which settings you can disable will depend on your projectâs rendering requirements.
There is a better way to store and modify your project wide settings than using Blueprints or hard-coded C++. Learn how to use the Developer Settings class.
Editing Arrays containing Structs in Unreal Engine has some bad UX. Especially for arrays with many entries as each element provides no context to its contents until you expand each element in the UI to inspect the contents. There is a way to make this look better using the TitleProperty meta-specifier! This trick is only available to arrays created in C++ that are exposed to be viewed in the Unreal Editor.
In this post I will be covering the common keywords used with the UFUNCTION macro in Unreal Engine 4. Each of the keywords covered include a practical code sample and a look at how it compiles into Blueprint nodes. I left out the networking specific keywords as they deserve a separate post on networking in Unreal Engine 4 and instead I focus on the different keywords used for exposing your C++ to Blueprint.
For my upcoming game WARPSQUAD, I was curious how easy it is to fetch data from a web service to be displayed in-game. The initial use case is a simple Message of the Day (MOTD) to be displayed in the main menu. Allowing for easy communication with players during playtests or (service) issues. You could use such web interfacing for posting in-game feedback too or whatever data you want to keep outside of the game executable to update on the fly.
The Gameplay Framework of Unreal Engine provides a powerful set of classes to build your game. Your game can be a shooter, farm simulator, a deep RPG, it doesnât matter. The framework is very flexible and does some heavy lifting and sets some standards. It has a pretty deep integration with the engine so my immediate advice is to stick to these classes instead of trying to âroll your ownâ game framework as you might with engines like Unity. Understanding this framework is ...
In this post I will be covering the common keywords used with the UFUNCTION macro in Unreal Engine 4. Each of the keywords covered include a practical code sample and a look at how it compiles into Blueprint nodes. I left out the networking specific keywords as they deserve a separate post on networking in Unreal Engine 4 and instead I focus on the different keywords used for exposing your C++ to Blueprint.
It is time for another Unreal Engine 5.7 Performance Highlights post! I have compiled a list of most impactful changes which make it worthwhile to upgrade to 5.7. I trimmed the list more substantially this time around to make it more digestible and really highlight the most interesting areas while keeping the more minor changes out. I have included annotations and clarifications not found in the original release notes.
The release of Unreal Engine 5.6 brings a lot of incredible performance improvements to the engine. In this alternative release notes I have filtered the list down to the most interesting optimizations and performance related changes. Where appropriate I have added my own notes, to explain more clearly or give context as these notes can sometimes be rather vague or short.
The following Highlights are taken from the Unreal Engine 5.5 Release Notes and focus primarily on real-time game performance on PC and consoles. My personal highlights have some commentary on them and at the bottom youâll find a raw list of changes that I found notable. There were so many changes that even at the bottom I choose not to include everything, especially if the release notes were vague on their benefit or actual improvement.
Getting started with Unreal Engine C++ can be a bit of a struggle. The resources online have no clear path to follow or fail to explain the Unrealisms youâll encounter. In this article, Iâll attempt to give you an overview of many unique aspects of Unrealâs C++ and briefly go over some of the native C++ features and how they are used in the context of Unreal Engine. Itâs a compilation of the many different concepts that you will face when working in C++ and Unreal Engine s...
Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if youâre unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.
Today Iâd like to quickly show how you can add UI for things like health bars, nameplates, interaction prompts and more in Unreal Engine. Itâs quite simple to do, and I hear a lot of questions about this, so today Iâll share you some tricks to make this even easier. The sample code is done in C++, but keep reading as I show you a quick and easy Blueprint-only trick too! The following guide explains the concept of how to be able to fetch the information you desire for your ...
We recently added a new locking feature to Switch for which we needed to have progress feedback. For this I built a circular progress bar in UMG. Iâm giving away the material to use in your own projects. The download link is at the bottom. If you wish to learn more about the effect, keep reading - otherwise you can simply scroll down and download the material outright and explore it on your own. Enjoy!
For the Stanford University Fall Curriculum, I built a small game project using C++ mixed with some Blueprint in Unreal Engine. It has since been converted into an online course that anyone can participate in. It has been used by dozens of industry leading game studios to train their employees for C++ with Unreal Engine on top of thousands of indie developers.
As I have been preparing some Unreal Engine C++ tutorials, I wanted to use the Built-in C++ FPS Template that ships with the engine as a base project and found it has VR and Touch-input code in the character class which donât serve any purpose unless you are interested in VR and/or mobile. Since I needed a super simple C++ template to not scare people away from learning this language, I decided to create a simplified version with only the essentials for non-VR projects (Th...
Since the last time I wrote about Utility AI for Unreal Engine 4, it has been stream-lined and so has the Action System itâs built on. The Action System is quite similar to Unrealâs Gameplay Ability System for those familiar. Towards the end Iâll tease a few other AI related concepts Iâve been working on. Here is part one in case you missed it.
Unreal Engine comes with several AI features built-in (Behavior Trees, Blackboards, Navigation Mesh and Environment Query System) but hasnât seen many improvements in this area since the launch of 4.0 several years ago. With mixed results in our projects using Behavior Trees we decided to look at alternatives. Oz pointed me to Utility AI as a system for setting up AI behaviors, I have since been fascinated by the simplicity of the concept to replace Behavior Trees in our p...
Since the last time I wrote about Utility AI for Unreal Engine 4, it has been stream-lined and so has the Action System itâs built on. The Action System is quite similar to Unrealâs Gameplay Ability System for those familiar. Towards the end Iâll tease a few other AI related concepts Iâve been working on. Here is part one in case you missed it.
Unreal Engine comes with several AI features built-in (Behavior Trees, Blackboards, Navigation Mesh and Environment Query System) but hasnât seen many improvements in this area since the launch of 4.0 several years ago. With mixed results in our projects using Behavior Trees we decided to look at alternatives. Oz pointed me to Utility AI as a system for setting up AI behaviors, I have since been fascinated by the simplicity of the concept to replace Behavior Trees in our p...
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
The only sane way to optimize your game is by having good profiling metrics. Unreal Engine comes packed with several good profiling tools and âstat commandsâ is one such feature. It allows us to measure pieces of our (C++) code in different ways. In this short article I explain how you can use this to your advantage.
Unreal Engine leverages the power of Signed Distance Fields for Ambient Occlusion and more recently added Ray Traced Distance Field Soft Shadows. I will briefly discuss and demonstrate both effects as a result of some early research to consider using these techniques for our game. Since the core of Switchâs design hinges on fully dynamic levels, we simply cannot bake down any lighting. As a result we have to look out for a better approach to create scene definition and ton...
Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if youâre unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.
The Gameplay Framework of Unreal Engine provides a powerful set of classes to build your game. Your game can be a shooter, farm simulator, a deep RPG, it doesnât matter. The framework is very flexible and does some heavy lifting and sets some standards. It has a pretty deep integration with the engine so my immediate advice is to stick to these classes instead of trying to âroll your ownâ game framework as you might with engines like Unity. Understanding this framework is ...
You can continue to move/rotate your camera while game logic is PAUSED in Unreal Engine. Unfortunately, itâs a little obscure to set up so here is a quick overview with C++.
Unreal Engine can auto-detect âoptimalâ (graphical) settings per player based on a quick CPU and GPU benchmark. The functions are available in Blueprint to hook up into your gameâs options menu.
What is Asset Manager?
For your game, you will eventually need to write some kind of save system. To store player information, unlocks, achievements, etc. In some cases, you will need to save the world state such as looted chests, unlocked doors, dropped player items, etc.
You may or may not be familiar with GameplayTags in Unreal Engine. Itâs heavily used in Unrealâs Gameplay Ability System, but can be used stand-alone in your game framework. In this article, I will introduce GameplayTags and how they can be used in your game, even if you choose not to use GAS.
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
For the JetBrains GameDev Day, I was invited to give a talk about Unreal Engine. I decided to create one for game optimization in Unreal Engine. Itâs a topic Iâve been spending a lot of time with recently and wanted to share some tips and tricks. The slot of 45 minutes had only room for so muchâŠso expect more performance-oriented blog posts from me soon!
Sometimes you only need a simple âtweenâ style animation in C++ to interpolate values or animate certain gameplay elements using Curves and Easing Functions.