My Cocoon IO feedback (vs IntelXDK).

Discussion and feedback on Construct 2

Post » Mon Feb 22, 2016 1:07 pm

So I was "forced" to try CooconIO due to the issue I've described here viewtopic.php?f=146&t=168503. Intel said that it will take at least few weeks to fix it and I don't really wanted to wait that time. Before trying to compile my game with CLI 5.1.1 manually I decided to try the CooconIO and I thought I'd share my thoughts.

Not at the end but at the beginning I will answer on the most important questions.

Should you leave IntelXDK and migrate all your apps to CooconIO?
The short answer is - no.

Do I recommend using CooconIO?
The short answer is - yes.

I will post questions and answers for the parts I really wanted a true answer.

Does CooconIO have better performance than IntelXDK (WebView vs Crosswalk vs Canvas+)?
WebView - I saw somewere Ashley was recommending it if you are targeting devices with Android 5.0+. Well I don't recommend it. I've tested it on SGS4 and Xperia Z1 with two games and for both games performace was worse then with the two following technologies.

Crosswalk - is ok. It's not a rocket speed technology and it's not bug-less but it is really fine and if you optimize your game correctly, Crosswalk can give you very decent performance. I've managed to build a game with up to ~500 moving objects which is running with 55-60 FPS on SGS4.

Canvas+ (CooconIO) - I think it gave me slightly better performance... but really "I think". If the performance is better then it's really not a big difference but rather tiny. Anyway it is ok as Crosswalk.

Can I update my game on Google Play with CooconIO APK if I the game was wrapped with IntelXDK earlier?
No you can't. There are two reasons (at least I know only two). First of all CooconIO has no option to edit app version (this is actually a good thing, cause CooconIO does it for you automatically, where with IntelXDK you had to remember to increment the ID before you publish your APK). And the second reason is that there are different sign certificates and Google Play refuses to accept the APK with different certificate.
So if you are on alpha/beta stage, you can always remove the app from Google Play and create it again. If your app is released to production already then it's too late. At least I don't know the way to do so.

Does AdMob and IAP work with CooconIO?
Yes. However you will have to use their plugins. It's absolutely not a big deal. You simply download their C2 plugins and implement it the same way you do it with C2 AdMob and CordovaIAP plugin. Worth to mention that CooconIO works with both managable and non-managable products for IAP and both banners and interstitals for Ads.

Is it hard to switch to CooconIO?
I really thought I'll spend much more time to understand everything but I managed to get everything in one day. However I folowed this ebook https://www.scirra.com/store/ebooks/qui ... ebook-1893 and I recommend you to buy it as well if you want to work with CooconIO. It's very cheap and explains a lot.

APK size.
IntelXDK export is around 22MB bigger then CooconIO export. This is simply because Crosswalk has to be added to the APK. Crosswalk is a kind of a mini web browser which runs your game, so it's a separate program inside your game.

Problems I've encountered while using CooconIO.
Sounds. - In general the basic usage of sound and music works fine. However some functionalities does not work like "silent" mode. But there are always some work-arounds.

Permissions. By default CooconIO adds a lot of permission request to the app like Geolocalization, contacts, SMS etc. So a lot of stuff which 99% of the games won't use anyway. However I've manage to fix that very fast simply by removing config.xml entries in CooconIO web app. So simply saying - just select and click "delete".

Android API requirements. This was very important option for me and I couldn't find it. There is no built-in option in CooconIO web app to set it up. But again I've just had to add some entries to config.xml and it worked like a charm. Here are the entries you need to add if you wan't to set up min and target Android API.
<preference name="android-minSdkVersion" value="19"/>
<preference name="android-targetSdkVersion" value="21"/>
Simply paste them next to other <preference /> nodes.


-= Wrap up =-
To summarise all of my thoughts. I would say that CooconIO is really nice and for the heavy or simply commercial projects I will use CooconIO because it probably have some better performance. But CooconIO gives you possibility to add only 2 apps with the free account. Then you have to pay around $120 annually (monthly payment available as well). So if you have small app which is not heavy and not commercial - I recommend IntelXDK because it's free and can handle small/not heavy games very well with Crosswalk. Otherwise if you have serious project I recommend CooconIO.

And the last word about the very controversial thing which is the splash screen. It is true that CooconIO adds their own splash screen at the start of the game. To me personally it is not a problem at all. First of all it looks really decent. Second thing is that I do like to give credits to everyone who helped me make a game. To people who gave CC3 assets etc. Why wouldn't I give a credit to someone who wraps my game? :)
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Mon Feb 22, 2016 1:23 pm

BackendFreak wrote:... Can I update my game on Google Play with CooconIO APK if I the game was wrapped with IntelXDK earlier?
No you can't. There are two reasons (at least I know only two). First of all CooconIO has no option to edit app version (this is actually a good thing, cause CooconIO does it for you automatically, where with IntelXDK you had to remember to increment the ID before you publish your APK). And the second reason is that there are different sign certificates and Google Play refuses to accept the APK with different certificate.
So if you are on alpha/beta stage, you can always remove the app from Google Play and create it again. If your app is released to production already then it's too late. At least I don't know the way to do so.

I guess (only guess, don't know) it may be possible if you can import your own certificate to CocoonIO. You can ask Intel to give you the certificate that is used to build your game. If possible, then import it to CocoonIO.
B
32
S
7
G
4
Posts: 400
Reputation: 4,595

Post » Mon Feb 22, 2016 1:35 pm

grigrizljac wrote:I guess (only guess, don't know) it may be possible if you can import your own certificate to CocoonIO. You can ask Intel to give you the certificate that is used to build your game. If possible, then import it to CocoonIO.


If they give the certificate then true - it might be posible cause CocoonIO's app version code is higher than IntelXDK's.
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Tue Feb 23, 2016 12:35 pm

FYI: As I've mentioned before CocoonIO does not set the min nor target API by default. Now this might be the problem for later updates if you don't do it yourself with the first APK. CocoonIO is based on Cordova and Cordova by default sets target API to the maximum possible which currently is API 23 (Android 6.0). So when you publish your game even for Alpha tests with target API 23 you will not be allowed to degrade it later. Google simply won't allow you to do it.

IntelXDK sets it by default to 17 which is a plus for Intel at the moment.
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Tue Feb 23, 2016 10:51 pm

Ok... update to the Permission section... I've removed them from the XML, but CocoonIO adds them anyway and my game requires vibration, location, phone calls identity etc... this is really REALLY bad. In my case unacceptable. Giand disadvantage for CocoonIO.

On CocoonIO forum they say location is required for adMob (?!?!) cmon... tell that to IntelXDK. Gosh I have such a bad timing with releasing my game. Intel XDK is bugged and CocoonIO makes my game a "spy" -_-.
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Wed Feb 24, 2016 9:04 pm

Hi :)
Just came across your post. I'll help to clear it up a little bit.

Can I update my game on Google Play with CooconIO APK if I the game was wrapped with IntelXDK earlier?
No you can't. There are two reasons (at least I know only two). First of all CooconIO has no option to edit app version (this is actually a good thing, cause CooconIO does it for you automatically, where with IntelXDK you had to remember to increment the ID before you publish your APK). And the second reason is that there are different sign certificates and Google Play refuses to accept the APK with different certificate.
So if you are on alpha/beta stage, you can always remove the app from Google Play and create it again. If your app is released to production already then it's too late. At least I don't know the way to do so.


Actually you can edit the App Version ;) Please see here: https://shatter-box.com/document/apk-version-code/

Does AdMob and IAP work with CooconIO?
Yes. However you will have to use their plugins. It's absolutely not a big deal. You simply download their C2 plugins and implement it the same way you do it with C2 AdMob and CordovaIAP plugin. Worth to mention that CooconIO works with both managable and non-managable products for IAP and both banners and interstitals for Ads.


You also can use the built-in admob plugin by scirra and the Cordova AdMob plugin by @cranberrygame instead. But yes, to avoid any conflicts it's recommended to use the offical plugin. But you can use AdMob and mopub ID's with it. Moreover you can use any network (chartboost, ...) aslong you have added it to your mopub dashboard.
The same applies to the CocoonInApp plugin ;) You also can use the one provided by cranberrygame (like all other cordova plugins).

Is it hard to switch to CooconIO?
I really thought I'll spend much more time to understand everything but I managed to get everything in one day. However I folowed this ebook https://www.scirra.com/store/ebooks/qui ... ebook-1893 and I recommend you to buy it as well if you want to work with CooconIO. It's very cheap and explains a lot.


Thank you very much for linking my ebook! I really appreciate it that it helped you :) Thank you!

With all other points I have to agree with you. As far as I know ludei works on it to exclude some permissions, but I guess the most will remain, sorry for that.

Let me know if you have any questions, I'll give my best to help you out!

Regards
Andy
Image Image iTunes: Match3 | Google Play: Match3
B
109
S
40
G
31
Posts: 1,177
Reputation: 29,418

Post » Wed Feb 24, 2016 9:23 pm

AndreasR wrote:With all other points I have to agree with you. As far as I know ludei works on it to exclude some permissions, but I guess the most will remain, sorry for that.

Let me know if you have any questions, I'll give my best to help you out!


I know they work on it and that some of them will remain. I read a bit on their forum to get familiar what is going on there. CocoonIO performs very well as I wrote before, but IMO permissions are the big issue there. I know from my experience that many people pay attention to the permissions they grant to apps. And giving permission for Location and Calls is highly suspicious. Even though Ludei explains why those are needed and we (developers) understand... there is still a point of view of the customer who has no idea "why" and he obviously doesn't care. It's suspicious - it's goodbye.

@AndreasR thank you for all the clarifications. It's good to undestand as much as possible.
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Wed Feb 24, 2016 11:25 pm

For Android I highly recommend XDK.

CocoonIO's biggest flaw are all the ridiculous permissions it adds. Do you know how anti-gamer that is? People see you need phone record, geo-location and it's an auto red-flag against your app. Like adding a huge barrier, which is something you never want as a small time indie.

These permissions should be optional, added when plugins use them, not added by default "in case the plugins need them".

For iOS, I do recommend CocoonIO, the Webview+ on iOS8+ is amazingly fast.
B
70
S
24
G
19
Posts: 1,757
Reputation: 17,616

Post » Thu Feb 25, 2016 2:13 am

Allright so I wanted to give it a try and wrap with CocoonIO but with Cordova IAP plugin and native C2 AdMob plugin. To see how many permission will stay there.

So I have removed (uninstalled) Coccon plugins and added custom plugins.
So as a result I have the following new entries in config.xml:

Code: Select all
<cocoon:plugin name="https://github.com/cranberrygame/phonegap-plugin-ad-admob.git"/>
<cocoon:plugin name="https://github.com/cranberrygame/cordova-plugin-payment-iap.git"/>


Tried to compile and recieved this error:

Code: Select all
Fetching plugin "https://github.com/cranberrygame/phonegap-plugin-ad-admob.git" via git clone
Repository "https://github.com/cranberrygame/phonegap-plugin-ad-admob.git" checked out to git ref "master".
Installing "com.cranberrygame.phonegap.plugin.ad.admob" for android
Notice: [email protected] has been automatically converted to cordova-plugin-googleplayservices and fetched from npm. This is due to our old plugins registry shutting down.
Fetching plugin "cordova-plugin-goo[email protected]" via npm
Failed to install 'com.cranberrygame.phonegap.plugin.ad.admob':CordovaError: Failed to fetch plugin [email protected] via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: version not found: [email protected]
at opt/sdks/cordova-6.0.0/node_modules/cordova-lib/src/plugman/fetch.js:146:33
at _rejected (opt/sdks/cordova-6.0.0/node_modules/q/q.js:797:24)
at opt/sdks/cordova-6.0.0/node_modules/q/q.js:823:30
at Promise.when (opt/sdks/cordova-6.0.0/node_modules/q/q.js:1035:31)
at Promise.promise.promiseDispatch (opt/sdks/cordova-6.0.0/node_modules/q/q.js:741:41)
at opt/sdks/cordova-6.0.0/node_modules/q/q.js:557:44
at flush (opt/sdks/cordova-6.0.0/node_modules/q/q.js:108:17)
at nextTickCallbackWith0Args (node.js:453:9)
at process._tickCallback (node.js:382:13)
Error: Failed to fetch plugin [email protected] via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: version not found: [email protected]


@AndreasR could you provide an example how to use Cranberrygame's plugins please?
ImageImageImage
B
33
S
19
G
82
Posts: 1,039
Reputation: 46,257

Post » Thu Feb 25, 2016 4:50 am

BackendFreak wrote:Allright so I wanted to give it a try and wrap with CocoonIO but with Cordova IAP plugin and native C2 AdMob plugin. To see how many permission will stay there.

So I have removed (uninstalled) Coccon plugins and added custom plugins.
So as a result I have the following new entries in config.xml:

Code: Select all
<cocoon:plugin name="https://github.com/cranberrygame/phonegap-plugin-ad-admob.git"/>
<cocoon:plugin name="https://github.com/cranberrygame/cordova-plugin-payment-iap.git"/>


Tried to compile and recieved this error:

Code: Select all
Fetching plugin "https://github.com/cranberrygame/phonegap-plugin-ad-admob.git" via git clone
Repository "https://github.com/cranberrygame/phonegap-plugin-ad-admob.git" checked out to git ref "master".
Installing "com.cranberrygame.phonegap.plugin.ad.admob" for android
Notice: [email protected] has been automatically converted to cordova-plugin-googleplayservices and fetched from npm. This is due to our old plugins registry shutting down.
Fetching plugin "[email protected]" via npm
Failed to install 'com.cranberrygame.phonegap.plugin.ad.admob':CordovaError: Failed to fetch plugin [email protected] via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: version not found: [email protected]
at opt/sdks/cordova-6.0.0/node_modules/cordova-lib/src/plugman/fetch.js:146:33
at _rejected (opt/sdks/cordova-6.0.0/node_modules/q/q.js:797:24)
at opt/sdks/cordova-6.0.0/node_modules/q/q.js:823:30
at Promise.when (opt/sdks/cordova-6.0.0/node_modules/q/q.js:1035:31)
at Promise.promise.promiseDispatch (opt/sdks/cordova-6.0.0/node_modules/q/q.js:741:41)
at opt/sdks/cordova-6.0.0/node_modules/q/q.js:557:44
at flush (opt/sdks/cordova-6.0.0/node_modules/q/q.js:108:17)
at nextTickCallbackWith0Args (node.js:453:9)
at process._tickCallback (node.js:382:13)
Error: Failed to fetch plugin [email protected] via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: version not found: [email protected]


@AndreasR could you provide an example how to use Cranberrygame's plugins please?


Hey there,

What plugins are you using that makes your game have a lot of Permissions?

I have Google Play Services and IAP but my permissions aren't that outrageous. I think.
Risk Rocket now available on Google Play
Image
B
36
S
15
G
6
Posts: 337
Reputation: 6,300

Next

Return to Construct 2 General

Who is online

Users browsing this forum: GoofyremaG871 and 19 guests