Reading the "Doom Engine Black Book" has changed my perspectives on software portability. I used to always think "Oh, C is super portable, look at DOOM it runs on everything". In reality, there were a bunch of caveats and technical hurdles that were needed to overcome each and every port. It didn't "just work". The thing that was truly portable? The WADs. The data. It's making me rethink my approach in my own creative software ecosystems. Up to this point, my work has been represented as code and executable programs. These are more brittle than I expected. It turns out, I can't even rely on C compilers to add 2 floating point numbers with consistent behavior. So, I'm trying to think about designs that are more data-oriented and implementation-agnostic.
Conversation
Notices
-
Embed this notice
paul (paul@post.lurk.org)'s status on Friday, 24-Nov-2023 01:58:42 JST paul -
Embed this notice
paul (paul@post.lurk.org)'s status on Friday, 24-Nov-2023 01:58:43 JST paul In about a week or so, I am planning on returning to my Rust DSP library, called BoingBoingBoing [0]. I have set up a roadmap/todo list. The hope is to port a large portion of sndkit [1] functionality to this library. At that point, I intend to take advantage of Rust's WASM support to create more interactive web-based audiovisual compositions and experiences.
I do want to get some of my gesture synthesis stuff working with Boing^3 as well, but I want to think about it, as there's too much "rewrite in Rust" syndrome happening already. I'm thinking about another portable system that already works with my current C based environment [3], whose data can be meaningfully exported like a file format and loaded into small environment implemented in Rust. Kind of like what WADs are for Doom.
0: https://github.com/paulbatchelor/BoingBoingBoing
Haelwenn /элвэн/ :triskell: repeated this.
-
Embed this notice