Author Archives: Oscar Rodríguez

Goodbye Sega

Starting on December 1, 2015, I no longer work for Sega Games. Leaving Sega was not a trivial decision. I worked there for a bit more than five years, and worked on 11 different titles for lots of platforms. It was a huge honor working for the company I had always admired, and I am […]

Practical 2D collision detection – Part 2

On our last article, we made a very simple program that helped us detect when two circles were colliding. However, 2D games are usually much more complex than just circles. I shall now introduce the next shape: the rectangle. By now you probably noticed that, for the screenshots I’m using a program called “Collision Test”. […]

Practical 2D collision detection – Part 1

Collision detection is a fascinating, yet almost entirely overlooked and oversimplified aspect of game making. In my experience making games, I have found that collision detection, and subsequent collision resolving is quite tricky to get right. I would like to share a few practical pointers I find useful, so you can get started with your […]


I worked for Sega from 2010 to 2015. Most of the games I worked on at first were mobile games with no credits screen, or a credits screen hidden under some menu that nobody ever watched. Starting in late 2013, I started working on console games, which do have credits at the ending, and they […]

Geographically isolated bugs

I find it interesting how a certain class of programming problems may be so common in one geographical location, that are considered to be common knowledge, yet completely unknown in the rest of the world. Consider this piece of code in C/C++ // ロボット機能 if (robotRequired) { CreateRobot(); }// ロボット機能 if (robotRequired) { CreateRobot(); } […]

Faking coroutines in C# – Part 1

I happen to love coroutines. When making games, you sometimes want to start a task that takes some time to complete. Let’s consider a simple task: when a button is pressed, wait for 1 second, play a sound, wait for 1 more second and then play another sound. So let’s consider you have a task […]

The final solution to the passwords problem

I am sorry to let you know that your email has been hacked. Or if it hasn’t, then it will. Very soon. When I first got into this Internet thing, say some 16 years ago. I made my first email address at HoTMaiL (bonus points if you also made it when it wasn’t part of […]

How to do UDP hole punching

I will now show you how to do UDP hole punching, with code in C. Hole punching is an advanced networking concept, so you’re expected to at least know how to compile/run this code. I have written lots of comments inside the code to explain what is happening. To use this, run the server code […]

Relaunch of Rapapaing

It’s now been almost 9 years since I first launched It seems like it was yesterday! The Internet is changing, and writing content by directly writing HTML is so pre-2010. So I’ve decided I should give the page a makeup and relaunch it, this time as a blog. Fear not, as there was no […]

How to draw Pixel Art clouds quickly

Well, if you’re into pixel art like me, you will eventually want to draw some kind of landscape. Regardless of whether it’s for a game or a simple illustration, you will end up having to draw a sky, and if you’re like me, you’ll start by drawing some blue, and then… And then nothing happens. […]