Teaching Introduction to computer games dev.
Miscellaneous Forums/General Discussion/Teaching Introduction to computer games dev.
Hi guys.
I was wondering if anyone here was using Blitz as a teaching tool to teach people a basic introduction to computer games programming ..
I'v been thinking about holding some sessions in a local community centre, and wanted to know what if any problems I may run into.
Not anymore. The biggest problem I had was that the schools computers sucked, and it was a bit hit and miss whether BlitzMAX would run on them.
Yeah Blitzmax does suck, however just use the original Blitz Basic or Blitz+, that runs on anything and is absolutely ideal for beginners, BMax is a bit too complex for novices.
agree. B+ would be perfect for a basic game design class... A game PROGRAMMING class would be better done on industry standard languages like C++. Otherwise.. why take the class?
@DampeS8N, Not all of us can programme in c++ (I can) and not all of us like it either (I HATE IT), c++ is a big bloated monster that demands you follow all of its damn conventions. one of the things I hate most is having to submit work in c++ and then listening to some professor telling my that I didn't follow the standards properly.
Anyway, I like Blitz, I like the syntax, and I like the freedom to be lose with my code when I want to.
I would say Blitz 3D is the ideal language to teach introduction to games programming or design, if people can handle Blitz, then learning c++ will be something they chose to do with some one else. not me.
Flameduck.. What problems did you have with Max? was it a linux problem or windows? I would be interested to hear more on that cos if I do this course, then the next stage would be moving everyone on it upto Max once they pass the first part.
For what it's worth Maneesh Sethi ran an online Programming Course using BlitzBasic which you might be able to find.
A lot of it was taken from the GPFT book which 'inspired' a few novice programmers
<disclaimer> The views in this post do not necessarily reflect those of the author
right.. you like it. But that doesn't mean it would be useful to know it for someone who wants to be a part of the industry.
Like I said. It is perfect for a game DESIGN class, because the focus there is on the design of the game, and maybe the super basics of getting one to work in code. But Blitz is useless to anyone who wants to learn how they code in the AAA industry.. Which would be 99% of the people who show up I imagine.
Besides.. a game design class would be more useful than a programming class... Conceptually at least.
I remeber Maneesh Sethi. His book was cack. Plus there was a bug in his pong game.
How can you have a bug in a pong game?
C++ makes my brain hurt. How C++ has not died a terrible death yet is beyond me.
I'm like Yavin. I like the blitz Syntax and the way blitz works. Regardless of whether Max runs on very low hardware it would still be better to teach with it because you could teach the OOP fundementals.
If I were new to programming I would much rather learn Game programming the OOP way with BlitzMax than with C++.
Plus there was a bug in his pong game.
How can you have a bug in a pong game?
and while on telly.
Hehe - I remember the last thread we had on this subject - it turned out rather amusing (but perhaps a little cruel).
just use the original Blitz Basic or Blitz+, that runs on anything and is absolutely ideal for beginners,
Not
these computers. Besides which there are no Blitz products suitable for absolute beginners. Better off using
Gamemaker (which is what they now use to teach video game courses at the University of Southern Denmark. Well that and Torque, but I wouldn't recommend that to anyone with little or no previous programming experience).
A game PROGRAMMING class would be better done on industry standard languages like C++.
Actually the majority of the programmers working in the industry use Python or Lua. The only people who still use C++ are Luddites and the kind of borderline psychopaths who actually enjoy it (this will in my experience, be at most 6 people at any given company, that is those working on the "Core Technology" or "Engine" if you will). Since most companies these days use a third party engine (like gamebryo) these people are a dying breed, and teaching anyone who wants a position at a game development studio C++ is counter productive.
What problems did you have with Max? was it a linux problem or windows?
Windows / hardware / driver problem. The PCs simply didn't have DirectX (or suitable drivers) installed, and I did not have administrator privileges, so was unable to do anything about it.
How C++ has not died a terrible death yet is beyond me.
Give it time. In 5 years people who insist on using C++ will be frowned upon, much like people who insist on using assembly are today.
There was a great quote of C++ being the last bastion keeping the plebs out of programming.
I've always hated it but, until recently, always thought I should have learnt it. Glad I didn't.
I bought GameMaker not so long ago and was VERY impressed with it, it's functions, it's scripts and it's documentation.
I haven't used it since as it's quite monotonous in it's approach. Give me Bmax to mess about with any day.
>I remeber Maneesh Sethi. His book was cack. Plus there was
>a bug in his pong game.
But did he get a book published? That means he is able to work hard and finish what he started, which is an important skill in life.
>How can you have a bug in a pong game?
The odds are that any program will have bugs. Few people can write perfect code out of the box, so what is important is how you deal with bugs.
Andy
Direct X... am man I never even thought of that. and now that I am thinking of it the same problem will all versions of Blitz, if the computers don't have DX I am screwed haha.
That's something I am going to have to check out before I commit to anything. don't want to start up a course and then find that the software wont run on the hardware.
Any one got any other possible problems ?
and @Dampe, you imply that someone could sit a course on introduction to games programming, and then go get a job with a AAA company ?, I don't think so, 90% of companies these days demand at least a degree in the appropriate field.
When I was at uni, they threw us into object oriented programming with C++ pretty much straight away. Looking back on it, I think this was a very bad decision they made. Out of over 40 people who started that course, only 8 people graduated.
My path to learning programming (in order of what I learnt):
Procedural languages (first steps)
->Locomotive BASIC on the CPC
->Spectrum BASIC
->Z80 Assembler
->Blitz (on Amiga)
At uni:
->C++ (found it very hard - especially since they threw us into object oriented stuff - a totally new way to code)
->Blitz (on PC in my spare time - used it for some coursework assignments and got top results)
Commercial:
->ASP, PHP, HTML, CSS, XML, blah blah blah
After being taught programming at uni, it totally turned me off wanting to be a programmer. The fact that they just wanted to you program in object oriented with the attitude of "because you should just do it this way" didn't make a lot of sense.
After I left uni, I got into web design, and through this, ended up doing stuff in ASP because there was a demand for it. Due to using Blitz and developing my procedural programming skills through my previous non-object oriented programming, I was able to pick up ASP (VB Script) very quickly (in a matter of days), and then later PHP.
Due to gaining experience of the commercial world and how software maintenance and dealing with the changing demands of clients, I realised that there was a need to write more robust code that would save the headaches when new requirements or changes are requested - this is when I began to fully grasp the power of object oriented programming.
So what's all this blurb about? I guess what I'm trying to say is that the best way (at least for me) to learn programming is to start at the very basics with procedural programming (which the original Blitz is fine for), which allows the user to learn about logical thinking and the different types of commands that can be used, along with things like arrays and variables. Once the learner grasps these, they should then progress to object oriented principles (which BlitzMax is great for), learning the advantages and reasons for this.
Looking back on it, I think this was a very bad decision they made.
I disagree. They did the same to us (except using Java and BlueJ rather than C++). I think that's definitely the way to go if you want to learn OOP in a hurry.
Here's how I learned programming (from memory):
1) Microsoft Basic (C64).
2) 6502 assembly.
3) 68000 assembly.
4) Comal 80.
5) Pascal.
6) C.
7) C++.
8) BlitzBasic (Amiga).
9) Java.
10) C#.
Learning all those procedural languages first (particularly assembly) made it extremely difficult for me to grasp OOP and I struggled with C++ for at least a year before it finally "clicked". When I went to Uni, and they wanted me to learn Java, I discovered that it hadn't quite clicked as much as I had thought (mainly because long-term maintenance wasn't a part of my business at the time), and while I was probably the most accomplished programmer in the class (being one out of only three who had previously done any type of programming what so ever) by the time we all graduated, the playing field had pretty much been evened out. So that's at least 15 years of procedural programming right down the drain in my experience.
As far as I can say, I didn't learn anything regarding programming at uni. Everything I use today is as a result of me picking it up as I needed to.
As for the procedural programming, I don't see a major difference between that and object oriented programming now that I understand it. Every object is made up of classes that are themselves containers for mini procedural style programs (for the most part), which means that you still need to know how to program in a procedural style to do object oriented. I think that if someone had said to me "Just think of object oriented programming as having lots of mini procedural programs working together, and this is how you pass information to the mini programs, blah blah blah", I wouldn't have found it so hard.
Using procedural programming, you can make bits of code re-usable by using GOSUB and having specific variables that affect how the entire program works. Through experience you learn how even though this is good, it is limited because you have to understand the entire code and think of new names for every variable. Once you grasp this concept, you learn to appreciate object oriented style because you can enclose variables in methods/functions so that you don't need a knowledge of the entire code, but just the code that you are working with.
My first programming course we never even touched an actual programming language. It was simply data structures and psuedocode. (this was back before OOP was a mainstream thing) The second semester was taking those techniques and implementing them in Pascal.
For your idea, using blitz is not a bad idea. Just start the first class off by saying that although blitz would not be a standard language for professionals the techniques learned here can be applied to any language and toolset. (although Blitz is more intuitively laid out then all the others I have tried)
When I was at uni they started out with Darkbasic, they may still be using it would have to check to be sure.
I was merely implying that BlitzMAX isn't an accurate example of the kind of system game programmers would work with. Someone might take the course, decide they loved it, then waste a bucket at a university trying to deal with C++...
I'm unclear why you would want to teach a game programming class and not a game design class... You keen on unleashing MORE tetris clones?
I'd say with all the games being made with BMax lately, it'd be viable to hold a class about Game Development with it. Not having a native official 3D solution is a hindrance but then you could use MiniB3D. After all it is a basic course. Just advertise the course as: Basic Video Game Development using BlitzMax.
The question is where to get all the computers, copies of Blitzmax, and how many weeks the class would run, writing a lesson plan etc etc. Does the price of the class include a copy of BMax? That might be enticing but then of course it kicks the tuition up a bit.
I can see the class starting with a power point presentation of all the popular games made with BMax. Games that are on portals etc etc. To show the students you don't need C++ and 5 years of programming experience to make a game.
If BRL were to do the microsoft game and licence reduced price licences to 'students' on a BMax specific course, that may go some way to the course being a success. Good luck....
Blitz Research should bring out an education version of Blitz at a reduced price.
I gave a 'GameDesign' class this year at the cultural centre. They work with 'blocks'. Each block has 6 lessons and 8 children aged 9-12. In total, I gave 4 blocks. Originally, there were only 2 blocks planned, but there were so much entries the organisation decided to double the lessons.
Only one of them has any previous programming experience, with VB. He explained that in his regular school, he is placed in a group with students that 'learn easier', I suppose a sort of 'head of the class' idea..
The others joined because they like playing games.
I showed them the Blitz3D demo, and they liked it very much. However, only the VB student picked it up and tried to work with it himself. He modified the 'castle demo' during the classes.
For the other students, I wrote my own program, with which you can more easily make games, and that explains the basic principles of gamemaking. They liked the classes: showed up half an hour before it started and left half an hour after it ended. Not everybody liked it, for some it was just too difficult or too much work, I think. But I would say that the half of the group really dived into it, and made some beautiful games.
I think that for an absolute beginner, programming is quite difficult, because it is so abstract. It takes a while for it to make sense. It requires dedication and a lot of time.
The things I learnt this year is: put the students to work, they will learn along the way and: for them, it is better to finish something simple than to not achieve something complex.
I am planning to base each block as you call it around a game.
Block 1 : Introduction & Pong
Block 2 : Sprite's, Collisions & Space Invaders
Block 3 : Introduction to GUI Design
Block 4 : Student Project
I figure that with Pong, and space invaders under their belt, they should have all of the basic building blocks to make something on their own, sure it might not be the next halo or halflife, but to them, the students its going to be mind blowing.
Anyway, if any of you have any of your teaching pdf files or slied shows and don't mind sharing, send em my way. e-mail in my profile.
Blitz Research should bring out an education version of Blitz at a reduced price.
From the
Products page:
Educational discounts for multiple purchases are also available. Please contact sales@... for more information.
Yavin - blitzplus should work on any windows machine since it uses DirectX 1 . The original blitzbasic and blitz3d are both directx7 but I'm sure you are well aware of this..
Educational discounts for multiple purchases are also available.
They need to qualify what they mean by "multiple" purchases. Seven apparently doesn't cut it.
C++, bloated? o_O
I was wondering if anyone here was using Blitz as a teaching tool to teach people a basic introduction to computer games programming ..
BlitzMax is cool, but I'm not sure if it is the ideal tool to start with or if people would even be interested in it, since it is not one of the "big names". BlitzMax lacks press coverage, third party documentation and it basically is an exotic underdog (which I personally like a lot about it).
I definitely would not want to touch the horrible and way-too-over-rated C++ language, but why don't you use Python or ActionScript (Flash/Flex) in your class?
If you have to teach your audience programming from scratch and if everybody's on a budget, then Python would probably be a better choice than BlitzMax -- it's all OOP, runs on every platform, is used in the industry, it can be used as an embedded scripting language AND it is completely free. Even Mark Sibly likes it a lot, as he wrote in his worklog.
Flash/Flex on the other hand would be the first choice for creating browser games, which seems to be quite a market, when I want to believe some web designers who make their living with it. However, unless you use the free (as in beer) Flex SDK, this is not necessarily the best way to go for a low budget audience. On the other hand, there are 30 day trial versions available and they do give classroom discounts.
But... If nobody starts giving lessons in BlitzMax, how shall it ever become a well known product?
But... If nobody starts giving lessons in BlitzMax, how shall it ever become a well known product?
The same way the original BlitzBasic did. Someone is going to write the next
World of Warcraft or
The Sims in it.
Hmm .. the lessons were in Dutch, so I don't think that helps.
The ideas seem quite okay. I would however make sure to call it game 'programming' courses, to stress the fact that the main focus is on programming. I think there are a lot of people that want to learn how to make games, however, when it comes down to programming, only a few people can 'survive'.
Have you tried GameMaker ? It is in 2D, and it is aimed at students aged 12-18. Then again, I like BlitzBasic the best.