My Library of Free GameDev Resources, Tutorials, and More

May 7, 2018
protect

This article was originally posted on the Joy Machine blog maybe check it out too!

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. I figure, someday, I’ll actually get financing for the full production of Steel Hunters and I want to contribute what I can to anyone that can benefit from some of the work I’ve done along the way.

I also maintain a living Unreal Engine 4 document that I update (on the rare chance I have the time to do so) for UE4-specific advice, links, good practices, code snippets, and other such things.

I have some old (and no-longer-maintained) UE 4.17-era assets, but I’ve since decided to stick with the most recent public engine version, so all assets use Unreal Engine 4.19 at the moment.

Recently Added Content

  • I continually maintain what I call “shaders” which are not, in the general sense, actual USF/USH/HLSL files, but rather just master materials I create for a generally-applicable use case that have a variety of potential options for different uses. I call them "shaders" and not "master materials" because I take a unique approach to these (some of which I've written about before) to rely on a static switch parameters to minimize the overhead of the compiled material instance. Anyway, including amongst these are:

  • My “standard” shader (and variants of it) for most materials you’ll need.

  • A standard shader more geared towards metallic materials (the standard shader has since acquired some of this shader’s features, but not all).

  • A metallic clearcoat standard shader.

  • And shaders for SpeedTree assets — one for meshes and one for billboards.

NOTE (on “shaders”): I’ve heard some concerns about this approach but, thus far, I have yet to see any real concrete performance issues (render time, memory usage, shader complexity) that raise any red flags for me.

  • A whole lot of material functions:

  • Various luminance detection functions (used in a post material for edge sharpening).

  • Fuzzy/metallic shading functions to exaggerate some shading styles.

  • Albedo tinting functions (using either a basic tint color & intensity or a Hue/Saturation/Value method of tinting).

  • An old-ish procedural gerstner wave-based water generation function set.

An Important Note on Textures

I follow a consistent and best-I’ve-found convention for PBR textures:

  • Albedo Map: Default compression (sRGB), no alpha channel (unless being used as a terrain layer albedo map).

  • Normal Map: Normal map compression type and, obviously, linear color space.

  • Metallic/Roughness/AO/Cavity Maps: Default compression (linear color space). If imported individually, my general preference is a grayscale PNG.

  • Compact Map (Metallic/Roughness/AO): A map that packs the Metallic data in the Red channel, Roughness data in the Blue channel, and AO data in the Green channel.

  • Use default compression and a linear color space.

Avoid the use of an alpha channel on imported UE4 textures as much as possible. Any imported texture with an alpha channel does not handle the standard compression formats very well and ends up being far more resource-heavy than you’d expect (from my very, very vague memory of years ago, I believe an alpha channel using DXT5 compression results in UE4 having the alpha channel use up as much resource space as the combined total of the RGB channels.

A Special “Hey, It’s Today” Present

Today, since I’ve been seeing a number of posts on reddit and the UE4 forums about landscape authoring, I added the node graph that I used to create a previous iteration of the landscape for the Nevada sandbox environment for Steel Hunters.

JikGuard.com, a high-tech security service provider focusing on game protection and anti-cheat, is committed to helping game companies solve the problem of cheats and hacks, and providing deeply integrated encryption protection solutions for games.

Read More>>