Errands, Plot, and Steam/Mod Research
As mentioned yesterday, a good chunk of today was spent in town running some errands. As a result, I lost a few hours of work.
However, I did manage to get some plot writing done while I was there. Looking over some older notes, I started to see some opportunities for tying up loose ends. In the past, they didn't make as much sense, and sort of stuck out as unnatural. But today, I realized I could combine them in a way that they reinforce each other. Essentially, turning three mediocre mini plots into a more satisfying major one. So much so, in fact, that it might be the subject of the next illustration.
During the time when I was home today, I did some more research into my options for Steam integration and NEO Scavenger modding. And I'm starting to recall my frustrations the last time I looked into this.
So far, I'm able to get NEO Scavenger loaded into Steam as a downloadable game. That's pretty straightforward, as it's just a binary application that downloads and runs. Plus, as a bonus, Steam overlay "just works," provided one's Flash settings have "hardware acceleration" enabled.
Here's where things get ugly, however. Integrating with Steam (cloud saves, achievements, Steam Workshop) is pretty much a no-go with NEO Scavenger in its current form. NEO Scavenger uses the Flash projector, and there's simply no way to make that load a SteamWorks DLL due to file system security limitations.
Furthermore, modding is likely to be pretty rough using the projector format. It can load individual files from disk, if the user specifies them, but I'm not sure if that will be good enough. For example, if people want to include their own images for items, will they have to browse and load each file individually? And repeat this each time the game launches? It might be possible to load a zip file, but I haven't verified that works yet.
Other devs have circumvented these issues by using Adobe AIR, since that allows file system access (i.e. modding), and loading dynamic libraries (i.e. SteamWorks). It also frees up the option of saving games in a more accessible folder, like a subfolder of the game, instead of shared objects. What's more, the difference to Windows and Mac users is nearly invisible.
There's a catch, though. Linux users will be required to install AIR. Lars, the developer of Defenders Quest, was able to work with some folks to put together a tar.gz installer (see the "Update") that sorts this out for most users. However, even so, there are some users who prefer not to install Adobe AIR.
So I guess I'm faced with a choice:
- Switch to AIR - This opens up the possibility of modding, Steam integration, and save games in any folder. It works 100% on Windows and Macs. It also works on most Linux distros, though some users have reported trouble (namely, Gentoo users). Some Linux users are also against Adobe AIR on principle.
- Stay with Projector - I can also leave NEO Scavenger as-is. This means no Steamworks/cloud/achievements. It also means modding is unlikely. And save games will likely stay in shared object (e.g. Flash cookie) folders.
- Use AIR on Steam, but Projector Elsewhere - I could just make a special version for Steam, which supports all the stuff from #1 above. bluebottlegames.com and Desura users will get Steam keys anyway, so they'll have a choice. However, it means maintaining yet another variant of NEO Scavenger (apart from the various combinations of demo, full, Yukon, web, and downloadable).
- Switch to HaxeFlixel/OpenFL - I only list this to be complete. This is pretty much a non-starter, as it means rewriting the entire game in a new language, and delaying development by months. It's a huge risk at this late stage, so I'm not considering this right now.
- Fairy Dust - I've missed some magical solution that makes everyone happy. Please tell me there is something like this out there :)
This is a big decision, and I'm not sure I have a choice made yet. Good thing the weekend is here, giving me some time to think.
So that's what's on my mind. I'll be mulling that over in the coming days. Also, Monday is Remembrance Day in Canada, so it's a holiday. Therefore, I'll be back on Tuesday. Have a good weekend, all!