My Devember Contract

As previously mentioned, I will be participating in Devember this year to help raise awareness for in their mission to have everyone everywhere learn how to program a computer. Each day in December, I will spend at least one hour working on some code, which will be shared with the public (spooky!) along with a daily development log.

Per the rules of Devember:

I, Terence Martin, will participate to the next Devember. My Devember will be game development in TypeScript. I promise I will program for my Devember for at least an hour, every day of the next December. I will also write a daily public devlog and will make the produced code publicly available on the internet. No matter what, I will keep my promise.

I’ve always been interested in game development, but the rigors of life in more recent years have drawn me away from that world. Now I’m finally finding the time to get back into it, only to discover that the landscape has radically changed from what I used to know. Time to push the knowledge of how to write images to a CGA screen out of my brain in favor of something a little more recent.

I’ve been using a simple JavaScript framework lately to prototype ideas. The idea of this is two-fold: such an engine is easily portable across the three OS’s that I usually use, and I want to make sure I build back a solid foundation of how all of the parts of a game fit together before I start using tools like Unity or GameMaker that do all of that for you.

I prefer to program in an OOP style, and in JavaScript this is somewhat painful as far as all of the extra boilerplate code required to set up objects is concerned. So for this Devember, I am going to experiment by porting my little framework to TypeScript, which is a simple OOP language that transpiles directly into JavaScript, theoretically doing all of that boilerplate for you so you can concentrate on actually writing code.

Once that is done (which should not take long) I will start working on an idea for a game prototype that I’ve been spitballing a little lately, so I can get a good handle on the ups and downs of using TypeScript vs JavaScript over the course of a project.

Additionally, I will also be hosting the code on GitLab and using Devember as an excuse to get more familiar with/evaluate that particular environment. I plan to push code up every evening to coincide with the devlog posts.

Full disclosure: I’ve never used TypeScript for anything at all before, although from what little I’ve seen the syntax looks like it’s pretty simple to get your head around. Get prepared for some hilarity.

The devlog will be posted here on the bloggity in this special category (as if I write sooo much stuff here that otherwise it will get lost) and the code itself will be hosted in a public git repository on GitLab.

To get started, the base code prior to any modification, is already posted up at for people to take a look at. This is basically a copy of the repository that I clone every time I start a new project. As new functionality in the “engine” is required, I add in support for it, so as a result things are currently fairly sparse. I tend to get carried away with API design so I’m trying to rein that in a bit by only developing what is absolutely neccesary.