Topographical Maps in Unity: Edge Detection

This tutorial will teach you how to recreate a very popular effect in games: topographical maps.

This is a two-part series, which will cover all the necessary aspects—from the Maths to the shader code—to make this possible:

In this second part, we will focus on the edge detection algorithm that will be used to draw the contours of the terrain.

A link to download the full Unity package is also available at the end of the tutorial.

Continue reading

Topographical Maps in Unity: Terrain Shading

This tutorial will teach you how to recreate a very popular effect in games: topographical maps.

This is a two-part series, which will cover all the necessary aspects—from the Maths to the shader code—to make this possible:

A link to download the full Unity package is also available at the end of the tutorial.

Continue reading

World Building Through Fictional Languages

Every serious game developer knows that world building is an integral part of the process that creates a truly immersive experience. There are a variety of techniques that can be used to achieve this: from presenting the backstory of your player with a wall of text, to clever level design tricks known as environmental storytelling. The latter is often preferred. Unravelling the lore of your world from a few hints scattered across the levels is, de-facto, a game within the game. And while most players might just ignore them, others could find great pleasure in resolving this meta-puzzle.

Games like Dark Souls are notorious for their rich—and somewhat obscure—lore, which can be pieced together through the strong environmental storytelling and the various hints hidden in the item descriptions. Other games go even deeper than that, and create entire new languages for their fictional civilisations.

This is not something so uncommon, and many other media before games have long relied on fictional languages to create a much deeper sense of immersion. The entire world of The Lord of the Rings was built around a series of languages that J. R. R. Tolkien himself created before writing the books.

🇷🇺 A Russian version of this article is available here.

Continue reading

Sunrise Sort: The Forgotten Sorting Algorithm

This article is about an interesting, yet forgotten sorting algorithm: the Sunrise sort. It is possibly the only one to have a rather unusual property: it is fully unstable.

Sorting has been a recurring theme on this blog, from The Incredibly Challenging Task of Sorting Colours to GPU Sorting (animation below). If sorting algorithms—especially the more “esoteric” ones—are a subject that easily captures your imagination, this is an article you definitely want to read.

And for the ones who will dare to stay till the end, you will discover what made the Sunrise sort a “forgotten” algorithm.

Continue reading

Accessibility in Videogames

This article will focus on how to design accessible videogames for players living with a disability. The idea came after writing a long thread on Twitter which focused on accessibility design.

If this is a topic that interests you, and you want to learn what you can do to make your videogames more accessible, keep reading!

Continue reading

Minecraft Modding: Laser Gun

While guns are not terribly interesting, this tutorial will cover one rather tricky thing to do in Minecraft, which is often associated with guns: raycasting. Simply put, this is the process of finding what object we are looking at. No command is sadly able to do that, so we will need to come up with an alternative solution.

Continue reading

An Introduction to Minecraft Modding

This series of articles will offer an overview and a practical tutorial on Minecraft Modding through the creation of data packs and resource packs. If you are interested in extending the game, this is the article for you!

At the end of this first article you will also find a link to download a mod that allows to throw fireballs, which is explored in the second article of this series.

Continue reading

Delegates, Lambda Expressions & Closures in C#

If you are familiar with programming, you might have heard of a specific paradigm called functional programming. Most modern languages, such as Java and C#, have integrated some functional elements over time. Other, like Scala and Haskell, were built around that very idea of functional programming.

This online course will look at some of the functional features available in C# 3.0, including the concept of anonymous functions, delegates and lambda expressions. But before doing that, we need to understand what functional programming actually means.

If you are interested, keep reading, and we will explore the following topics:

  • Anonymous functions
  • Delegates
  • Anonymous delegates
  • Multicast delegates
  • Lambda expressions
  • Lambda statements
  • Expression-body members
  • Expression trees
  • Local functions
  • Closures
Continue reading