Building a React walking skeleton: Introduction

Front-end development has evolved in the last few years, and has become a complex beast on its own. This series of blog posts will take us through the process of building a React walking skeleton from scratch for client-side applications. We will outline, and maybe implement, a small React application that will serve us as a playground. The scope will be small enough to set up all the pieces of the system without getting lost into the details of developing complex features. One important aspect will be CI/CD, a common development practice these days, even for front-end applications. ...

January 11, 2022 · 9 min · srodrigo

One game a week #1

I finished my first game jam. For real. This was my… fourth or fifth attempt to participate in a game jam. Previously, I would quit if I didn’t like the theme, or if I got something going on that didn’t let me focus on the game jam. I would also overscope, then quit as there was no way I could finish something on time. This was all wrong, as the whole point of a game jam is to have fun and learn. But, this time, I did it. ...

September 24, 2020 · 4 min · srodrigo

Designing my first video game

Introduction Finally, after years of playing around with game development and making prototypes and unfinished games, I started making a real game that I will release in a couple of weeks. I wanted to explain what’s the design process I followed.Prior to this one, I started another game a few months ago. It requires a lot of hand-crafted content to make it a viable game, and I felt that it would take me too long for a first game, so I decided to park it and start again, much smaller. ...

January 28, 2019 · 6 min · srodrigo

Choosing my game development tech

Introduction As I went full-time into game development recently, I started having a more serious look into game development tools. I already spent some time at the beginning of the year, and tried game engines such as Unity or Godot, and frameworks such as love2d. But now that I’m going all in, I needed to do a proper research to decide what tool suits me better. Requirements Before studying the tools available, I had to make sure I had a clear idea about what my requirements are. This is not a easy task, as you cool potentially need anything, depending on the next game you are going to make. I’m going to focus on 2D games, as I like them more than 3D ones, and are also easier to make (which is appreciated when you work solo or in a small team). Given this, I tried to constraint myself to the following: ...

January 11, 2019 · 15 min · srodrigo

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 a decade or longer to get good at them, and a whole life to master. So, it is quite common to find people specialising in one, or even just in a subarea. ...

December 10, 2018 · 7 min · srodrigo

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: I don’t know where to start This could have been a valid excuse 20 years ago (well, those 3 1/4 disks attached to computer magazines..), but today we just need to search on Google and dozens solutions appear in front of your us within seconds. We live in the information overload era, so this excuse is trivial to beat.Anyway, here are a couple of resources to get started: https://www.reddit.com/r/gamedev/wiki/getting_started/ ...

November 26, 2018 · 5 min · srodrigo

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 magazines. Overcrowded market with clones? Sure, as it happened a few decades ago with arcade machines cloning Pong. Most indies making little money? True, yet this is no news really. ...

November 14, 2018 · 4 min · srodrigo

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 number of times f encapsulates n. For example, for n = 3, the function f encapsulates n three times: ...

January 24, 2018 · 7 min · srodrigo

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, which is a dynamic functional language based on Lambda Calculus. ...

December 14, 2017 · 6 min · srodrigo

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 job consists in building and maintaining Microservices, as a full-stack developer. I like it, it’s challenging and you need to have many different skills. But, at some point, I started to look for something completely different to learn in my spare time. ...

November 21, 2017 · 5 min · srodrigo