Flash game Machinarium currently #3 in Mac App Store
March 23rd, 2011
Amanita Design from Czech Republic is designing adventure Flash games since ages. You might remember some of their titles like Samorost, Samorost 2, Questionaut and so on.
What’s even better is that you can now get their latest game Machinarium in Mac App Store for $9.99 by the end of the March.

It’s currently number 3 under Top Paid Games – right after Angry Birds and Angry Birds Rio.
Personally I am looking forward to more Flash games available in Mac App Store, and imagine “Molehill” ,)
Here are some tips and tricks for uploading your game to the Mac App Store by Gary Rosenzweig, who has his Gold Strike in Mac App Store since day 1.
Introducing M2D – GPU accelerated 2D framework for Flash ‘Molehill’ API
March 9th, 2011
Update 3/24/2011: The framework source update and optimization – read more here (*Ely Greenfield blog)
I am pretty sure that most of you are familiar with ‘Molehill’ – the new 3D API for Flash Player that enables GPU acceleration. Some people were wondering if this is just for 3D. The good news is that you can actually accelerate 2D graphics as well by rendering them on a stage3D instead of on the stage (DisplayList). It’s a little bit tricky, but definitely possible.
For instance, have a look at this demo – http://www.bytearray.org/wp-content/projects/molehill2d/molehill/ – the 2D graphics are rendered on GPU via Molehill.
But if you look at the code of this example and are not really coming from an OpenGL or DirectX world, it might take too long for you to pick it up.
To make it easier for you, Ely Greenfield wrote a framework called M2D, which is available here at github.
Features:
- render embeds
- animate spritesheets
- position, rotate objects
- particles
Kudos to Ely! I mean, this is really a big thing for 2D Flash games. Now you can render thousands of sprites with 60 FPS easily and smoothly and I am looking forward to seeing games using it.
I have forked Ely’s original M2D and added a RenderScene class and a Physics class that uses Box2D C++ Alchemy port. RenderScene is a simplified API for using M2D, which will fit most of your use cases and is easy to use for everyone.
How does it work?
In 3D there are a couple things available to you – geometry (in our case triangles), textures and shaders.
To actually display an image – you render two triangles per a rectangle and then you upload a bitmap to it with correct UVs.

Can I accelerate DisplayObjects from Flash DisplayList?
Yes, you certainly can. The only thing is that currently it supports only static DisplayObjects, but MovieClip support is planned for the future. Animated sprites are currently supported via SpriteSheets – there is a tool that can help you to easily convert SWF to a PNG SpriteSheet – check out ZoĆ« by Grant Skinner.
Future plans
- Documentation
- Mouse Events – there is currently no framework support for mouse events
- Animated MovieClips – animations can be done via SpriteSheets
- Optimizations – we are pretty sure that there will come numerous optimizations in the future by the community
- ATF support (Adobe Texture Format)
Open Source Project
The framework is provided for public domain “as is” with no guarantees, you may use it in your own commercial projects for free, fork it, change it, upgrade it. We are looking forward to hearing from the community about new updates, projects using M2D and proposals for the future versions.
The API
// create RenderScene - the sprite which renders Actors to Stage3D (GPU accelerated layer) scene = new RenderScene(800,480); addChild(scene); // Add rectangle 100x100 px var rect:Actor = scene.addRect(100,100); rect.x = 100; rect.y = 100; rect.rotation = 10; // Add embedded image var image:Actor = scene.addImageEmbed(imageEmbed); image.x = 300; image.y = 100; image.rotation = 45;
Examples
M2D HelloWorld
Simple Physics Game with Box2D
Simple Mouse Click Events
Animated Sprite sheets
Particles
Driver Test
15×10 sprites
40×40 sprites
Animation with TweenMax
Note: you need the Flash Player Incubator build that support Molehill API. Get it here. Also there might be a problem with GPU acceleration in Chrome currently – please try in another browser.
Download with libs
M2DSamples.zip
(including M2D.swc and Box2DAlchemy.swc and helper classes RenderScene.as and Physics.as)
M2D Source
https://github.com/egreenfield/M2D (download it, fork it, bring new ideas, we are looking forward to hearing from you)
Videos of 3D Flash Molehill in Action
February 28th, 2011
Tanki Online 2.0 by Alternativa Platform
Zombie Tycoon by Frima
Play online: http://molehill.zombietycoon.com/ (Requires Flash Player Incubator Build)
Ultimate Race by Flare 3D
MAX Racer Multiplayer by Alternativa Platform
Play online: http://www.alternativaplatform.com/en/demos/maxracer/ (Requires Flash Player Incubator Build)
Ostrova Online by Alternativa Platform
Metro 2033 by Alternativa Platform
Molehill/Away3D 4.0 Fluid Simulation
Demo available here: http://infiniteturtles.co.uk/projects/away3d/broomstick/ShallowWaterDemo.html (Requires Flash Player Incubator Build)
Away3D & Evoflash – Disconnected
Fractal Tree by Away3D
Just a little update
February 12th, 2011
Dear readers, friends and followers. I just wanted to give you a quick heads up of what I was recently doing and where am I heading to.
South East Asia
In January I travelled through South East Asia and served 8 events in 7 cities and 6 countries (Bali, Jakarta, Singapore, Kuala Lumpur, Manila, Hong Kong and Bangkok). It was really great to spend some time with local Flash communities and I have to say – it’s great bunch of people – well, but that’s always with Flash folks ,)
If you are in the area, you might want to follow these folks on Twitter just in case you want to get involved, speak at events or just come to UG (User Group) meetings and discuss things.
Adobe Asia/Pacific Evangelist:
Paul Burnett
Jakarta:
Ahmad Fathi Hadi (Flash UG manager)

Photo: Adobe Camp Jakarta (organization team)
Singapore:
Stefano Virgilli (Video UG manager)
Shunjie Hu (Flash UG manager)
Kuala Lumpur:
Chua Cheeseng (Flash UG manager)
Manila:
Rey Mendoza (Adobe UG Philippines)
Carlos Nazareno (Phlashers)
John Imbong (Phlashers)
Melch Valimento
Michelle Santos

Photo: Flash Camp Manila, reeeally packed!
See 360 picture of me speaking at Flash Camp Manila (by Rey Mendoza)
Hong Kong:
Vicker Leung (Flash UG manager)
Bangkok:
Kajorn Bhirakit (Adobe UG manager)
Peter Moelgaard
What’s next? Gaming!
You probably read the post by Lee Brimelow: My New Focus On Flash Gaming, well if you did not, we have the formed new team with focus on gaming and I am in. I will be still covering the things I do now, but in upcoming months you can expect from me tutorials around 3D, multiplayer gaming, Facebook integration and in the next half of the year even more interesting topics. I am personally looking forward to it a lot. And if you have a new game in Flash, idea to write about and so on, just send it my way. Also I will be at Flash Gaming Summit 2011, Game Developers Conference 2011 in San Francisco and speaking at FITC Amsterdam 2011. If you are coming and wanna meet, ping me. Next tutorials about 3D in Flash coming soon. Stay tuned!
Cirrus January 2011 update
January 21st, 2011
Regarding the latest info from Michael Thornburg (Adobe) Codename Cirrus got refreshed and you can now leverage new two features.
One of them is sending developer key as as a second parameter of connect method, which improves security as key is not transmitted via URI.
So now you can call:
var nc:NetConnection = new NetConnection(); nc.connect("rtmfp://p2p.rtmfp.net", "000000000000000000000000-000000000000");
Second feature enables you to send direct relayed messages to clients, this can be helpful for some kind of signaling or init. We highly recommend to use this only one or twice per connection as it consumes much more resources on Cirrus than P2P introduction.
// on sender peerID 9876 sending to peerID 1234 nc.call("relay", null, "1234", "INVITE"); // on receiver peerID 1234, this callback happens nc.client.onRelay("9876", "INVITE");
Flash Player 10.2 beta with StageVideo on Labs
December 1st, 2010
Great news everyone!
Flash Player 10.2 beta is now available to download. It features lot of great stuff including StageVideo, which dramatically reduces CPU costs and renders video on GPU.
Read the blog post about FP 10.2 by Thibault Imbert about it.
Get it here: http://labs.adobe.com/technologies/flashplayer10/
Tutorial: Getting started with StageVideo on Adobe Developer Connection
MAX Racer Remote Device Controller in AIR for Android
November 25th, 2010
Quick heads-up my friends. When we first demoed MAX Racer, we have previewed initial support for USB Steering Wheel, etc. This support is a sneak peek feature in Flash Player, not available right now.
This really needs you have one of these devices at home. So we were thinking about more lightweight way of controlling the game and device or mobile phone is ideal for this.
I’ve built a little app in Flex Mobile “Hero” for AIR for Android, that controls the game by sending accelerometer, speed info, brake and so on using local P2P connection over WIFI.
Check the video how it works:
Read the rest of this entry »
P2P Gaming Libs from my MAX 2010 session
November 24th, 2010
Update 3/18/2011: Source-code is available here: https://github.com/tomkrcha/RealtimeGameLib
Update 11/28/2010: Library now accepts variable group name, so you can create more instances. Download updated library below. Example: var game:P2PGame = new P2PGame(serverAddress,groupName);
Lot of you guys are asking for libs I’ve used in my Adobe MAX 2010 session Building P2P Multiplayer Games.
It’s still work in progress, but you can basically grab SWC libraries here with example.
I don’t want to publish source now as it needs several changes, refactor, comments, etc. But source-code should be available soon
This library has been used for MAX Racer without no change. So it’s kickass tested stuff! But not completely finished and documented yet. So this is the disclaimer, I do not provide any guarantees.
If you want to start playing with it, go ahead. Comments are highly welcome!
This engines creates a full mesh network via DIRECT_CONNECTIONS NetStreams among all connected users. Thanks to that, you get lowest latency possible and it’s highly suitable for realtime gaming.


