Hello, I’m Nick, you maybe heard from me on the github issues. To sum up my situation:
I’m working on a as3 3D game, it’s a about 40k line (without external libs). The two situations I’m willing to use royale-asjs are: 1. port / duplicate the game logic to my node.js server 2. port the whole game to js for a html5/webgl release. I was able to successfully port my game logic to node.js (5k lines, no graphics), but it was not without pain. Getting started with royale: ==================== https://royale.apache.org/getting-started/ This getting started is simply terrible for me, "Follow the instructions for your IDE to create your first “Hello World” application.”, I’m a terminal, vim, Makefile user, kinda feel left out there. Before installing anything on a computer, or even start a program, I can be nice to just see few command line on how it works. This is what I would expect to pop in my face when I open any get-started / quick-start page: - few command line to download a build of royale and get something work with the terminal in 30s without any other dependancy than apache-royale and a simple as3 project. - maybe a simple intro video for IDE users (so you can see someone using it without moving an inch). As soon as I reach your github page, i’m offered to get royale, and to build it … And then I click the Wiki tab, which is again proposing me to build before royale anything, then offers me IDE support again, and … HEYYYYY finally a bit of code to use the product and smth for maven users. Although, even if i can use maven, I prefer using direct command line via a Makefile (xml makes my eyes bleed). Good thing I heard from and tried apache royale from this repo: https://github.com/openfl/openfl-samples-as3, because else I can assure I would not have even tried to run it. Porting game logic to Node.js ======================= Here is a part of my command line (i removed several Constants): //``` bash MXMLJSC +royalelib=[…]/node_modules/@apache-royale/royale-js/royale-asjs/frameworks +configname=js --debug=true --output=./ --html-template=template.html --source-path+=src --define+=CONFIG::DEBUG,true --define+=CONFIG::DEBUG_NS,* --warn-public-vars=false --remove-circulars=false --targets=js src/Main.as Compilation Errors: ------------------------- 1.Conditional compilation issue: /Users/igor/dev/openfl/wmg-battle-export/tests/src/io/nfg/core/Tools.as(96): col: 12 Error: Can not resolve config constant: ‘DEBUG' { "name": "CONFIG::DEBUG_NS", "value": "*"}, "additionalOptions": "-define=CONFIG:DEBUG_NS,'*’", This is most probably not a royale bug, but Josh Tynjala's asconfig that is parsing quote and double quote out (Before I used a Makefile, i started with openfl example which was using asconfig, i’m still putting it here as someone might find this useful … maybe) 2. Getting an Error on toJSON AModel.as(70):col: 21 Error: Overriding a function that is not marked for override My AModel class inherits a homeMade event dispatcher with no toJSON function, so nothing to override. (I still tried to override it, but when compiling it in as3, I get an error that i’m trying to override something that doesn’t exists) Runtime Errors: --------------------- 1. "ReferenceError: uint is not defined”, "ReferenceError: int is not defined” // ```as3 from code like: type = { id: String, age: uint, variation: int } 2.Vector are inconsistently replaced by Array example: // ```as3 if(key == 'deck' && (value is Vector.<DeckUnit>) == false) value = initDeck(value); // generated by royale: - if (key == 'deck' && org.apache.royale.utils.Language.is(value, Array) == false) // after my fix: + if (key == 'deck' && org.apache.royale.utils.Language.is(value, org.apache.royale.utils.Language.Vector) == false) 3. Native flash.utils flash.utils.* (Dictionnary, getQualifiedClassName, …) and flash.geom (Points, Rectangle) are ignored by compiler (doesn’t exists in js) However those types are everywhere in as3 applications, and Dictionary for example is a Native type in most lang. Fix: For the browser build (not node.js), there is a simple obvious solution: openfl.swc However for node.js, openfl comes packed with js graphic feature that doesn’t exists in node which as it is, is not usable by node. As a solution, it could be trimming openfl to create a openfl-nodejs or add it to royale org.apache.royale.utils.Dictionary. Note also that there is no info about openfl in royale, so it wouldn’t occur as a natural answer for everyone. Other thoughs: =========== I’m not sure why you asked me to join the devlist. I already received 4 mail that i have no interest in, and even I could turn off notification, what’s the point of coming to a mailing list for just one thread. When I think of it, i could have wrote my story on github or some forum. Although I will give you more feedback if I can, I have no intention in getting involved deeper than that (as making a game already taking too much time).
