08:38 AM 08:38 AM08:38 AM

I installed Boot Camp 4 and Windows 7 64 bits on my MacBook Pro 2011 in 2011. The first boot time are really acceptable but after installing some softwares the boot time was really slow: aout 6-8 minutes. Now I can boot Windows 7 64 bits in less 1″30. :)

1. Windows Registry

  • Start menu
  • Search > Regedit > OK
  • Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction
  • Modify the value of OptimizeComplete to Yes (it’s worked for me)

2. MSConfig

  • Start menu
  • Search > msconfig > OK
  • Boot  tab  > Avanced options > Select all your CPU
  • Services tab > Unselect all useless services
  • Startup tab > Unselect all useless software at startup

3. Services

  • Start menu
  • Search > services > OK

And set useless services to Manual. Use this list : http://www.askvg.com/windows-7-services-that-can-be-safely-set-to-manual/ Good luck ;). Please comment if my tips work.

06:56 PM 06:56 PM06:56 PM

Here the non exhaustive list of all independant game contests & Jams: UPDATE: 03/12/2014 Contests:


Please comment and send feedbacks to update this list ;).

10:16 AM 10:16 AM10:16 AM


The EIGD was on the 24th and 25th of October in Montreuil, France, near to Paris. Here the website: http://www.eigd.org/.

Unfortunately I couldn’t assist to the EIGD meetings but I’m sure it was very interesting.

Here the category lists:

  • The Student Awards – a category exclusively for vocational school students. We hope to find a crazy pearl!
  • Originality Award – For the most original in terms of gameplay, the theme or narrative European game
  • The Innovation Award – For the most innovative gaming technology or use of technology.
  • The Price of Artistic Consistency – For the game which the graphic is more consistent, but also the most original!
  • And the Grand Prize will be selected from the winners of the previous categories.

Enigmbox was finalist of the EIGD awards, category Originality.

There was 5 different catogories: http://www.eigd.org/en/content/eigd-awards. You can find all finalists here: http://www.snjv.org/eigd-awards-finalistes,814.html

The awards ceremony was the 24th October near to the “Le café salé” in Montreuil.

The other finalists for the originality category were: Mush from Motion Twin and Type: rider from Agat Films & Cie / Ex Nihilo.

Here the results:

  • SerpenteS won The Student Award
  • Mush won the Award. Congrats to the Montion Twin team.
  • Strike Vector won the Innovation Award
  • Type: Rider won the price of Artistic Consistency
  • One Life remains won the Grand prize, congrats guys ;).

Unfortunately EnimgBox didn’t won any prize but I’m still proud to compete with big projects. A big thanks to the EIGD team ;).

See you next year.

12:02 PM 12:02 PM12:02 PM

If you do a right click above a Flash animation you will open a context menu.

You can remove all context menu items in Flash with this code:

var cm:ContextMenu = new ContextMenu();
contextMenu = cm;
03:42 PM 03:42 PM03:42 PM

Today : How to create a simple button in Flash with AS3.


Get Adobe Flash player


You can find the .fla and with the ActionScript source code inside.

Download the source code here: Simple_button_benoitfreslon.com.fla

Let’s start

  1. Open Flash > Create a new Flash ActionScript 3.0 document
  2. Insert > New Symbol
  3. Name : Btn
  4. Type > Button
  5. Click OK

Capture d’écran 2013-09-28 à 16.10.09

  1. Draw a button in the Up state (when the button is released)
  2. Draw a different button in the Over  state (when the mouse cursor is over the button)
  3. Daw a different button in the Down state (when the button is pressed)
  4. Draw a simple shape in the Hit state (The Hit area of the button)
  5. It’s done. Back to the stage now.

Capture d’écran 2013-09-28 à 16.18.25

  1. Then select the MovieClip on the stage
  2. Set an instance name “mc_btn” in the Properties pannel like this


  1. Create a new Layer with this name: Actions
  2. Select this new layer
  3. Open the Actions Pannel: Windows > Actions or hit F9


Copy and paste this code:

mc_btn.addEventListener(MouseEvent.CLICK, click);
function click(e:MouseEvent):void {
	// On click
	navigateToURL(new URLRequest("http://www.benoitfreslon.com"));


10:47 AM 10:47 AM10:47 AM

For all developers who love Flash Develop like me, you probably NEED to colorize all ActionScript 3.0 keywords.

Here a screenshot of the syntax coloring:


You can download Flash Develop 4 here.

Download my AS3.xml file and replace the AS3.xml in the Languages folder.

C:\Program Files (x86)\FlashDevelop\Settings\Languages



The xml file is compatible with Flash Develop 4.X.X.

10:54 AM 10:54 AM10:54 AM


Today a simple sample of code to create an inertia effect in ActionScript 3.0.

Get Adobe Flash player

The character will start to move with smooth acceleration if you press an arrow key.

You can download the source code here : Flash_acceleration_benoifreslon.com.fla

// Copyrights
// Benoît Freslon
// http://www.benoitfreslon.com

import flash.events.KeyboardEvent;
import flash.events.MouseEvent;

// Constants (You can modify this values)
const acceleration:Number = 0.1;
const decceleration:Number = 0.9;
const speedMax:Number = 5;

// Variables
var speedX:Number = 0;
var speedY:Number = 0;

// Key states
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var upPressed:Boolean = false;
var downPressed:Boolean = false;

// Keyboard events
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
function keyDown(e:KeyboardEvent):void {
	switch (e.keyCode) {
		case 37 :
			leftPressed = true;
		case 38 :
			upPressed = true;
		case 39 :
			rightPressed = true;
		case 40 :
			downPressed = true;
function keyUp(e:KeyboardEvent):void {
	switch (e.keyCode) {
		case 37 :
			leftPressed = false;
		case 38 :
			upPressed = false;
		case 39 :
			rightPressed = false;
		case 40 :
			downPressed = false;

// Evénement répété toutes les images
pig.addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void {

	// If a key is pressed I will increase the speed with the acceleration value

	if (upPressed) {
		speedY -=  acceleration;
	} else if (downPressed) {
		speedY +=  acceleration;
	} else {
		// If the up key and the down key are released I will decrease the speed with the decceleration value
		speedY *=  decceleration;

	if (leftPressed) {
		speedX -=  acceleration;
	} else if (rightPressed) {
		speedX +=  acceleration;
	} else {
		speedX *=  decceleration;

	// Ne pas oublier de limiter les vitesses
	if (speedX > speedMax) {
		speedX = speedMax;
	if (speedX  <-speedMax) { 		                 speedX =  -  speedMax; 	         } 	         if (speedY > speedMax) {
		speedY = speedMax;
	if (speedY <-speedMax) {
		speedY =  -  speedMax;

	// Move the pig
	pig.x +=  speedX;
	pig.y +=  speedY;

	// Display values on HUD
	tValues.text = "speedX: " + speedX + "\nspeedY: " + speedY;


// Reset pig
stage.addEventListener(MouseEvent.CLICK , click);
function click(e:MouseEvent):void {
	pig.x = stage.stageWidth / 2;
	pig.y = stage.stageHeight / 2;
05:51 PM 05:51 PM05:51 PM

vignette_150x150Here the new game I developed and designed: Jump’Box on Facebook. I create this game for a french agency Castor & Pollux for the french brand: Fleury Michon.
I worked as game designer, level designer and sound designer.

It’a simple but addictive platform game. You have to jump in the “Box” on the top of the tower.
The gameplay is really simple based on the “Mr Crab” game. The hero always runs around the tower and only can change direction against walls. Only one input can make the hero jump. You can jump to avoid obstacles and kill enemies.
You can play on 18 levels on 6 differents worlds with 6 different characters.
And you can win several prizes like an iPad mini, a Sony PS4, a Camera, etc.

Play Jump’Box on Facebook.

It’s a fake 3D game but a simple 2D game engine with lot of effects: parallax, scrolling, smooth moves, shadows, etc. The final render is espacially beautiful.

I used the Starling Framewok and the CitrusEngine framework to develop a Flash game with Stage3D.

11:10 AM 11:10 AM11:10 AM


EnigmBox - Think outside the box to solve creative puzzles

After 3 months of intensive development here the iOS version of the famous series Take Something Literally.

It’s my last indie game. I designed and developed this game alone.

It’s a puzzles compilation with lot of twists inside ;).

The rules are very simple. You have to think outside the box to solve puzzles to collect all hearts in each level.

This game plays different from your average puzzle game. Use all iPhone functionalities: move it, touch it, take pictures, capture videos, plug accessories, use location service, use all buttons and phone properties.

You can download the game here: http://bit.ly/enigmbox


The official website: http://www.enigmbox.com
The Facebook page: http://www.facebook.com/enigmbox

And for the cheaters, here the walkthrough.

Don’t forget to rate and comment the application. Help indie developers to create creative games. Rate, comment, share the game and buy indie games ;).

10:04 AM 10:04 AM10:04 AM


Today a tip for ActionScript developers.

It’s been a while I looking for an advanced trace output with more details in few line of code.

Just add this line of code instead the trace() function to get a trace message in your ouput with all details.

Debug.log("foo", "bar");

The output will show this :

[Class][method][line] foo bar


  1. Download the Debug.as file
  2. Copy and paste de Debug.as at the root project, in the same folder of the .fla file
  3. Enable Debugging in Flash. Publish parameters > swf  > Advanced > Allow debugging
  4. Use the following code to display the advanced debugging message


Debug.log("foo", "bar");

Source code

Debug.as code:

	* Advanced trace method
	* @author Benoît Freslon
	* @version 1.0
	* @example 	Usage
	* import Debug;
	* Debug.trace("foo", "bar");
	* output > [Class][Method][line] foo bar
	public class Debug

		static public function log(...rest)
			var error:Error = new Error();

			var tr:String = "";
			for each (var msg:String in rest)
				tr +=  msg + " ";
			var s:String = error.getStackTrace();

			var arr:Array = s.split("at ")[2].split("()");

			var stack:String = arr[0];
			var arrClass:Array = stack.split("/")[0].split("::");
			var className:String = arrClass[arrClass.length - 1];
			var functionName:String = stack.split("/")[1];
			if ( functionName == null )
				functionName = className;
			var arrLine:Array = arr[1].split(":");
			if (arrLine.length > 1) {
				var line:String = arrLine[arrLine.length-1].split("]")[0]
				trace( "[" + className + "][" + functionName + "]" + "[" + line + "]", tr );;
			} else {
				trace( "[" + className + "][" + functionName + "]", tr );

Good programming :).