Why? Aug 13, 2013

This is the first thing I want to talk about: Why Aseprite? Why open source? Why C++? Why am I programming this?

First of all, I’ve started programming graphics software in 1998, several failed attempts before the original Aseprite source code was written. One of my brothers (Martin) inspired me to create this kind of programs at the time. He created a tool to draw graphics for his games, and I followed his footsteps.

Around 2001, I released the first version of Aseprite (known as ASE). Take a look to this baby:

This monster was programmed using Allegro library and C language. The code base evolved, after some years I switched to C++ (anyway there are a lot of legacy C code/design yet). The good thing about ASE was that from the very first version it already had “infinite” undo/redo (I’ll talk about this in future posts).

Anyway, the question remains. Why? Well, it seems that I liked to program, and I liked to program graphics software a lot (more than games). So I continue the project just like a hobby. I made it open source just because I didn’t have enough time to give serious support to this. Also, with programs like GIMP it didn’t make sense to make it closed at the time. (Right now it looks quite different. In following posts, I’ll give details about the future of Aseprite and its source code.)

Why C++? After five years, I decided to switch to C++ because the low capabilities to create maintainable code in pure C language. If you have an application, you should use C++, there are a large number of advantages: it gives you more abstraction power to represent ideas, to improve development time, to avoid programming mistakes (e.g. memory leaks), to avoid duplicated code (with better techniques than macros), to write high-performance code, to organize code, etc.

To sum up, at the beginning Aseprite was programmed just for fun, to learn some fancy programming techniques in C, and then in C++. Now it is a tool with a lot of potential, used by several indie game developers. So there are new paths that we have to take.

P.S.: You can download and try old versions of the Aseprite from here. (You must use DOSBox to run most of them.)