How to make a Platform Game – source-code options

Following some feedback on reddit regarding the price of the source code, I’ve decided to offer people who’d like to get access to the source code accompanying this series of articles a few choices.

Totally free version


Click to give focus, then cursor keys control the green player character.

This versions contains the bare essentials of the game, one player character, one map, one tile type, no level progression, no enemies, no fancy graphics, or dependence on the Flash IDE. Basically, everything you see in the demo above, including the nice robust camera system.

This version is recommended for anyone who wants to get a pretty decent code framework in which to build their vision of the game or for anyone who is interested in sampling the quality of my code before making a purchase of the other, more advanced versions.

Download it here for free


USD 9.99 version

This version contains all the assets of the full game, but only one enemy type, no level progression, no parallax layers and no ladders.

I’d recommend this version for those who are interested primarily in having a very solid framework with a good set of features, have a strong desire to put their own mark on the game and a willingness to experiment and learn.

USD 9.99


USD 19.99 version – SALE: reduced from $49.99!

This is the complete version, with everything included.

I’d recommend this version for anyone who wants a nearly complete game they can make their own. Just by re-doing the gfx, and adding more levels you will have a completely unique and fun game.

USD 19.99


USD 49.99 version

This is the complete version, with graphics redone by Khan Studios.

I’d recommend this version for anyone who wants a neat tile-set and animated character set to go with the project, and to use in whatever else they see fit.

USD 49.99

38 Responses to How to make a Platform Game – source-code options

  1. Pingback: How to make a 2d platform game – part 2 collision detection | Paul's blog@Wildbunny

  2. Pingback: How to make a 2d Platform Game – part 1 | Paul's blog@Wildbunny

  3. Luke says:

    Hey Paul,

    Just tried to download the free version of this to investigate the AABB code a little further, but the download link (http://www.wildbunny.co.uk/downloads/platformerSimple.zip) returns a 404. Have you removed it in favour of the paid downloads or has it accidentally gone awol?

    Cheers!

  4. Luke says:

    Brilliant, thanks for sorting it out :)

    Oh, and huge thanks for your articles, s’all great stuff.

  5. Will says:

    Hi Paul i want to know if i buy the code when i will receive it and if is AS3 code

    • Paul Firth says:

      Hi Wil,

      You should be redirected after paypal to a download link on the wildbunny blog, so it should be instant :)

      Yes, its all AS3 code.

      Cheers, Paul.

      • Will says:

        Thx Paul i already bought and its helping too much but if possible can u awnser me a question about a code im doing
        I know this isnt ur job and u dont need awnser anything but i will be grateful if u help me

        I make a array and push the array to make number 2 become the walls but i dont know how to do to push number 1 to be a Ladder.

        ( [0,0,0,0,0],
        [0,0,1,0,0],
        [0,0,1,0,0],
        [2,2,2,2,2] );

        for (var i:int = 0; i<4; i++)
        {
        for (var j:int = 0; j1){
        aCollision.push(tileset);

        for(var i:int=2; i<aCollision.length; i++)
        "code to the wall"

  6. Dan Rostron says:

    Hi Paul

    I’m interested in using the framework you have created. One question though, I have a need to have angled platforms, ie. they will be sloped. Looking at your source code of the free version, I can see that you create the walls/platforms using a Matrix. Is this the same in the full version? So, I wouldn’t be able to create sloped platforms?

    Thanks in advance.
    Dan

    • Paul Firth says:

      Hi Dan,

      Right now all versions of the source only support platforms which are square. To add sloped platforms the collision detection would need changing, as its currently only performing AABB vs AABB.

      Hope that helps!

      Cheers, Paul.

  7. Bardikus says:

    Hello Paul, I downloaded the basic kit (too poor for others :( ) , but I don’t know how to run it.It has no exe or flash exported file in which i can run/play the game. All there is in my archive are a bunch of folders with some .as files and some other files which flash doesnt recognise and I don’t know/understand how to put it all togheter to get my game platform. you didn’t include any tutorial either ,so could you help me out a little? Thanks!
    p.s. : yes, I know the basics of flash and actionscript, I’ve managed to get some lynda tutorials to learn those

  8. karvinjarvis says:

    Yes, I downloaded 9.99 version of this game but I don’t know how to run it. So what should I do for playing game. Any one please suggest me how to play version of 9.99 game.

  9. Coop says:

    Hi Paul,
    I just began programming and the free version has really helped me learn. I decided to make a new map using mappy, but the tile.png file isn’t working in mappy. can you either tell me what I did wrong, or if I have the wrong file?

  10. Henning says:

    Hey Paul,

    i bought your 19.99$ Version. Now i want to change the graphics as a first step. so i open up the fl.fla in the dict assets with CS6… everything ok so far and i can change graphics….but i dont know how to create this swc file?! i mean if i select publish as swc i cant find such a file…hu? but if i select a single movieclip like “brainbrain” i can of course export a swc….however i guess i need the whole thing as a swc to change the graphics…

    sorry for my english i am from germany in europe ;)

    maybe u can help me :) thanks in advance.

    greets henning

  11. Henning says:

    Hey Paul,

    thanks for your fast answers :)

    so rough translated these are the 7 shown compile errors:
    1)
    Position:
    Symbol ‘DiamondPickup’
    Description:
    1152: In the definition inherited Code.Pickups:Diamond.m_flaCollision in namespace public is a conflict.

    2-7 is same conflict but different classes:
    Postion:
    1 Line
    Description:
    5000: The class ‘Code.Characters.LadySpikes’ must be, as it is associated with a symbol library of this type is a subclass of ‘flash.display.MovieClip’.

    ….

    im pretty confused at the moment i didnt changed anything of the original script code but maybe i am just not smart enough at this point and the solution may be very simple…

    greets henning

    • Paul Firth says:

      Hi Henning,

      Sounds like your class-path isn’t configured correctly?

      By default its set to point to a location on my machine, but you’ll need to update it to point to the location you extracted the project.

      Cheers, Paul.

      • Henning says:

        Heya Paul,

        i dont want to hurt your nerves but i am not quite shure what to do…guess i need to change the flash.display.MovieClip path but where to? and which file? hu?


        package {

        import flash.display.MovieClip;

        public class BrainFla extends MovieClip {

        public function BrainFla() {
        // constructor code
        }
        }

        }

        dont worry this will be my last question :)

        thanks in advance for your help
        greets henning

  12. Parker says:

    Hello Paul,

    I’am a Junior in High School and I am taking a digital design class. For my ‘final’ project of the year I wanted to do the art for a platforming game. Of course I am very interested in being a game developer, but I am still at the basics (if not below) on coding and that sort of things. However I can do the art side of things (and maybe the lvl design) and I would like to buy one of your ‘templates’ to change basically all the art + animations. The only problem is, is that I own a Mac and I use a Mac at school. I’ve tried to find an alternative to Flash Develop since it does not work on Mac, but I wasn’t sure if it would even work with the games you have created.

    So, Can I still do this on a mac? And I’ve looked into ‘bridging’ the program over, and/or using bootcamp but that would cost a good amount of money and time.

    Thank you,
    Parker

    • Paul Firth says:

      Hi Parker,

      If you have access to FlashBuilder, then that does have the capability to build the project but you’d have to set the project up yourself as I don’t have FlashBuilder. For Mac thats really the only option you have, unless you can dual boot.

      Cheers, Paul.

  13. Corey Bunnell says:

    Hey Paul,

    Thanks so much for making your source code available for us to dissect. It is nice to see some legit stuff.

    I have noticed a slight glitch however with the free version. Zooming with the camera causes cracks to appear between the tiles. In the camera class you have two lines of code to fix this:

    // this is essential to stop cracks appearing between tiles as we scroll around – because cacheToBitmap means
    // sprites can only be positioned on whole pixel boundaries, sub-pixel camera movements cause gaps to appear.
    m_worldToScreen.tx = Math.floor( m_worldToScreen.tx+0.5 );
    m_worldToScreen.ty = Math.floor( m_worldToScreen.ty+0.5 );

    However them seem to appear nonetheless.

    Any thoughts?

    • Paul Firth says:

      Hi Corey,

      I guess the only real answer I can give is that although the code does have functions to support zooming, the game itself was never designed with that in mind… Not a very good answer but I don’t have another solution to offer at this time.

      Cheers, Paul.

  14. Tomas says:

    here’s some questions I’ve come up with:
    do I need stencyl? There seems to be a problem with the program when I download it I get a message it’s damaged (I’m not using mac so their hotfix that they admit to isn’t working)
    how do I access your swc symbols and classes? I’m assuming that’s what holds all the animation content, I have a bunch of characters and animations I want to load directly into your game but I’m having a hard time navigating the complete package. You mentioned using amethyst with virtual studio, is this necessary? which copy of virtual studio are you using? I’m downloading the express 2012 windows desktop. I’m not sure if that is necessary, I really just want to swap out that pink character with the character I have and see him move :/

    • Paul Firth says:

      Hi Tomas,

      You don’t need styncl, just Flash CS4+ and FlashDevelop/Amethyst in order to build the project. I recommend using FD as Amethyst is a PITA to set up. All the assets are held in the .fla file which you load into CS4 and export as .swc.

      Hope that helps!

      Cheers, Paul.

      • Tomas says:

        what’s the name of the .fla? is that assets and assets_hk? I open up the assets.swc in flash and get an unrecognized file format error. If I open up assets or assets_hk there are 2 grids of animations, but if I swap out anything on the grids it doesn’t update in the game when I test it in flash develop.

        • Paul Firth says:

          Assets.fla is my programmer art, and assets_hk.fla is a different version by an artist. You’ll need to make sure flash is exporting the .swc correctly, i.e. with no errors messages. Check that your class-paths are set correctly to match the location of the project on your machine? And make sure the .swc is getting exported in the right location.

          Cheers, Paul.

          • Tomas says:

            hmmm I think I was just saving the fla and not exporting as an swc to use with the as3proj. ok, so I use the content in assets_hk.fla in flash export that as a swc, load that swc with that as3proj file in flash develop hit “test”, and I should be able to update the graphics from the assets_hk file right? I’m just looking for a streamlined process to updates that pink character and all his enemies.

          • Paul Firth says:

            Yes you can update the contents of whichever .fla file you choose, export over the top of the existing .swc file, rebuild the project in FD and bob’s your uncle.

            That’s about as streamlined as is possible :)

            Cheers, Paul.

          • Tomas says:

            ok, say hi to bob for me ;) I’m going to go play around with those files.

Leave a Reply

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

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">


+ 2 = nine