The story continues

Happy new year!!

We’re already in 2016, it’s incredible how fast time is flying. 2015 was a really good year for Da Viking Code: we worked on a big & challenging game (A Blind Legend made with Unity), several WebGL games (using Pixi & Phaser) and of course some AIR apps & making ANEs, + tons of R&D (Scaleform, Xamarin, Virtual Reality with Cardboards…).

Tamsen is working with me for almost 2 years, and thanks to his awesome works he pushed Da Viking Code to the next steps. So it was about time to update our wesbsite, right? I’m glad to introduce the new website of Da Viking Code (mobile compatibility coming soon)!

This blog was created in 2010 (6 years ago!!), I blogged all my experiences & professional works and so Tamsen started to write his first blog posts here. It was also time to create a professional blog too, right? So the journey will continue on Da Viking Code’s blog. The first article (written by Thomas!) is also our first 3D commercial project, made with love for Heineken.

So this blog will be in standby mode for a while, be sure to update your bookmark!

Psst, did I mention that a new crazy coder joined us? His name is Valentin, he is a multimedia engineer specialized with Unity, 3D and Virtual Reality! He has also some good skills for making nice web stuff!

Thus Da Viking Code evolves as a cross-platform development studio! And this is only the begin!

A Blind Legend

Update: A Blind Legend is now on Steam!

Hello Everyone !

We can finally talk about the big Unity game project that took almost one and a half year to complete, A Blind Legend.

let’s start with the official game description :

A Blind Legend is a collaborative project of an audio-only action/adventure game for mobile phones. It’s based on a very innovative technology: binaural sound. In this game, the players are guided only by 3D sound and live the adventure by controlling their hero with multi-point tactile gestures. A Blind Legend” is above all a story: an adventure from the Age of Chivalry, to which we want to give epic scope.

In “A Blind Legend”, your eyes will be of no help.
So close them, sharpen your hearing and your blade…
and embark on an epic, perilous rite of passage.

The game is aimed not just at visually impaired (VI) people but also at anyone who’s hungry for an original sensory experience with a trailblazing video game. For us, the game achieves two objectives: giving VI people access to high-quality video games, but also raising public awareness of this type of disability.

What is “A Blind Legend” ? Well it’s a 3D audio game which you can try (and complete) for free. It was created by DOWINO who crowdfunded the project via a french kickstarter-like platform, here’s the link :

You can start downloading the app for iOS or for Android.

There’s even a desktop version of the first level (out of 5) , but that one’s only in french … still here’s the link.

The apps are quite small, but launch them as you need to download content, which is about 130Mb in total of audio content (so if you want to play after you’re done reading this, go ahead now 😀

The game being very rich in what we ended up calling “cinematics” and in dialogue and ambient sounds… The assets are heavy. We’re not working with textures here it’s all audio… And the audio must be of good enough quality.

Ok now that you’ve got the app, and you went in game to download the localized content, let’s go ahead and talk about the development process. Continue reading A Blind Legend

A call to the Haxe community

This a blog post version of my post on the Haxe forum which didn’t catch enough attention I think. Native Extensions are crucial for game development.

Update: Kha & OpenFL, for example, have their own IAP extensions because of the different engine architecture. The blog post mentionned share some thoughts on Native Extensions, in fact… but nothing concrete is going on at the moment, no repository shared. Finally the native code should be the same, but the wrapper around the extension can change depending the engine. A native extension should have different building scripts depending the engine targeted, but the same native & Haxe codes. I hope we’ll see examples in the near future.

We made recently several HTML5 games (Canvas/WebGL) that were also delivered as an app thanks to CocoonJS which deliver better performances than Phonegap/Cordova. But the journey wasn’t easy: no obb support on Android, push notification certificate needed for iOS, a custom analytics library didn’t work on Android but worked fine on iOS. It’s simple if you deliver your game with CocoonJS you don’t have any control on the packing solution and so the whole process could be a nightmare. Recently CocoonJS has updated its portal and finally announced pricing, no way! It’s time to reconsider some plan…
Unity WebGL is getting better, but still not ready to deliver properly WebGL browser mobile game. So it’s definitely time to focus (again) on Haxe!
Continue reading A call to the Haxe community

Xamarin Forms, the love of cross platform native UI

Some months ago, I started a small project for a friend: a basic app for managing stock. A personnal project is always a good occasion for testing a new tech, and Xamarin was in my radar since a long time. With Xamarin Forms I was able to make an app with a native look & feel without having to bother with interface. Let see how it goes!
Continue reading Xamarin Forms, the love of cross platform native UI

Sign IPAs in Xcode without being a team member

Today, a quick post for a good tips!

Working with Adobe AIR, I enjoy the simple way to sign an IPA: someone provide you the p12 certificate, its password and the mobile provisioning files and you’re ready to go! If you put them on a Dropbox you have a nice combo for a whole team.

But, if you must compile your IPA in Xcode like (all?) the other technologies, it isn’t as easy as just linking via a file browser. If you’re in a team, you just have to sign in with your login in Xcode preferences or you could import the developer profile from an other dev (yeah the easy and dirty way). But how signing an IPA if we just have the raw files?

Import the p12 in your keychain and the mobile provisioning. Then launch Xcode.
Go to your project, and check signing identity. Specify the p12 in the code signing identity and the mobile provision in provisioning profile. Be sure to also do it for the target wanted.
Then make the archive via Xcode menu. If it asked you some authorizations for codesign you’re on the good way! Export, save for iOS App Store Deployement.
It will ask you the team, and obviously you’re not in the team so you can’t select it.
Specify local signing assets at the bottom list, and if everything is setup correctly, you will have your IPA.


Install an IPA on iOS directly from a URL

Back from vacations in Québec (lovely country & people), it’s time for a quick blog post for sharing a good trick!

On iOS when you want to share a build with others, you mostly use a third party service (like TestFlight), or you provide the IPA and they have to install it via iTunes or even better iFunbox. Unlike Android (with an APK file), on iOS we’re not able to install an app directly from its binary (IPA). Unless you point your URL to a plist file!
Continue reading Install an IPA on iOS directly from a URL

Branch Metrics ANE

Promoting your application, and making it easy to be accessible to everyone is one of the key of its success. Custom url schemes, are one of the best way to do it! On a previous blog post, I explained how you could use them with AIR.

I also presented a service,, which allows thanks to a unique link to direct you on the mobile store corresponding to your mobile operating system and even launch the app if it’s already installed!

Branch Metrics goes way further (and for free). You have all the options of and you can give parameters to links. In other words, for instance, you can invite your friend to a game you’re playing (via a link generated inside the app) and for example giving him some of your items so he won’t start from scratch! This open the door to many opportunities.

Give a try to the Branch Metrics ANE, it has been crafted with love by your humble servant!

Phaser and multi-resolutions textures issue

Raise your hand , and comment on this issue if you find it important.

Hey guys, the last months have been very exciting! We’re still working hard on A Blind Legend, there should be some blog posts about it sooner or later (you know how indie games are going)… 🙂 Next to that, we’re working on some HTML5 games. We already made several using pixi.js (with pure JavaScript and TypeScript) and others with Flambe (based on Haxe).

That time we wanted to test an other popular framework: the famous Phaser game engine. We had a long debate internally to choose the language we’d pick up between pure JS, Haxe and TypeScript and we finally opted for Haxe. There were already some Haxe externs for Phaser so that was great.

As Citrus Engine‘s developers, we were confident that Phaser comes with many good options on top of PixiJS (it is build with it) that we’d appreciate: state management, physics, multi-resolution support, sounds… However our journey isn’t as shiny as we hoped (we’re looking at you multi-resolution support)!
Continue reading Phaser and multi-resolutions textures issue

Back for one week at Gobelins’ school!

Next week, I go to Annecy (one of the most beautiful city) at Gobelins‘ school. It’s with a great pride that I’ll come back to my latest school during one week for teaching an introduction to Unity!

During those days, I will present C#, Unity2D, Unity3D and the new Unity UI system. You can find the course online (french only).

I can’t wait to see the talented developers in this promotion! That will be really fun.