How should I learn blitz?

BlitzMax Forums/BlitzMax Beginners Area/How should I learn blitz?

Twinprogrammer(Posted 2011) [#1]
hey Guys,

I've read some books on blitz , but it's like the only blitz specific one I could find.n If you guys don't use books , how did you learn when you started out?

Twinprogrammer


Czar Flavius(Posted 2011) [#2]
Practice, practice, practice.

Make a pong game. Then make a Checkers game. Then make a Tetris game.

That will keep you busy :)


xlsior(Posted 2011) [#3]
Do you have any programming experience at all?

The language you use isn't nearly as important as wrapping your brain around progrmming concepts, structure, etc. Learning the specific commands of a language is secondary. :-?

When I taught myself to program (GW-Basic, back in '88) I just read the sourcecode of a bunch of other simple programs, trying to figure out what they were doing and how. Then with that information, try making some small changes, and do something slightly different.

Then with the knowlede of what some command do, try to write very basic little programs from scratch. Start at the absolute bottom: Ask the user a question, and echo it back.
Ask a question, do something to the information, and echo it back differently. Add some math calculations, etc.
as you go along, you'll run into roadblocks because you want to do a specific thing but don't know how -- try to figure out the logic first, and look at the index if there are any commands that seem relevant. If they are, you can use them in your program.

After doing this for some time you'll slowly but steadily discover more and more of the commandset, pick up some tricks along the way, until you are at the point where you eventually do pretty much anything you want to.

Just start with the basics, and don't try to write a multiplayer networked MMORPG as your first program. :-?


CS_TBL(Posted 2011) [#4]
I wouldn't start making something that's even remotely related to gaming. Instead I'd start making small functions to give you experience with procedural programming. Like, make a function that draws a filled rect with color A and an outline with color B.


ima747(Posted 2011) [#5]
I wish I had had blitz when I got started, the language itself is so approachable it would have REALLY helped back then:

To echo the above with my own thoughts:

Concepts are the hard part, besides that it's language specific syntax, and blitz is as simple as you can get there. So try to get something that you feel you understand (good writing style, etc.) to get your head around the basics of logic, application flow, variables, memory etc. Those things really never change and are the foundation of ANYTHING written in any programming language.

Once you have a little bit of a base to understand try toying with some very simple things. "if" statements, loops, variables, your first function, etc.

From there you have everything to need to delve deeper. Come up with a very simple concept that is interesting to you. My first example was an etch-a-sketch program that used 2 keys to simulate the left knob and 2 more to simulate the right. Implementing something like that will teach you the next 2 most important things: what you don't know (how do I make something show up on the screen?) and how to find the answer (browse through the commands under related to graphics in the blitz documentation...)

From there look towards making something else you're interested in that's a little more complex, a very very simple game like pong. This process repeats the above of discovering what you don't know (how can I tell when the "ball" hits the "paddle"?) and how to find the answer (hint: collision detection...)

The reasons I stress finding things you are interested in, and that you like at each stage is this makes it MUCH more fun, and you go a lot faster. Are you more interested in video games or databases right now? Whichever it is is going to give you more drive to focus on it.

You get better by constantly pushing yourself. AI, sound, storage, networking, data management, 3D, etc. are all just "ok how do I do this?" followed by extensive investigation to find the answer. The more you do it the better you get at finding answers and the faster you learn new things. My first year of programming I learned basic concepts of logic flow, simple variables, and a graphics system I borrowed from a friend and I made a game with terrible graphics, piss poor AI, and it was among the most fun I've ever had. This year I picked up raw OpenGL and Java on the side to continue expanding one existing project while starting 2 others. Your scope grows as your skills grow. Always stretch but keep it within reason or you'll get discouraged. and stay interested or it becomes "work" and you'll walk away.