Ramblings about Flash game portals
I am asking myself a question for 4 years. It was summer 2004 when I read for the first time about Flash game sponsorship. Someone at CrazyMonkeyGames was spamming various Flash related forums announcing his company was looking for good game to sponsor.
Today there are lots of game portals looking for good (and not so good) game to sponsor, there are services that provide in-game ads like MochiAds and Flash games brokers like FlashGameLicense.
In other words, make a decent game and you will earn some bucks in some ways.
What’s the question?
The question is: why a Flash game portal would want to pay developers to put his intro into their games? The simplest answer is: game portals owners know that it’s less expensive to pay a casual programmer that made a good game than having their own studio producing Flash games.
Ok, right… but the real answer is: because they earn a lot of money from your/our games.
If you think about MochiAds, they openly said they earn a dollar for every dollar they pay. Other portals, like CrazyMonkeyGames, probably rely on the ads placed in their site. I can see six ads in their homepage and three in the page where you will play their games.
So if they sponsor a game that will virally spread through the web, millions of people will see their logo, thousands of them will click their logo going to their homepage, and hundreds of them will click their ads and/or bookmark their page, coming back another day to look for new games and probably click other ads.
I got it! Creating a game portal will make me richer than Snoop Dogg!
Well… it’s not that easy. Let’s see all problems you will face:
1) No killer applications
Even if there are some interesting scripts to manage Flash game portal, there isn’t a killer application. Let’s talk about blogging: Wordpress is the killer application… with thousands of plugins, skins, themes, addons and so on, if you want to start a blog you can be sure that with Wordpress and the right plugins you can obtain the result you have in mind. Almost all successful blogs are powered by WordPress, so if they made it, you can make it.
Moreover, it’s free.
Flash game portals are different… there are, as said, some interesting scripts, but you can’t make your own NewGrounds with them. And they are not free.
So you must spend a lot of time programming your own portal.
2) No cheap hosting
When you start a blog, you can choose the cheapest hosting plan and it will work great. Should your blog get popular, you will have the money to upgrade your hosting plan or buy your own server. With Flash game portals, you will need to host all games on your site, and this may require gigabytes of disk space. Your hosting provider won’t be happy you are going to upload some thousands of swf files… and I am sure you know your games must load quickly, so you need a hosting plan with an huge amount of band. This will cost you more than you can imagine
3) No new games
When running a blog, you choose your niche and start writing articles until people start digging you and search engines start indexing your page. Then, it’s just a matter of contents. If you write good contents, in about six months you can have a good amount of visitors. When running a Flash portal, your content is the same as the one of other portals… so… why should I submit my game to your “visited only by mum and dad” portal? You won’t get new games if you aren’t a big one and soon you will disappear.
Ok, I don’t want a portal anymore
Stop! You can have it! I found a way to solve problems 2 and 3, and I am solving the first problem by myself. As you know, MochiAds updates a feed of its games everyday… so I am going to make a page on my server with images and files from their server and Google Adsense of my account.
And here it is… cheap hosting, new games.
The widget you can see in the right column is only the first step in the creation of a Flash game portal based on widget games. And obviously I will release the source code so anyone of you will be able to have his portal.
Will MochiAds like it?
Probably they won’t drink their best champagne bottle for what I am doing, but everytime I steal their band making people play their games, they earn money… so maybe they won’t tell me to stop.
Are you billionaire already?
No, but that stupid widget that lands on a lame page yesterday scored $1.57. So stay tuned and prepare to see a new generation of Flash game portals
From zero to Bombuzal – step 3
In the previous step we had the problem of the level panning away if the mouse is outside the movie.
The first solution come from souled that created a button in the entire stage to manage the panning
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | //create an invisible movie clip across the entire stage using API
_root.createEmptyMovieClip("base", 1);
with (base) {
lineStyle(2, 0x0000000, 0);
beginFill(0x00000000, 0);
lineTo(Stage.width, 0);
lineTo(Stage.width, Stage.height);
lineTo(0, Stage.height);
lineTo(0, 0);
}
//whether to pan or not
level_pan = false;
//tile size
tile_size = 50;
// pan variables
pan_dist = 50;
pan_speed = 5;
// tiles array generation
tiles = [[0, 1, 0, 0], [1, 1, 2, 1], [1, 2, 1, 2], [0, 0, 1, 0]];
// bombs array generation
bombs = [[0, 1, 0, 0], [0, 1, 0, 1], [1, 0, 1, 0], [0, 0, 1, 0]];
// creating the level movieclip
_root.createEmptyMovieClip("level", _root.getNextHighestDepth());
// placing tiles
for (x=0; x<tiles .length; x++) {
for (y=0; y<tiles[x].length; y++) {
if (tiles[y][x]) {
placed = level.attachMovie("tile", "tile"+level.getNextHighestDepth(), level.getNextHighestDepth(), {_x:x*tile_size, _y:y*tile_size});
placed.gotoAndStop(tiles[y][x]);
}
}
}
// placing bombs
for (x=0; x<bombs.length; x++) {
for (y=0; y<bombs[x].length; y++) {
if (bombs[y][x]) {
level.attachMovie("bomb", "bomb"+level.getNextHighestDepth(), level.getNextHighestDepth(), {_x:x*tile_size, _y:y*tile_size});
}
}
}
// centering level
level._x = (Stage.width-tiles.length*tile_size)/2;
level._y = (Stage.height-tiles[0].length*tile_size)/2;
level.onEnterFrame = function() {
//if mouse is on stage
if (level_pan) {
//stopping level leaving screen
//too high
if (level._y<=0) {
level._y = 0;
}
//too low
if (level._y>=Stage.height-level._height) {
level._y = Stage.height-level._height;
}
//too far to the left
if (level._x< =0) {
level._x = 0;
}
//too far to the right
if (level._x>=Stage.width-level._width) {
level._x = Stage.width-level._width;
}
// panning level
// pan right
if (_root._xmouse<pan_dist ) {
level._x += pan_speed;
}
// pan left
if (_root._xmouse>Stage.width-pan_dist) {
level._x -= pan_speed;
}
// pan down
if (_root._ymouse</pan_dist><pan_dist ) {
level._y += pan_speed;
}
// pan up
if (_root._ymouse>Stage.height-pan_dist) {
level._y -= pan_speed;
}
}
};
//when mouse is on stage pan
base.onRollOver = function() {
level_pan = true;
};
//when mouse leaves stage stop panning
base.onRollOut = function() {
level_pan = false;
};</pan_dist></tiles> |
Maybe it’s not the best solution ever, because it may require you to redesign mouse pointer, but at the moment it works.
Now it’s time to add the main sprite, Bombuzal itself! I’ll create an object to store all its information. If you have troubles with objects, refer to Understanding Flash Objects tutorial.
At the moment the only information about Bombuzal I need are its x and y position Read more
Do you see a new widget?
Maybe some of you already noticed it, or maybe not. There is a new widget in this blog… not too visible* because it’s still under development and it’s part of a new experiment.
Questions? Comments?
*update: now it’s a bit more visible, because I fixed some things.
From zero to Bombuzal – step 2
It’s time to create the field of the first level.
Creating the level
Merging the ideas of Andre Marianiello and Chris, I was able to create the 2d level in this way:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // tiles array generation
tiles = [[0, 1, 0, 0], [1, 1, 2, 1], [1, 2, 1, 2], [0, 0, 1, 0]];
// bombs array generation
bombs = [[0, 1, 0, 0], [0, 1, 0, 1], [1, 0, 1, 0], [0, 0, 1, 0]];
// placing tiles
for (x=0; x<tiles .length; x++) {
for (y=0; y<tiles[x].length; y++) {
if (tiles[y][x]) {
placed = _root.attachMovie("tile","tile"+_root.getNextHighestDepth(),_root.getNextHighestDepth(),{_x:x*50, _y:y*50});
placed.gotoAndStop(tiles[y][x]);
}
}
}
// placing bombs
for (x=0; x<bombs.length; x++) {
for (y=0; y<bombs[x].length; y++) {
if (bombs[y][x]) {
_root.attachMovie("bomb","bomb"+_root.getNextHighestDepth(),_root.getNextHighestDepth(),{_x:x*50, _y:y*50});
}
}
} |
and this is the result:
Aligning the level to the stage
“Everything” is working, but I don’t want the level to start at the upper left corner… I want the level to be centered in the stage.
So I have to calculate level’s height and width and move the movieclip in the center of the stage. Read more
My most exciting project ever

Kimora Feronato, born on February 20th, 2008
From zero to Bombuzal
Normally I use to write tutorials explaining what I’ve done to try to replicate a famous game, but I always start with a “clean” actionscript, without all errors made during its creation
This time, I will write a tutorial based about what I do, step by step (errors included) to replicate an old C64 glory.
During this journey, you will learn how to solve problems (because I’ll find a lot of problems) and a lot of new techniques.
The first thing I had to do was… deciding what game I was about to try to replicate.
There are lots of godd C64 games I would like to replicate, and after an hour reading old reviews, I decided to clone Bombuzal.
From Wikipedia: Bombuzal is a computer puzzle game designed by Antony Crowther (credited as Ratt in the game) and David Bishop for Image Works[1]. The game was released in 1988 for the Amiga, Atari ST and Commodore 64.
Read carefully: 1988! I am going to make the remake of a twenty years old game, but I know it won’t be easy because it’s a very complex game.

First, I want to tell you why I decided to clone Bombuzal. It’s a very complete game, it has two different game views (2d and isometric), codes to skip levels, different tile types, different bombs and so on.
Its Amiga version is remembered as “one of the cutest, cuddliest puzzle games ever”.
Now that I decided I am going to clone Bombuzal, the next thing to do is getting a C64 emulator and the game disk image. I don’t even know if it’s legal or not, but I played this game 20 years ago and I don’t remember much of the game.
Then, I played the 1st level to understand how does it work… I’ll start cloning the 1st level and as the game get more complex in later levels, I’ll add new features.
This is how does it look the first level: basically Bombuzal is a tile-based game
here it is a screenshot of the first level, in 2d and in isometric view

There are two type of tiles and one type of bomb.
The first step is creating the routine that, given an array, will draw the stage. Any clue? Every reader that will contribute in the creation of the game will get credited in the credits page.
Tomorrow I will start coding, meanwhile if you want to write down some code…
Jail Break: Flash game based on Security tutorials
Jail Break is an interesting game made by Joshua Thong starting from my Create a flash game like Security tutorial.
Not only Joshua added new and fresh features like lasers, doors and keys, but he is releasing the source code!
Moreover the is an instructions page and an end game one… will you see it? The game is not the easiest ever made, but every room has a function that enables you to get to the exit
First of all, play the game:
Then download the source code and see how Joshua developed all new features.
That’s what Joshua said:
I didn’t really know how to make the camera sight and the key disappear…so i moved it out of the screen. but
unfortunately, in the flash player, you can enlarge the window and you see everything out of the screen and you will find that the camera sight and the key is there =P
luckily though i fixed it later on in the game.]
Once again, I strongly encourage you all to share source codes of your experiments or old games. That’s what makes this blog different than the rest.
Thank you very much Joshua!
Find a sponsor for your Flash game with Flash Game License
If you developed a Flash game, you had this problem. Once your game is complete, you want to find a sponsor and get some cash for your hard work.
Then, you start submitting the game to various Flash game portals… the first one only accepts form submissions, the second one only accepts mail submissions, the third one has a very very small link almost hidden in the footer… and you don’t know where to find the 4th one.
Believe it or not, the all hours you spend looking for a sponsor raise the amount of time you dedicated to the game. No matter if you develope or promote, you are spending time to make your game work.
Chris Hughes and Adam Schroeder come in our help with an idea to create a marketplace where developers and sponsors can meet and save time.
As a developer, you will save time because you don’t have to submit your game to a million sites, as a sponsor you will save time because you have a place where to test all new games without checking a million emais.
You can find this marketplace on flashgamelicense.com
Don’t be scared of the “made in a minute” feel of the site… you will find all you need to find a game/sponsor inside, and all in all this is a beta stage, even if I heard a lot of successful stories.
Chris told me he hired a programmer to overhaul the system, to fix all basic features and add some really cool features as soon as possible.
Let’s see how does it work:
Developers side
Once you sign up as a developer, you can submit your first game. The game submission form is very user friendly, let me show it:

The game detail section isn’t different than any game submission form… just imagine you are on NewGrounds and fill the form

In the development detail section the most important fields to fill are the one where you will enter your game state (alpha, beta, gold… ) with a percentage, amd the one where you already published your game or not. Obviously never published, almost completed games have more appeal than an alpha game.

Then, in the acceptable licenses section you will choose what kind of sponsorship you are looking for: the more licensing types you open, the most appealing is your game

Finally, you have to say how interested you are in game advertising and revenue sharing
Now, you can submit your game.
The system recommends you to sitelock your game and encrypt it for security reasons, but it’s up to you locking/encrypting it or not.

Once you submitted your game, you can watch it in the game view area, where you can see the latest offer for your game and the number of views. You also have a private messages area where sponsors can give you feedback.
I submitted a 25% completed game (updated today at 35% as you can see in the picture) and I already had a feedback from a sponsor saying:
Awesome concept! I cant wait to see it with better graphics :)
Very good!
The service is free but you are invited to share 10% of your sponsorship with site owners. Should I find a sponsor this way, I’ll positively give their commission
Sponsors side
You can’t sign up as a sponsor… al you can do is sending an email to the address you will see once in the sponsor section and wait for Chris to create you an account. This is necessary to give maximum protection to developers.
Once in the sponsor game area, you can see all games, divided by exclusive licensing and non-exclusive licensing. I can’t show you a picture of exclusive games area for a security reason, but is basically the same as the non-exclusive, except that the sponsor has an “offer” button to make an offer for an exclusive sponsorship. For your information, offers vary from less than $50 to more than $6000

The non exclusive area show 3 games per row along with description, exposure until now and developer requests to include sponsor’s APIs, branding, and so on.
In my opinion this is an extremely useful service, anyway I am testing it with a game, so stay tuned for the next part of the experiment.
Stay tuned!
How to create a WordPress Widget
I think it’s time to learn how to create a WordPress Widget. WordPress (WP from now on) is the most used blogging platform, and I want to help everybody to code their favorite widgets.
From the official site (where you can find a lot of widgets): WordPress Widgets (WPW) is like a plugin, but designed to provide a simple way to arrange the various elements of your sidebar content (known as “widgets”) without having to change any code.
From a geeky point of view, a widget is a php file. Fullstop. Being a php file, you can make whatever you want. You “just” need to master php and follow some guidelines given by WP guys.
To make the simplest widget ever, you have to know only two WP functions:
The first is register_sidebar_widget($name, $function): adds your widget in the widget admin panel. You simply have to change $name with the name of your widget and $function with the function that your widget will execute.
The second one is add_action($event, $function): $event tells what event your $function should be associated with.
Ok, now let’s write some php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php /* Plugin Name: Triqui Plugin URI: http://www.emanueleferonato.com/ Description: Test widget Author: Emanuele Feronato Version: 1 Author URI: http://www.emanueleferonato.com/ */ function triqui_widget() { echo"<h2>Triqui widget</h2>I love <a href = \"http://www.emanueleferonato.com\">Emanuele Feronato</a>"; } function init_triqui(){ register_sidebar_widget("Triqui", "triqui_widget"); } add_action("plugins_loaded", "init_triqui"); ?> |
Lines 2-9: This commented code is needed to show WP users who made the plugin, what does the plugin do, where to download updates, and so on. Look at this picture:

It represents your plugin management page, and you can see how your information is displayed according to what you write in lines 2-9
Line 11: Beginning of the widget itself
Line 12: The widget… just writing the title (between h2 tags) and a link to my blog
Line 15: Function to initialize the widget
Line 16: As explained before, I am registering the sidebar widget calling it Triqui, and want it to execute the triqui_widget function, the one at lines 11-13
Line 19: When the plugins are loaded, I want init_triqui to be executed. Doing this way, once plugins are loaded, I register the sidebar widget that will display the link at my blog.
And that’s all.
Now you have to save your file with a php extension (for example triqui.php) and upload it in your wp-content/plugins directory you will find in your WP installation.
Then you will find your Triqui plugin in your plugin management page and once you activate it you will find the Triqui widget in your Sidebar Arrangement page (Presentation -> Widgets in your admin panel)

… and… that’s it… now drag your widget into your sidebar and you will display my link in your blog.
This was the very first widget… but soon I will teach you how to develop more complex and interactive widgets, and, why not, widgets that could you earn some money.
Meanwhile, why don’t you display my widget for a day or two? If you do it…
Softbody with Flash
As I supposed, it did not take long before some ideas posted in the forum become reality in the blog.
I am talking about the post about soft body engine that I recommend you to read before continuing with this post.
From Wikipedia: Soft body dynamics is an area of physics simulation software that focuses on accurate simulation of a flexible object. That is, the object is deformable, meaning that the relative positions of points of the objects can change.
I received an email from Jack Hopkins, that wants to share with us two examples of a soft body engine
Dear Emanuele,
I have noticed some qualms about a Softbody Engine on your forum, so…I went ahead and made one,
i’ve included it here, its annotated and if you want to distribute it on your blog for the people that want one I would be honoured to let you.
from Jack Hopkins (Noddybear)
Jack sent me two versions of the engine… the first one is his “work in progress” while the second one is almost all API
In both versions you control the “blob” with arrow keys, but in the second one you can “jump” pressing mouse button and your blob will react to movie edges.
First one
Second one
And source codes.
Enjoy, and thank Jack Hopkins
- Get up to $100,000 for your next Flash game with Mochi GAME Developer Fund
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines – 17 lines version
- Sell sitelocked version of your Flash games and even .fla sources to Free Online Games
- Protect your work from ActionScript code theft with SWF Protector
- Create a dynamic content animated footer ad for your site in just 9 jQuery lines
- Understanding Box2D’s one-way platforms, aka CLOUDS
- Triqui MochiAds Arcade plugin for WordPress upgraded to 1.2
- Box2D Flash game creation tutorial – part 2
- 11 Flash isometric engines you can use in your games
- Monetize your Flash games with GamesChart
- Create a Lightbox effect only with CSS - no javascript needed
- Flash game creation tutorial - part 1
- Create a Flash Racing Game Tutorial
- Flash game creation tutorial - part 2
- Make a Flash game like Flash Element Tower Defense - Part 2
- Flash game creation tutorial - part 3
- Make a Flash game like Flash Element Tower Defense - Part 1
- Create a flash draw game like Line Rider or others - part 1
- Triqui MochiAds Arcade plugin for WordPress official page
- Create a flash artillery game - step 1
- Flash game creation tutorial – part 5.2 (4.88/5)
- Create a flash artillery game – step 1 (4.79/5)
- Create a Flash Racing Game Tutorial (4.76/5)
- Create a flash artillery game – step 2 (4.74/5)
- Create a survival horror game in Flash tutorial – part 1 (4.73/5)
- Creation of a Flash arcade site using WordPress – step 2 (4.73/5)
- Flash game creation tutorial – part 2 (4.71/5)
- Flash game creation tutorial – part 1 (4.70/5)
- Create a flash draw game like Line Rider or others – part 1 (4.69/5)
- Creation of a platform game with Flash – step 2 (4.68/5)






