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. 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!


Boomstars's picture

For what it's worth I can understand being irrationally opposed to software (not that linux users opposed to AIR are being irrational). Personally I don't get along with steam very well. I'm confident it's a quality service, just don't want all that much to do with it. I bought through desura, I know I've got a steam key, but if I don't have to use it to use mods I'll be a little happier.

dcfedor's picture

That's an interesting data point. You're probably not in the majority, but it's worth considering that there are some out there who prefer avoiding Steam, but who still want modding/manually-configured save files.

With that in mind, you probably wouldn't be thrilled about having to install AIR to get these features, either. But I guess you'd prefer that to installing both AIR and Steam. So that'd be one more reason to avoid fragmenting NEO Scavenger's functionality between Steam and non-Steam users.

That assumes, of course, that you'd rather have mods than not. Even if it means installing AIR.

Dan Fedor - Founder, Blue Bottle Games

Malacodor's picture

I'd say stay with Projector. I won't use Steam anyway.

Ran around with a clown mask before it was cool

Rovlad's picture

Can you just use Steam overlay and still take advantage of its publicity, without having to implement achievemenents, cloud storage and modding?
If so, that's what I'd do. It means less mundane and technical work for you, and less downtime before release for us.
Sure, all of these things are nice, but they're far from critical, at least for me.

If anything, they should be milestones for NEO Scavenger 2. :)

Kaaven's picture

I agree with the others. I personally don't use Steam, and all those Achievements and stuff only pisses me off - especially in single-player games. Cloud storage is not necessary either, since NS is supposed to be based on perma-death rouge-likes (also, trying to figure a way to find saves to save-scum is an integral part of the fun of that model). Modding would be cool, but if it means it will hold you back/may cause problems - better keep it for NS 2.

<--Mighty (mini)Mod of Doom-->
DeviantArt Gallery of MoD Sprites

Nickboom's picture

*Sprinkles fairy dust on everyone in the chatroom*

Official Trained Dogman

aesop's picture

I also found myself wondering whether integration with Steam's achievement system and cloud storage was necessary to reap the benefits. I'm unfamiliar with whether or not that's actually mandatory with Steam games.

I have Steam but very rarely use it. Now that my taskbar is populated with Steam, Origin, and Uplay I'm beginning to despise having to maintain and update separate launch platforms to play games I own as opposed to simply being able to run the game itself. The dubious features gained (achievements, pseudo-social-media aspects) don't justify the inconveniences they're attached to for me as a user.

That aside, people I've introduced to the game have told me that the initial learning curve is part of the charm for them in NEO Scavenger. Discovering new creatures, item combinations, and locations is something people don't want spoiled. Perhaps keep that in mind as you design the achievements, and try to avoid spoiling the player with any meta knowledge they may not have discovered yet on their own. Many games are guilty of this now and have led to me avoiding looking at achievements and their descriptions at all.

Example: A situation in which a player discovers melonheads on their own and is puzzled, curious, and surprised is preferable to one in which they notice the achievement "Melon Party: Kill 50 Melonheads." Then they wonder "what's a melonhead? where can I find one?" It just completely ruins immersion and the element of surprise the game has going for it.

dcfedor's picture

I don't think achievements or other types of Steamworks integration are mandatory. It's just that those features inevitably come up with customers there. I've been poking around the forums of some other Flash-based games on Steam, to get an idea of the way customers might respond.

  • Binding of Isaac - Supports achievements, Flash-cookie-based save games like NEO Scavenger's. Link is an example of dissatisfaction with losing save data.
  • Machinarium - Flash-cookie-based save games like NEO Scavenger, no achievements. Link is about losing save data.
  • VVVVVV - Link about no achievements, and I think Terry actually re-coded VVVVVV in C++ later to overcome Flash limitations.
  • Flash games in general - Some general thoughts on Flash games, and whether they belong on Steam.

The overall impression I get is that most people are understanding of the limitations, and a few are upset about it. However, even devs who have switched to AIR, to get around these limitations (like Defenders Quest), have their share of issues (e.g. installing on Linux).

I'm not surprised by that, I guess. It's impossible to please everyone.

Over the weekend, I did discover one more option that I had missed: Steamworks Web-based API. There may be a possibility of firing off Steamworks events via web URLs, instead of via a sidecar DLL. If that's the case, the Flash projector format may be able to work as-is (assuming no security issues with accessing the web).

Ultimately, though, I just want to figure out if I should be planning on sticking to projector or AIR, moving forward. And so far, I think you guys are right: projector is probably the safest. I might lose some cool features, and some customers will be disappointed (especially on Steam), but it keeps all versions of the game at parity, it already works, and I don't risk pulling the rug out from Linux users who hate AIR.

Man, I'll be so happy to put Flash behind me on the next project!

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture

Well, it's hardly your fault that NEO Scavenger kinda overgrew Flash. If anything, you should consider this an accomplishment.
For your next game, you'll have a much more broad view on different engines/platforms and their limitations.
It's not that much of a drawback as it is learning experience for an indie developer.

>security issues with accessing the web
Even if it's not 100% secure (and nothing ever really is), the net result is that some knowledgeable people will be able to mimic game's traffic. The question is, is that much of a problem? There are hacks which give you every possible achievement in every game you own on Steam (and yes, Steam acknowledges them and they show up in your profile), but nobody bothers to go after them with pitchforks, simply because it's really up to a particular individual if they want to play fair.