Errors All Day

Today I had to install nodejs on a new dev machine for a separate project. I did the reasonable thing and went to nodejs.org and installed from there. Little did I know what insanity I was in for. After it finished spewing garbage all over my dev machine for several minutes, I went back and tried to remove as much of the cruft as I could and went with nvm-windows. It installed in half a second, and installed a version of node even quicker, and no ridiculious other dependencies....

February 14, 2023

Tools in 2023

This month I’ve been thinking a lot about the tooling I’m using to get through the day, learn things, and manage things. I felt the tools could be simplified, changed, improved, or consolidated. I started with a nuclear approach and tried to see if I could do: Task management Reading stashes Note Taking Project management …all in 1 app: Notion. It was a fun exercise and I found some real powerful features there, but I also discovered I valued UX a lot....

January 17, 2023

Loading Fonts in UE5's Slate

I’m currently deep in UMG/Slate with UE5. It’s been a few years since I’ve worked in Unreal regularly. And it’s also the first time I’m stepping into Slate proper. I recently had the need to load up a font just for some custom styling on a slate widget I don’t have fully exposed in UMG. After some digging I got to this nugget of info: NormalText = FTextBlockStyle() .SetFont(FSlateFontInfo(FPaths::ProjectContentDir() / TEXT("UI/Fonts/MyFont....

January 5, 2023

Using a specific canvas element for bevy

Bevy works well on the web! One of the things that took me some digging is how to get bevy to not create and inject a canvas element but instead use one that is already in the DOM. Below is a snippet of how to do this in rust as well as the corresponding HTML. Hopefully this saves someone some time! I needed this in a prototype to see if I could get bevy and yew to work well together....

July 22, 2022

Taking Flight

Like many of us in this pandemic, I’ve picked up a hobby over the last year. It’s been fun learning to build, fly, and eventually wreck these little winged terrors.

January 22, 2022

Memory Lane

Weird to think that some of these images are over 16 years old…

January 19, 2022

Death By a Thousand Cuts

One of the issues with game development that’s become more apparent over the years was dealing with splitting time between new game development and bug fixes/maintenance. When we first released games, they were much simpler, and as a result had less bugs to deal with. You could spend the majority of your time working on new features. Nowadays, our games have become so large that as the solo developer, even I can’t keep everything in my head straight on how certain systems were implemented....

February 3, 2017 · Alex

Setting up Multiple PlayerControllers in UE4

Use: UGameplayStatics::CreatePlayer(World, Index,bSpawnActor) (Docs). When creating a custom game mode it wasn’t clear in the documentation how ones goes about: Spawning a playercontroller Spawning a pawn assigning both to each other and possessing the pawn with the controller So I basically did it all manually inside InitGame(). This cropped up some unwieldy UI focusing bugs. Once I replaced it with a call to CreatePlayer() things started working as intended. Hope this helps anyone who’s starting out in UE4 with C++....

December 1, 2016 · Alex

This Online World

“If the byline on your article doesn’t enlarge its readership then you don’t have much of a value. All you’re doing is using the distribution network of a company. That makes you expendable. They can find someone else just like you. “ – Clay Davis Quite an interesting read regarding the business of writing for a living. I don’t 100% agree with all the conclusions he argues for, but when put through the lens of indie games I think a lot can be applicable as well....

May 16, 2016 · Alex

Testing, Testing, Testing, 1,2,3…

With each game release I’ve noticed I’ve committed less and less time to writing the ‘fun bits’ and more time spent trying to mitigate complexity and find ways to make as many things as testable as possible. I guess that’s the nature of the beast once you go beyond your average ‘asteroids’ clone. With the recent announcement of SFT getting asynchronous play in the coming months, I’ve been scoping out my dev schedule for what needs to happen to make it reality, and the only issue that I keep circling back to is “how the hell do I make all of this testable/bug free”....

May 3, 2016 · Alex