A Long Term Personal Project Part 1

It has been years since I have started my personal projects once again. I have been busy working on my master’s degree in computer science, which I have completed last March 2021, and settling in on my job (Just had one last October 2019 after months of looking). I guess this is pretty much the time to work on something that I could improve on.

I recently had the decision to sell my personal laptop in exchange for a Samsung S7 Tablet for stupid reasons:

  • I was so convinced that I can do normal development on a tablet.
  • I wanted to draw on a better device than my previous laptop, HP Envy, which won’t let me do due to its crappy LCD and pen.
  • More mobility. I had a 13-inch laptop; I wanted to go smaller and more compact.
  • DeX mode was fantastic, and I thought Samsung was pretty solid on releasing the Linux on DeX; however, I failed to do more research. Linux on DeX was discontinued long before I bought the tablet.

Hence my decision for the exchange. Bare with me because this long term project is tied with my stupidest decisions ever. Using a tablet as my dev machine wasn’t the wisest idea ever; however, it has its own merits. It is more of a personal choice rather than accessibility as a developer (which won’t really matter later on). I did my whole thesis using this tablet. I wrote an idiomatic transpiler that transpiles javascript to go and was able to complete it.

My Tools

Several tools can develop an android device; one of the most powerful would be Termux. It is a Linux emulator and doesn’t really need a rooted device for it to work. Other than Termux, I have a code-server with me, so I would have an IDE based on Visual Studio Code and Codemagic for my CI/CD needs. So far, setting all of these up was hell. I have tried to work on different tools and mix-matched all of them, and these three was the best tools that I was able to come up with. I can probably state that doing development on a mobile platform isn’t ideal, and it is way more convenient to have a laptop with you instead of a tablet. But hey, It’s still not impossible to do development on a tablet. There are a lot of limitations to having a setup like this. Obviously, lower CPU processing, lower memory, etc. etc. and in all honest to god, the Samsung’s keyboard cover layout is horrendous. Backspace and print screen are next to each other, and I always end up pressing the latter. Given this setup, I am given a limited set of tools to create games. Now, this is where my long term project comes in.

The Stupid Idea

I have been eager to learn more about game engines. For the past years, I have developed many machines that are made from different languages, C++, Java, Go, and Javascript. I do intend to work on another one that works in a tablet, but with an added flavour: I want to make other tools as well: A 2D Animation Tool, Sound Editing Tool, Drawing Tool, and a Game Editor. I know what you think; I may be out of my mind. Believe me, I know that I am. This project aims to create a suite that would help me develop games (2D games) on any android device. I have no audience to this, I have no users, I have no reason to do this. The only reason that I am doing it is that it satisfies me. I am the audience, and I need to be entertained. I am not unfamiliar with the mechanics of how to do these tools. However, I lack the mental capacity to stop myself from doing this project, and this would be a learning opportunity for me to understand more on the technical side of things. When I was doing an introductory class in Ateneo, our midterm project was to create an animated greeting card. Obviously, a program that has animations in it. It was supposed to be an easy task, so I made a game engine, an animation engine, and pixel art software, all from scratch. Our finals were to create the most accessible 2 player game. I made an MMO server along with the game engine that I made. Believe me, being this crazy stupid isn’t new to me. I am not tackling this project without a plan; I am not that stupid to shoot aimlessly at a task. I will share that plan in the next post that I will be doing once everything is set already. But for now, I am pretty much excited to work on this!