The 4 pillars of game development

Making a video game involves combining very different disciplines together, varying from arts to technology. As if we had a palette and an empty canvas, we take some parts of each one, mix them together, and create a game. All of these areas are important. Even if some games minimise the use of some of them, the most acclaimed games usually shine at all of them.

Each of these disciplines can take

My favourite excuses for not getting started in game development

I have been thinking about some of the most common excuses people (including me) make for not getting started in game development. Even having some truth behind, all of them can be easily countered. The excuses below are focused on indie development, although some of them also apply to pursuing a career at a games studio.

I’m sure there are more, but here are my favourite ones:

Getting into game development

After quitting my job at Codurance to work on my own projects, and considering different options, I decided to finally get into indie game development.

Wait, what about the famous indiepocalypse?

I know. The market is crowded, there’s lots of shovelware and discoverability is a problem. Indies make peanuts in average. All looks terrible. But, let’s look at the past, when has game development been easy?

Discoverability problems? Yeah, tell those folks how had to sell their games in

Lambda Calculus in Clojure (Part 2)

In Part 1, we built a boolean algebra using Church Encoding. In this post, we are going to reuse some of the previous work to build a similar algebra, this time for numerals.

Church numerals

In the algebra we built in the previous post, Church booleans were encoded using higher-order functions. The way Church numerals are represented is similar: given a number `n` and a function `f`, the Church numeral of `n` is the

Lambda Calculus in Clojure (Part 1)

Lambda Calculus is the smallest programming language. As we saw on my previous post, the only building blocks available are functions, variables and expressions. There are no built-in primitive values or operations. How can we then solve real-world problems using Lambda Calculus?

In this post, we are going to create a set of building blocks, using lambda expressions, to calculate boolean expressions. For this, we are going to use Clojure,

Falling into Machine Learning

Recently, I rediscovered my passion for Mathematics and Artificial Intelligence, which I used to hate during my degree in Computer Sciences. Lately, I’ve been focused on Software Design, Automated Testing, Microservices, and Functional Programming. I also love learning new programming languages, so I’ve been wondering whether to go deeper into Golang, Scala or Python. But, in the end, all of them are tools; tools for building what kind of things? In my case, my day-to-day

Lambda Calculus for mortal developers

Lambda Calculus sounds like an arcane term that only functional programming wizards can understand. Nothing could be further from the truth. We use Lambda Calculus everyday when we program. It is the most reducible form of all Functional Programming languages; the primitive building block of Functional Programming.

The atoms of Lambda Calculus

Lambda Calculus is based on three basic building blocks: expressions, variables and functions, which are combined to form other expressions.

Variables are

Setting up Scala on Android

Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be done, we are going to create new project template using the Android SDK Plugin for SBT.

Required tools

In order to develop Android apps in Scala, you need a minimum set of tools:

The Rush Age

We live in the rush age. We are literally overwhelmed by the amount of things we have to do, both at work and outside it. We leave work and have a bunch of emails, Facebook notifications, tweets, text messages (among others), waiting for response. Even worse, we are in bed keeping an eye open looking at our mobile phone in case we get a new notification. This is ridiculous.

As software developers, the same thing

Was it worth writing automated tests?

This post is not about testing techniques. There is plenty of information about this topic out there, and I feel that repeating the same things would be redundant. If you want to learn how to write automated tests properly, go and read Uncle Bob, Martin Fowler, Kent Beck, Sandro Mancuso and some others. They’ve been testing for decades and share their knowledge in books, videos and articles. Go and read/watch them!

If I don’t