Hello. Sorry if this is a stupidly basic question, but I’ve been searching a bit and I’ve not found a simple solution yet.
I’ve been making Flash games alone for over a decade now, though I’ve never really been involved in the community/scene so I’m in the dark about a lot of things.
I just spent several months making a rather in-depth RPG in Flash (I’m not here to advertise it, but here’s a trailer to give an idea of what I’m talking about), but while reading about how best to release and make money from it, I got the general impression that ‘Flash is dead!’ and basically panicked about that! Especially since this game of mine is intended to be released in episodes over the course of several years, using the same engine and assets.
I’ve been developing it in Flash CC using ActionScript 3, and the code and Flash animations already exist. I’m unsure whether it’s even possible to port it to mobile devices and such though, with what I already have.
I came across OpenFL while doing research about what I should be using instead, but I’m not sure what I actually need to do. Is it possible to use the existing code and animations and so on, or will I have to edit or even rewrite a lot of stuff? If I’ve already been using Flash CC and everything’s finished, do I need to be using OpenFL at all?
Yes there will be some work, since openfl is haxe and not as3, but most of the work can be done by scripts.
What you need to do is convert your as3 code into haxe, first launch https://github.com/HaxeFoundation/as3hx and then manually clean the, hopefully few, remaining errors.
Thanks for the links! It definitely gives me somewhere to start.
I’m currently looking at the samples (which were already installed when I installed OpenFL, apparently), and I prefer that structure to having everything in a .fla file, but I don’t know how to compile them into a playable game.
I tried the command “openfl create PiratePig”, for example, but nothing seemed to happen. The documentation says it’ll create “a copy of the sample within the current directory”, but I’m unsure what that means. What is the ‘current directory’ (the OpenFL directory? The PiratePig one? Some command line specified thing I don’t understand?), and what is a ‘copy’? I was expecting it to create a playable exe or something, but I didn’t notice any new files appearing in the PiratePig directory.
I haven’t used a command line in years, so this is probably going to take some getting used to!
Okay, I’m making progress, having to teach myself how to use a command prompt and downloading a bunch of things from different places just to get anything working… though I’m confused about the as3hx thing. I have no idea how to use it! The documentation simply says:
Build
You’ll need Haxe 3.* to build the project and Neko 2.* to run it.
make
But I don’t know where I’m expected to type that. I cd’d my way to the directory where as3hx is saved, but simply typing ‘make’ just gave an unrecognised command error.
Does all the documentation just assume everyone using this is a hardcore programmer using Linux or something? Maybe I’m the only one who’s not both of those things, though!
Anyway, haxe --no-traces as3hx.hxml created the run.n file properly… so for now I won’t bother trying to install that other thing (though thanks for the links, in case I need it later).
But now when I try and actually run as3hx according to the terse documentation, I’m getting this:
Called from ? line 1
Called from Run.hx line 102
Called from Run.hx line 33
Called from C:\HaxeToolkit\haxe\std/neko/_std/sys/FileSystem.hx line 85
Uncaught exception - std@sys_read_dir
Typing neko run.n -help does work; it lists a bunch of options.
The directory I was using was titled m3, and it had two folders inside: as3 and hx. So I was trying
neko run.n m3/as3/ m3/hx/
That didn’t work. Nor did omitting the output directory (neko run.n m3/), not using nested folders (neko run.n m3/ out/), omitting the slashes at the end (neko run.n m3 out)…
Sorry for the late reply; I just noticed this thread.
As much as I love OpenFL and would recommend it to anyone… No, you don’t need to be using it.
An easier alternative would be to compile to AIR, which as I understand it is like Flash Player except that it runs on more platforms. It interprets AS3 bytecode, so you won’t have to rewrite your whole app, and it creates native iOS and Android apps, so you can submit your app directly to the App Store and Google Play.
The downside is that AIR is an interpreter. You’d get better performance using OpenFL. (That said, Flash Player is also an interpreter, so if it works fine in Flash, it should work about as well on mobile.)
Another downside, at least if you’re worried about decompilers, is that it may be hard to obfuscate your AIR apps. I’m pretty sure each app would contain a SWF file that you could run through SecureSWF or whatever. However, to get at this file, you’d have to take apart the Android or iOS app, and putting it back together afterwards would not be an easy task.
OpenFL doesn’t obfuscate your code, but it compiles to C++, which is equally good.
Not all the documentation, but I find that many Linux users assume that “make” works for everyone, even though Windows users have to jump through a bunch of hoops.
Besides that, the command line isn’t that bad. There are a fewtricks that will make your life easier, but for the most part all you have to do is follow instructions.