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
Posts
I love Rube Goldberg machines. Love them. So when I wanted to add some physical IO to one, I figured it would be much more thematic and fun to connect my Pico-based Waveshare LCD + buttons to a Pi via serial, instead of simply using a Pi hat directly.
I found a few guides around for getting the serial communication going, but none were exactly in the form I needed. I ended up breaking them down and combining them to create a simpler foundation for my own use.
[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]
Visual Studio Code - Change inline braces in snippets to newline braces
Situation You’re a monster like me and have standardised on newline braces in PowerShell, but the vscode PowerShell extension has used inline braces.
Solution Copy the snippets you use from %userprofile%\.vscode\extensions\ms-vscode.powershell-1.5.1\snippets\PowerShell.json Add them to your user snippets for PowerShell (CTRL+SHIFT+P > Open User Snippets > PowerShell) CTRL+F, regex mode Find \{", Replace with ",\n\t\t\t"{", CTRL+, to open user settings, then add "editor.snippetSuggestions": "top" Note: there are PowerShell user settings for code formatting, but I found these didn’t apply to snippets.
[Read More]
Read Valid Input in PowerShell
Previously, any time I wanted to validate input in PowerShell, I’d write custom validation functionality per-script. It turns out that I reuse the same basic methods though, so I’ve created and shared a generalised function!
This prompts users to enter input that matches a displayed list, then returns their input if successful. This works from VM or object selection, to simple y/n acceptance restrictions.
The full details and code are here: https://github.
[Read More]
Setting up Reaper Backups and Paths
Reaper is the DAW of champions, but even champions are reduced to tears, and a lifetime of pained staring-into-the-distance, by the loss of their entire creative output. Protect yourself from emotional damage by applying the following steps to your recording set-up. As always, adjust it to suit your own workflow, and tweak where you can. Let me know if you’ve got your own helpful steps to add.
Note: This works with Reaper, but should be applicable to any DAW that has a reasonable level of The Files mentality.
[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]