Google PlayStore API level update

This issue has been solved in the latest Cocoon update and you can start compiling your apps with API level version 26 (Android 8). For that purpose we have added a new Cocoon version to the Cloud Service. During the first days this version will be labelled as 3.0.0-beta and the “latest” version will still point to the latest stable until we make sure everything is working fine. If you want to use Cocoon v3.0.0-beta make sure you select it in your project settings even for new projects.

Cocoon v3.0.0-beta uses cordova-android@7.1.1 and we have updated the Cocoon plugins to work with it but if you are using other Cordova third party plugins you need to make sure that those plugins work fine with that Cordova Android version before uploading as maybe there are updates of those plugins that you need to use.

We have also updated the Cocoon plugins so you shouldn’t be worried if you are only using those. Remember that if you have a specific plugin version the cloud service won’t override that version so make sure hat you have the correct plugin version or just remove the version from the plugins settings. You can do it choosing the “latest” plugin version or removing the “spec” tag from the XML.

GDPR plugin updates

We have updated the Cocoon plugins to comply the GDPR policy.

You can find the list of plugins and the version you must install at the end of this post. If a Cocoon plugin you are using is not on the list, then it’s safe to use latest.

GDPR updates are not ready for every ad network. We are going to release them in batches and the first batch is AdMob as it’s the mostly used Ad Network in the Cocoon platform.

AdMob

AdMob and its adapters will arrive with Cocoon v3.0.0 to Android and iOS. The Android version will only work in Cocoon v3.0.0 so if you are using a different Cocoon version than v3.0.0 check the list below to know which version you should install.

The new plugins have some breaking changes. Read the documentation to learn how to configure them, and how to notify the networks about the user’s consent.

Also, you can now use request rewarded videos from AdMob and any of their adapters that support them.

Plugin versions for Cocoon v3.0.0

If you are using Cocoon v3.0.0 you can just install the latest version of the plugin and that should work fine.

Plugin versions for Cocoon <v3.0.0

If you are going to use a Cocoon version older than 3.0.0 these are the plugin versions that you should use:

We have some important updates. The main one is the new Canvas+ Android Javascript V8 virtual machine integration.

Canvas+ Android V8 update

Canvas+ Android uses the v8 Javascript engine internally. We haven’t updated it in a long time as it requires quite a big code update inside Cocoon. As the previous version was a bit old already (v3.5), after the summer we decided to take the time to update v8 to a more recent version (v5.4) and now it’s ready to be used in the latest Canvas+ plugin v2.6.0 that is available in Cocoon v2.2.0.

What can I expect from this update?

The main two things that you’ll notice with this update are:

Better performance in JS. This version delivers a number of key improvements in memory footprint and startup speed. These primarily help accelerate initial script execution and reduce page load.

ECMAScript ES6 support.

Better performance includes many different specific performance improvements like:

TypedArray performance improvements. TypedArrays are heavily used in rendering engines. For example, engines often create typed arrays (such as Float32Array) in JavaScript and pass them to WebGL after applying transformations.

Idle garbage collection scheduling. Garbage collection operations are scheduled during idle times on the main thread which unblocks the compositor and results in smoother rendering.

There are a lot more things, theseare just the main ones. You can read further in the V8 release notes here.

As v2.6.0 includes lots of new features and is quite an update we have also released a new v2.5.x branch release, Canvas+ v2.5.4 that includes the previous V8 version but with all the bug fixes that are also included in v2.6.0 so in case you find any issues with v2.6.0, you can still switch back to v2.5.4.

If you want to use v2.5.4, you’ll need to manually set that Canvas+ plugin version in you project config.xml:

<plugin name="com.ludei.canvasplus.android" spec="2.5.4"/>

The V8 update is a Canvas+ Android only feature.

New Cocoon v2.2.0

We have released a new Cocoon v2.2.0 that includes fixes and updates in all the Cocoon core plugins and Canvas+ v2.6.0. When choosing Cocoon v2.2.0 you’ll be automatically using the updated plugin set. The main plugin improvements are:

Canvas+ 2.6.0 with bug fixes and the V8 update

Webview+ update with lots of bug fixes for the iOS Webview+ and Developer App integration.

As always, you can use this Cocoon version by just changing the Cocoon version in your project:

Of course you can still use previous versions of Cocoon and you’ll only be using 2.2.0 automatically in case you have set the Cocoon version to latest.

Architecture selection

This is something that has been requested several times in the past. At the moment when building a Cocoon app for Android both, armv7 and x86 where being built, since this release you can select if you want to build armv7, x86 or both architectures.

This will save both final APK size and also compilation time so you no longer need to wait twice the time in case you only need one architecture or you are just testing.

2.5.4 & 2.6.0 Bugfixes and improvements

Apart from the Canvas+ Android v8 update we have been working on bug fixes for both Canvas+ Android and iOS.

These are the main ones:

Now the Canvas+ internal webview uses the accelerated environment by default in iOS.

Reduced APK size as ARM architecture has been removed from Canvas+ Android 2.6.0.

Fixed hang when the App is suspended and an Audio pause is received.

Updated iOS device ID list reported by getDeviceInfo().

Fixed iOS internal webview so JS execution is not paused when the webview is not showing.

Fix crash when texture is disposed twice: this happens when texture loader thinks that texture is still alive but the new image was not loaded or is empty, and tries to dispose the current texture. (ie. When using image.src=“” to dispose images)

Fixed Local Storage data write to the internal plist with proper encoding. This might cause local storage corruption.

Fixed issue with font-size and line-height in fonts definition parsing.

Enable NPOT textures by default. This will be noticeable in some memory saving when allocating textures that are not POT.

Audio loading issues. Some audios might not be loaded correctly with slow connections.

The new Cocoon Cloud SDK has been released. The Cocoon Cloud SDK is the easiest way to integrate the Cocoon.io cloud compiler in any service or app. With this simple API, anyone can authenticate with their Cocoon.io account and create, update and compile HTML5 projects in the cloud programmatically.

This new version brings a bunch of new functionalities.

Now you can also modify the icons and splashes of each project.

The Signing Key API has been added to the SDK.

The performance in NodeJS environments has been improved.

We said goodbye to callbacks and this new version welcomes Promises to handle async work.

With this update a complete Gulp sample is also included to help you use the SDK from the start.

The second article in the series dedicated to key HTML5 developers and companies that use Cocoon is dedicated to Celsius Online an experimented company based in Paris that have put out several astounding HTML5 games that really push the limits of the technology.

We talk to Mathias that has kindly accepted the invitation to talk about his company.

First of all tell us a bit about you and your company, what’s your role in Celsius Online?

My name is Mathias Latournerie, I’m the technical director of Celsius Online. I’m in charge, among many things, of managing the production process of Celsius Heroes and of planning the tasks of the graphic and dev teams.

The main idea behind Celsius Heroes was that we wanted to try and help people to discover what an “old-school” RPG feels with a “new-school” Match-3 mechanic. Lévan Sardjevéladzé, the co-founder of Celsius online, has always been a huge fan of games such as Dungeon Master and Eye of the Beholder II, so he was the main drive behind the project.

Where do you get inspiration for your games?

Games, films comics, books or whatever inspires you to make games

Dungeon Master, Eye of the Beholder II and a lot of old-school RPGs were inspirations for the game. For the Match 3 mechanic, we wanted something more complex than Candy Crush, so Puzzle & Dragons was a good inspiration.

Whats the hardest part of developing a game?

We have been developing games for more than 10 years now, but this was the first time we were releasing a game on mobile platforms. Thanks to Cocoon, we were able to focus on our fields of expertise; however, in spite of this invaluable help, we had to face difficulties we were not used to, such as screen resolution issues, performance issues on older smartphones and all those specifics related to a mobile game. The rest comes with experience and that’s why it’s important to build reusable and lasting elements from one production to the next one. The first game is always the most difficult one.

Whats the most rewarding one?

Undoubtedly the way players reacted to it, and especially our friends and families. When they contact you to ask for info on which team members they should select, or ask questions on the best way to beat a boss at the end of a level without you asking them about the game, it is very satisfying as that means people who are dear to us are truly enjoying the game. And it’s important to create games you can be proud of.

Tell us about your game creation process

The original idea and the validation of the main game design have been done by Lévan, head and mastermind of Celsius online. Then, several of us work on producing the different aspects of game design required to create the game. On Celsius Heroes, a major part of the content of the game (quests) has been imagined by Arthur Riolland, developer and game designer. Each element which has been produced (graphics, texts, quests) is validated by me. We are a small team and work in the same offices, this way each of us can play a part in the creation of the game and it is common that we modify an aspect of the design of the game based on the feedback of a member of a team.

Do you make a proof of concept first and test it?

We always start by developing a disposable prototype with placeholders as graphics in order to ensure that the game is indeed fun. Sometimes, what works on paper doesn’t necessarily translate into an addictive and pleasant gameplay, so that’s a mandatory step before going any further.

Tell us about the tools that you use during that process: engines, libraries, IDEs, etc

On Celsius Heroes, we are using a 2D/3D mix in WebGL. For 2D, we use Pixi.js which is a great 2D render engine. We have designed our own 3D engine and, on top of that, our games servers use Java EE with no other layer. We have also developed numerous in-house tools to manage and administer the game: management of the accounts of the players, quest editor, balance tools, package builder, client update manager, data analysis tools…
This ecosystem is essential in order to maintain the game in the long run. At last, we are using the Atlassian suite (JIRA, etc.) to manage the production of the project.

How does Cocoon fit in that process?

We knew from the start that we wanted a game which would work on mobile as well as on a computer. We were lucky enough to benefit from the latest version of Cocoon as we were producing Celsius Heroes, which allowed us to benefit from the Cordova community to take up our various technical challenges. By acting both as an encapsulation and a service, Cocoon leaves us the flexibility we need in order to do things the way we want rather than following the paradigms of an integrated technology like Unity or cocos2d.

What is the biggest challenges Cocoon helped to overcome?

Cocoon allowed us to start developing on mobile without any preliminary knowledge of this platform. That was for us the promise that we’ll be able to focus our time and energy on developing the game rather than learning new technologies. A promise kept!

How do you see the future of the HTML5 gaming?

Numbers don’t lie, mobile HTML5 is booming with the coming of mid-range terminals able to remove the technical weaknesses of the Javascript/WebGL duo. As a standardised technology adopted by internet browsers as their default engine, we know that we can be confident in the future and we think that our bet to be part of the early adopters a couple of years ago pays off as soon as today.

What are your next projects?

Armed with the success of Celsius Heroes, we have two new projects that are in preliminary planning stage. We are going to develop a real-time multiplayer strategy game in association with another French studio which is fast-growing, which is something new for us.

At the same time, another team will develop a new mobile game based on the universe of one of our web MMORPG, Renaissance Kingdoms, with an entirely fresh concept that we are looking forward to present to the players!

On this matter, we can already state that those two projects will use Cocoon for their mobile export.

This has been the main feature we have been working on these last months. Now the Cocoon cloud compiler can compile and sign applications for some new platforms.

Windows 10 Windows 10 target will run on any Windows 10 based computer, tablet (ie. Surface) or mobile device and you will be able to distribute and monetize your app/game through the Windows Marketplace.

MacOS
This target will run on any MacOS based computer and more importantly, you can distribute your app/game through the MacOS AppStore so everyone can find, buy and install your app or game from there.

Ubuntu This target will work on any Ubuntu based device.

Steam As Steam is a desktop based platform, having binaries for Windows 10, MacOS and Ubuntu opens up the possibility of publishing those games for Steam too, probably the biggest games distribution platform at the moment.

We have opened this feature as Beta for Platinum, Gold and Silver users but it will be available for the rest of the users in a couple of weeks.

Compilation backend Improvements

We have also taken some time to make some improvements in the compilation backend, mainly to prepare it for the new platforms but also to overcome some issues that we had detected since the release of the new Cocoon.

Faster compilations
The main one has been to make the compiler faster. We noticed that some compilations took a lot of time to start and that the compilation duration was too high. We’ve made some changes to the backend and the compiler code and now the compilation should start much faster than before and also take less time to complete.

Better logging
We have tried to improve the error handling when a compilation goes wrong so you have all the information to know what happened and how to fix it. We hope it’s helpful to solve the compilation errors faster.

Cordova compliance
The second issue was that the config.xml was not Cordova compliant. When we started the new Cocoon cloud we added these new custom tags like cocoon:plugin and cocoon:platform that you have probably noticed in the config.xml file. We have removed all of them and now the config.xml is fully Cordova compliant and should work just the same in any other Cordova based compiler. This shouldn’t have much impact on your daily work as it is migrated automatically by the compiler.

This article is the first of a series we are planing to with key HTML5 developers and companies that use Cocoon and are making a difference with their apps and games.

The first of this series is dedicated to Lucky Cat Studios that have recently had a massive success with their Nom Cat and Sky Chasers games. We talk with Herdjie Zhou, Founder and CEO of Lucky Cat about HTML5, childhood memories and how to create great games that people love.

Lucky Cat headquarters

Tell us about Lucky Kat Studios and you

Lucky Kat started exactly one year ago in February 2015. We are based in the Hague, in the Netherlands and we are currently a team of 5. We’re focused on creating mobile games that bring a smile to your face.

My brother, Hernan is founder and CTO, and I am co-founder and CEO of the company. My main tasks and responsibilities are creating a vibrant and inspiring company culture and make sure people around the world play our games.

Which are your latest projects?

Recently we launched Sky Chasers on both iOS and Android. It’s a good mixture of Super Mario World and Lunar Lander. It has been featured worldwide by Apple and has received much love from game critics e.g. Pocket Gamer Silver Award.

Our first title as a studio was Nom Cat. It features all the celebrity internet cats such as Grumpy Cat, Garfield, Nyan Cat, Keyboard Cat etc. The game as been featured as well by both Apple and Google and went viral on social media. It was the perfect kickstart for our company.

Nom Cat game. You probably recognize both of them

Where do you get inspiration for your games?

We’re heavily inspired by SNES and NES games and are focused on translating these childhood memories to the modern era of mobile gaming.

Which were your favorite NES/SNES games?

Our favorite NES game is Double Dragon 2 and for SNES it’s the Donkey Kong Country series.

Tell us about your game creation process

We start with prototyping – and pitch game ideas to each other. When we like an idea, we go into production. We work in small teams, so that other team members are able to give honest feedback. Also, we do a lot of playtesting to see if we’re going towards the right direction. We try to get our creation process within a 3 month period.

Latest Sky Chasers game

Why did you choose HTML5 as a gaming technology?

Using HTML5 we’re able to release our games faster – our proprietary game engine is in HTML5/ JS. Also testing is easier as we can send out links to family and friends.

What technologies have you used before?

Marmelade SDK.

How does Cocoon fit in that process

We built our own proprietary HTML5 / JS game engine called “Bento”. Cocoon is the perfect match for us to port our games to native. It’s fast, easy and reliable. Team members of Cocoon have helped us many times on crucial moments before and during launch of our games. Great support, great people! Cocoon forums are a good way to get in contact with other devs.

How do you see the future of the HTML5 gaming

HTML5 gaming has still a lot of challenges to overcome in the West. We are not sure exactly why this is. In contrary, in the East e.g. China, HTML5 gaming has been adopted by the mass and is now the next big thing in gaming.

What are your next projects?

We’re working on two new projects currently and hope to show you more very soon. Of course, they will be mobile games and in pixel art style 🙂

Thanks Herdjie for your time!

If you want to see Lucky Kat’s daily development process, please follow them on Snapchat “luckykatgames” or on Twitter @luckykatstudios.

Now that we’ve got Cocoon released, we’re rolling out new features and making improvements. Let us know what you think of the updates.

Encryption

Along with the Cocoon cloud release, we also put out a feature we’ve been working on for the past few weeks and that we hope will be useful to developers. When publishing your app, one of the main problems with HTML5 is how easy it is for anyone to access your code. In some cases, like web apps, this is not that important, as most of the logic is on the server side, but for other apps like games it can cause problems as anyone can have access to your assets and code and publish your game themselves.

Now with Cocoon you can encrypt all the assets and code in your application using the AES 128 encryption algorithm. The files are encrypted at compile time and decrypted at runtime so they remain encrypted inside the installed application bundle.

The encryption feature is currently only available for the Gold Plan users. If you are not a Gold Plan user and you would like to use encryption, please upgrade your plan here.

For more information on how to use the encryption feature, see the docs.

Documentation

We have made some changes to the Cocoon documentation. Now it is hosted atdoc.cocoon.io and it has a public repository at Github so you can contribute if you find any bug, typo or you just thing that you can improve some section. There is a search widget available in case you want to find an article or you want to get the information you need in a faster way. The documentation is a permanent work in progress so there will be improvements in the near future.

Improvements and Bug Fixes

Fixed Google Play Games Construct2 plugin login issues

Fixed Canvas+ iOS issue when using the Cordova Status bar plugin

Addressed problem with banner sizing in some Cocoon Ads plugins

Fixed iOS icon sizing problem when setting it with the icons UI which caused problems when uploading to stores