I was a bit anti-Ouya in the run up its release – what I saw as its stance of championing “Free to Play” made me uncomfortable. Then, at some point before its release, they stopped using the term “Free to Play” and started using the term “Free to Try” – a concept I’m entirely cool with. That was enough to turn me from anti-Ouya to Ouya-neutral – it took getting my hands on one for 10 minutes to make me pro-Ouya. This thing is awesome.

For fun, I ported a bunch of my old flash games to it! Here’s the complete list:

Memrrtiks, Suashem
Don’t Look Back
Oiche Mhaith
American Dream
Hero’s Adventure
Bullet Time

I’m pretty sure I’ll be porting VVVVVV and Super Hexagon to it too, when I have time to get around to them. Probably soon! Ish!

(p.s. If you’re a flash developer looking to port stuff of your own, you might find this joypad class I made useful (with modifications by Hulk Handsome). It requires the AIR 3.8 beta, and the SWC from this adobe tutorial.)

30 thoughts on “Free to”
  1. Oh Excellent! Im an Actionscript dev and I was looking to do some OUYA Tinkering this weekend. That Joypad class will come in handy! Thanks.

  2. oh my god thank you terry. i spent today and yesterday hacking together getting the ouya thing to work (it seems it doesn’t play nice with air 3.7, or I messed something up)

  3. Have you noticed any input lag on the controllers? I’ve heard such mixed reports about this. That’s probably the last reservation I have for buying an Ouya.

  4. Oh yes, please, Terry!

    I’d love to have those two amazing titles on my OUYA, although I already own them several times over because of Humble Bundles.


  5. This is exactly what I was hoping for when I started seeing your other games show up on the ouya store.

    I’m super excited for it.

  6. Excellent job on the joypad research. Just saved a load of devs hours of fannying around with event codes.

  7. Just came to say thanks after I noticed that many of my favorite games on the OUYA were created by you.

    PS. So far all the games of yours that I’ve tried work with an xbox360 wired joypad, which is essential as my OUYA joypad won’t pair, so a million thanks for that.

  8. Just want to add my voice to the other thank-yous. We had a party yesterday and the two biggest crowd-pleasers (aside from the booze and the BBQ) were “American Dream” and “Organ Trail”. I can’t wait for your next game.

    -Jakers in LA

  9. Looking forward to play Super Hexagon on a 40″ screen! I bought the game already on Play store, Humble Bundle but would gladly pay again to see it in the OUYA, this game is so awesome! (hope I got the nerves to ever complete it…)

  10. I’m getting an error when I try to use the joypad class.

    C:\Users\Leebo\Desktop\Flash\Platformer\src\Joypad.as(117): col: 68 Error: Access of possibly undefined property id through a reference with static type flash.ui:GameInputControl.

    This is the same for everything that references the “id” property of the “control” variable.

    I’m a relative newb with AS3 so maybe I’m just doing something stupid?

  11. Yeah, that’s just the SWC from the adobe tutorial thing. Download the example from that page, then include the SWC with the project in flashdevelop. GameInputControl is part of that.

  12. hmmm

    Try manually setting the swf-version – add the following to the compiler options, see if it fixes it?

    Project –> Properties –> Compiler Options –> Additional Compiler Options –> -swf-version=20

  13. It’s working now!

    I did so many things that I’m not sure exactly which one was the one that worked.

    Thanks so much =)

  14. Thanks for this great example class. I was experimenting with the GameInput API but could not yet get it to work. I read somewhere one of the tricks is to create the gameinput object at the very start (first frame) of the program, which you also suggest. It worked straight away! Now it’s just a simple matter of building a game around the controls. πŸ˜‰

  15. Hi Terry, I know you’re a very busy man, but I was just wondering if you could quickly take a look at what I’ve done here as I can’t seem to get the controller to work!

    1. I added the specified SWC
    2. I added the joypad class
    3. I added joypad.init(stage); to my init function in my Main.as
    4. I’ve been using the class like this in my code (this is in a level class):

    oneLeft = joypad.DPAD_LEFT || joypad.STICK_LEFT;

    …ETC. for other directions and players
    if (oneLeft && player1.xVelocity >= -player1.maxSpeed)
    player1.xVelocity -= FP.elapsed * player1.accelerationSpeed;

    …ETC. for other directions and players.

    Nothing registers at all now, while previously the controller HALF worked when I still had arrow key movement left in.

    If you have no idea or are too busy to help, that’s fine!

  16. Never mind! I found the problem. I moved joypad.init(stage); from the init function to the main function. Now everything is dandy. Thanks!

  17. No worries, glad you figured it out!

    (Just FYI, the joypad class already has functions to check both the dpad and the analogue stick together – joypad.pressup() should work (ditto for the other directions).)

  18. I’m a bit late, but I’m glad that you changed your mind, and that I may have influenced this decision πŸ™‚ I may look into buying an Ouya, especially if VVVVVV and Super Hexagon run on it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.