Written by Stefan Nikolaj
14 Sep 2020
The inspiration behind the project
To get ideas for the mockup of my project (link), I revisited the items that gave me the inspiration for the project. If you don’t know, my project was inspired by the way programs were originally shared before storage media was affordable. If one wanted a program or game, they would buy print media which had the full source code printed on it. Then the user would enter the printed code, and through that would unintentionally learn how the program worked and how programming in general worked.
I found some books online with code like that and got a Commodore 64 emulator. I then entered the code, and it all worked. Not only did the code work, but I basically managed to get the hang of Commodore BASIC after a couple of programs. The programs were simple. They were mostly word games (e.g. hangman), but some had some very elegant and unique solutions to problems to reduce code size.
Finding out what to do
After refreshing my memory of how I originally planned out my project to be, I then started thinking of ideas to make the example project. My criteria were that my program for the project would have to fill these criteria:
- Use free and open source software
- Be relatively short (this is for the example project only)
- Be simple to explain (example project only)
- Require only a small amount of programming experience
- Use Python or a similarly simple programming language
- Be a game
Why make a game?
Now why should it be a game? Well, games are something that kids love to both play and make. In addition to programming, they also require music and art. Music and art are usually made using proprietary software, and many people don’t know that there are really good alternatives to proprietary software used to make music and art. Regrettably, my project would be unsuitable for absolute beginners. There are already countless tutorials explaining the basics of programming, and the way I program only requires around an afternoon of learning to understand.
What kind of game?
With all these requirements in mind, I decided that the game I would make for the project is a SuperTux sequel. Why SuperTux? Well, it’s the mascot of Linux (biggest open source software project), it’s based on Super Mario and other platformers which are both fun and simple and compared to other games, it doesn’t have that much physics and math.
What kind of art style?
The artstyle would also be pixelart, which is fun and easy to make even for complete beginners in art (like me 2 weeks ago). The fact that these old-school platformers also use tilemaps and sprites means that only a small amount of drawing is necessary to have a working game. I used Aseprite to draw the sprites for my example project, but you either have to compile Aseprite from scratch (it’s open source) or buy it, and having to explain how to compile such a massive project on a bunch of different platforms is way too tedious.
In the end I decided to go with Piskel, a free online pixel art drawing tool. Because it’s online, it’s open source by default. It also doesn’t require downloading or compiling any software. It’s a bit simplistic, but for the purposes of this project it will do everything that’s needed. This is it for the first blog, and for the next blog I will explain my choice of game engine and why I’m even using a game engine in the first place.