One Year of Film Photography

Photography has been in my life forever. Probably started with my dad, who had an old film camera to take photos of our family. I remember the camera sitting there, on the highest possible shelf in the living room, so the kids wouldn’t try to take it. And I also remember how often I did that when nobody was looking just so I could trigger the flash and pretend I’m a photographer.

Rendering Doom With Emojis

It seems that creating a doom port, or hacking doom in general, is a common place for programmers. If you search for “doom port” on github, it’s inspiring how diverse projects you can find. The fact that the source code for the game is completely open and self-contained (meaning it doesn’t require dependencies) contributes a lot for this. Back in 2020, I had an idea of a simple project to render doom using emojis because of some other doom renderer I saw on Twitter.

A story about a mobile game's economy and git blame

Years ago, back when people still used personal computers, Social Games were a thing. You would log into Facebook on your desktop to play video games. Mostly farm management or bejeweled-like puzzle games. You’d have to log in multiple times a day because you didn’t want to miss the perfect moment to harvest your pumpkins or let the cool presents that your friends sent you rotten. You open the game, and the browser stutters a bit, after all, the Flash Plugin is a bit heavy for this computer, huh?

Music identity in the digital era

I loved the discussions about bands as a kid. Everyone in school seemed to know a lot about their favorite music. The year such album was out, the lineup changes from the last release, they would know all the best and the worst songs, the conflicts between band members, etc. And I was fascinated by how people were interested in these subjects. Some days, it was hours of talk about the same band because everyone at least knew these bands.

Annileen Devlog #1 - Asset Management

One of the first things to note once you pick BGFX as an abstraction to your graphics APIs, is that it has a set of tools for asset conversion. And that is because it has importers for a few specific texture and mesh types and also a shader compiler that will generate shader for all the platforms supported, such as OpenGL, DirectX and Metal. Since the main point of using BGFX is portability, not using these tools, especially the shader compiler, is stupid.

Annileen Devlog #0 - Introduction

Back in 2018, I was writing shaders more often than ever and an interest in graphics programming sparked. Everybody was talking about Vulkan or DirectX12, but I didn’t even know OpenGL, or the difference between all of them. On my first years of game programing, I remember the always-recommended NeHe OpenGL Tutorials, that I could never do because I couldn’t understand much English. That was definitely time to learn some OpenGL, and I was presented with the more cohesive and modern LearnOpenGL, which I couldn’t recommend more, with the acessible language and lot of content, it will not only teach you OpenGL but several of the most important techniques to build a fully featured 3d renderer.

Writing a game for the boot sector

I was recently exposed to the underworld of boot sector games, thanks to great book Programming Boot Sector Games by Oscar Toledo, aka nanochess. They are tiny little games, up to 512 bytes of machine code, that run on the bootsector of a disk, the space reserved for the bootloaders to initialize the operating system. You may think that 512 bytes are not enough to write a game, and it’s not a bad assumption, however there are people taking the challange seriously.

On the German R Pronunciation

I’ve been living in Germany now for almost one year and a half and I’m still struggling with learning the language. I moved here when the first lockdown was in place, back in April 2020, and it was really hard to make friends or even talk to people. I was limited to work colleagues through video conferences. But the official language in the office is English and most of the people in my team are not even German, which made it really complicated to actually get me started into the language.

Creating a GameBoy Emulator - Part 1

Some time ago I created a list of things I wanted to do as a programmer. Creating a minecraft clone, a game engine and a software renderer are some of the items sharing the list with “create an emulator”. After some talks with my good friend Kleverson at the office, he convinced me to make a Gameboy emulator. It’s not as complex as other game consoles from that time, but it’s definitely not trivial.

Programming Fulfillment

As I walk around the office, a game designer friend calls me to ask for help on a simple task he is working on. I’m working on a different project, but what’s the problem on helping others, right? I hear the issue and note that I could write a quick script to do that, so I start right away, at his own workspace. Five minutes in and it’s ready to test.