Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

Great prompt! And awesome to see someone else using TypeScript!

After dabbling with many game engines and frameworks, I highly prefer using the workflow of using a framework (like love2d or raylib) over an engine (like godot or unity). I find engines often make simple things much harder than they need to be. Using TypeScript gives me the type-safety and language server features I enjoy. I find that the built in web APIs for things like 2d rendering on context, input handling, sound, etc, all feel really similar to using a game framework .

I've been using this TypeScript, <canvas>, and built in web APIs approach for lots of projects (games and otherwise) lately, so I was able to reuse lots of knowledge for this game jam. However, for this game jam I wanted to  experiment with the idea of using a "fat entity struct" which people from the handmade community recommend! This means that I have a large fixed array of entities where an entity has all the fields anything in my game could ever need. It ended up looking like this: https://github.com/onsclom/silly-jam/blob/main/src/state.ts#L5. This was a big change compared to how I would represent entities before, but I ended up really liking this approach. It helped us move really fast, removed a lot of potential code duplication, and various things I worried about (like performance) never became an issue!