Login or Signup

Learning 2D Game Programming With BlitzMax

BlitzMax Forums/BlitzMax Tutorials/Learning 2D Game Programming With BlitzMax

assari1+ years ago #1
[EDITED July 02, 2006]Main Index to Series is here

** Added example BreakOut Game

This is the start of a fairly ambitious series of tutorials on how to write 2D games using BlitzMax.

The first part is a Getting Started part where I'll be introducing some simple concepts. I'm assuming you have zero experience with BlitzMax and programming but do have some familiarity with using computers.

The second part will walk you through how to create a basic framework of a 2D game and will use a very simple space shooter as an example.

Then the main part of this series starts and that is the showcasing of several 2D Game programming concepts. These will be written more or less in random order. I seriously doubt I will be able to cover all topics and even the topics that I want to cover will take several months (years?) to complete. But hopefully the meat of this series will be enough to get the needed concepts for readers to venture on on your own. Good luck with the learning....

This is what I have done so far:-
Part 1: Writing your First BlitzMax Program (Posted:May 8, 2006)

Part 1: Creating the Player Object Posted May 08 2006
Part 2: Introducing a Basic Game Framework Posted May 08 2006
Part 3: Introducing the Enemy Posted May 08 2006
Part 4: A new revised Game Framework Posted May 08 2006
Part 5: Adding Missiles Posted May 08 2006
Part 6: Adding Collision Posted May 08 2006
Part 7: Adding Explosion Posted May 19 2006

USING THE FRAMEWORK TO PROGRAM A BREAKOUT CLONE <---new tutorial added Jul 02 2006

Max2D Collision Techniques (Part 1, Part 2, Part 3)
Max 2D Font Functions
Max 2D Images Functions
--Part 1:Loading and Drawing
--Part 2: Transformations
--Part 3: Blending Modes

Sin of Nature1+ years ago #2
These are really good, you should continue on with them. :)


frolicy1+ years ago #3
again my biggest thanks for that detailed tutorials!
I have never seen such a great Intro !!!

highly appreciated and waiting eagerly for more -
seems that even i will get it sometime......lol

Why0Why1+ years ago #4
Great job, thanks for taking the time.

Triforce Guardian1+ years ago #5
now this is what i needed along with the other beginners to blitzmax. GREAT WORK!

assari1+ years ago #6
I've just added a new part to the basic framework series: Part 7 - Adding Explosion. Don't forget to check out the first tutorial in the 2D Topic Series, Collisions.

Triforce Guardian1+ years ago #7
This is a very nice tutorial assari. You explained everything very well! Beginners to blitzmax would definatly need this tutorial

bradford61+ years ago #8
These are very good. Nice Job Assari!

Blitzplotter1+ years ago #9
I am a beginner to BMax and must congratulate you on such a good piece of work your tutorial is. Manyanna - I'll be digesting how your part 6 does it's business. Fantastic work!!

assari1+ years ago #10
OK has added another tutorial on using Max2D Images functions in 3 parts
Max 2D Images Functions
--Part 1:Loading and Drawing
--Part 2: Transformations
--Part 3: Blending Modes

And many thanks to all the folks who have provided feedbacks. Adds to my motivation :)

simesf1+ years ago #11
You know, I'd happily pay money for a complete series of tutorials just like these. I hope you keep your motivation since this seems to be exactly what BlitzMax needs. Well done!


boomboom1+ years ago #12
Thanks for these! If you were ever to write a book, I would get it :)

Digital Anime1+ years ago #13
Thanks a lot for these tutorials, without them it would be really hard to understand the commando's like "Type" which proves very usefull in creating shoot 'm ups. :-)

And now I can understand what I'm typing in BlitzMax using these new features (For me that is)... It's good that almost every lad has an internet connection nowadays and can ask other people in this forum, I can remember using Blitz Basic 2 on my Amiga in the past with only a few floppies with the utility and some samples and a big book explaining most of the commands. But I never had the chance then to ask someone on how to do stuff like this because I didn't know any other programmer in that time that used Blitz, But I liked programming it even then...

NoBoDo1+ years ago #14
Fine job on the tutorials!

One thing to note - The link to the "Adding Missiles" page is incorrect on the index page. It instead links to the "Adding Collision" page.

assari1+ years ago #15
NoBoDo, thanks for pointing out the incorrect link. It's fixed now.

Blitzplotter1+ years ago #16
Again, thankyou Assari, I've just been scanning over your latest three posts, they address some problems I've been grappling with in a very digestable way. Regards,

Jason W.1+ years ago #17

Are you planning on writing a book for your tutorials and knowlege? I'll buy it if you do :)


tonyg1+ years ago #18
Shhh!!! Just keep downloading them and put them in a folder called "Assari's Book".

Pete Carter1+ years ago #19

how about someone poping all of them in a pdf. i can do it when i have time if your like

burpy1+ years ago #20
Why are you loading the missile pic each time the missile is fired? Surely you should just load the image as a static inside the type and draw it for each missile?
Similarly, why are you using the image as a parameter in your creation functions? WOuld a single fixed reference for each type not be simpler and more appropriate?

assari1+ years ago #21
Yes you are correct that it would be better to just load the image once. This would probably necessitate doing the other thing that you advocated which was to use a fixed reference for each type.

When writing these tutorials, I'm normally biased towards code clarity, sometimes at the expense of speed and appropriateness.

Ian Thompson1+ years ago #22
Excellent stuff... :)

lesslucid1+ years ago #23
I'm working my way through this tutorial now and I'm finding it incredibly helpful, so, thankyou very much for all your hard work, assari!

I have a question, though - (if this is the right place to ask) - I'm up to "part 2 - introducing a basic game framework". I feel like I've got a basic handle on what the code does and why each section is where it is and so on, but I'm not clear in my mind as to why the "Type: TSpaceShip" has methods for UpdateState and DrawSelf, but a function for Create TSpaceShip. Is the difference between methods and functions something that I should be worrying about at this stage? Are types generally containing only methods, except for the creation of instances of that type, in which case they use a function? Could the function for creating TSpaceShips have been placed outside the TSpaceShip type?

I guess I'm happy to accept that it's too soon for me to worry about these things but I just want to make sure I'm not just... nodding along through the tutorial while failing to understand how to use the "ingredients" I'm being given...

...thanks again!

Brucey1+ years ago #24
There's a recent post here that may shed some light on the differences.


xcessive1+ years ago #25
Some great stuff, really helpful thanks XD

Blitz Social Club