{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifjxah67gur7nfiopkin2rbao2nencuucqziptcifxolxo6agijua",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mmikkxu3di52"
  },
  "path": "/t/haskell-ant-simulator-talk/14140#post_13",
  "publishedAt": "2026-05-23T02:45:44.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "every game I’ve made for Ludum Dare",
    "my bindings to grimfang’s SDL_gpu"
  ],
  "textContent": "I tend to cap at 60fps, but every game I’ve made for Ludum Dare was an easy 60fps (even in ghci). One is gloss, most are using my bindings to grimfang’s SDL_gpu, and the most recent used Pixi.js and the wasm backend. When I played around with raylib it seemed like it would be fine for 60fps too.\n\nThose aren’t huge but I’m confident I could do any game at 60fps with Haskell. There’s a lot of potential for type safe off heap stuff.\n\nI didn’t even use the `-xc` non-moving collector. [1] This is all the default STW collector. The key is to not retain much in the heap. So compact things, use storable, etc for long lived things.\n\n[1] I did use `-xc` when I ran my games in ghci (where I could do hot reloading and query/edit game state from ghci itself). ghci has a bigger heap full of loaded Stuff (now I wonder how much could be compacted?)",
  "title": "Haskell Ant Simulator Talk"
}