Learning 2D Game Programming With BlitzMax
BlitzMax Forums/BlitzMax Tutorials/Learning 2D Game Programming With BlitzMax
| ||
[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:- GETTING STARTED Part 1: Writing your First BlitzMax Program (Posted:May 8, 2006) A BASIC 2D GAME FRAMEWORK 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 2D GAME PROGRAMMING TOPICS 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 |
| ||
These are really good, you should continue on with them. :) Sin |
| ||
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 |
| ||
Great job, thanks for taking the time. |
| ||
now this is what i needed along with the other beginners to blitzmax. GREAT WORK! |
| ||
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. |
| ||
This is a very nice tutorial assari. You explained everything very well! Beginners to blitzmax would definatly need this tutorial |
| ||
These are very good. Nice Job Assari! |
| ||
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!! |
| ||
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 :) |
| ||
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! simesf |
| ||
Thanks for these! If you were ever to write a book, I would get it :) |
| ||
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... |
| ||
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. |
| ||
NoBoDo, thanks for pointing out the incorrect link. It's fixed now. |
| ||
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, |
| ||
Assari, Are you planning on writing a book for your tutorials and knowlege? I'll buy it if you do :) Jason |
| ||
Shhh!!! Just keep downloading them and put them in a folder called "Assari's Book". |
| ||
Assari. how about someone poping all of them in a pdf. i can do it when i have time if your like |
| ||
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? |
| ||
Burpy, 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. |
| ||
Excellent stuff... :) |
| ||
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! |
| ||
There's a recent post here that may shed some light on the differences. :-) |
| ||
Some great stuff, really helpful thanks XD |