Archive for the ‘Programming’ Category

AIGameDev Conference 2011 : Euphoria from Natural Motion

Friday, August 5th, 2011

Last June, a part of the Fishing Cactus crew attended to the Game AI conference which took place in Paris, and I am glad that I was part of it. This conference gather peoples with the same passions video game and AI.

We had some really interesting talks, especially about the animation driven by the AI. For instance we could see the parametric animation system developed in the “CRY Engine”. When I saw this, the first day of the conference, I was impressed, seeing locomotion animations moving around by blending a couple of animations together to get a realistic behavior. The graphical animator do not have to depict all the animations required for a character to run, while turning and climbing hills.

But the next day, when came the turn of Simon Mack to speak about the “Euphoria Engine” of Natural Motion, I was literally stunned.

Euphoria is an engine used for animating 3D characters in a way that the gestures look very natural and coming from a real person. Unlike the classic key frame animation, which involves a static animation, this system allows each character to play the animation in a unique way.

The engine is based on Dynamic Motion Synthesis, which is a technique that generates the motion of the character by applying different constraints on it (like for the ragdolls). Euphoria uses a complex biomechanical model, simulating the skeleton, its joints, and the muscles. To drive the skeleton, the engine uses neural networks as controllers to determine the forces to apply. And to make it more intelligent, the controllers are chosen by some genetic algorithms which pick the fittest controller over multiple generations and trials. But it also allows the animator to give some expressive behavior to the character, like preservation of itself, or keeping its balance while knocked by others.

So in order to build a new character in your game with Euphoria, you first need to create a new controller for it. For this, you will have to tweak the parameters of the neural network controlling the body. Then you will need to tweak the fitness function of the genetic algorithm in order to take into account your new controller. Then the animator will have to give a behavior to your character which fits the best in your game.

Have a look on the amazing result you can get from this piece of technology:
Euphoria – Natural Motion

Rockstar uses Euphoria in its game GTA IV, to control the pedestrians. We can see them trying to dodge a car which is about to hit them, or protecting their head while falling on the ground if the car managed to hit its target. And more recently, the game BackBreaker also uses it, to give natural animations to the players, when they hit each other’s by blocking the legs for example.

By combining, AI with physics and biomechanics, Euphoria brings some really interesting possibilities to the game and movie industry.

Game Jam Belgium 2011

Tuesday, April 12th, 2011

Global game jam

Another 48h GAME JAM in Belgium!

For all of you artists and programmers who missed the Global Game Jam in Antwerp end of January, we’ve got great news!!

C-MINE the new site in Genk with ambitions to promote the creative industry is offering their under-construction location in Genk for the next Belgian Jam!

When? Very soon! 6-7-8 th of MAY
The Game Jam starts at 17h00 on Friday and end on Sunday at 17h00.
This time we’ve even got some real prizes to win!

Win a UNITY3D iphone or android indy license!
Interested? Register here!

Stay tuned… More info coming soon!

Call for speakers…
Are you a game industry expert or do you think you have something interesting to say to the Belgian gaming community?
You might be the person we are looking for to motivate our participants at the start of the event on friday…contact them

Fishing Cactus presents R.O.G.E.R, the first Medical Kinect Serious game

Thursday, October 7th, 2010

Together with the support of the Microsoft Innovation Center and a cluster of 4 therapists, we have created a prototype Serious game dedicated to patients who suffer from a lack of logic and organizational skills
(typically post-stroke patients, Alzheimer, hemi-negligent patients,…)

We have been getting a lot of press and attention about this project since we are pretty much the only studio in Belgium and maybe Europe who master the technology to build this game, the reason is that we have used Kinect Technology, a controller less movement recognition camera.

This allows our game to be piloted by any generation, and especially non digital natives who have never used a game controller or keyboard and mouse (very good indeed since most patients with those symptoms fall under this category).

The scenario for this prototype is simple, we have created a photo-realist environment running directly on the X360 composed of a bedroom, bathroom and a dressing. Each room has a certain amount of inventory spaces in which representations of objects are placed.

The therapists can task the patient to do his luggage for a specific destination (the mountains, the sea, a city-trip,…) and can observe how the patient reacts to the environment and the type of objects he gathers in his luggage. It helps the therapists to analyse and observe if patients are disorganized and see where they have lost their common sense and focus on those points in therapy. Of course we create several pertubating elements to make them lose focus (phone ringing, radio and so on).

The game is evolving and the 2 year goal from here is to have a very innovative and collaborative project.

AiGameDev Conference 2010: EVE Online Characters

Monday, July 19th, 2010

UPDATE: post is now under the right author name.

During the AiGameDev Conference 2010 at Paris Claudio Pedica, a researcher at CADIA Labs, Reykjavik University, currently collaborating with CCP Games presented us their new social interaction system in a talk titled Human Territoriality for EVE Online’s Socially Smart Characters.

(more…)

Open Source localization tool

Tuesday, March 30th, 2010


Fishing Cactus has the pleasure to announce that the team has started a localization tool. And the best for you, the tool will be released as open source ( the licence must still be decided ), as a google code project.

Our previous experience with localization has been pretty painful. Everybody can remember those German texts that were at least twice the control size. From our experience, we thought a tool could be use to help managing and creating localization. Especially when the task is outsourced to some studio living in another time zone. The goal is to provide an interface between the designer and the “localizators”. The tool will contain information about text extent and will provide a preview of the text inside its control.

The feature list will be announced in the following weeks. But here is a preview :
Qt has been chosen as Mojito, our proprietary engine, runs on the 3 main OSes. The file format will be XML, but the tool architecture will ease the implementation of other format as well. Platform specific text can be inserted ( such as specific hardware name ). Support for exotic language such as Chinese and Arabian is planned.

As the tool matures, we will discuss design choices we made on this blog. Developers in charge of a specific feature will also have the opportunity to expose their work.

Stay tuned, the first code release is approaching.

What do you drink? Piña COLLADA!

Wednesday, February 3rd, 2010

Collada Exporter / Importer in Mojito PipelineIn the best company of the world and with the most talented team (Belgians are famous for their self-derision), it is mandatory to use the most advanced technologies for creating our games. Of course just for your pleasure.

This is why we decided to automate our “Game Content Pipeline” with a continuous integration process. To do this, we used “Hudson” simply because it wasn’t too difficult to implement within the Mojito Engine and secondly because the solution is quite complete.

One of the first step I had to undertake within this pipeline was to import all assets from a graphical software and export them to a format our engine will be able to use. Collada is perfect for this job and this is why we went on to create a Collada importer and a viewer which runs in the Mojito Engine.

For the first time we are proud to present you, the star of all stars, “Mr. Duck” from Mojito’s viewer.

Pina Collada and Mojito

« Good night and good duck! »

Mojito on Linux – Diary #2

Monday, February 1st, 2010

As you may have read on this blog a week ago we began porting the Mojito Engine on the GNU/Linux platform.

It’s going pretty well, faster than I originally expected. I started by translating the display part, initially running with DirectX on the Windows version and now running with OpenGL. The result was as expected, and that’s how we were able to post the first screenshot you’ve seen in an earlier post. We rapidly figured out that the input system provided by GLUT was not exactly what we needed. So we decided to rewrite that specific engine part with SDL in order to have not only the keyboard but the joypad too!

And I’m proud to say that everything is now fully working :) My next task will be to port the sound system of the engine.

As you can see in World of Goo, created by 2D Boy, they had about 17% of their sales on the Linux platform. It looks like a lot of open source gamers are just waiting for some stuff to play on the penguin!

So, be ready, Linux-users! Because in a not so distant future, you will be able to run on your hardware some Fishing Cactus games and show off in front of all your friends!

Linux version of Mojito Engine on its way!

Friday, January 22nd, 2010

With the mondial crysis, it’s important to think about the people who are in need. They maybe can’t buy a fully functional Mac or an expensive Windows licence…

Luckily, they can discover the joy of working with the open-source “OS for the poor”, Linux!

We have already improved the most current platforms on the market with our kickass Mojito Engine, and we are now currently working on the Linux version.

And just because we like you guys, readers of this blog, we will offer you the exclusivity of the year : the first screenshot of a not-so-mysterious project, running on Ubuntu!

Awesome Mojito on Linux

I know how much it’s beautiful, but don’t cry yet, keep your tears when it will be fully functional so stay tuned!

Cross Platform Thread Local Storage (cont’d)

Monday, December 21st, 2009

In the first post, I introduced the thread local storage we use across all platforms. The main goal was to provide similar interface and features as __declspec( thread ) variables provided by some compilers. The previous post reproduced in pure C++ what gcc and cl.exe allowed as extension, but on every platform that supports at least 1 thread local storage. The goal of this post is to extend the existing system to all types including complex classes.

(more…)

Cross Platform Thread Local Storage

Monday, July 20th, 2009

It’s been a while since I post something technical here. We are currently really busy on our new secret project, but I have something to share.

Some compilers have an interesting property : __declspec(thread) for Microsoft cl.exe, __thread for Gcc. By using this declaration on a global variable, a copy of the variable is created for each thread. This is known as a Thread Local Storage (TLS). You can always use direct calls to the system’s API ( TLSGetValue and TLSSetValue for Windows, pthread_getspecific and pthread_setspecific for POSIX systems), but using automatic TLS variable is very comfy. As you may know, Mojito is available on several platforms, some of them does not provide those kind of variables. And if provided, those variables are limited to POD (Plain Ol’ data) variables. So we search for a solution that is close to what compiler can offer.

(more…)