Smokitten – two apps to help prevent and treat nicotine addiction

App links and official info :

DOWiNO‘s official website for Smokitten
Smokitten iOS Android
Smokitten Park iOS Android

Smokitten and SmokittenPark are two sides of the same coin. A  Willingness for the creators of this serious game, DOWiNO, to help people who are smoking to stop and younger non smokers to never start. The former will get informed about their habit, track their progress, get notified, and the latter will be informed about this addiction and help the cat caracter to stop smoking.

Along with health professionals specialized in addiction, DOWiNO has devised a number of fun and addictive clicker-like minigames so that Smokitten players (smokers) can get through their craving period, and SmokittenPark players (non-smokers) can have fun playing the game, helping the smoking cat to get rid of his addiction.

Continue reading Smokitten – two apps to help prevent and treat nicotine addiction

Click Hanger – Procedurally generating a mountain

Today we’re proud to show our work on the latest game for the Française Des Jeux (France’s national lottery game)! Made with Isobar and our friends at James Bang.

Click Hanger, the first non lottery game of the FDJ, is a mobile climbing game available on Android and iOS.

Read more on its development process below!

Continue reading Click Hanger – Procedurally generating a mountain

Playing with AR & Vuforia

Augmented reality is one of the next big thing. It’s been present since a while (do you remember all those old cool Flash experiments in the browser?) but nowadays the tech is almost ready to blow our mind!

The Google Glass raised many criticism concerning private life but companies were very confident about the technology. Then the Microsoft HoloLens came on the market, but its pricing made it unaffordable for individuals.

During the same time, many companies tried to make AR working on devices: Google with special devices (Google Tango) and Vuforia established itself as a leader thanks to its SDKs. Apps & SDKs contiuned to improve during those last years (thanks to device performances and better cameras), but finally, this year, Apple with ARKit and then Google with ARCore show this technology was ready (on high end devices).

Maison Tangible
Guillaume Bertrand from Atelier Supersenor and 3615 Senor an artlab / hackerspace at Besançon, asked us to help him on an AR application. We’re glad to release the app for iOS and Android. Watch it in action:

Please help them to make their next collection live!

Lynx Optique
With James Bang, we made an AR app for a brand of optical shops with winning moments. After a digital form, visitors seek for a marker in the shop and once they found it scan it via an iPad. A cool Kinematic Inversion animation is displayed on the marker with the result. Here is the proof of concept:

And you what are you making with AR this days?

Franc-Tamponnage and creative coding

During one month, our Bourgogne-Franche-Comté region was in trouble: the music festival, called Franc-Tamponnage, for alternative, electronic and extreme kind was in progress. Our friends at Magna Vox planned dozens of concerts throughout the region.

For a specific set of concerts, we were in charge of creating a nice visual experience for visitors. It was the perfect opportunity for some creative coding! We were 3 coders on this project, Julien experimenting for the first time with openFrameworks, Thomas playing around with one of his favorite toy: Processing and Aymeric making some good old Flash!

Here’s the recap by each of us :

Continue reading Franc-Tamponnage and creative coding

Sponsoring Piky Game Jam

From October to November, Dijon is the theater of many events related to video games. Welcome to the PIKY project!

Through creative workshops, exhibitions, shared playing times, meetings, concerts and a Game Jam, the PIKY project presents the wealth of video games. We’re very proud to be a project sponsor! Thus we helped to create the first Game Jam at Dijon:

There was no theme but constraints : we had to use sound (music, sfx, voice) and have some accessibility elements to persons who are not able to play normal games.

With Thomas, Quentin, and a 3D artist we met on site (hi Léo!) we created a small game: Dedale4017. It’s a co-op exploration game on the same computer, one player can only hear sounds (in the role of a visually deficient or legally blind person) and the other one just see visuals on screen (in the role of a hearing impaired person). So basically since they can’t communicate in real life together, we made a dialog system in game based on pictograms and pre-recorded voice instructions.

Download the .exe (need 2 XBOX controllers), enjoy!

Thanks to all participants!!

Filters 2D : the rebirth

Filters 2D was a good experiment into shaders land. I joined Da Viking Code in April and one of my main mission was to update this plugin and going deeper in shaders experiments. We’re glad to provide a plugin update with many improvements. Let’s go for some explanations on problems we encounter during the upgrades and fixes. Continue reading Filters 2D : the rebirth

Building a 3D furniture visualiser with Three.js

Blanc Cambouis is a company selling high end furniture to their customer. In order to let the customer visualize the product they are buying we were asked to create a custom real-time 3D object viewer, able to manage different kinds of models and to customize them on the fly.

While Integral Service worked on the web side of the product, us at Da Viking Code worked on the object viewer.

In order to meet their requirement we built a Three.js (WebGL Based) app using the Haxe language and yar3333’s Haxe extern for Three.js, we needed a modular solution to import the furniture into the engine, but also to enable the furniture’s multiple customization option without implementing new logic for each model.
Continue reading Building a 3D furniture visualiser with Three.js

Pixi.js, Haxe and browser’s fullpage cross-platform experiences

ADN 250 is a serious game around relationship marketing, like a Tupperware meeting. You must learn about different product by using them, then you can start selling theses products to different people and convince them to do the same extending your sellers network and making loads of money.

The principal requirement for the project was to make an accessible game, without installation, accessible both on computer and device : a web game.

 

What kind of technologies would you use if you were asked to build a full-page 2D game, available on the web by PCs and smartphones ?

Here at Da Viking Code we chooses the famous Pixi.js !
This HTML5 javascript library using WebGL enable us to easily build 2D game on canvas.

Unfortunately the JavaScript language isn’t the most comfortable one to use, mistake can be made because of the lack of type and compilation. If you feel comfortable with JavaScript that’s okay, but at Da Viking Code we prefer the strictly-typed and compiled Haxe language for our Web projects :). Using Pixi.s with Haxe isn’t hard, we use the well maintained Adireddy’s Haxe extern for Pixi.js !
Continue reading Pixi.js, Haxe and browser’s fullpage cross-platform experiences

Run pngquant via a NativeProcess: C#, Unity & AS3/AIR

After our Unity runtime SpriteSheets generator, it is a good idea to optimize the generated pngs files.

pngquant is a command-line utility and a library for lossy compression of PNG images. The conversion reduces file sizes significantly (often as much as 70%) and preserves full alpha transparency. In other words this is a must have tool if you’re working with many pngs!

I used many times pngquant directly from the command line, but depending your project, you might need to run it directly inside your application! I didn’t find example for doing this, and it was way harder than I thought due to my lack of knowledge with batch and shell scripts! So here we go:

We use custom batch file (for Windows) and shell script (for Mac OS X) for launching pngquant. It will take the path to pngs to compress and overwrite them.

OS X:

#!/bin/sh
#!/usr/bin/env bash
#$ -N $2

DIR="$( cd "$( dirname "$0" )" && pwd )"

(cd "$DIR" && ./pngquant -f --ext .png "$1"/*.png)

Windows:

cd %~dp0
pngquant -f --ext .png "%~1"/*.png

Now a C# example for calling thoses scripts, note it works fine with Unity too:

System.Diagnostics.Process process = new  System.Diagnostics.Process();

string exec = "";
if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
	exec = "pngquant-windows.cmd";
else if (Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer)
	exec = "pngquant-osx";
else
	throw new Exception("Platform not supported");

process.StartInfo.FileName = Application.dataPath + "/../../" + exec;
process.StartInfo.Arguments = Application.dataPath + "/../../png-to-compress";

// if your path have blank spaces use:
//process.StartInfo.Arguments = "\"" + Application.dataPath + "/../../png compress\"";

process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;

process.Start();

And finally an example with AS3 for AIR:

var process:NativeProcess = new NativeProcess();

var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory;

var exec:String = "";
if (Capabilities.os.indexOf("Windows") >= 0)
	exec = "pngquant-windows.cmd";
else if (Capabilities.os.indexOf("Mac") >= 0)
	exec = "pngquant-osx";
else
	throw new Error("doesn't work on " + Capabilities.os + " operating system");

file.nativePath = file.nativePath + "/../" + exec;
startupInfo.executable = file;

var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = File.applicationDirectory.nativePath + "/../png-to-compress";
startupInfo.arguments = processArgs;

process.start(startupInfo);

Be sure to have a look to PngQuantNativeProcess’s git repository to be up to date!

Unity – generate SpriteSheets at runtime!

Unity and plugins provide many great ways to build Sprite Sheets. However they’re used directly into Unity Editor or with an external software which is perfect in many case, but none provide the ability to generate SpriteSheets at runtime. So we made our own library.

The goal of a sprite sheet is to pack as many sub-textures as possible in one big texture. So the first thing to do was a packing algorithm. Fortunately we remembered the one made and open-sourced by Ville Koskela in AS3, so we started with a Unity C# port.
Click here to view the Unity rectangle packing example running in your browser in WebGL!

Once the packing algorithm done, we worked on a cache system so the generated sprite sheets are written and saved on disk for a future loading. The generator process won’t be needed anymore unless you increase your cache version!

Give a try to UnityRuntimeSpriteSheetsGenerator!