For those of you who are unaware, I’ve been posting videos for quite a while now on my YouTube channel (here). I started this channel (well, relaunched, honestly) about halfway through last year as a channel for game development. Since then, I’ve posted my thoughts about the industry as a whole, or specific topics therein.
However, I also lauched a TypeScript Game Engine Tutorial series on there, which details the creation of an entire game engine in TypeScript using WebGL. I also, at the time of writing, developed a simple game from start to finish using that engine.
Granted, with only 28 videos, things are still pretty simple. However, I do know that TypeScript in games is scalable. Way moreso than I ever thought.
You see, in my full-time position, I am the lead developer and maintainer of the game engine we use there internally. While I cannot disclose details of it, one thing I can mention without breaking any sort of NDA is that it is built using TypeScript. This ultimately is a product seen by millions of people worldwide. Moving on now before I *do* say something I shouldn’t 🙂
A couple of things stand out to me about writing a game engine in TypeScript – both on the good side and the bad.
Starting with The Good:
The TypeScript transpiler outputs very neat, clean code.
Separating classes into diferent files is handled cleanly by the transpiler.
Works great with node/npm setups to include code easily (most of the time)
Now, for The Bad:
All the different options on module resolution and imports vs. references can get confusing.
And The Ugly: