***OFFICIAL QUESTION*** : Change Public Build to AIR-less?


#1

This might take a little explaining.

Basically, in the process of preparing the game for Steam a while back we discovered a new way to deliver the game. Right now, the version you get from our own site via FastSpring, or from the direct download on Kongregate, is a little installer thingy that installs Adobe AIR and then Defender’s Quest.

On Steam (and also GOG), we packaged it differently, as a standalone build that packages all the AIR dependencies away into a local folder inside the game’s install directory, so you don’t actually have to install Adobe AIR itself onto your system. Also, this makes the game’s installation fully portable - everything you need to run it is in the game’s install folder (minus the save and config data that it writes to your AppData folder, etc.)

So, now that we know how to do this, should we switch the version on the public auto-update server to use this build?

Pros:
-No need for Adobe AIR. If you hate it, after the next patch you can uninstall it and still run Defender’s Quest.
-100% Portable installation. Want to take DefQ with you? Just throw the install folder onto a jump drive, then copy paste it to your new computer.
-I don’t have to maintain two separate build process for AIR and non-AIR builds

Cons:
-We’d have to wrap it in a new installer for user-friendliness after an auto-update
-People who have the old AIR version installed might wind up with two installations of the game

The cons can mostly be mitigated if I write a smart enough installer script that detects a previous installation and gives you the option of removing it (this wouldn’t touch your save files).

What say you?


#2

Definitely in favor of getting rid of any “installed” crap that will every now and then bugger me with autoupdates. I’m fine to get whatever works with the game, so if Adobe AIR folks fix something that YOU need fixed, you will for sure include the updated version’s files in a new package.

Full portability is great. My next big question would be, however - can you have control over where a) mods b) save games get stored? That’s the thing that currently stops my DQ from being fully portable. I’d love to have the saves under the game directory, so that I could easily sync between machines, or even carry the whole lot around on a USB stick…


#3

Yeah, we can do that. It won’t be hard to add, it’s just been low on the priority list for so long because of all the fires I’ve been putting out. Should be able to add that in soon-ish.


#4

I don’t personally care either way about AIR, but it is a possible attack vector and some folks care a lot about that.

Portability, on the other hand, is definitely the way to go. I have the GOG version and I really like that I can just stick it on a USB drive. At that point I just have to copy over the config file and savegames (or just import them) and I’m good do go.


#5

Just for the record, I’m not 100% sure this method removes any and all Adobe AIR vulnerabilities. AIR functionality is still there, but just as a set of .dll files that only the game itself uses (and dll equivalents on mac). I presume this is a lot more secure than having an OS-wide AIR installation, but I haven’t exhaustively researched it. It’s kind of the equivalent of packaging a Java game as a standalone runtime VM along with your game rather than as an OS-wide Java install.


#6

Yes, definitely change it. This would be interesting especially for the linux version of DQ, because Air is a huge PITA to install on linux.


#7

Unfortunately I’m not sure we can make many improvements with the current engine on Linux, because Adobe stopped supporting AIR on Linux a while ago, and the new packaging feature is only available in versions of the AIR SDK that came out since then.

On the bright side, I’ve been talking to my Linux expert and he’s come up with some ways to automate the installation procedure and dependency issues so it’s less-terrible on Linux.


#8

Any way of installing without giving the root password to the adobe air binary installer would be a huge step forward. I haven’t installed Defender’s Quest yet because of this.

And if you should come up with a new build, it would be great if you could turn off the phoning home as well, as you seem to have done on the gog version.


#9

I now found out the best way to install DQ on linux:

Using Virtual Box I created a virtual machine in which I installed a standard linux distribution. I copied the AdobeAir binary and DQ to the installation, and unplugged the virtual network cable. I had to give the root password to the AdobeAir installer, but at least it only affects this installation and not my real system, and can’t access the internet.
The main bonus, though, is that all the tracking and phoning home of DQ is blocked. When starting the game I get a message that the Internet cannot be accessed, but there is no reason for the game to do so and other than the message it works fine.
It might seem a bit overkill to create a whole virtual machine only for one game, but there are so many technical shortcomings to this game that it is necessary to do so (fortunately the next game will have true linux support).

Even without sound, which I didn’t get working yet, the game is great so far (I’m lvl 15 currently). And I am very happy that I waited a bit before buying the game, and found a very good deal. If everything would have run well, I would have felt cheap paying such a small price for a great game, but seeing all the time and effort I had to put into getting it working correctly, I feel like having paid enough with my time. I would have preferred spending less time and giving more money to the developers and playing the game a couple of months earlier, though.


#10

Just a few comments:

  1. phoning home can be turned off (when it comes to the metrics tracking that the game does). Not sure if the automated checking of updates can be turned off.

  2. I got it running on Ubuntu without any major hassle, it works with the last Adobe AIR version that exists for Linux. So, what are the “so many technical shortcomings”? (I must admit that I didn’t try sound, I have it turned off even on my windows box at home).

(I have to admit that I absolutely forgot what the Adobe Air installation involved when it comes to security - all I faintly remember was that it worked quite well. It’s a long time ago already)


#11

— Begin quote from "coyot"

Just a few comments:

  1. phoning home can be turned off (when it comes to the metrics tracking that the game does). Not sure if the automated checking of updates can be turned off.

— End quote

no, update checking can’t be turned off. So, the software always tries to phone home.

— Begin quote from "coyot"

  1. I got it running on Ubuntu without any major hassle, it works with the last Adobe AIR version that exists for Linux. So, what are the “so many technical shortcomings”? (I must admit that I didn’t try sound, I have it turned off even on my windows box at home).

— End quote

well, installing adobe air requires the root password. One does not know exactly what it does, but being root it may do anything. Even assuming that it doesn’t do evil, it still installs software system wide without using the package manager. So, no automatic updates, and possibly file conflicts with other packages, and possible problems with leftover files which don’t belong to any package (for example Archlinux converted the /lib directory into a symlink not too long ago, all packages tracked by the package manager were converted without problems, but leftover files which didn’t belong to any package caused problems).

some other technical shortcomings:

  • phoning home. The reasonable way of doing it would be opt-in for statistics submission, and update checking only when the user clicks the “check for updates” button, and no connection to the net whatsoever without user intervention. It’s an offline single player game after all, and most users don’t expect and don’t want software to phone home (you can check the forums at gog.com).
  • I have a Sandy Bridge Core i5 processor, and the game uses 100% cpu on one core. If I turn down the maximum cpu frequency, the game doesn’t run smooth any more. This is just ridiculous. While pretty, the game only features simple 2d sprite graphics that were possible 10 years ago, with a small fraction of today’s processing power. Also, if a program needs so much processing power, it should at least be multithreaded.

Don’t get me wrong, I still like the game, but there are technical shortcomings. Fortunately, the devs already announced that the next game won’t be using adobe air, and they have provided a version of DQ which doesn’t phone home for gog. So there’s hope that the next game will be just as great as DQ but without the technical problems and the questionable design choices regarding user’s privacy.


#12

Update checking CAN be turned off, but it’s probably not yet been enabled in the build you’re running, so sorry about that. The GOG build has this feature disabled for sure, and it will be in all the other builds when I get around to synchronizing them after I stabilize the latest in-development build. Similarly, the data-tracking will be switched in the rest of the builds to opt-in.

I’ve been behind on some of these issues, but I should catch up eventually. Sadly, defq1 on linux will always require AIR because of Adobe’s dropped support, which only lets us remove the dependency in versions beyond what is supported on linux. As for the root password thing, there might be a hack that’s possible to bypass it, I’ll ask my guy.