This is a recreation of the first bit of production C++ I wrote, now rewritten with the stronger understanding of C++ I've developed over the past couple of years.
I realised I didn't actually have a lot of information about the system other than that "I built it!" and therefore felt that having a bit more of a breakdown of the process would be beneficial.
Building the SDK
The first step in setting this sort of thing up is actually building the SDK, which is a fairly simple process, but it does take quite a while as it's a big library. The guide is available on the the AWS Github page, but I took a few screenshots during the process which are visible here. Mostly it goes as follows:
10: Type simple command
20: Wait
30: Goto 10
The actual code
Once I had built the SDK, I was able to get started on the project in earnest. The overall structure is fairly simple. It's a blueprint function library, which allows complex AWS functions to be called anywhere in an Unreal blueprint. The first thing I did was set up some debugging functions. I ended up not needing them too much this time around, as I knew what I was doing, but the last time I built this system, I spent a lot of time looking through these debug files trying to figure out where I had gone wrong.
The debugging functions are available on the github page if you're interested, but they're not really what this is about. In fact, I'm not going to include screenshots of the C++ at all because that's available in the Github repo. I will, however, include screenshots of the visual script. The system is pretty simple, much like it was when I first wrote it in 2022. The main differences are stylistic, and the fact that I used a complex data structure instead of two individual values. This just makes the system a little bit more expandable in the future.
Conclusions
It was interesting to retackle this project after such a long time. I had forgotten what a faff it could be compiling the SDK in the first place, but once I'd got that up and running was reminded that the actual library is really nice to work with. The function naming is solid and the args lists tend to be reasonable. It's honestly one of the nicer and easier API layers I've ever worked with. The documentation can take some time to figure out, but then again I think good documentation is a mythical creature, so that's no great surprise. All in all, had a lot of fun with this one! Hopefully next project will be more gameplay focussed again, I have a few ideas.