Hi! Here you’ll find info and developer diaries on my upcoming game Grab n' Throw, Unreal Engine 4 -specific tips, fixes and implementations, posts on programming, IT and music, and various other writings.

Grab n Throw


Details

Posts


Yak Shaving

“This will be a nice quick one to implement,” I tell myself. This week, I Was implementing AI for Inventor Simulator Needed the AI to select shelves to look at Was implementing a look-up-table of item->shelves-holding-item to make it faster Wrapped the shelves array in another struct because you can’t directly nest TSets and TArrays in Unreal Engine Added Unreal-Angelscript functionality to use AS-defined Hash functions of custom structs in the engine/UPROPERTYs Tested in a shipping/JIT build before making the PR Fixed my existing JIT issues causing the build to fail Implemented a generic map comparison I love game development. [Read More]

AngelScript Integration Tests

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]

Azure Infrastructure as Code - 2 - Deploying the rest

1 - Intro 2 - Deploying the rest Deploying the rest of the platform landing zone Now that we’ve some code showing infrastructure changes and deploying, lets extend it to include the rest of the core ALZ resources. You can follow along with the code in the repo. The below is written chronologically but you’ll be looking at the completed version of the code. It should still be understandable. [Read More]
Azure  DevOps  IaC 

Azure Infrastructure as Code - 1 - Intro

1 - Intro 2 - Deploying the rest Series Overview Say you’re an organisation who’s started their cloud journey, but hasn’t fully dove (doven? dove’st?) in. You’ve got some solid business reasons that mean you now need to lean into it. You know you want to do it properly - you want to move to Infrastructure as Code and set up a modern architecture that will grow with you. [Read More]
Azure  DevOps  IaC 

BGP on Windows Desktop

BGP on Windows Desktop
I love seeing BGP pushed to the edges of its intended use-case, and I’d been wanting to learn Go for a while. I’d also been frustrated that I couldn’t ingest BGP routes on my Windows desktop - it’s only included in the server OS versions. So I decided that my holiday project would be extending GoBGP to get my network’s BGP routes into my Windows 10 desktop’s routing table. I’m also a huge fan of “Why not? [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]

Python-automated lightweight BGP lab in GNS3

Python-automated lightweight BGP lab in GNS3
I was looking to play around with some BGP changes so I set up a topology in GNS3 using FRR docker containers. Once I laid out the topology I didn’t want to manually address it, so I automated the entire lifecycle. Address generation, config application etc. This ended up taking way longer than manually doing it but was also way more fun and is now much easier to reset! BTW: FRR docker containers are incredible if you’re just looking to lab routing protocols. [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]