Tag Archives: as3

Google+ ANE, our first commercial product

We’re glad to introduce our first commercial product: an ANE for Google+!

We’re big fan of Milkman Games’ ANEs, especially the GoViral one. It enables to share a post on Facebook, Twitter, mail… everywhere? Not really. It’s missing Google+! Thanks to our ANE, you will be able to target the Google+ platform for iOS and Android.

Continue reading Google+ ANE, our first commercial product

Geophysic, making AIR shine thanks to Feathers

Update: The project has been FWA mobile of the day! Note that this blog post was written 3 months before its publication.

This new project was kind of special for me, I made an iPad application, Geophysic® with one of the best French agency Soleil Noir for the famous luxary watches Jaeger-LeCoultre. No less!
When I was a student, Soleil Noir was the best French agency and we all dreamed to work there! So you could imagine how fun it was to work with them! As a luxury brand, Jaeger-LeCoultre, has a very high expectation of the final product. Combined with Soleil Noir’s graphic designers, it results in a top quality iPad application.

Continue reading Geophysic, making AIR shine thanks to Feathers

Scaleform, for the love of Flash

RE-Edit : Scaleform mobile SDK 4.4 is out!

Edit, official answer from Autodesk: “Initial Indie friendly efforts have focused on MayaLT, as the most widely used Autodesk game tool. Autodesk is considering a similar option for their Game Middleware tools (such as Scaleform, Navigation and HIK) which will make them more affordable and accessible to Indies. An Indie friendly pricing model, hopefully coming soon, would allow them to offer the latest version of Scaleform to Indies and not bother maintaining a separate (and older) consumer Scaleform Mobile download. That should solve the problem for Indie devs that want the latest Metal, XCode and 64 bit support.”

We’re in 2015 and Flash is still there. It might be a dying technology but it couldn’t die right now because there isn’t any other tool which is able to replace it. The strength of Flash is obviously its vector animations. However since several years many of the flash developers don’t use the Flash Pro software in their daily job. Now we’re mostly using Starling and sometimes we grab animations from a fla and turn them into a SpriteSheets, or using DragonBones or mostly a SWC file to turn it into textures at runtime. Also there is the fact that we’re not able to reload SWF file using AS3 code on iOS.
Those facts highlight that something is broken in our production line: graphic/animation designers are increasingly dependent on developers. We are not able to take their SWF to make it running on our mobile device, so we must recreate everything ourselves via code and optimized framework (Starling). And hell, I hate doing animations jobs.

I think AAA studios were laughing when Flash was announced dead, because they use it daily. Mass Effect, Tomb Raider, The Witcher, Crysis… all of them use SWF file for their UI stuff. Have you thought a moment that even EA was using SpriteSheets with several resolutions for its menu!? Obviously not, with SWF file they are able to target all resolutions needed with just scaling/stretching their SWF without any loss, from a crappy 640 x 480 resolution to a 4k. However they are not doing it via AIR (it even doesn’t exist on console), but via Scaleform. Let’s have a look on this amazing tool!
Continue reading Scaleform, for the love of Flash

Update an application on several PCs with one click

Hey there, happy holidays!

This last month I worked for Fontevraud, the largest abbey in Europe! I updated their iBar program. Inside the main chapel, they have several touch screens displaying Fontevraud’s informations about Eleanor of Aquitaine, a Quiz, a Pacman retracing the story of a prisoner (the abbey was a prison after the French Revolution)…

The iBar program (PC only) works exactly like an iPad, a main screen launching applications. That was the first time that I worked for a museum, and so there were new kinds of problematics: how to know if a touch screen crashed and notify someone? How to get the errors for fixing them later? How to update the application on each touchscreen without human intervention on each machine?
Continue reading Update an application on several PCs with one click

Mission Eau : being Agile with Flash Pro

missioneauintrologo
Stores/Web:
kezakeau.fr
google play
apple store

Intro : This is a serious game designed to teach players a bit about how water treatment and supply works; specifically how its organized in the Île-de-France region – around paris. The game map is loosely based on that region and divided by areas which corresponds to the master water supply facilities that share connections around the region. The map shows you which levels are accessible to play or re-play, you can zoom it or out with many graphical details. The three areas need to be completed and in order to complete one, you need to connect all buildings together by playing the game levels, and also buy the missing buildings using the coins you collect.

This is not a management game however, you do not have to save money or buy things in advance, it is balanced so you can easily get to the end without worrying too much. The action of buying or clicking buildings on the map will tell you more about what these buildings do and how they relate to others… Their in-game worth also gives players a hint on how important they are.

The challenge here was to keep the package size as low as possible yet keep the graphics at maximum quality.

missioneaumap

Continue reading Mission Eau : being Agile with Flash Pro

Sophie the Girafe 2

I’m glad to present you a new app with the famous girafe: The Safari of Sophie la Girafe!

screen568x568A fun and educational puzzle game for children between 2 and 6 years old! This adventure contains 18 original puzzles for you to enjoy with your child!
Travel to the great plains of Africa with the famous Sophie la Girafe! Introduce your child to lions and giraffes! Soar alongside eagles and pink flamingos and fly over herds of zebra and groups of crocodiles as you explore the mythical world of Sophie la Girafe.

All the scenery and environments have been especially designed with your child in mind. Your child will find it easy to move the puzzle pieces around by dragging them on-screen. The howls and roars of the savannah have been used to bring each animal to life.
Your child will be captivated by the clear, interactive interface, especially designed for younger children.

Thomas, in a previous blog post, related our issues using Adobe AIR GPU mode for a large project & how we switched to Starling. The Safari of Sophie la Girafe, is made with the GPU mode. As usual I made it with the Citrus Engine. Due to the complexity of some animations and finally because of bones/layer number I used DragonBones for running lots of them at full speed. The app works great but you may encounter some performance issue on iPhone4 due to this Adobe’s bug.

Is it my latest project with the GPU mode? Not certain, however for future apps I will focus on performances (even if on all my GPU apps there were pretty acceptables) rather than loading time. Obviously it depends primarily of the app content ;)

Silly Family available on the Mac App Store

Hey, I’m glad to share with you that Silly Family is now available on the Mac App Store! Don’t hear anything about Silly Family? Have a look there.

Thanks to Adobe AIR technology, with exactly the same code base we released the game on iOS, Mac, Android & Amazon. We could also release it to PC, but not sure where to sell it… I hope AIR would work on Windows 8 modern UI mode and so sell it via Windows store, but that’s an other story.

The first time you’re looking for putting your AS3/AIR game on the iOS store, you will find lots of tuts. However for the Mac App Store, that’s an other story. This one is the most concrete that I found.

Here is my bash script, FromAirAppToMacAppStore, working for AIR 13:

#!/bin/sh
#!/usr/bin/env bash
#$ -N $2
 
DIR="$( cd "$( dirname "$0" )" && pwd )"
 
cp $DIR/Info.plist $DIR/"$1".app/Contents
cp $DIR/Icon.icns $DIR/"$1".app/Contents/Resources
 
rm $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Resources/WebKit.dylib
rm -rf $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/AdobeCP15.plugin
rm -rf $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/Flash\ Player.plugin
rm -rf $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/adobecp.plugin
 
chmod -R 777 $DIR/"$1".app/
 
#codesign -f -v -s "$2" $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/AdobeCP15.plugin
#codesign -f -v -s "$2" $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/Flash\ Player.plugin
#codesign -f -v -s "$2" $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/adobecp.plugin
codesign -f -v -s "$2" $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0
codesign -f -v -s "$2" $DIR/"$1".app/Contents/Frameworks/Adobe\ AIR.framework
codesign -f -v -s "$2" --entitlements $DIR/entitlements.plist $DIR/"$1".app
 
codesign --display --entitlements - $DIR/"$1".app
 
productbuild --component $DIR/"$1".app /Applications $DIR/"$1".pkg --sign "$3"
 
codesign -v --verify $DIR/"$1".app
 
exit 0
 
#sh FromAirToMacAppStore.sh "SillyFamilyDesktop" "3rd Party Mac Developer Application: DaVikingCode (XXXXXXXXXX)" "3rd Party Mac Developer Installer: DaVikingCode (XXXXXXXXXX)"

For more instructions (and latest update) have a look on my Github’s repository. Note that I’m moving some repositories to Da Viking Code‘s Github account, the Citrus will move too ;)

GPU render mode hell, and how we barely got out of it alive.

Hello everyone, Thomas here!

I’m going to recount the story of one of the projects I’ve been working on in the past few months, and how it all went downhill from the very beginning.
Oh don’t worry though. This is not a fancy post-mortem for the biggest game of the year, but its my first so I’ve got at least something to smile about.
In fact in order to be able to write this article let me pull up a happy image just for you and me, and then let’s jump right in.

Friends-With-You_Happy_Rainbow-01

Continue reading GPU render mode hell, and how we barely got out of it alive.

AS3 Skeletal animation libraries performance test

Update: part2.

Right after Silly Family (the Android & multiplayer version will be out at the end of the month!), we are already planning our next game. It will be more for gamer, a bit less family, it will be a tower defense kind of game (I enjoyed so much Bardbarian). We’ve already some fresh ideas, so it’s already time for making test implementation!

On Silly Family we used DragonBones for animations. The graphic designer enjoyed to be able to make them right in Flash, and for me the .dbswf exported file is really optimized (less than 1Mb for 6 * 5 * 16 animations and multi resolutions friendly)! However in our future game, we will have at least 30 animated characters at the same time, and in my quick prototype DragonBones wasn’t able to handle them. So it’s time for a benchmark!

Benchmark
Ok, first thing to consider: since I’m not a graphic designer (nor an animator) I wasn’t able to use the same graphics for each library. So I used their default model. Some may be more complex than others and so impact performances. The goal was to see if I can reach 60 FPS on my iPhone 4S (using iOS 7.1.1) in release mode obviously with AIR 13 using ASC 2.0 compiler and Starling framwork.
If you want to have a quick look on what the benchmark looks like, go there.

DragonBones
DragonBones has the easiest workflow since it is used directly into Flash. This is the library with which I’m the most familiar. For 30 Dragons on screen, I reached 34 Fps using version 3.0 beta and its new cacheFrameRate feature!

Flump
Flump is an other library using Flash for making animations. I found it harder to use (in Flash editor) than DragonBones when making Witchcraft Works (I used Flump with Haxe and Flambe). Making this simple performances test was a bit complicated since they don’t provide external libraries (fzip, react) directly, or I missed something. Anyway, I had 30 of their mascot running at 54 Fps!

Spine
Spine has its own software for making animations. It also has its official runtime for AS3/Starling. I had 30 orcs at 25 Fps.

Spriter
Spriter also has its own software for making animations, it also has its official AS3 implementation but when I tested it performances was really, really bad. I didn’t have 30 objects at 60 FPS on my computer! Lucky me, since Spriter is very popular (it was one of the first Skeletal animation software on KickStarter) there are several implementations. And the one made by TreeFortress is pretty solid concerning performances. Have a look on Shawn’s article. I reached 45 fighters at 52 Fps!

Conclusion
After this benchmark, I already know that I won’t use Spine. It’s the most expensive software and concerning performances point of view, there aren’t very good. Spriter Shawn’s implementation sounds very performant however sadly it doesn’t sound to be updated and supported with latest Spriter update. We enjoyed working with DragonBones for our previous game, however for this new one it may be a bad deal. Performances aren’t enough good, but since the graphic designer and me are very familiar with it, it may worth spending time on the library to optimize it (and damn I love this .dbswf format). And finally Flump sounds like a way to gve a serious try, performances seem to be pretty good and for the graphic designer he should feel at home using Flash!

Download sources & Scout reports.

Using an other technology?:
As you can see in the Scout reports, this is really the AS3 code which is limiting performances. It reminds me Philippe Elsass blog post about the fail of AS3/AIR. For my game I won’t need 100 characters à 60 FPS, but it isn’t a reason to have a look on other tech:
– I enjoyed using Flambe, however it’s using AIR on mobile. Thanks to Haxe optimization, it should be more optimized than AS3 directly, however I doubt having so much different performances.
OpenFL may be the solution concerning performances. However I’m a bit afraid of its constant evolution.
– And finally, why not Unity? Related to my old article, here I’m facing Unity’s bad side: all Skeleton animation libraries aren’t free even for testing their runtime. It’s really sad… Smooth Moves doesn’t sound bad at all.

And you what do you think?