Platformer Tutorial Series

#1 – Basic movement and Set-Up

Download (includes finished project, video, resources):

XNA (~35 minutes)

VB .NET (~50 minutes)

XNA Mirror (~35 minutes)

VB .NET Mirror (~50 minutes)

#2 – Jumping

Download (includes finished project, video, reference):

XNA (~27 minutes)

VB .NET (~30 minutes)

XNA Mirror (~27 minutes)

VB .NET Mirror (~30 minutes)

#3 – Character Class

Download (includes finished project, video):

XNA (~10 minutes)

VB .NET (~20 minutes)

XNA Mirror (~10 minutes)

VB .NET Mirror (~20 minutes)

#4 – Basic Map Editor

Download (includes finished project, video, resources):

XNA – Video, Project and Resources (~1:15 minutes long)

XNA Mirror (Mediafire)

#5 – Collision Part 1 – Landing on platforms (code only for now)

*Note: I’ll try to make a video tutorial as soon as I get back from vacation. This is just to tide people over until then. 😛

XNA – Project (Mediafire)


95 Responses to “Platformer Tutorial Series”

  1. Hi,
    Thanks a lot for adding us on your blogroll.

    Warm Regards,
    Abhinav

  2. Just finished watching the 2nd and 3rd tutorial videos! They’re really great, thanks for making them! I can’t wait for the next tutorial video about Collisions & The Editor! Any idea when it will be available?

  3. Well,that’s really better than a bunch of books and tutorials I’ve read.So easy to understand,and I had severe times trying to code a jump.Now it’s a piece of cake and really cool code.

    The only thing that bugged me is that you used strings to express the player stat (e.g running right or left,standing…),which is so painful when you miss a letter or use a capital letter instead of small,and XNA won’t catch the error if occurred.I suggest you use ‘enumerations’ instead.Same effect but taking the advantage of IntelliSense.Here’s an example(I bet you already know):

    enum lucasStat
    {
    MovingRight,
    MovingLeft,
    Standing
    }

    lucasStat currentStat = lucasStat.Standing;

    Other than that neglectable bug,this is really one of the best resources for any one interested in XNA.
    Sorry for the long post,can’t wait to see a map editor tutorial or something ;).

    • Thanks for the complement, Dr. Saiko. TBH I have never used enums, but I am aware of their existence. Your idea is easy to implement and could prevent future errors. When I make the next tutorial, I’ll keep it under consideration.

  4. The Links for Video 1 and 2 are sending me to the filefront homepage anyone else having same problem?

  5. Hi, is there any news on the next video tutorial in this series?

    • I’m working on it today, actually. It’s going to take a while, since I’m covering a lot of complicated material. I might split it up into two segments. For now though, I need to reupload the video files.

  6. Yahooo! I’m so exited to see the next tutorial.I really hope it’s about an editor or a 2D Camera that follows the player(though I believe it will be collision >_>..I’m good thought :)).

  7. Any news on the 4th video? 😡

  8. Excellent series.

    Can’t wait for the next installment.

  9. LOL..it wasn’t about collision after all.This came in the right time for me (was watching Nick Gravelyn’s tile editor series right now,great stuff).

    Thanks.DLing now.

  10. Are you planning on making a tutorial about collision?

  11. Any eta on the 5th video on collision?

    • I’m dealing with a lot right now, to have any free time to do a tutorial at all. The code has been done for weeks, all that I need to do is make a vid. But because of school’s approach I’ve had to focus on reading four books and writing a 4-11 page essay, not to mention worrying about getting a portfolio together for college. So really much to my regret I haven’t had any time to sit down and program;and I don’t think I’ll have time once school begins, because I have 6 total AP courses to deal with. What you should do now, if you have been following these incredibly boring videos, is to try and do it yourself.

  12. Well done on the tutorials just finished watching them and i like the way you do some stuff. I especially like the last tutorial where you had an error (I knew it was the draw :P) and even though you didn’t plan it you taught newbies how to problem solves and use break points in their own code. Well done. I am currently using mine for the 360 so the controls are a bit dodgy on mine xD. Looking forward to your next tutorial.

  13. I understand that you are pretty busy with school and whatnot. I was just wondering if you would be able to post the code for collision handling. One of the best ways to learn how to program is to read code. If you could do that so that we could download the source code that would be very much appreciated.

  14. I don’t know if you got the last post I made but it looks like you might have deleted it. I liked the tutorials you did they were very helpful. However, I think the one I wanted the most was collision handling because it is such a big part of how games work. I was wondering if you could send the source code via email, because I understand you are very busy right now, but it gives me something to learn. They say that one of the best things you can do is read code to learn concepts and what not. If you could email me it I would appreciate it.

  15. I´ve just ended watching your videos. They were really great stuff. I think you have a very simple way to explain and do things. I wish in the future you could cover map saving and loading, adding tile layers and collision detection

    Thx for the great tut!

  16. Nice to see your still alive fatso. You still planning/making these? I have tried collision detections myself several times and can’t seem to work it out for this type of game.
    Cheers bro good luck.

  17. Collision Detection and XML anytime soon?

    Your other videos were awesome… please continue

  18. Congratulations on your tutorials!!
    i’ve alrady followed all of them & I know u’ve been busy lately.
    i’m trying to make collisions myself but failed on it, now i dont even kno where to start. cud u pleas at least point me in the right direction? thanks!

  19. I appreciate your work. The tutorials have actually helped a lot. Have a good day!

  20. Hey, the files are no longer downloadable, you plan to upload them somewhere else?

    • Uhhm thanks for telling me, RapidShare changed their policy. But it’s only the second VB file that’s missing. I’ll hv it up in a few.

      • well, they’re there per se, but you can’t access them without a premium account. is that intentional?

    • I checked on another computer and I don’t see a problem with the links. But if anyone else has issues about premium accounts or something, just tell me so I can get that fixed.

      • The premium thing is because of rapidshare it happens at busier times in which you have to have a premium account or keep retrying every 2 minutes. Nothing you can do about it except upload somewher eelse.

  21. Thank you alot!
    Will you be making a tutorial about collision and gravity and stuff?

    Thanks!:)

  22. Will you end this (though I can see it being a long time til that happens) by wrapping it all up in OOP programming by moving parts of what is written into different codes?

    I know OOP but I am not particularly good at it.

    Good stuff though, nothing too particularly new from other tutorials I’ve seen but pretty clear. Sort of wish you left some mistakes in there and shown us what happens but its not really necessary.

  23. Could u upload the c# videos to anothore site rapidshare wont let me download them =(

  24. Could you upload the c# videos to another site? (rapidshare wont let me download them because the server ran out of room) =(

  25. Thanks, part 1 and 2 helped me out alot now im going fore part 3 and 4 =)

  26. Fatso, are you going to continue the platformer tutorial series? I can’t find good tutorials on a tile system/collision. (for VB)

    Please continue! You really helped me alot!

    • Sorry, I have been considering resurrecting the XNA tutorial series after finals but unfortunately not the VB one. If I remember correctly, rectangular collision in VB has a lot to do with if-then statements and .Bounds.IntersectsWith(.Bounds), if that helps at all.

  27. but i cant downlowd the files freely.

  28. i keep get error from rapid share.

  29. i can only download from the mirror for file 1 and when trying to extract the video i get a 0x80004005. Ive re downloaded and tried multiple extractors. Dunno whats going on with file 1

  30. These tutorials were pro. Thanks a bunch!

  31. THANKS alot 😀

  32. I can’t tell you how much this videos are helping me, I’m just starting with XNA (I know C# quite well).

    I hope you can continue this and I’ll be visiting this blog to read everything else you upload (tutorial or not)

    Thanks again

  33. I like your tutorial you explain things real well i wish you can come with some more tutorials ….hit me up so i can ask some questions

  34. i’m very new to c#. i started some months ago but i love your tutorials. i understand your explanation also as a “bloody beginner” and with a little english knowledge (reason for my bad english)

    so thanks for this tutorials, they are realy helpfull, i just wanted to say this =)
    greetings from austria

  35. is this video meant to have sound?

    • uh yeah haha. maybe you don’t have the right codec installed. i suggest using AVICodec or some other tool to identify if this is the problem.

  36. Hi,

    I just wanted to thank you for your work.

    Regards.

  37. Hey,

    Was just wanting to say that your tutorials are amazing and youv done a great job with it. Its helped me learn c# and give me a good start to making my platform game as a college project. Cant wait for the Collision tutorial and i hope its up before my project deadline =p
    Again, Thanks.

    regards.

  38. Hi,
    I really liked your tutorials!
    When are the collision tutorial coming? 🙂

  39. thanks for the tutorials.

    i learned a lot, looking forward to your next tutorial.

    I’m not trying to be a pest but do you have an ETA for your next tutorial.

  40. thank you for the new code. this language is taking me a little longer to learn for some reason. i learned c++, java, flash, basic, and dark basic petty quick. maybe i’ll pick it up soon but until then i thank you for these tutorials.

  41. When is the next tutorial coming? I`m thirsting for XNA! (BTW, great tutorials :D.)

  42. Thnx soooo much the collision code, cant wait for the tutorial!!!

  43. Awesome… I still havne’t really looked a tthis tutorial yet, as I’ve started on others… and trying to get through them and understanding. But it’s nice to see this not being abandoned.

  44. BIG UPS on the tutorials mate. Have learned so much from you, am waiting for new videos so i can keep learning more. Am confused a little about the character jumping in relation to later adding proper physics? does the same code apply, or will we have to rewrite the jumping code for collision and gravity?

    thanks heaps mate 😀

  45. Awesome tutorials man! I can’t wait for the tutorial vid on the collision! 🙂

  46. Hi.No more tutorials??
    I learned a lot!!
    Congratulations!
    Great Tutorial!!

  47. These are great!
    thanks alot!

    will be checking in for the collision video…. hopefully you can
    also make a tutorial about scrolling levels..

  48. Hi, greetings from Germany

    Your tutorial is very good! I kept long looking for something like that! And I hope there will be the collision video soon 😉

  49. Whe are we going to get the collision videos?

  50. Just a quick question for anyone in general:

    If I use different sprite with say, 13 frames, it only jumps when the spacebar is held down.

    Any thoughts?

  51. Hey nice tutorials

    I’m looking into implementing collisions now and tutorial 3 now, Gotta make it work with my code.

    I didn’t like the jump function so I coded my own, it needs some cleanup but you might find it useful. It’s a modified tutorial 2 with “mario” jump behavior.

    That means you won’t jump if you hold the jump key after a jump, you will double or triple jump if you press jump on time just before landing and you can do short or long jumps depending on how long you hold the jump key.

    http://dl.dropbox.com/u/149537/Platformer-1.rar

    Now onto part 3 😀

  52. hi, i have few edit for Map.cs

    use Map.CreateData(filename,mapname,titleset) for save map
    use Map.ImportMap(filename) for load map

    using System.IO;
    using System.Text.RegularExpressions;

    public string path = @”C:\”; // path to save or load map data
    ///
    /// Tạo file map cho map hiện tại
    /// dùng để import sau này khi cần dùng đến map
    /// [ cần làm : bổ sung tên title,layer,.. ]
    ///
    /// tên file save
    /// tên map
    /// tên titleset
    public void CreateData(string filename,string mapname,string titlename)
    {
    // initialize
    FileStream fs = new FileStream(path + filename + “.xml”, FileMode.Create, FileAccess.Write);
    StreamWriter sw = new StreamWriter(fs);
    // write
    sw.WriteLine(“”);
    sw.WriteLine(“”);
    sw.WriteLine(“”);
    for (int i = 0; i < height; i++)
    {
    for (int j = 0; j < width; j++)
    {
    if (j == width – 1)
    sw.WriteLine(tileMap[i, j].ToString() + "|");
    else
    sw.Write(tileMap[i, j].ToString() + ";");
    }
    }
    sw.WriteLine("”);
    sw.Write(“”);
    // dispose
    sw.Flush();
    sw.Close();
    fs.Close();
    }
    ///
    /// Nhập map có sẵn vào
    ///
    /// tên file load
    public void ImportMap(string filename)
    {
    // initialize
    FileStream fs = new FileStream(path + filename + “.xml”, FileMode.Open, FileAccess.Read);
    StreamReader sr = new StreamReader(fs);
    // read all
    string content = sr.ReadToEnd();
    // get map matrix
    Regex reg = new Regex(@”(?[\d-\D][^<]+)”);
    Match match = reg.Match(content);
    // return if cant find
    if (!match.Success) return;
    // import data
    content = match.Groups[“content”].Value.Replace(“\r\n”, “”);
    string[] YY = content.Split(‘|’);
    string[] XX;
    for (int y = 0; y < height; y++)
    {
    XX = YY[y].Split(';');
    for (int x = 0; x < width; x++)
    {
    tileMap[y,x] = Int32.Parse(XX[x]);
    }
    }
    }

  53. Just found these tutorials – they’re excellent! Shame they appear to have stopped 😦

    Any plans to continue or at least finish collision?

  54. Hi, please fix the corrupt file in Basic movement and Set-Up
    specifically the Video, thank you!

    Note:
    I use the Mediafire mirror link

  55. Very helpful tutorials! And they’re still relevant after almost two years!

  56. Definitely very helpful! Ive just finished the first tutorial but it worked out great so far and I’m excited to do the rest. Ive read a lot of other tutorial’s and read an XNA book but now that I am ready to make my own full game, this seems like the best place to start. I knows it been 2 years but it would be great to see more tutorials.

  57. Wow …. just watched the first part yet and i Love your tutorial 🙂 *thumbs up* your page made it to my favs 😉

  58. I just downloaded tutorial #1 – Basic movement and Set-Up
    from MediaFire , During extraction i got CRC error :-/
    So plz replace it with a working copy,im trying Rapidshare now

  59. Hey, When will we see part 2 of Collision :3

  60. One damn long vacation. I wish mine were a year long too.

  61. I feel sad because he didn’t continue the tutorials 😦

    We’d really need your help

  62. Shame I really wanted more. I’ll be emailing ya ;]

    You’re such a great Tut maker!

  63. Ehh.. Ive tried to extract your files, but the video is corrupt (According to winrar, (The very first tut(Got it from the mirror, ill try and get it from rapidshare and see if its the same))

  64. Thanks for the great tutorial, can’t wait for the 5th part!

  65. These tutorial are amazing, please, don’t ever stop making them, they are simple and perfect as a base for people who know c# but not XNA. Thank you so much and I look forward to the next video.

  66. […] man Fragen hat, Hilfe braucht und irgendwo nicht weiter kommt, ist das eine super Anlaufstelle. XNA RPG Development Für mich, die ultimative Platformer Tutorial Serie. Video Tutorials, die die Entstehung eines […]

  67. pls continue your work!

  68. It has now officially been two years since your last post. Why?!

  69. Nice tutorials! You explain everything really well, I learned a lot from it. You should consider doing more, you’re pretty darn good at it. Anyways, thanks! 😀

  70. Anyone else think he got kidnapped on holiday?

  71. Well I guess you betrayed us. Pretty easy for you to let it go, but we’ve been waiting with incomplete applications.

  72. It’s a shame. Your tutorials were awesome. I’m learning C# with XNA and I cant tell you that your tutorials are the best I’ve found.

  73. Anyone got mirrors for #3 & #4 links are down

  74. can someone email me chap 2 and 3? I’ve been trying to get into coding for a while, but its been frustrating and these have been really helping. Thanks-

  75. the download link for the 2nd tutorial for xna is not working.
    the mirror too.

  76. Hello, PLEASE PLEASE can you re-uplad the files

Leave a reply to Dr.Saiko Cancel reply