logo
2 points by umvi 3 days ago | discuss
Hey HN, I'm Bryan. I released Pragma Twice earlier this week in anticipation for Steam's "Programming Fest". Pragma Twice is a programming puzzle game in the same vein as Untrusted (https://untrustedgame.com/). You have to write real JavaScript code to incrementally improve your playable character's "kernel" over the course of the game. Beating levels autonomously (without keyboard inputs) reveals a competitive time/code golf aspect to the game.

I started developing Pragma Twice over 4 years ago after playing Untrusted and loving it. It took so long to develop because I'm not a full time game developer... between my actual job, my kids, and my own self-motivation, it's taken a lot longer than I originally hoped to get this game shipped! It's definitely what you might call a passion project. Anyway, I plan to keep iterating on it, so give it a spin and let me know what you think!

A few technical details/challenges:

- The game was originally written in vanilla JavaScript, but I later converted it to TypeScript (which had an astonishing ROI)

- Uses PixiJS for the graphics and a custom game engine built around Web Workers + SharedArrayBuffer for sandboxing and guarding against things like infinite loops

- The web version is hosted on GitHub Pages, which was challenging because of the SharedArrayBuffer requirement (I use https://github.com/gzuidhof/coi-serviceworker to work around this)

- The linux/windows versions use Electron

- Uses CodeMirror for in-game editor/console

- Levels built with LDtk

- Automated game testing with Puppeteer

Steam: https://store.steampowered.com/app/3528840/Pragma_Twice/

Dev Notes: https://www.bryanpg.com/games/pragma_twice