Update #1: Intro to smoochTowards the end of development of IguaRPG, my code-change-to-reload time was slowing down due to the number of simultaneous HTTP requests needed to get all of the sprites and audio files! To be fair, this was probably only ~5 seconds, but it was still annoying compared to the 2 seconds I had enjoyed earlier!
So, I have been working on a new automated tool called
smooch that will handle a couple things for me:
- Pack textures into texture atlases
- Convert sound effect files into lossy, browser-digestible formats and pack them into zip files
- Generate source code to conveniently access these assets from game code
Previously, I had some tools for items 2 and 3, but they were a bit naive. Here were some problems I identified:
- The source code generated by the tools was not configurable... This made it so that I could not alter the generated code without creating a new "release" of the npm packages I created... I don't know npm that well, so I hadn't automated the release process or anything, which made this very inconvenient. (See a sample of the old generated code here here)
- The tools did not retain their state after exiting. This meant that when I restarted my computer and ran my developer tools for IguaRPG, the numerous sound and music files for the game would be converted to lossy formats before I could playtest.
If I implement the items above, I should be able to render more sprites in future games, since packing textures into texture atlases allows the GPU to do fewer context switches! And I should hopefully enjoy speedy development reload times even as the project grows.
I have a nice (WIP) readme on the
feature/v1 branch of the GitHub repository for smooch.
Because I have gone full corporate weirdo (not really, but it sometimes feels that way), I have a
Trello board tracking the remaining tasks that I foresee needing to address in this niche tool.