Itās really cool to hear you checked out my game! I personally didnāt have any issue managing visual assets, at least not on the level that I wished iffinity could help. It was easy to make an assets
folder in the export
folder, dump all my assets in there, and just refer to them with url(assets/examplepath.jpg)
or whatever when I needed them.
iffinity compiles to HTML, which being HTML, comes with built-in ways to display images and GIFs! And videos too, if anyone wants to go that route. It helps a lot.
Managing audio was more complicated for me. Not in terms of where it was stored (I just had a assets/music_real
folder for everything), but playing it in-game. I ended up installing Howler for background audio, and then writing my own function to slowly fade out the the background track thatās currently looping and slowly fade in the new background track when you enter the appropriate area for it (code here). Iām not entirely sure itās the most efficient way to do things, I think the way I have it loads all the looping audio at the start of the game even if most people will only hear a few tracks at best, though I could be wrong.
Still, Iām not sure how helpful it would be to add audio support. Sugarcube has a bunch of audio macros, though theyāre more limited than Howlerās options, and still pretty complicated to set up the way you want once you get into it. If I remember right, they donāt have a macro for āslowly fade out the the background track thatās currently looping and slowly fade in the new background trackā, so if you wanted to do that in Sugarcube youād have to make a function for it anyway, using their notation.
I like the relative minimalism of iffinity since itās far more customizable and lets you specify exactly how you want things. I only wanted background audio for my game, no one-time sound-effects, so I didnāt have to worry about adding in anything for sound effects.
TLDR: Adding more support for visual/audio assets wouldnāt hurt, but Iām not sure if Iād use it. It does depend a lot on how itās executed, though. In general I agree with Halās preference for iffinityās relative minimalism and donāt think adding new stuff is all that necessary at this point.
Things I did find myself thinking āthis would be nice to haveā while working on my gameā¦ Sugarcube has a <<replacelink>>
macro (or someone made one and I put it in all my projects because I liked it so much), where you can click an element and it gets replaced with another element. I actually replicated that behavior with a function of my own (which is much jankier in practice), since I liked it so much. Maybe built-in support for something similar would be nice?
Two other things I made were menu panels that open when you click a specified element and automatically come with a close button, and code to add wrapper html around the iffinity snippet since I got tired of copy-pasting the same HTML divs (used for CSS purposes) around the unique contents of every snippet.
Even if those things didnāt get added, I could just use my own code for it. Anyone else could too, though theyād have to add the extra esbuild stuff that Iāve been using. Actually I ended up making my own iffinity template folder that has starter files and a bunch of extra stuff/modules I found helpful in my iffinity projects, and I should maybe put that on Github at some point.
Also, re: the refresh thing, I was thinking about Sugarcube which Iām pretty sure does this out of the box. Itās honestly not that important for me, though, since most browser games reset your progress when you refresh. Twine is more the exception than the rule there. And it is somewhat convenient, but still runs the risk of e.g. if you refresh on a page that increases a variable by 1, the variable would increase again (at least I feel thatās what would happen. Havenāt actually tested that kind of thing). Itās deceptive because it seems like nothing has changed, but if thereās complicated game logic it might disrupt the internal workings.
Glad to hear youāre doing okay! I wish you a happy Masterās-obtaining-experience and a less hectic schedule. Sounds rough out there.