New AIR game - Saturate: A bullet-storm survival shooter

Hi all,
I've been working for over a year on game with a publisher (not this game!), and it is still many months away from release.  In the meantime I was anxious to get something released to the public in the short term, so two weeks ago I started Saturate: A bullet-storm survival shooter as a tribute game to one of my fav PC games, Mono by Binary Zoo.  Written in AIR 13 for iOS, Android and Facebook (iOS under review, and FB coming in a few days), with IAP for those who don't want to earn credits the hard way . I'll update the links as the other platform versions become available:
Available for Android right now!
Pixelthis website
Pixelthis Facebook page
Saturate is a Geometry Wars style two-stick single-screen bullet-storm survival shooter.  There are lots of control schemes to try (and more coming).  Keep in mind that this was a 2-week 'get it out there' marathon, so there are still plenty of features in the pipes (like highscore tables, sharing screenshots to FB and setting them as your wallpaper/bg, different game modes).
The aim of the game is to saturate the screen with color.  Your score is the % of the screen that you fill when you die (and you will die).  The enemies are R, G and B, and they splat the screen with color when they explode.  There are some cool power-ups, and tons of weapons to collect. The sound track is pretty awesome too.
Some background: Pixelthis just turned 10 years old a few days ago, so we've been around the block!  We started with Flash 4 and then Flash Lite 1.1 (way back when) on Nokia and Sony-Ericsson phones.  Saturate is developed using AIR, using our proprietary games platform.  The core of the system is a rasteriser that turns vector graphics to bitmap at runtime (including filters) so that we can run in GPU mode with very good performance, and a callback-based event and tweening system for very fast game loop, animations and messaging.  Saturate uses Milkmangames ANEs for StoreKit and Android IAB, and GoViral for social integration. 
The biggest challenges in development were (1) counting pixels to determine % of screen filled so that it didn't impact negatively on performance, and (2) tracking down and elliminating memory allocations during the game loop.  There are still some optimisations to do, but I think it went pretty well!  Unfortunately it runs a bit too slow on iPad1 when teh action hots up, so that device has been elliminated.  A bug in Adobe AIR that has not been addresed yet also prevents facebook from working on iOS5.1.
Enjoy!
Peter

Thanks lars. Appreciated.
I can't post actual code of the libraries (because it is our 10yrs worth of IP and it's what allows us to make games that run well accross devcies etc) but i can share the basic principles etc!
This is what some example code looks like for making a 'RasterSprite':
// Import the assets from a swc library that contains graphics.
// These are movieclips with a graphic on each frame
import assets.CharacterAssets;
import assets.UIAssets;
// Initialise the rasteriser just once when the game is started, with a ref to stage
Rasteriser.init( stage );
// Rasterise the graphics (this technique is synchronous/blocking) but
// there is another process that is for larger amounts of graphics.
// First we set the 'scale'. This determines how big to rip the graphics so that they
// are always the correct size for the screen/device they are running on.
Rasteriser.scale = scaleOfGame;
Rasteriser.rip( CharacterAssets );
Rasteriser.rip( UIAssets );
// At this point, each frame is 'ripped' to a bitmapData that is cached in a vector
// When we need to create a RasterSprite, we use the following technique, which
// grabs one from a static object pool within RasterSprite:
var character : RasterSprite = RasterSprite.create( 'CharacterAssets', 12, 15 ); // frames 12 to 15
character.gotoAndStop(3); // This would be frame 14 of the CharacterAssets clip
addChild( character );
var titleGraphic : RasterSprite = RasterSprite.create( 'UIAssets', 7 );
addChild( title );
// When we don't need them anymore:
character.recycle(); // Removes from display list and places back in object pool
character = null;
title.recycle();
title = null;
The Rasteriser is a static class that handles ripping the graphics and caching them.
The RasterSprite is a Sprite that contains a Bitmap.  The bitmapData is one from the Rasterisers cache.
The Rasteriser rips any graphics to a bitmapData at any scale, including any transformations, color transforms, filters etc. Everything maintains the correct scale (e.g. if you rip a graphic at scale 5.3, then the filters are also scaled by 5.3).  This is the magic that both allows the games to run on any resolution screen, and also allows the game to use GPU mode while effectively maintaining filters.
This is the basic process for ripping the vector-based graphics to bitmapData.
here we assume that the clip (if it is a movieClip) is 'stopped' on the frame you want to rip:
1) Step through each filter and scale it's properties to the desired scale
2) Add the clip to a container sprite (We rip the container. This is what preserves the clips transformation, alpha etc.  If we rip the clip directly all that stuff is ignored).
3) Find the 'bounds' of the graphics within the container INCLUDING filters.  This is important because if a graphics are 100px wide, the content is not always from x=0 to x=100. It may from x=-26 to x=74.
4) Create a new BitmapData the correct size (of bounds)
5) Create a matrix to offset the content so that it IS at 0,0
6) Use BitmapData.drawWithQuality to draw the container to the BitmapData
7) Create a bitmap with that bitmapData, and offset the bitmap to counter-act step 5 and place graphics back at correct spot
8) Optionally, scale all teh filters back again so that the original clip is not affected
9) Remove the clip from the temporary container
Anything specific you'd like to know?

Similar Messages

  • Pro vs. the new Air

    Since the new MacBook Air came out, I'm very twisted on whether to get the MacBook Pro, or the new Air. Can anyone help?

    You'll have to expalin the type of software your intending on using, if your a 3D gamer, CAD/CAM user, do video work, autio work etc.
    Also explain your intended use, you might be better off with two machines, a desktop and a light laptop.
    Do you like to sit at a desk at home, or in a easy chair, outside by the pool, in class, etc.
    Thanks.

  • Just got new air and trying to set up. When I put in my Apple ID and password it comes up with error message 'can't sign in because of server error. Try again signing on.' Trying again does not fix. I know my ID and PW are right as work on other devices.

    Just got new air and trying to set up. When I put in my Apple ID and password it comes up with error message 'can't sign in because of server error. Try again signing on.' Trying again does not fix. I know my ID and PW are right as work on other apple devices I have.

    Using FaceTime http://support.apple.com/kb/ht4319
    Troubleshooting FaceTime http://support.apple.com/kb/TS3367
    The Complete Guide to FaceTime: Set-up, Use, and Troubleshooting Problems
    http://tinyurl.com/32drz3d
     Cheers, Tom

  • How do I transfer iPhoto library from an old Mac to a new Air and retain the Albums?

    I just transferred my iPhoto library from an old Mac to a new Air by dragging the entire Library from my Pictures folder onto an external HD and then dragging from there onto my new Air. Transfer effected fine and all images now appear in iPhoto on the new Air. One problem: the Albums that were present on the left hand toolbar in iPhoto on my old machine are no longer there, so I have 50,000 images with no organization. Events are still there organized by date so that is something, but the Albums are not there and that is what I primarily relied on. Help please??

    The left hand pane is the source pane. Were both Macs running the same version of iPHoto?
    Try rebuilding the library with the option to Rebuild the iPhoto Library Database from automatic backup.
    OT

  • Swapped my iPad  to new air.   Can not get iTunes audio books I bought  tried not on this iPad but no luck

    Swapped my iPad to new air iPad.  Now can't find audio books I bought from iTunes.  Tried not on this iPad no luck

    I've been having this problem too, but here's the catch: originally it was only with my dad, and only sometimes.  Now it's dad and husband, every time!  Pix go through, via imessage, to everyone else, and they go through to dad/husband if I "send as text" after it fails. 
    And the other annoying thing- the blue bar will run all the way, and it will say "delivered".  So I close out of imessage. When I reopen it again, the "delivered" has changed to "not delivered" with the red exclamation point.  I just googled "imessage not sending photos" and founds TONS of people with the same problem, but no solutions.  (I have rebooted phone, reset network settings, with no luck.  I even had to backup/delete/restore my whole phone the other day for a different reason, and hoped that would fix it, but now it won't send to my dad OR my husband (who is on not just the same carrier, but the same family plan as me)

  • Trouble getting "back to my mac" to work on new Air - and really need this functionality

    This is sort of one of those "asked and answered" threads, but I wanted to share my solution. I love being able to see my other computers remotely. I don't think Apple sells the functionality of remote desktop enough. I have a laptop and I also run to mini servers, one at work, and one at home. When I first got "back to my mac" working with my Apple ID on all three computers I thought I had died and went to heaven. With fast internet access this is really incredible - able to move files back and forth and see different things - even run things like media encoding on another computer so my laptop is not slowed down.
    But when I bought a new Air a couple of weeks ago I ran into a problem. I had done everything right. Each computer allows login with my Apple ID and all the sharing was turned on properly - remember, I was doing this with my previous Macbook Pro just fine.
    But everytime I would click on the remote computer in finder, finder would just quit and restart. Weird. Crash and then restart of finder.
    So I've been fighting with it.
    Then I discovered I could click on "All" in the sidebar (to see all networked computers and servers). Then if I right-clicked on the server that showed up in the list in the main window of "All" I could choose a "connect as" and get it to work. Now it works regardless even if I double-click right on the icon of the remote server in the sidebar.
    If you followed all of that, it could help you. If you're not using this "remote desktop feature, you should.

    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
    The title of the Console window should be All Messages. If it isn't, select
    SYSTEM LOG QUERIES ▹ All Messages
    from the log list on the left. If you don't see that list, select
    View ▹ Show Log List
    from the menu bar at the top of the screen.
    Click the Clear Display icon in the toolbar. Then try the action that you're having trouble with again. Select any messages that appear in the Console window. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message by pressing command-V.
    ☞ The log contains a vast amount of information, almost all of which is irrelevant to solving any particular problem. When posting a log extract, be selective. A few dozen lines are almost always more than enough.
    Please do not indiscriminately dump thousands of lines from the log into this discussion.
    ☞ Some private information, such as your name, may appear in the log. Anonymize before posting.

  • Copy iTunes and iPhoto library to new air mac

    I've just bought a new air mac. I have my entire music and photo library on my imac - which is running snow leopard. I back the imac up to a 1tb time machine.
    I tried to use migration assistant over wireless to migrate info to my air mac but this failed - as expected over wireless.
    I ideally want to copy over itunes, iphoto , files and folders and my windows for mac to the air mac and retain them on my imac.
    Is there an easy way to copy my information to my new air mac ?
    There seems to be lots of hacks and options but I'm not usre which is the best way ?

    Perhaps this will help: http://docs.info.apple.com/article.html?artnum=301748.
    Your iPhoto library is located in the /Home/Pictures/ folder. If you've already migrated the home folder then everything has been moved including the iTunes library which is in the /Home/Music/ folder.

  • I recently bought a MacBook Air.  I migrated the info from my old MacBook to the new Air.  None of my contacts migrated.  I still have them on my old Macbook, Ipad and iPhone.  How do I get them to the new Air?

    I recently bought a MacBook Air.  I migrated the info from my old MacBook to the new Air.  None of my contacts migrated.  I still have them on my old Macbook, Ipad and iPhone.  How do I get them to the new Air?

    You can copy the iWeb application from the desktop machine to your new MBA.  But if it's iWeb 2 it won't work with Mavericks or Mt. Lion. Also  copy the Domain.sites file from the desktop to your MBA as that's the file with your webstite files in it.
    Happy New Year

  • Does the new AIR SDK support iOS 64-bit for Flex Developers?

    I saw that the new AIR SDK(December 18, 2014) has supported iOS 64-bit, but it was only supported in the new compiler. See this:
    Please note that support for creating universal IPA binaries will only be available in the new compiler. The legacy compiler is not (and will not be)
    compatible with iOS 64-bit. Because of this, it will be removed with version 16 of the AIR SDK. To ensure that Adobe as well as third party tools
    are able to work with this AIR SDK, the -useLegacyAOT option will continue to exist, but will be internally mapped to the new compiler.
    AFAIK, the Flex uses the old compiler and AIR SDK for Flex Developers doesn't include ActionScript 2.0 Compiler. As a Flex developer, what shall I do?

    Hi,
    I guess, you might be packaging IPA on windows machine.  Please try latest beta at http://labs.adobe.com/downloads/air.html which has iOS64 support on Windows machine as well.
    Thanks
    Govinda Gupta

  • How can i add and configure a new AIR-LAP1142N-E-K9 Access Point to a AIR-WLC4402-12-K9 WLAN controller

    How can i add and configure a new AIR-LAP1142N-E-K9 Access Point to a AIR-WLC4402-12-K9 WLAN controller

    Thanks alot, that helped me .....
    what about option 43..i am using one wlc and the switch where wlac and APs are connected is playing the role of dhcp server used by APs as there is a dhcp pool configured.  please advise. will the command be
    option 43 hex (f104xxxxxxxxxxxx)  f104 adding to it the management ip address of the wlac in hexadecimal.
    if the ip address is 192.168.10.5  then the command will be
    option 43 hex f104c0a80a05
    please correct me if i am wrong!!!!

  • New Air, New iLife and Consumer video cameras

    Most consumer video cameras use Firewire... the new Air doesn't have this, but the new iLife (which includes iMovie) is one of the big features Apple are pushing with it.
    Whats going on here then? How do they expect people to ingest their rushes??

    most cameras within the last few years should support USB - firewire was more for DV, DVCAM, DVCPRO if i remember correctly. they're aging formats now and things rapidly moving to HD and those cams afaik should support USB - from consumer to professional
    my sony ex3 supports both USB, Firewire & SD - firewire only for DVCPRO i think (don't really use that)
    i'm in a similar boat though with audio as my entire studio is firewire based from audio converters to external DSP, etc...
    just bought 11inch for on the road audio/video editing and may have to buy a USB audio capture device but YA - these are super mobile devices

  • I have a new air iPad, just downloaded a new movie and now I can't play it as it his and all my other movies have a cloud icon, how do I get to play it on the iPad

    I have a new air iPad, just downloaded a new movie and now I can't play it as it his and all my other movies have a cloud icon, how do I get to play it on the iPad

    Tamate46 wrote:
    now I can't play it as it his
    Not sure what you mean by this.  Why can't you play it?

  • When is new Air coming out?

    should I wait to buy a MAcbook Air until a new Air is released?

    I'm afraid that none of us here are party to Apple's release date decisions, even were there to be one in the offing.   It is all about marketing and commercial strategy.

  • New Air 1 minute startup

    Hi,
    I bought the new 13" Macbook Air 2 weeks ago and the total boot time is about 1 minute. It holds on a white screen for about  45 seconds after the Apple logo and cog appears but before the desktop appears. Various YouTube videos of the new Air show it booting in 16-19 seconds so I do not think this is normal. All I have installed is Firefox and DavMail. I verified the disk and repeaired permissions and called Apple support who had me do the same but the problem persists.
    Has anybody else experienceed this? Any ideas what the problem could be?
    Thanks,
    Jay

    Jay,
    The most common cause will be what is listed in your Login Items. Navigate to System Preferences - Users and Groups - Login Items. If you see apps in there you don't want to launch on login then highlight them and click the - symbol below.
    If that doesn't do it then I'd recommend restarting in Safe Mode, this will clear some caches. It's possible one or more has become corrupt.

  • New Air Window - Access to a var in the root Window

    Hi,
    i have a main application and i open a new air window from
    this main application. How can i access from the new air window a
    variable in the main application?
    the variabel in the main application is in a sandbox.
    i use adobe air 1.5 + html + javascript.
    best regards.
    BjT

    Hi,
    There might be another easier way, but this is what came to
    my mind first:
    Take a look at
    http://livedocs.adobe.com/labs/air/1/jslr/flash/desktop/NativeApplication.html
    which has an openedWindows and activeWindows property.Figure out
    the native window you have to access, get to its htmlLoader
    property. HTMLLoader has a window property that gives you access to
    the entire DOM.
    URLS:
    http://livedocs.adobe.com/labs/air/1/jslr/flash/display/NativeWindow.html
    http://livedocs.adobe.com/labs/air/1/aslr/flash/html/HTMLLoader.html#window

Maybe you are looking for

  • HT1386 My device (iphone) does not appear in ITunes. How do I sync?

    Why is my device (IPhone) not showing in ITunes?  I cant sync.

  • Two selectionOneMany boxes, Value not valid option problem

    HI I have two selectionOneMany components on a page. Its just like the case in which a selectionOneMany for a country when changed updates the second selectionOneMany for its cities. In my code I have defered the valuechangelistener for the first com

  • Principal Propagation SOAP Sender

    Hello, is it possible to use principal propagation for the following scenario: SOAP Sender (Basic auth) -> PI -> RFC so that the basic auth user from the incoming SOAP call is propagated to the RFC call br franz

  • XSLT, namespaces and DOM

    Hello, I am trying to do the following: - build a DOM/XML-tree from information in tables using my own namespace - Transform this tree to HTML using a XSL-stylesheet in a file. A simple example I created works when I first save the XML-tree in a file

  • Federated search - specifying the service configuration page

    I've built an interface (web service) to the Portal federated search specification so users can search libraries in our company's document management system (Panagon). I want to specify an administration page, where an administrator can set a propert