# Byte Overflow

Byte Overflow is an 8-bit clone of the famous 2048. Drag the tiles in all four directions, two tiles of identical value merge by adding. Overflow the value by merging two 128 tiles.

A very long time ago (two decades), in a distant land (Belgium), a promising high school student (me) discovered calculator programming (a [casio graph 60](https://fr.wikipedia.org/wiki/ Casio_Graph_60)).

When the batteries were recharging, I remember sleepless nights writing my programs on paper, planning to use the 29 variables to finish the next day in math class (but not only).

My first program was an artillery game (which had some success since the whole class had shared it in frenzied tournaments). Each player, in turn, entered the amount of powder and the angle. The shell hollowed out the ground a little on impact and you won by hitting the opposing tower. It was of course necessary to adapt to the landscape and to the wind which changed from one part to another.

Then I discovered QBasic, a revolution since I then had functions, character strings and above all, a 320x200 screen in 256 colors (a true orgy)...

To get back to the present, I decided to return to developing small applications. In the idea: small multi-platform games. Among the frameworks, I settled on Qt which has the good taste of be in C++, while allowing to declare its graphical interface in a language close to the idea "HTML/CSS/Javascript" (QML), in short I’m happy as a child after Christmas.

As we do not develop programs as we did at the time, I started by following a tutorial on the subject (it has since disappeared ...). In 7 rather quick steps, we obtain a 2048 all that is honorable.

In order to customize the version a bit, I decided to code the values of the tiles on 1 byte (uint8_t). It is therefore impossible to obtain 2048 since when we add 128 + 128, the result overflows and gives 0 (modulo 256). Hence the name: byte overflow, a nod to the vulnerability of the same name.

I admit, in real life I typed in "uint_8" without paying attention and when I saw the overflow, I thought "ho, the good idea". Typical example of serendipity.

After this tutorial, I had to discover the Loader system to do a splashscreen, install the SDK and Android NDK (disclosure, SDK installs via android studio and NDK installs separately), all the intricacies of deployment via Google Play and that kind of details that nobody tells you about (like creating a windows installers, or the creation of packages rmp or deb).

The first step is done, the application works and is available on Google Play. I still have a few details to settle. I would like to get my hands on internationalization and sound management. I would also like to set up a CI to publish packages for android, windows and linux automatically.

If you are interested in this project, you can follow these links: