{"author_link":"\/users\/kaliuresis","author_name":"kaliuresis","author_uid":"kaliuresis","comments":[],"epoch":1743810849,"event":"LD57","format":"md","ldjam_node_id":410921,"likes":12,"metadata":{"p_key":"209846","p_author":"kaliuresis","p_authorkey":"1317126","p_urlkey":"449032","p_title":"I'm in! With hand-rolled Web Assembly?!","p_cat":"LDJam ","p_event":"LD57","p_time":"1743810849","p_likes":"12","p_comments":"0","p_status":"WAYBACK","us_key":"1317126","us_name":"kaliuresis","us_username":"kaliuresis","event_start":"1743811200","event_key":"111","event_name":"Ludum Dare 57"},"node":{"_collation":{"body_sanitizer":"TextUtils::SanitizeHTML via existing importer","event":"LD57","removed_author":false},"_superparent":406845,"_trust":1,"author":317126,"body":"This will be my 5th ludum dare and I have quite an unusual setup this time.\n\nI'm hand writing Web Assembly (in the text format), with a small javascript layer for the interface. Graphics are software rendered in wasm then drawn directly from memory to a canvas. Similarly for audio I have a ring buffer that I write to in the wasm side. I also constantly check the wasm file for changes and automatically reload it without needing to refresh the page. I made separate modules for the game data and simulation, so I can reload the simulation while the game is running without losing state.\nI was originally planning to make a small pre-processor to let me do things like embed binary files and use macros, but I ran out of time to do that. I'm want try doing fully programmatic graphics and audio anyway, so hopefully it's not too big of a issue to not have these things.\n\nI decided to try this since I was getting tired of 30s long C++ compile times for my main game [Primordialis](https:\/\/store.steampowered.com\/app\/3011360\/Primordialis\/). I'm definitely significantly slower writing wasm than C\/C++, but it's very fun having nearly instantaneous updates after saving. It almost feels like I'm programming an old console. This LD will likely be more of a learning jam for me, but I'm still hoping I can make a good game.","comments":2,"comments-timestamp":"2025-04-04T23:58:07Z","created":"2025-04-04T23:28:35Z","files":[],"files-timestamp":0,"id":410921,"love":12,"love-timestamp":"2025-04-05T06:05:12Z","meta":[],"modified":"2025-04-05T06:05:12Z","name":"I'm in! With hand-rolled Web Assembly?!","node-timestamp":"2025-04-04T23:54:09Z","parent":408332,"parents":[1,5,9,406845,408332],"path":"\/events\/ludum-dare\/57\/neuronic-netronics\/im-in-with-hand-rolled-web-assembly","published":"2025-04-04T23:54:09Z","scope":"public","slug":"im-in-with-hand-rolled-web-assembly","subsubtype":"","subtype":"","type":"post","version":1286125},"node_metadata":{"n_key":"410921","n_urlkey":"449032","n_parent":"408332","n_path":"\/events\/ludum-dare\/57\/neuronic-netronics\/im-in-with-hand-rolled-web-assembly","n_slug":"im-in-with-hand-rolled-web-assem","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"317126","n_created":"1743809315","n_modified":"1743833112","n_version":"1286125","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/57\/neuronic-netronics\/im-in-with-hand-rolled-web-assembly","text":"This will be my 5th ludum dare and I have quite an unusual setup this time.\n\nI'm hand writing Web Assembly (in the text format), with a small javascript layer for the interface. Graphics are software rendered in wasm then drawn directly from memory to a canvas. Similarly for audio I have a ring buffer that I write to in the wasm side. I also constantly check the wasm file for changes and automatically reload it without needing to refresh the page. I made separate modules for the game data and simulation, so I can reload the simulation while the game is running without losing state.\nI was originally planning to make a small pre-processor to let me do things like embed binary files and use macros, but I ran out of time to do that. I'm want try doing fully programmatic graphics and audio anyway, so hopefully it's not too big of a issue to not have these things.\n\nI decided to try this since I was getting tired of 30s long C++ compile times for my main game [Primordialis](https:\/\/store.steampowered.com\/app\/3011360\/Primordialis\/). I'm definitely significantly slower writing wasm than C\/C++, but it's very fun having nearly instantaneous updates after saving. It almost feels like I'm programming an old console. This LD will likely be more of a learning jam for me, but I'm still hoping I can make a good game.","title":"I'm in! With hand-rolled Web Assembly?!","wayback_source":[]}