June 2010

Goals for Boggs

I’ve made a couple of goals for the game boggs.

  • First was just to complete it and market it as best as possible.
  • Second was to get at least 1 million drinks drank
  • Third is to get 100k game plays

I have completed it, and am trying to get the word out. I submitted it to flashgamedistribution.com and to Newgrounds.com, Kongregate.com, and MindJolt.com

I’ve posted comments on woot to try and get their ‘Flash in the Brainpan’, and avclub.com to get on their ‘Sawbuck Gamer’ feature articles. I couldn’t find who to directly mail for them though, so I just commented on the latest feature. My guesses are that I probably won’t get featured in any of those articles.

I’ve also sent an email to indiegames.com, and will try to get on some indie game sites.

An average game the user drinks about 30 beers so far, so to get to 1 million beers i need about 30k hits. Once I surpass that, my next goal will be 100k hits.

Uncategorized

Comments (0)

Permalink

Boggs

My latest game, Boggs has been released into the wild.

It can be played at
http://www.ryanluce.com/games/boggs
http://www.kongregate.com/games/p0wn/boggs

http://www.newgrounds.com/portal/view/540052

Enjoy :)

Uncategorized

Comments (0)

Permalink

Trailer for my upcoming game: Boggs

Uncategorized

Comments (0)

Permalink

Extending FlashPunk

While making my next game, I’ve extended the functionality of FlashPunk a little bit. This requires modification to the core framework to work, because some variables are private and not protected. Either way, thought someone might find it useful.

Rotated Spritemap – An animated rotated spritemap, allows for animations to be pre rotated, and caches the bitmap for memory conservation.

Autotiled Backdrop – Takes a spritemap and randomly tiles the backdrop with it’s sprites.

These are both raw, and fairly untested, so use at your own risk. They are helpful though, and I think anyone wanting to use them could get them to work following the instructions. I will continue to update these and hopefully they will make it into a future version of FlashPunk

Uncategorized

Comments (0)

Permalink

Woes of poor usability.

Usability is a increasingly large factor in today’s apps and websites. Being able to get the information when you want it is something rather new. Not 10 years ago the thought of browsing the internet, having a world of information, while walking around town on a 4″ color display was unthinkable.

The iPhone really revolutionized this concept by combining phone technology with superb usability. I depend on my iPhone for plenty of things, finding good restaurants, playing games, and whatever miscellaneous things I may come across.

Case in point, today I went to the post office to pick up a package. The tracking number is in ebay, so I browsed to it while at the my local post office. Ebay has a special site just for iphone, which makes it nice to browse on a smaller display. It does not, however, show the tracking number like normal ebay does. In fact, there is no way I could find this info. I downloaded the eBay application, thinking maybe it would be in there. Nope. I opened Opera mini, and the page didn’t render properly. There was no way for me to find the tracking number. Very poor usability, and very frustrating.

That is all for now, just a tidbit I was thinking of.

Never before

Uncategorized

Comments (0)

Permalink

Building bikes

I learned an immense amount about bikes this weekend. I found on bikesdirect.com a pretty cheap single speed bike(mercier kilo tt) and ordered it. I also ordered some new wheels from ebay and new handlebars and seat.

For such a simple machine as a bike, so much care and precision must go into each part. I completely built the bike from the ground up, which was a lot of fun and only took a couple of hours.

Uncategorized

Comments (0)

Permalink

Actionscript Design Patterns: the Singleton

I've been wanting to write down some of the stuff that's in my head for awhile. One of the main things I've wanted to do were some tutorials.  For the most part, I've encountered two types of Flash developers at agencies.

  • Those who know design patterns, but don't want to share the information, and frequently use them to write poor code.
  • Those who are not familiar with design patterns, thought they've heard the buzz word and sometimes ignorantly criticize it.

I'd like to start off with one of the most basic patterns out there, which is also one of the most commonly used.

The singleton is simply an object, or class, that is solely limited to one instance. This same instance can be viewed by any class or object that wants to use its methods, and view it's public properties.

This comes in handy when you want to share data with multiple classes, for instance the current score on a game you're making. Without the singleton you'd have to put the score in some sort of loosely typed global object, where anything can access it and change it's values. Generally, I like to keep my code locked down, so I know which classes are accessing each other. I also like to keep as few dependencies as possible.

Let's take a look at a simple game singleton class, in Actionscript 2.0 first, then Actionscript 3.0:

Actionscript:
  1. class GameSingleton
  2. {
  3.     //the _instance variable is a static variable that holds the single instance
  4.     //of GameSingleton
  5.     static private var _instance:GameSingleton;
  6.    
  7.     //the score variable will only be available through getter/setters
  8.     private var _score:Number;
  9.    
  10.         //I use a private constructor so that only GameSingleton itself can create an instance
  11.     private function GameSingleton()
  12.     {
  13.        
  14.     }
  15.    
  16. /*
  17. * I use a static getter to retrieve the
  18. *_instance variable to whom ever needs it
  19. */
  20. static public function get instance():GameSingleton
  21.     {
  22.         //if this is the first time the instance
  23.         //is requested, make a new one and store it
  24.         if (!_instance)
  25.             _instance = new GameSingleton();
  26.            
  27.         return _instance;
  28.     }
  29.    
  30.     public function get score():Number
  31.     {
  32.         return _score;
  33.     }
  34.    
  35.     public function set score(val:Number):Void
  36.     {
  37.         _score = val;
  38.     }
  39.    
  40. }

Now here's the AS3 version:

Actionscript:
  1. package 
  2. {
  3.     /**
  4.      * ...
  5.      * @author Ryan Luce
  6.      *
  7.      * Actionscript 3 sample singleton.
  8.      */
  9.     public class GameSingleton
  10.     {
  11.        
  12.         static private var _instance:GameSingleton;
  13.        
  14.         private var _score:int = 0;
  15.        
  16.         public function GameSingleton()
  17.         {
  18.            
  19.         }
  20.    
  21.          /*
  22.           * I use a static getter to retrieve the
  23.           * _instance variable to whom ever needs it
  24.           */       
  25. public static function get instance():GameSingleton
  26.         {
  27.             //if this is the first time the instance
  28.                         //is requested, make a new one and store it
  29.                         if (!_instance)
  30.                 _instance = new GameSingleton();
  31.                
  32.             return _instance;
  33.         }
  34.        
  35.         public function get score():uint
  36.         {
  37.             return _score;
  38.         }
  39.        
  40.         public function set score(val:int):void
  41.         {
  42.             _score = val;
  43.         }
  44.     }
  45.  
  46. }

As you can see both are very similar. They both have the same implementation and use, here is an example of how I would use this in a game:

Actionscript:
  1. private function shotLanded():void
  2.     {
  3.     //more typically, in the constructor of any particular class,
  4.     //you would declare an instance
  5.     //such as: private var
  6.     // _gameSingleton:GameSingleton = GameSingleton.instance
  7.    
  8.         GameSingleton.instance.score += 1;
  9.     }

Singletons are used in a variety of cases, and can really help just about any flash app you are doing. They help control your data by enclosing all variable in one single instance of a class, and allowing and class in your application to access that single instance. Throw away your _global as2 reference, and use Singleotns instead! Create less dependencies by allowing data to be shared in one, none connected instance.

Uncategorized

Comments (0)

Permalink