← Home

What the heck is a line?

Have you ever wanted a game that is smooth like butter, simple like a line, and integrated like a living ecosystem? Welcome to the world of Aline!

Who am I?

My name is Ondřej Tesáček but you can call me Ondra. I’m a solo game developer based in Brno, Czech Republic. I’ve been interested in computers, games, and graphics since I was about 10. Around 15, I started programming (and using Linux!). I roamed through many programming languages searching for the best one for creating games and computer graphics programs. I loved the simplicity of C, but hated how dated some of its components were. About 5 years ago, I discovered Zig. Even though it had only a fraction of the users, popularity and resources it has now, I learned how to use it and it instantly became my favorite programming language and has stayed that way ever since.

How it started

For many years I dreamed of creating a really awesome and original game. Being inspired by Minecraft, I never really wanted to create a realistic game simulating our world, but a game that would define its own world and its own rules. The systems in the game needed to work nicely together, creating limitless possibilities for the players.

I quickly settled on a strictly 2D world. I knew that having 3D graphics, physics and logic would slow down the development and require making the systems less well thought through, and less integrated. Only the limitations of a 2D world would allow me to deliver the quality I dreamed of.

Then, I needed to choose how to do the graphics. First, I experimented with pixel art, since it was easy to begin with, thanks to its many tutorials and simple nature. But gradually, I started using vector graphics through the open-source vector graphics editor Inkscape. Even though it is a bit harder to use for the first time, I learned everything I needed in a few months, and fell in love with Inkscape. I experimented with solid-color shapes, and created some concept art that could be used for my game.

At this point, I realized that pixel art wasn’t gonna cut it. It requires managing textures and texture atlases. In those, I had to choose between stitching the character’s arms to the body using rotation or drawing all the character animations frame by frame. Rotation would break the essense of the pixel art.Frame by frame movement would disallow any procedural animation and arbitrarily limits the frame rate. It all screamed at me that pixel art was not for me. I wanted the smooth shapes and strokes from Inkscape. Not shapes exported to a texture while exhibiting the same problems as mentioned pixel art. I wanted the strokes drawn directly in the engine. So, Aline was born.

What is Aline?

Aline is a female name, a misspelling of “a line” or “align”, and a personal brand for my game development journey. Additionally, Aline is a renderer capable of rendering a small subset of vector graphics in real-time.

Initially, I planned to release it as a standalone graphics engine that could be used by anybody to create all kinds of programs. In the end, I published only a vector graphics editor as part of my bachelor’s thesis. When creating the editor, I realized that I actually want the renderer to have all the features I need for my projects and exactly none of the features I don’t. I still plan to open-source Aline, but it will never be a multifunctional library for rendering real-time vector graphics.

To build Aline quickly and make it efficient, I needed to choose a specific subset of vector graphics that is going to be both easy to render and easy to work with in the other components of the games I create. So I chose to represent each path or shape as a sequence of points with circular arcs in between them. A straight line segment is a infinitelly small arc of a infinitely large circle. I will write an in-depth description of this system will in a separate post. To sum it up, by adding only one “bulge” parameter to each segment of a polygon, we suddenly gain a powerful tool, using which we can create rounded objects of variuos shapes and sizes. Furthermore, their stroke could be generated using the same format too!

Beyond a graphics engine

As the time went on, Aline became more than just a graphics engine. It became a way how to create a 2D world and how to interact with it. In the past year, I created a physics system, that is capable of detecting and solve collisions and constraints between the shapes, a lighting system that allows each shape to cast a shadow and show a stylized specular reflection, and a block system that can manage structures made of blocks (similar to Minecraft and Terraria), except each such structure is an independent object controlled by the physics system (similar to Teardown).

Next, I’m planning a vegetation system, that will allow the trees and plants to grow and bend like real living things. I also came up with some lore for my game that I will be happy to draw some concept art for and share with you! There’s still a long way to go before the game could be considered finished, but it is surely already a playable demo that is also pretty fun and satisfying (at least for a couple of minutes). I’m not sure when and under what license I will release it to the public, but I know that time will come and it will be epic!

What to expect here

This page is a personal blog about the graphics and game systems I am developing. Oveall, you could expect:

If you have any questions, you can always contact me at [email protected].

You can bookmark the adress aline.games or follow the blog via RSS, so that you don’t forget to read the upcoming articles.

See you soon!