Automatic for the People

with No Comments

Nome’s development team are spread around the UK, and we use various tools to work together remotely – we use a private Facebook group and Google Drive to share ideas and documents with each other, for example. Since we have only one programmer, we don’t need a collaborative source control system, but it would be a huge advantage if we could all always access the latest build of the game, to make it easier to test new features as they are introduced (and identify any possible regressions).

Up to now, I’ve been manually creating builds after every major new feature … Read the rest

Infinity is a Great Place to Start

with No Comments

So “No Man’s Sky” came out this week and I’m sure that many developers like us who are working on similar procedurally-generated games are carefully reviewing the feedback it’s been getting from journalists and the public.

Most agree that, as a technical achievement, NMS is undeniably impressive. However, as a game, it has been received somewhat less favourably. While its proc-gen algorithms may be able to create a near-infinite number of planets for the player to explore, many have found the experience somewhat souless and unsatisfying, and what should be a wondrous voyage of discovery becomes a monotonous (and ultimately … Read the rest

Shadowplay

with No Comments

In this post, I thought I’d talk a little bit about our approach to shadows in Nome. Shadows don’t (currently!) have any direct effect on gameplay – so it might seem misguided to give them too much attention early on in the game’s development. However, they do serve some purpose: combined with other dynamic lighting effects, fog etc, they give the player information about the environment around them – they help place relative position of objects in the scene, the time of day, and current weather conditions, for example.

Consider the following image which shows the Nome sprite – a … Read the rest

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