I’ve been playing around with a new concept for a game so you know what that means? Time to start out with good intentions but get bogged down in an interesting coding challenge that has little effect on the game itself!

This time the problem was: How can I place tiles in a scene that automatically align with their neighbours? E.g. If I dig a pond by placing water tiles, how can I ensure the banks of that pond line up together and look natural, rather than that blocky Minecraft look?

I.e. This:

Not this:

This article is part of a series, you can find the others here:

As I stated at the start of this piece, I am only just starting to grasp the very basics of these processes, I still have so much to learn and these articles serve as learning aids for myself.

I do hope however that if someone is coming to this subject as I am, a complete novice, that perhaps this interpretation can help them grasp the concepts quicker than I did.

Now we have a working prototype of Fractus’ visuals the next task…

This article is part of a series, you can find the others here:

Raymarching is a sort of very specialised version of raytracing, but it has a very specific purpose.

It lets you do cool stuff like this.

It is astonishingly efficient compared to traditional raytracing and whilst it is initially more expensive than rasterization to get running, once you have paid that cost it is very cheap to extend, manipulate and add to to the process.

That said, raymarching doesn’t render complex triangular meshes. …

This article is part of a series, you can find the others here:

To begin understanding raytracing, consider how illumination and visibility works in real life. A light source casts out an unfathomable number of rays (made up of photons). Some of those rays will collide with a surface of one kind or another and in doing so they will be transformed by the surface in question. In such a collision light can be absorbed, transmitted or reflected.

  • Absorbed light gives us colours, The collided surface absorbs some of the light and prevents it from…

This article is part of a series, you can find the others here:

As Scratchapixel asserts in their brilliant article on the subject:

“The rasterization rendering technique is surely the most commonly used technique to render images of 3D scenes, and yet, that is probably the least understood and the least properly documented technique of all (especially compared to ray-tracing).”

I’ve certainly found this to be the case during my initial forays into the subject, most of the time all I could find were high level summaries of what the technique does, so let’s start…



I’ve been an artist for a good chunk of my life and a professional one for most of my professional life. Then I decided to put everything on the line and build my own game with a friend.

You can find a complete breakdown of it here, but the important things in this context are that I made a lot of mistakes, learned many lessons, and changed career.

Blast from the past, Rosvita, the game in question.

I write code for a living now, and I’ve spent a lot of time wondering how I find a balance between my old life as an artist…

The stories of how great victories are won are incredibly valuable and it’s natural to celebrate them. I fear though, that we subject ourselves to an overwhelming feed of success through blogs, articles and social-media and that this disproportionate representation distorts our understanding of creativity and our expectations of its endeavour.

I am, I suspect like many of you, somebody who’s ambitions have often been outstripped by their experience, capabilities and a bit of bad-luck. My intention with this piece is to explore the under-represented narrative of failure and its effects.

This is a stark and honest story of a…

Simon Ashbery

Artist, game developer, software engineer, bipedal Labrador

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