8bitrocket.com
30Aug/070

Review: "Carnival Games" For The Nintendo Wii (7.5 out of 10)

"Carnival Games" from Global Star software for the Nintendo Wii is the best game ever made about, umm, Carnival Games. This is certainly a game that would have been a minor failure on any other platform, but on the Wii is an entertaining success. You enter the carnival where you can decide to play a single player game (collect tickets, trade-up prizes, unlock contests) or a multi-player game (use 1 or more Wii-Motes to play any of your currently unlocked games). The multi-player mode will probably attract many people first, as it seems that this is where mini-game collection like this should really shine. In some places, it really does. There are about 25 games, and most of them are very accurate recreations of their real-life carnival counterparts. There are about 8 games that can be played in multi-player mode (2 or more people at once), but the rest make you take turns. This is fun for a while, but it also shows just how shallow some of the games can be. You don't collect tickets or prizes in multi-player mode, and this makes success seem a bit hallow. Single player is much better way to play, even with a group. Taking turns to earn enough tickets to open new games, unlock character modifications, and trade-up prizes is surprisingly fun. This little bit of challenge adds weight to contests that seeme somewhat trivial in multi-player mode.

Note: Don't skip the instructions the first time out, as they have little animations that show exactly how to use the Wii-Mote. Without these instructions some of the games can seem harder than they really are.

Here are list of the initial games and how they fare next to the real thing:

1. Alley Ball: Very very accurate simulation of skee-ball. A bit easy to master though, but like Wii Sports bowling, even the "perfect" shots are not always perfect.

2.Test Your Strength: You can't really simulate hitting something hard with a Wii-mote, but this still well done.

3. Hoops: Basketball shoot. Hard to tell where you are shooting in this one. Still maddenly addictive, but only because you want to figure how the @#$! controls work.

4. Collection Plate: A coin toss. Use the Wii-Mote aim, then flip to throw. Aiming is hard, but he flipping part seems pretty accurate.

5. Spilled Milk: Knock-down 3 milk bottles. Insanely accurate to the actual game.

6. Balloon Darts: hold the Wii-Mote like a dart, try to pop balloons. Fun, but you wish you had more darts to pop more balloons, especially in multi-player mode.

7. Bowler Coaster: Roll a bowling ball and try make it stop in the middle. Too hard to learn, but then too easy to master.

8. Shooting Gallery: Shoot the ducks, don't hit the red ones. Perfectly accurate and fun.

9. Pigskin Pass: (football throw). Very hard until you watch the instructions and see that you hold the Wii-Mote the same way you do in darts...then it is just challenging.

10. Shoot for the stars: Shoot your machine gun, try to knock out 100% of star. Very very hard, but still enjoyable.

11. Frog Leap: See Collection Plate.

12. Buckets Of Fun: Throw a softball into a bucket. Very accurate, but also easy to master.

13. Clown Splash: Shoot water in clown's mouth to pop balloon. Adds a "water pressure" action that is not in any real-life version I've played. Fun game.

14. Hole In One: Golf putt. Kind of annoying actually, but then I did not look at the instructions.

15. Ring Toss: See Frog Leap

16: Ka-Pow: Knock down fuzzy clown heads. Just like the real game.

17. Nerves of steel. Thread a metal ring. Not exactly fun, but it is challenging.

18. Lucky Cups: Throw balls onto a field of cups, try to get it into a colored one. Just like the real game!

19. Day At The Races: Move your horse forward by rolling balls into holes. Just like the actual game.  This is one of the better multi-player games.

20. Dunk Tank: Dunk tank. If you like this sort of thing it's awesome.

There are also 5 games that require 15-25 tickets to play. You get tickets in the single player games. These are:

1. Push A Prize: keep adding coins until a prize gets pushed out of the machine
2. Claw: Capture prize with the claw
3. Going Nuts: Catch nuts in the basket
4. Love Tester: Love tester, like in Moe's Tavern
5. Fortune Teller

There was one problem with these games. My daughter won a "prize" in the "claw" game, but we it was not available anywhere after she got it. This seems to be a minor oversight. If you have to pay to play these games, it would be nice to go back and see your prizes, love test results, and fortunes later-on.

There are also 10 "super games", that you unlock. These are harder or simply more interesting versions of the regular games. For instance, "Super Alley Ball" has blockades much like the practice versions of "Wii Sports Bowling". "Super Balloon Darts" let's you throw as many darts as you want in 30 seconds. These are definitely worth speeding the time to unlock.

While the game has a good variety on contests, there are few games that they missed that would have added to the already robust set of contests:  What they did not include but should have:

1. Fish: Throw ping-pong balls to win fish, trade-up for bigger and better fish.
2. Whack-Mole type game.
3. Hoola-hoop toss
4. Three Card Monty
5. Other Skee-Ball variants (like clown-head skee ball)

All in all, Carnival Games is quite good title for the Wii. It uses the Wii-Mote in a natural way, and has enough variety to keep almost anyone interested, at least for a short time. My kids really dig it. After playing for a short time the first day, one of them said to me "Wow, can we play this all night?" That has not happened since we first played "Wii Sports".

Score: 7.5 out of 10.

 

27Aug/070

Electroserver 4 Announced! Supports 200,000 Concurrent User Multiplayer Flash Games!

The guys over at Electrotank have finally announced the released of ElectroServer 4.0, (ES4)their massive update to their already impressive Electroserver 3 multi-player socket-server.   ES4 is more than just a simple version upgrade.  New features for ES4 include:

  • 200,000 concurrent users.  Site like Webkins now get about 30,000 concurrent users using ES3.  ES4 spreads the load over multiple servers to support many more users.
  • Video and Audio streaming.  One of the (only) advantages of Adobe's server was audio and video streaming.  No more.  ES4 can do it, and at a fraction of the cost
  • Encryption: ES4 uses highly secure algorithms to encrypt data from the client to the server.  This helps bust cheaters, and keep the privacy of legitimate users.
  • Binary transmissions.  Data can be transmitted from client to server and server to client as binary.  This will increase throughput and help reduce processing time on both the client and server.

We have used ES3 for a couple games at Hotwheels.com.   Rebellion Race and the new Finish Line have been very successful with the older technology.  This new version of Electroserver should prove to make even better multi-player games within the grasp of Flash game developers.

25Aug/070

Flash CS3: Actionscript 3 (AS3) Game Primer #1: Tile Maps, XML, and bitmapData

One of the most useful advances in Flash 8 and CS3 for game developers has been the use of raw bitmap data to render on screen images. The CS3 / AS3 implementation has been changed from AS2, so this tutorial will go through the basics of creating, loading, and displaying a screen of bitmap data. We will first create a unique set of image tiles and export those tiles as a PNG file. Next we will load those tiles into a map creation tool (Mappy) and use them to create a screen for a Pac-man style game. We will use a custom Mappy (.lua) script I wrote, especially for this tutorial, to export the screen data as XML. When we finally get to Flash, well write a class that loads the PNG tiles, loads the XML map data, and displays a bitmapData representation of the screen we create.

There are quite a few steps involved, so I will do a moderate amount of explaining, while also providing files to download and use.

Step 1: Creating a tile sheet.
A tile sheet is basically the same as any other image, but it is set up in a unique manner. Our tile sheet will be 512 pixels in width, and 64 in height. This will allow us to have 2 rows of 16 32x32 tiles to use. I won't go into exact details on creating tiles because the scope of this tutorial is based around programming and not graphic design. In any case, here are the basic steps I took to create my tile sheet.

1. I opened up Fireworks and created a new image 512x64.It can be up to 512 pixels in height, but I already have an idea of how many tiles I'll next and 64 is going to be enough. Why max 512x512? This gives us 16x16 or 256 images possible in out tile sheet. Also, a 16x16 grid is pretty easy to deal with for me (math-wise)and for computers.

2. I created a new image the size 32x32.

3. I set the the canvas background color to transparent and zoomed in on the image.

4.Using the pencil tool I edited each of the individual pixels.

5. When I felt I was complete with an image tile, I copied it to the 512x64 blank tile sheet. image. I was careful to put the first image at 0,0, and the next at 32,0, etc.

6. When I was done with my map, it looked like this:

I saved this as tiles.png.

Along with the background maze tiles, I also created tiles to represent the sprites for the game. I have two frames for a Pac-man like character, frames for dots to eat, ghosts, and lastly a two frame animation for power pellets. One of the reasons I am using a .png file is to preserve the transparency of the sprites and also have my choice of millions of colors (not that I used more than 20 in this example). This one tile / sprite sheet will be enough for the entire game. Since we won't be using the ghost or Pac-man characters yet, we'll refer to this as our tile sheet rather than out sprite sheet. BitmapData in Flash deals with both of  these (sprites and tiles) same though, so really one file is capable of handling both tiles an sprites.  It's all just bits, and how you intend to use them.

Step 2: Creating a maze out of the tile map.
One of the most useful weapons in the arsenal of any game developer is a good map editor. Now, as a Flash programmer, you can pretty much make one of these for your self, but I like to rely on a great map editor called Mappy. The basic version of Mappy is free, but I highly suggest spending the $19.00 it costs to register the full version.

Details on Mappy can be found at The Mappy Web Site. I also am not going to go into full details on using Mappy. I will go over the very basic steps that anyone can use to create a level map with Mappy. We are going top use the tiles.png tile sheet we created. The latest version of Mappy needs an extra .dll to use png files properly. So you should take careful note that there is a .zip file of DLLs that will need to be downloaded and copied to the Mappy folder.

Once you have downloaded, unzipped, and placed the Mappy files in a folder (there is no official install program), you will need to unzip the "libpng12.zip" (which can be obtained here) to use .PNG files with the program.

Now let's create out maze tile map.

1. Open Mappy.

2. In the [File] menu, select New Map and set the tile size to 32x32 and the map size to 15x15. The Pacman style level we will create can be easily created in 480x480 or 15x15 32 pixel width and height tiles.

3. Mappy will warn you that you will now need to import a tile sheet into the program to use. In the[File] menu choose Import and then select the tiles.png file we created in step 1.

4. The tiles will show up in the right-hand window. Take close look at the tile sheet and you will notice that a blank tile has been inserted at the beginning of the tile sheet. This is useful for deleting tiles from your map, but isn't an actual tile in your sheet. This will be important when we need to export our data for use in Flash.

5. I used the tiles to create a map that loops like the:

(Mappy showing the tile sheet on the right and the map I created on the left).

6. The next step is to save the file as "maze1.FMP". This will save a file with both the created maze data and the tile sheet together so you can go back in later and edit or update it.

7. I am not a Mappy expert, so there are probably other ways to accomplish the next task, but here is the method I used. We need to export the maze1.FMP data to a file that is usable in Actionscript. Since this tutorial is supposed to cover XML to some extent, that is the format I chose to use. Also, XML is a nice clean, standards based format that is easy to use with Actionscript 3. The problem is that Mappy cannot export directly to XML. At least not at first glance.

You might have noticed a [custom] menu in the Mappy menu bar. This menu contains scripts that have been provided that will allow you to perform custom tasks with Mappy. One of the current provided scripts is called: "Export Flash Actionscript". This is a very useful script that will export out the code to create a multidimensional array in Actionscript from ourt maze1 tile map. This is a great script in of itself, and if we desired to use an array to hold our tile data, it would be sufficient as it stands. With some slight modifications, though, it can be changed to export out an xml file representation of that map.

The scripts are located in the "/luascr" that is in the root of the Mappy program folder. I copied the "Export Flash actionscript.lua" file, renamed it "Export XMl.lua" and created this file: Mappy export as xml script for you to download.

One you have downloaded that script, you need to unzip it into the "/luascr" folder.

Next, you will need to simply edit the mapwin.ini file in the root of the Mappy program folder. You need to add a line in the custom scripts section that resembles this:

"lua16=Export xml.lua", under the "lua15=Set Text Strings.lua" (if that is the last one on the version you have). " lua16 " is simply is the next number in order sequence after the other scripts in the file.

Now we are ready to export the map data as xml.

  • Restart Mappy, load in the "maze1.FMP" file, and then choose the "Export XML" option from the [custom] menu.
  • The first thing you will see is a warning that what you are going to be exporting is simply a flattened version of the map, no animation will be exported.
  • Click [OK] and then type in a name for the xml file. For this example, use "maze1". It will add the .xml for you. If you add the ".xml" in yourself, you will have a strange looking file called "maze1.xml.xml". This mostly has to do with my being a complete novice at "luascript".
  • Click on [save]
  • Next it will ask you how much to adjust the map values. This is an important question because Mappy added that extra blank tile to the beginning of our tile sheet. Because of that, the actual map values are 1 greater than they will be when we use the original tiles.png file as our source for times in Flash. .
  • For that reason, put a "-1" into this dialog box and click on the [OK] button.
  • You will now have an exported xml file of the tile map.

The XML looks like this for the first row

[cc lang="javascript" width="550"]

8
2
2
2
2
2
6
14
7
2
2
2
2
2
9

[/cc]

Step 3. Using the tile sheet and tile map in Flash CS3 with AS3
The next step is to take the maze.xml and the tiles.png file and put them in the same folder. In this same folder (for ease of this simple tutorial) create a new Flash CS3 file called. tileMapExample.fla

Change the document class to TileMapExample (in the document properties window).
Create a new AS3 script file called TileMapExample.as.

Here is the first section of code for the TileMapExample class: [cc lang="javascript" width="550"]package {
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.geom.*;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.*;
import flash.net.*;

public class TileMapExample extends MovieClip {
[/cc]

First we create a generic package to house our class. If this was an actual game called Maze Man, I might create a package com.8bitrocket.mazeman and then add all of the mazeman classes to that package. I would still keep the .fla in the root and maybe place the .png and .xml files in folders called /gfx and /maps. In any case for this relatively simple example, all of the files will be in the same folder.

Next we import in the packages and classes we will need to accomplish loading assets, using xml, and displaying bitmaps from tile sheets. Play special attention to the loader classes because loading assets has been completely changed in AS3.

The final line is our class declaration. This class will extend MovieClip because it is actually the root document class of the .fla file. Also, this makes it easy to use it as a base container for our example maze screen.

[cc lang="javascript" width="550"]
private var loader:Loader;
private var xmlLoader:URLLoader; //xml loader
private var mazeData:XML; //holds xml data
private var aTileMap:Array=new Array();//holds the final array of tile data
private var screenBitmapData:BitmapData;//holds the actual screen to display
private var tilesBitmapData:BitmapData;// holds our loaded in tile sheet
private var screenBitmap:Bitmap;// display object for screenBitmapDat
private var mapRows:int=15;/holds the length of the mapin rows
private var mapCols:int=15;//holds the width of the map in rows

private var tileSize:int=32;
private var screenWidth:int=480;
private var screenHeight:int=480;

public function TileMapExample() {
//load in tile sheet image
loader = new Loader( );
loader.contentLoaderInfo.addEventListener(Event.INIT,tilesLoadInit);
loader.load(new URLRequest("tiles.png"));

}
[/cc]

Here, we begin to instantiate all of the variables we will need to this example.

The Loader variable will hold the loaded data for our tiles.png file.

The xmlLoader variable will hold the loaded in xml data from maze1.xml.

The mazeData variable will hold the xml representation of the loaded in xml data.

The aTileMap variable will contian an 2 dimensional array of tiles organized by rows, then columns in each row.

The
screenBitmapData variable will hold the bitmapData representation of our screen to display.

The tilesBitmapData variable will hold a bitmapData representation of the tiles.png loader (Loader var)

NOTE: The rest of this tutorial seems to have gone on vacation. I am looking for a back up. But, here is all of the source code for download:

Example SWF

22Aug/070

A Tribute To Larry Snyder From The Midnight Coders, makers of WebOrb for Flash

(Larry Snyder: 1940-2007)

I was very upset to learn today that Larry Snyder has passed away., The 67 year-old was head of sales for Midnight Coders, the developers of WebOrb, an ASP.NET 2.0 replacement for Flash Remoting.   I'd been in negotiations with Larry for the past 7 months to purchase WebOrb for my job at Mattel Toys.  We were just getting the final P.O. signed when Mark Piller of Midnight Coders called me to give me the news that Larry had died last Saturday at his home in Texas.

Larry was not like any other "technical salesman" I had ever met.  He knew the product he was selling inside and out, and really believed it would help us out.  There was absolutely no B.S. from Larry.  He knew how to talk to technical people, and where to draw the line. I could also tell from the way he he talked, that he really admired Mark Piller and the tech team at Midnight Coders. Larry was a persistent salesman, that is for sure, but always in lovable, big-hearted way.  He had a personality as big as Texas, loved a good (clean) joke, and never seemed to get discouraged no matter what red-tape corporations like mine threw at him.

In our many phone conversations Larry relayed a funny story to me about Mattel.  Larry had been a technical salesman for many years, and about 20 years ago, he was working on selling a different product to the company.  It was the last day of the month, and still waiting for signature to make his sale, Larry took the initiaive and drove 100s of miles to the Mattel headquarters, trying to find the right person to sign the agreement.  However, he had no idea where to find him.  Mattel was (and is) a huge company with 1000s of people at their corporate offices, with extremely strict rules about who and what can come in an out of the buildings. Sitting in his car, contemplating his next move, an employee from Mattel walked over and asked Larry if he needed any help.  Larry said "yes, he was trying to find someone to sign his sales agreement so he could make his month-end."  It turned out, the guy he met in the paaking lot was the same guy that needed to sign the agreement.  He got it signed, and made his numbers.   That was Larry in a nut-shell.  He was full of life, full of ideas, and always going the extra mile to make something happen.

I was on vacation last Thursday and Friday, and Larry left me a message on my phone while I was gone.   When I came in Monday and listened to my voice-mail, I heard Larry's voice say "Hello Steve, this is Larry from Midnight Coders...".  I did not let it get any further.  I knew what Larry wanted, he wanted to know where we were with our P.O.   I deleted the rest of message without listening to it.  I would check the P.O. and call him later.   If not, he would call back.  He always did.  I enquired about the P.O, then blissfully forgot about it.   Until this morning, when Mark from Midnight Coders called to tell me about Larry.   After I got off the phone with Mark, I remembered the voice mail.   Larry always called me late in the day.  If he left the message on Friday,  I very possibly could have deleted the final sales call Larry ever made. I felt a chill around me.  I wished I could listen to Larry "nag" me about the P.O. one more time, but I'd never hear from him again.     No longer will I be so quick with '33' (fast worward) + '7' (delete) on my Cisco I.P. phone when listing to my voice mail.

Right now my plan is to make sure Larry's work was not in vain.  since Larry never got to see us finally close the deal, I'm determined now to get it done as soon as possible.    I wanted to finish this blog entry stating how our P.O. was finally approved, but I can't.  It still needs one more signature.   Still, Larry was so full of life, and such a presence, it's hard for me to believe that he's not out there somewhere, right now, waiting for the phone call that will tell him the sale is final.  Honestly, don't worry Larry, I'm working on it.  I promise.

Rest In Peace Larry,

Your Friend,

Steve Fulton

(Read Mark Piller's Tribute To Larry Snyder here: http://www.themidnightcoders.com/blog/

Also, check out WebOrb here: http://www.themidnightcoders.com/.  It really is a great way to connect Flash to back-end data nad services.

 

 

19Aug/070

Where is the great, all-encompassing history of Atari?

OK, now that I've suffered through the Atari bashing in the well-written but overly biased Commodore love-fest On The Edge, and complete disregard for Atari history in books like Fire In The Valley and Accidental Empires, I'm ready to ask the question:

Where is the great, all-encompassing history of Atari?

There have been some books in the past that have to covered part of Atari's history. However, other than the near assassination attempt Zap! written 25 years ago, no other fully Atari-centric book to ever be published. Atari has appeared as major player in several other books such as the Nintendo-centric Game Over , and in Steven Kent's amazing, but far too-general, Ultimate History Of Video Games , but Atari has never really starred in a proper book of its own.

Where is the great tome of Atari? The book that covers the engineering, creativity, business and social impact of the world's first great video game company? A warts and all book that covers coin-ops, home video games, computers, Atari Inc, Atari Corp, and Atari Games equally and in their full glory (or non-glory)? Where is the book that interviews and or covers all the important players like Nolan Bushnell, Al Alcorn, Joe Keenan, Ted Dabney,Steve Mayer, Harold Lee, Bob Brown, Jay Miner, Ed Logg, Ed Rotberg, Alan Miller, Larry Kaplan, Bob Whitehead, David Crane, Larry Wagner, Ed Riddle, Rob Fulop, Jay Margolin, Owen Rubin, Joe Decuir, Doug Neubauer, Chris Crawford, Brad Stewart, Ray Kassar, the entire Tramiel clan,and all the other great programmers, engineers, artists, business and creative people that were part of Atari's rich 25 year history?

I want a book that doesn't just regurgitate things we already know, but really gets into the stories of people as well as the products.  I want read about products and games and their effect of the people who made them as well as people who used and played them.   I want to read rumors confirmed and myths debunked.  If it really happened, I want read an interview with the guy who drove those truckloads of Atari products to the Arizona desert, and the first-hand account of the guy who paved over the enormous hole with concrete.  I want to know if the Tramiels were really as bad as they have been made out to be, or if instead they just simply rode-out the wave that Bushnell and Dabney started in 1971.   I want it all, and I want to read it as soon as possible.  Is that too much to ask?

A few years back I started trying to write my own history of Atari. I even enlisted an actual writer, Andrew Bub over at GamerDad.com to help write it. We put together a full outline, and several sample chapters to send around to publishers and agents that Andrew knew in the industry. You know what happened? Nothing. The publishing industry did not seem interested in Atari or its history at all. I'd blame our research and writing, but the rejections came back so fast, we were never sure if anyone ever read or understood any of it. In general, it seems, the publishing industry doesn't seem very interested in books of this type. Most of the books previously mentioned here were self-published by their respective authors. I have heard of other people researching and writing books on Atari, but the stories are fleeting and no solid information ever surfaces. There was a mention on http://www.classicgaming.com once of someone working on a book, but there was never a follow-up. A few months ago, a mysterious poster on our forums mentioned that he was working on one, but I've yet to hear any more about it. A request to interview this person for the site went unanswered.

Why does an all-encompassing book about Atari seem like such a taboo subject? Why has no "legitimate" writer tried to tackle the subject? Why won't publishers even consider a book about Atari? Why are actual projects talked about in hushed voices, or kept completely secret? I no longer have the drive or energy to attempt to write a book about Atari myself. I'd rather spend time with my kids and work on my own projects then write about other people's work. However, I sure would like to read someone else's well-researched, well-documented, and above-all, well-written account of the story of Atari. Who will do it? Who will write it, who will edit it, and ultimately who will make it worth-while by actually publishing it?

I'm still waiting.

 

Filed under: Atari Nerd No Comments
7Aug/070

Flash CS3: Actionscript 3 (AS3) Primer: Where does my code go?

Actionscript 3 is complete re-write of the Actionscript language that fuels Flash's ability to create dynamic content and games. It could be said that AS3 is such a departure that many designers and some programmers will be left in the dark by this new version. I for one, think AS3 is awesome. It fixes many of the problems I had with AS2 and it also standardizes everything into a hyper charged object oriented framework. Today we are going to look at the very basics of using AS3 with Flash CS3 and will answer this age old question - Where does all my  main timeline code go? We will also cover the basics of the new event model and create some interactive actions.

Here I will break down the merits of three basic methods of adding code to control your AS3 Flash CS3 application:

A. On the main timeline (sounds obvious, doesn't it?).
Yes, code can still go here, and it is useful for basic actions, but you should shy away from this as much as possible. Also, code cannot be placed directly on a button or movieclip instance. This is the place that most designers and basic coders will want to put their code. AS3 has replaced all of the old mouse and keyboard event code with the new event broadcaster / listener model. You cannot put code directly on a movieclip or a button instance. This alone is going to drive many basic coders and designers batty because some are used to delivering their designs / basic coded .fla files with event code directly on button and movieclip instances.

B. In a class instance that extends movieClip - the composition method.
For the uninitiated, this is where it starts to get a little bit complicated. I have two basic theories on how best to create the main code for your new Flash CS3 / AS3 project.. The first method, I call composition, is to put all the code for the .fla in a class called Main (or name it the same name as your movie). For example, if your movie is called DonkeyKong.fla, then your main class that controls the game can be named DonkeyKong, Main, or something like Game (or any other name you choose). It doesn't matter what you name it, only that this will replace most if not all of the main timeline based code that you would have used in a Flash 8/AS2 solution. This is called composition because your Main class and your main timeline are only related by composition - neither inherits or extends from one another.

In this composition method, you have not replaced the main timeline class with a new class (that comes next), but have created an instance of a Main class in your main timeline script code. This class must extend the MovieClip class. To implement this class, you add code to a frame of the main timeline to create an instance of this Main class (or whatever name you gave it), and then add it to the displayList for the main timeline. Inside this Main class you write code, and use other custom or built-in classes to completely control your movie. This would include controlling any designer provided animations, instances of library symbols, etc. With this solution, you still need to put code on the main timeline. At least one frame of the main .fla file must have the code necessary to instantiate the Main class and add it to the root displayList.

Here is a step by step example: We are going to create very simple application that waits for a button click and then displays a message to the user.

1. Create a new.fla and call it composition_sample.fla. - Make sure to choose a new Flash File (Actionscript 3)
2. Insert a new new symbol, name it button1, and set it to be a MovieClip
3. Edit this symbol. Put a 100 x 50 rectangle @ 0,0. Add a static text box with "Press Me" as the text. Make the box gray with a black border and make the text yellow..
4. Select the text and make it into a movieclip ->Insert ->Convert to Symbol. Name it "pressme" in the library. Also, give it an instance name of "pressme".
5. Add Button1 to the main timeline stage @ 100,220. Give it an instance name of "click_btn".
6. Add another layer on the main timeline stage.
7. Add a text box directly on the main timeline stage in the new layer. Put it underneath the button, make it dynamic text and give it an instance name of "messageBox_txt".

It should look like this (if you change the document background to a light gray.

8. The next step is to write a Main class that will act as our main timeline controller.
9. Create a new Actionscript file, name it Main.as and place it in the same folder as the composition_sample.fla.
10. Below is the code for the Main class.

[cc lang="javascript" width="550"]
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip {

var timeline:MovieClip;
public function Main(tl:MovieClip) {

timeline=tl;
timeline.messageBox_txt.text="I have not been pressed."
timeline.click_btn.addEventListener(MouseEvent.MOUSE_DOWN,clicked);
}

private function clicked(e:MouseEvent):void {
timeline.messageBox_txt.text="I've been clicked!"
removeEventListener(MouseEvent.CLICK,clicked);
}

}

}

[/cc]

1. First we declare a generic package for our class.
2. Next we import the MovieClip and MouseEvent classes. The MovieClip class must be imported because we are going to extend MovieClip.
3. Next we create a variable called "timeline" to hold a reference to the main timeline.
4. Our Main class constructor comes next. It accepts in one parameter, a movieClip that will reference the main timeline.
5. Next we set our local timeline variable to equal the passed in tl value.
6. After that, we use that variable reference to add some text to our messageBox_txt that we placed on the main timeline.
7. The final line of the constructor is the creation of an event listener to "listen" for mouse clicks on the "click_btn" that we placed on the main timeline.
8. There is one function left, and it is the "clicked" function that is fired off when the user clicks on the "click_btn" button.

Our Main class is ready, all we have to do now is a add a layer to the "composition_sample.fla" and call it code. In the actions panel for the first key frame in that layer, put the following code:

[cc lang="javascript" width="550"]
import Main;
var main:Main = new Main(this)
addChild(main);


[/cc]Publish this movie, click on the button and you should see the text change.
Below is a screen grab of the working output.

Download the source files

C. In the main document class (the extension method)
The next theory is very much like the first, with one major exception. You still must create one Main class that controls the entire movie, but instead of creating an instance of that class on the main timeline, you just set this class as the Document Class of the main timeline. This can be done easily in the main document properties window. This is my preferred method, and a step by step example is below: I call this the extension method because your Main2 class is basically an extension of the mainline. It is the main timeline and no composition or reference passing is necessary for it to gain that control.

1. Make a copy of the composition_sample.fla and call it documentClass_sample.fla.
2. Make a copy of the Main.as and call it Main2.as
3. Edit the Main2.as and change it to look like the code below:

[cc lang="javascript" width="550"]
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.text.*;
public class Main2 extends MovieClip {

public function Main2() {
messageBox_txt.text="I have not been pressed."
click_btn.addEventListener(MouseEvent.MOUSE_DOWN,clicked);
}

private function clicked(e:MouseEvent):void {
messageBox_txt.text="I've been clicked!"
removeEventListener(MouseEvent.CLICK,clicked);
}

}

}

[/cc]

This is very similar to the Main.as, but we have made some definite changes.

1. We need to now import the Flash.text.* set of classes to deal with the textBox placed on the main timeline.
2. The new Main2() constructor no longer needs a reference to the main timeline because it IS the main timeline.
3. We have also removed all declarations and references or the timeline variable as they are not needed anymore. As you can see, the messageBox_txt and the click_btn as actually part of this Main2 class now, so no need to reference the "timeline" variable when accessing those screen objects.

To see this example in action, we must make two more changes to the documentClass_sample.fla.file.

1. Remove all code in the first frame of the main timeline. It is no longer needed.
2. Click on the document stage (or the sides of the stage), but not on any the button or textfield. This will display the movie properties in the properties window. If that window is not showing at all, you can make it viewable by selecting it from the window >properties menu item.
3. Now, enter Main2 in the textbox for Document Class.

That's it. Publish the movie.
Download the source files

I think this second method if more elegant, and easier to understand that the composition method, but both can be used just as easily.

That's it for this lesson. We have covered the basic ground to help you get started in AS3 for Flash CS3. Good luck and have fun.

4Aug/070

Atari Haiku Archive

We at 8bitrocket.com created a bunch of "Atari Haiku" a few years back for a blog on AtariAge.com.     Since I want to start creating more Atari Haiku and other poetry (there is no explanation for it so don't ask) I thought I would start by posting all of the Atari Haiku we wrote years ago, and then start fresh with new content. So, without further ado, here are ALL the Atari Haiku in our archive:

Breakout 2600

Hypnotic death notes
Each block wails an 8-bit tone
Blinks out then silence

Burrow A Hole Through
Your color-banded shield
Watch ball go ape-crap

Difficulty B
Paddle too tiny. Back to
Difficulty A

One last little block
Yes! I cleared level two
What? No Level Three?

(Author: Steve Fulton)


Lynx Console

Plays video games?
Strap two on and go skiing
Those babies were huge

Kicked Gameboy's ass
Color graphics, stereo sound
But no one noticed

Too few game choices
No ads, no distribution
Same Atari Corp.

(Author: Steve Fulton)


 

Space Duel

Two tethered as one
Rhythmic double thrust and shoot
Climax together?

Floating though space
Double shields, double shots
This ship is bad ASS!

Shoot the big boxes
Shoot all of the small boxes
A rock hunt? No, not!

The green one is hit
Deceptive deadly spirals
Red one is slowed

Slowly my ships spin
The small green shots trickle forth
From tethered ship love

Oh crap, what is that?
Double Dutch saucer power
A gauntlet of shots

No match for Gauntlet
Red one sparks, Green one is next
Climax together!

(Author: Jeff Fulton)


 

Supercharger!

Gave me 4 more K
Gave me a tape interface
Thanks, you gave me hope

Mind master mazes
Find the shapes, solve the puzzles
Was I a lab rat?

Frogger on cassette
Pummeled frogger on cartridge
Back to the stone age

A real RPG?
Dragonstomper came very close
But I could not save

(Author: Steve Fulton)


 

Behind Jaggi Lines

Behind Jaggi Lines
Not Rescue On Fractulus
That name really blows

(Author: Steve Fulton)


 

Mother's Day

Electronic Games
A Mag Of Video Games!?!
Mom Was Not Amused

Can We Buy It Mom?
Waste Your Allowance On It?
Games Will Rot Your Brain

Tapes? No They Are Not
No tape what-so-ever in there
Mom, Just Microchips

My Mom Would Not Play
But Then She Tried Asteroids
Joystick War Ensued

For My 12th Birthday
Missile Command, Adventure
Mom Got Them For Us

(Author: Steve Fulton)


 

1450 XLD

My love grows for you
Day by day oh lovely one
You, forsake me not

Double disk drive love
Four function keys of pleasure
Help, reset, home, start!

Freddie chip on board
Three Hundred Baud Modem in
The White and black case

Oh talk to me sweet
With that built in sexy voice
Sweet nothings lie not!

Certainly they do
1450XLD
Vaporized oh no!

(Author: Jeff Fulton)


 

Asteroids 2600

Looking for computers
I see you under the glass
Evil Asteroids

Your brown box taunts me
Sixty-Six variations
Well worth the money

Asteroids float up
Nothing like the arcade game
Asteroids float down

A wave of nausea
Thigh stings from the pain of a
Hole burnt in pocket

Yet, I still play it
Home is not like the arcade
But I can reset

The beat transcends all
Hypnotic flashing space rocks
I give into it

(Author: Steve Fulton)


 

Asteroids - 5200

Prototype lifestyle
Sitting on a shelf somewhere
Waiting to have life

They programmed me to
Launch the 5200
Into hearts and minds

My graphics are great
As if you were in the arcade
But with no vectors

I am unwieldly
I cannot be controlled
I'm a maverick

I am still just code
A burned eprom demo
A shadow, a ghost

I sit in the dark
Longing for a shipping date
Not my destiny

(Author: Steve Fulton)


 

Baptism By Pixel

The back of the store
1977
Right of the housewares

Next to the fire door
Heavy Sixer with Combat!
Two wide-eyed kids

Thumbs on the buttons
CX-40s in our palms
Hands and eyes in-sync

"This f-ing rules man!"
"cool-ass games on a TV!"
"Much better than Pong!"

Tanks, bi-planes and jets
Bouncing shots, racking-up scores
We play while mom shops

"This aint no arcade"
Yells the TV salesman in
The C&R suit

He says "That's it boys"
He then hits the power switch
"Not get outta here!"

We skulk away
From the TV section, but
We will be back soon

(Author: Steve Fulton)


 

Raiders Of The Lost Ark 2600

Note: My brother and I attended many 'gun shows" with our dad in the early 80's because he was a Civil War relic collector - back when Civil War relics were dirt cheap and gun shows were only 50% crazy people. We went for the hot dogs and to collect army patches. However, this one glorious time in 1982, we found a guy selling Atari carts, and we spied one we had never seen before...)

-

Going to the show
Oh yeah, the gun show that is
Freaks with guns, how safe!

All day there with dad
Buying Civil War relics
Nothing here for us

What is this I see?
The Atari Fuji symbol?
Here with the zealots?

Beside the clips
Behind all the ordinance
A rack of boxes

Yes! Atari carts
One we have never seen
Movie license game

Indy on the box
A whip, A gun, joystick fun?
Not really, how lame

Scattered pieces
Of the Covenanent Ark map
Snakes and whips, what crap?

Buy a parachute
Jump off the menacing cliff
Float into the cave

I cannot make it
I could never get in there
Frustration swells up

Broken CX-40
Thirty-five dollars lighter
Ms. Pac-Man calls me...

(Author: Steve Fulton)


 

S.B.A.C.E. : Atari Users Group

Note: S.B.A.C.E. was the local Atari Users Group (Soth Bay Atari Users Group). They wre a bunch of old dudges who were annoyed that these little kids (us)were invading their hobby. It was still cool. SBACE still exists, although in a much different form. You can see what they are up to here: SBACE : South Bay All Computer Enthusiasts

-

1983
Computers still a hobby
User groups flourish

We found our local
Set of fans in the back of
Antic Magazine

South Bay Atari
Computer Enthusiasts
A gaggle of geeks

Met in a small hall
Across from a gay bar in
North Redondo Beach

Lucasfilm once came
To show us their first two games
Before they were out

Atari ruled
No 'Commode-Door' 64s
Allowed anywhere

The high-tech lost cause
Relentless devotion to
A fading image

 

(Author: Steve Fulton)


 

Fire Truck ' Coin-op

On black and white roads
Through sleepy suburbs we drive
Must get to the fire

You sit and I stand
Grab your wheel and prepare to haul
The house is burning

Time is running out
Swing the cab over right, I will
Swing the ladder left

We never make it
The road is always too long
The flames burn forever

(Author: Steve Fulton)


 

Starleague Baseball 'Atari 800

Every store sold games
I bought Star League Baseball at
The May Company!

Liners Or Sluggers
Choose from four different pitches
Such Simplicity!

Isometric view
The whole field on screen at once
Such economy!

7th inning stretch
Ads displayed on the scoreboard
'Twas love at first sight

(Author: Steve Fulton)


 

Donkey Kong 2600

36 hours straight
Moving boxes so Grannie
Could live in Van Nuys

Dad took me to buy
Any Atari game I wanted
I chose Donkey Kong

Only Two Levels?
Nice sabotage Coleco
This game really sucks

Garry Kitchen did
A fine job programming it
I'm not sucking up

(Author: Steve Fulton)


 

NBC News Capsule

1982
Atari on the TV
Yes, it did happen

8:30 PM
Monday Night news brief oh boy
Berzerk commercial

Atari paid for ads then
Too bad it wouldn't last long
Sales had a huge price

Tramiels saved
Atari's good name, Power
Without the big price

Never Atari
Was to be found on the tube
Not ever again

Power without the
Sales means your company won't
Last a decade on

Promotion of some
Type would have helped a lot
But none ever came

The other machines
Won. I wonder what one News
TV Ad would have done?

(Author: Jeff Fulton)


 

Crush Crumble And Chomp - Atari 800

Crush Crumble And Chomp
You are a monster, you live
You eat, you destroy

Bash through the city
Police cars chase, shoot to kill
Yum! Very Tasty

Here come tanks and planes
You fight, the battle is fierce
Yet, you carry on

What, a scientist?
Is that his secret weapon?
Monster dead. Restart.

(Author: Steve Fulton)


 

Empire Strikes Back - 2600

In my Snow Speeder
Skywalker, is damned chump
Compared to me

AT AT's aim for our
Last Power generator
They will not succeed

Tracking the walkers
I evade their laser bolts
My attack run starts

I swoop down at them
Aiming for the head, I fire
Their armor is tough

I spot a weakness
The metal beast's neck flashes
I'm in for the kill

Metallic legs drop
Knee bolts crush under the weight
The body explodes

(Author: Steve Fulton)


 

Star Wars ' Coin Op

'77
X-Wing battles fueled my
Seven year old dreams

Video games soon
Represented the far far
Away galaxy

But not exactly.
Space Invaders, Asteroids
And Galaxian

Every enemy
Was a tie fighter, every
Hero, an X-wing

Until finally,
1983, Star Wars
Got its own coin-op

Pilot an X-wing
The Hulking Death star awaits
Your vector attack

Dive into the trench
Fire the proton torpedoes
Goodbye exhaust port!

At 13 years old
My Star Wars dreams realized
I could now move on

(Author: Steve Fulton)


 

Pele's Soccer ' 2600

A squad of three men
Are attached together forever
They have but one goal

Moving as a team
Kicking out towards the ball
Just like chorus girls

Totally in-tune
In-sync, attached forever
Complete unison

Their goalie watches
Mesmerized by our footwork
The shot comes quickly

Into the corner
The crowd erupts, the sky lights
With a fireworks show!

(Author: Steve Fulton)


 

Night Driver 2600

Ever winding road
The dwindling sunlight puts my
Life in grave danger

Paddle controller
Rests in my left hand, my thumb
Ready to hit the gas

Right hand steers the car
I can't stray outside the lines
Certain death awaits

Time ticks ever downward
The horizon forever black
All an illusion?

(Author: Steve Fulton)


Note: At this point I could not think of any more Atari Haiku subjects, so I thought "why not write the entire history of Atari in Haiku format?". Why not? The number reasons that piled up on the mere mentioned of the idea are overwhelming, but at the time I still tried it. It lasted for two entries.

-

History Of Atari: Part 1 : Discreet Logic Breakthrough

In '71
Nolan Bushnell works all night
At home on his dream

His education
Space War on the PDP
CRT burn-in

Could he recreate
Million dollar computers
With a game to play?

A brilliant idea
No computer need apply
Only circuit boards

Minor technical
Step backwards, a consumer
Leap stratospheric

Logic chips placed
On a PCB, so cheap
Could this really work?

Bushnell's game took shape
He invented a medium
Next stop, mass Market

(Author: Steve Fulton)


 

History Of Atari Part 2: A Trivial Pursuit

Computer Space, done
Nolan made it in the off hours
From his Ampex job

He sold his work to
Nutting And Asscociates
They made early games

Coin trivia games
Were Nutting's forte before
Bushnell arrived

Their accomplishments?
Dual IQ ,Computer Quiz
Then Computer Space

They saw the future
In Bushnell's gaming vision
Right idea, wrong time

They could not sell it
Arcades were not ready for the change
Pinball was the king

Computer Space rules
Were far too complicated
For a drunk bar crowd

Bushnell decided
To work on his own next time
Syzygy formed

Nutting kept going
They made games for a few years
Then they disappeared

First video game
Company, makers of quiz games
Became a footnote

Born on trivia
Coin-ops, Nutting ended up
Trivia themselves

(Author: Steve Fulton)


 

Dungeon Master (Atari ST)

The Hall Of Champions
Choose the four to venture forth
Go into the depths

Hey, are you hungry?
How about a few wormrounds?
Mmm, taste good don't they?

Can't solve a puzzle?
Try stepping backwards champion
Find the pressure plates

Need more ninja levels
Drop everything, start throwing
Down the hall and up

Repeat this for hours
Have I made neophyte yet?
Hey, I'm an expert!

I see the ending
Lord Chaos, teleporting!
STOP TELEPORTING!!!

(Author: Steve Fulton)


 

 

 

 

 

 

 

Filed under: Atari Nerd No Comments
   
This site is protected by Comment SPAM Wiper.