AngelScript is awesome. It’s a C#-like scripting language you can integrate into a C++ game engine, with wicked-fast hot-reloads, so wicked-fast iteration speed. The amazing Hazelight gamedev team integrated it into Unreal Engine and have made it open source. I wrote a longer post here that I’ll copy below.
One of its great features is exposing Unreal’s test automation framework and turning them into easy integration tests. This existing work was incredible.
[Read More]
GOAP and Utility AI in Grab n' Throw
Why don't we have both?
I’m working on a game where you throw stacks of your own team-mates in first-person, in various game-modes. I tried a few different approaches for player AI, but ended up settling on Utility for “what to do” and GOAP (Goal Oriented Action Programming) for “how to do it”. Each of these ( Utility AI and GOAP AI note) are worth watching videos on, they’re extremely cool.
Utility AI was popularised by Dave Mark, and was used in Guild Wars 2 (or an expansion).
[Read More]
Devlog - Jazz Hands
Grab n' Throw has reached an important milestone - we now have hands!
With the core gameplay features in place it was time to add some GameJuiceā¢. Over the last few months I’ve added visible hands, hand animations, camera animations and more. To make everything more immersive I’ve opted to re-use the same external player model that other players see - you can look down and see your feet, and your hands grab the actual character you’re holding.
[Read More]
How to Rename a UE4 or UE5 C++ Class Used by Blueprints
Commit all existing changes so you can cleanly roll back if required Stop the editor Add something like the following to <your game folder>\Config\DefaultEngine.ini, where: <ProjectName> is the official project name UE4 uses in C++ for your project. E.g. the GT in GT_API that shows at the top of class declarations <OldClassName> is the name of the class you’re renaming from, with no A, U etc prefix. E.g. GTPlayerState instead of AGTPlayerState <NewClassName> is the name of the class you’re renaming to, again with no A, U etc prefix.
[Read More]
Devlog - Big Huge Throws
Bigger and Huge-er and Throwier
Over the holiday break I prototyped a whole new gamemode and map, which are Hole in One and The Distant Links respectively. They’re based on the thought “what if I just multiplied all the throw force, sizes, etc by 11?" and it quickly became apparent this is the most fun game mode so far. Even just the basic actions feel good. Check this out:
The map is “what if a golf course was 256km^2?
[Read More]
UE4 Pie Graph/Chart Material
(Download link at the bottom)
In Tropical Manipulation, I need to display the share of customers that each player will receive, and communicate the price interaction mechanics (a lower price gets more customers, etc). For this I’ve created a pie graph/chart material, so that I can add an image widget and use it in UMG.
I actually posted an early version of this on the UE4 forums, but it was a basic version that only gave results like this:
[Read More]
Create A UWidget At Runtime
UE4’s built-in blueprint function ‘CreateWidget’ only allows you to specify UUserWidgets, so to add something basic like a button, border or text at runtime, you have to create a custom UUserWidget to wrap it - very inefficient. Luckily, there’s a ConstructWidget() function in C++ that can easily be exposed to blueprints.
Make sure you’ve got a BP/C++ project, then create a blueprint function library C++ class.
Code Add this to the .
[Read More]
Height Based UE4 Island Landscape Material
For the island used in Tropical Manipulation, I wanted a simple material applied that I could quickly tweak to get a great looking island. I investigated using landscape layers, but found that for what I was using it for (an unchanging backdrop to the game) they wouldn’t be necessary.
Here’s what I wanted from the material:
Different areas based on height Beach - sand Flats - sand and grass Lower mountains - grass Upper mountains - snow Automatic rock textures on the side of cliffs A way to transition between areas A way to aesthetically combine sand and grass on the flats Colour manipulation Quick control and feedback over most variables without having to regenerate the material.
[Read More]
Set spline point rotation in UE4 blueprints
Skip to the bottom if you just want the c++ code to use.
Originally written for 4.9. Updated 2016-09-05 for 4.13 (also maybe .10, .11 and .12) code changes.
After following the great tutorials on using splines and spline meshes by DokipenTechTutorials I had a very useable spline_path object, but wanted to extend it a little further. I re-implemented some existing blueprints I was using elsewhere and created options that let me auto-height and auto-pitch start, middle and end points to follow the shape of the ground or object underneath the spline.
[Read More]