Enter Sandman

with No Comments

In the last post I mentioned that I used this Turbulence Library to create noise textures on the GPU which are then used to create heightmaps of the terrain. It’s a great library with lots of common noise functions – Perlin, Voronoi, Simplex etc. which are commonly used to generate realistic looking terrain from jagged mountains to rolling plains.

Rather than just using Perlin noise, which is perhaps the most well-known noise function, I’ve been experimenting with adding some other variations and layering additional functions to try to create unique terrain profiles for each of the environments in Nome.

For … Read the rest

I Got 99 Problems

with No Comments

This is likely to be an incredibly esoteric post of interest to very few people, but I’ve been wrestling with some really specific technical problems today and I *think* I’ve found the solutions, so I thought I’d document them here for my own benefit. If someone in the future happens to come across this post and it helps them solve the same problems, then all the better!

1.) Don’t rely on a “Fallback” shader to provide shadowcasting pass
Nome uses a heavily-customised sprite shader which, amongst other things accounts for normal maps, shadows and fog – all things not normally … Read the rest

Packt Like Sardines In A Crushd Tin Box

with No Comments

Ryan has been producing some great new character animations recently, which means I’ve needed to work out how we should pack and store all that sprite animation data.

Traditional sprite sheets place each frame of animation on a regularly-spaced grid in a single, large image. Individual sprites are all identically-sized, and can be referenced by their column and row number within the grid. This approach is ideally suited for tile-based games, in which every cell in the grid contains a 64×64, or 128×128 sprite, say, but they can also be used for any 2d art. Here’s a spritesheet showing Nome’s … Read the rest

Here Comes the Sun(s)

with No Comments

“Physically-based rendering” (or PBR) is a concept that’s received quite a lot of attention in recent games. The term itself is somewhat loosely-defined, but essentially it describes techniques which use sophisticated mathematical models of how light interacts with different surfaces and materials – creating more accurate and detailed graphics than those traditionally used in realtime rendering engines. You’ll see it used to great effect in The Order, Assassin’s Creed Unity/Syndicate, and Battlefront, for example.

In Nome, we’re using a similar physically-based approach to create a dynamic sky that accurately reflects a day/night cycle, with atmospheric scattering of light based on … Read the rest