Or: Why “Carry On Wayward Son” is My Motivational Anthem

I wanted to cover a variety of Steel Hunters updates across the board so this piece is covering a lot of ground on a variety of areas, so here’s an actual table of contents that you can use to jump to the respective section:


Some things should just be free.

For a long while now, I’ve been maintaining Joy Machine’s GitHub repository (MIT license) for a variety of free game development resources (for general usage, not just Unreal Engine 4 content). This includes links to good research papers and tutorials (which I need to be better about finishing — much less updating), articles, scripts, useful git configs, and other such randomness.

Specifically for Unreal Engine 4, however, I also have included a variety of content (and some C++ code of… borderline usefulness) straight from my work on Steel Hunters. This, obviously, doesn’t even come close to everything I’ve created for SH, but these are assets that I feel are so generally useful that I don’t see a point in keeping them for myself. …


Details on Iteration #32 for the Nevada Sandbox Environment

I tend to do a major iteration on the overall scene composition in Steel Hunters every month or two and since the public trailer is now approaching, I decided to just did one six-seven hour block fo sitting at my computer until I was happy with the results. It should be obvious that this iteration started like most: “just a few quick tweaks.”

The Problems

  • I wanted heavier atmospheric haze/fog. The reasoning for which is two-fold:
  • The general feel of this area is a barren “post-apocalyptic” wasteland. And I don’t mean that in the traditional post-apocalyptic Mad Max sort of way; the world of Steel Hunters wasn’t ever decimated by nuclear war but, rather, the slow depletion of natural resources (unrelated) and the onset of, basically, the worst possible nightmare version of climate change that could be imagined (and is almost certainly scientifically… non-scientific). In short: every environment has a unique feel/setting and the goal of each of these sandboxes is to fully embrace a worst-case scenario of what that environment in the game’s world. …


Rambles and Tangents on How I Quit Programming, Started Again, Quit Again, and Beyond

Part one of this origin story can be found here.

Note: I said this would be a two-parter with a generally-useful and broadly relevant ending — and it still is! This just got long, so Part Three of Two will be posted in the next couple days.

If anyone was hoping that part two would be more focused and have less tangents and even less stories that have nothing to do with the larger topic I’ll hit on eventually: I’m sorry.

The University of Michigan

About halfway through my senior year of High School — where I only had to go to school for a half a day as the other half was considered eligible for “extracurricular work” (or some such) — I told my parents that I didn’t really want to go to college. I just wanted to see if I could get a job somewhere doing a thing I think I could do (which was likely more true then than it was by the time I finished college). …


A campfire story-time with Trent on learning C++ in Kalkaska, Michigan.

Doing a merge of a major version change in Epic’s Unreal Engine codebase — especially one where every source file has its copyright data change from 2017 to 2018 (which is, for some reason, a confusing thing to Git) — is somewhat of a time-consuming process. For the most part, I’ve gotten these merges down to about four-six hours, but the update to 4.19, which is still in preview form but this was a good time to make the majority of the merge happen, has been somewhat of a nightmare. Sometimes I work on things like Joy Create or play around with some other potentially useful tool, but generally I stay around my computer as errors come up mid-build which need to be addressed and then I do a full rebuild to make sure nothing else gets missed amidst the merge conflict resolutions. …


Avoiding a tendency to rely solely on cooked data for data-driven game elements.

When I was working on Starhawk, we had an critical feature in the game that allowed for “hotfixes” to be deployed for data updates (game/balancing adjustments, generally) without requiring a major patch that would have to go through Sony’s week-long (at a minimum) patch and QA process. This was my first experience with game updates that didn’t require a full-on binary update.

Shortly thereafter I worked on mobile games for a couple years and, as I’m sure many people know, any opportunity to bypass the iOS App Store’s reviewing process is a wonderful — well, necessary — thing to do. So, for our team, we handled all game data through an extensive amount of JSON data for level definitions, player profiles, settings, game and balancing data, triggering special events and deals, so on and so forth. I believe we also stored player data on a secure server/database as JSON data, but that wasn’t and still isn’t my area. …


A brief guide on material usage in Unreal Engine 4 along with best practices and links to our open-source assets.

I tend to call master materials “shaders” (which is how I’ll refer to them from now on unless I specifically talk about USF shaders) as, at least for me, they tend to be “uber-shaders” done with the material editor. Which I do primarily to differentiate between special-case materials and my general-purpose shaders.

Image for post
Image for post
A mech from Steel Hunters using some of the material shaders discussed below.

Using Materials

And I can’t recommend strongly enough how Materials — as opposed to Material Instances — should be used as sparingly as possible. The more spread-out your materials are, the more involved a process it becomes to make changes after you realize something is wrong or additional features are needed. Not to mention that once a material is used for a particle or mesh, whenever you delete a material and attempt to replace its references, you cannot replace it with a material instance; they can only be replaced by other materials. …


“I’m going to hold off on screenshots for a while.” An hour and a half later: “Well…”

Well, I started with this tweet:

An hour and a half later:

Image for post
Image for post

Well, I mean, I had to show off a potentially promising anamorphic lens flare effect, right? I can’t be blamed for this. (by the way, the UE4 anamorphic lens flare effect — a very rough first-draft — is up on the Joy Machine GitHub Repo).

Image for post
Image for post
I may have a problem.

I also wanted to show this: a screenshot of a scale test for a large Behemoth (very large; that thing is about half a city block) vs the player.

It’s… Large. I won’t actually know for a bit if it’s hilariously large or perfectly large, but it’s a nice scale reference to have while detailing out the Nevada environment for the Greenlight demo. Which I’m not going to show a screenshot of from a couple weeks ago. …


From tech/vfx art sandbox to now… Kind of.

A game’s visual fidelity is important as a complement to its tone, atmosphere, and gameplay style. Beautiful games with hollow gameplay might as well be paid screen shots.

I love and always have loved graphics programming, technical art, visual effects work, and general scene composition. I mean, I wrote a book on 3D terrain programming (back in the day when that wasn’t a super trivial thing). I wasn’t a nerd at all.

My first real attempt at establishing gameplay through color keys was an XNA game called Asplode!. And, for your viewing pleasure, my first completed game, as I had been working exclusively on graphics demos and “engines” for years and years before I ever attempted to make an actual playable game. …


A High-Level Introduction to Systems Design

This article was originally published on VentureBeat.

In my senior year at the University of Michigan, one of my roommates and I had a nightly tradition: playing NCAA Football 2005 (it was 2007). We played every night because we were constantly learning each other’s strategies, adapting, and trying to come up with new ways to surprise each other. One of us would eventually win, but we would be able to talk about and dissect our match for a solid 15–30 minutes after we were done. Every night. We don’t think of EA Sports games like we do Deus Ex, but you can’t say that’s anything but a purely systems-driven game. …

About

Trent Polack

Founder and CEO of Joy Machine. Making games for more than a decade as a developer, designer, effects & technical artist, creative director, and producer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store