What Program to buy?

Blitz3D Forums/Blitz3D Beginners Area/What Program to buy?

collimic(Posted 2012) [#1]
Hello,
I am a teacher and I am going to have to teach a Blitz product to my high school students.

I would like to know if I should be teaching
1. Blitz3d
2. Blitz Max
3. Monkey Coder

I am very new to these programs but I have been instructed to teach one of these.

I have been reading code for years but I am not a programmer. I do have a very solid understanding of Basic Programming and I have played with Blitz3d.

Is one better for students? Is one better for the industry?
Does Monkey Coder do any 3D?

Thank you for you input.


Yasha(Posted 2012) [#2]
I have been instructed to teach one of these


Seriously? Who's put BRL stuff on the curriculum? That's really interesting news! Do share.


To actually answer your questions, for educational purposes, I would strongly order them as 3, 2, 1; and yes Monkey supports 3D through Adam Redwoods' port of miniB3D (possibly other engines too by now, I don't keep up).

Monkey is a largely superior language to BlitzMax: it allows a cleaner and more modern coding style by supporting such features as interfaces, generics, and local type inference: living without these in the 21st century is near-impossible, and they make things much easier, safer and faster (e.g. you cannot guarantee the type safety of a collection without generics, meaning the BlitzMax compiler has a great gaping hole in its safety). Your students will want to learn Monkey's additional features, because they're a regular part of "real world" programming in mainstream languages like Java, C#, C++, etc.

The only features BlitzMax supports that Monkey does not are things like low-level pointers: you do not need these for an introductory class, so for your purposes Monkey is basically just a "better BlitzMax". The fact that your students' projects will work on pretty much any platform when compiled with Monkey (web browser? Mac? Windows? Xbox? iPhone?) has got to be a plus, too!

BlitzMax is in turn strictly superior to Blitz Classic (3D/Plus). It adds object-orientation, proper low-level pointer types, and garbage collection. You should not consider using a language without garbage collection for teaching beginners under any circumstances.

Blitz Classic is... adequate, but as you got from the previous paragraph, I would recommend against using it for teaching purposes. It only really supports seriously archaic programming styles, totally cuts off many important techniques, it's not "safe" (no GC, no proper type system), and there are generally just too many better options available to even consider it. I gave a long rant on why Blitz Classic is not suited for educational use here: http://www.blitzbasic.com/Community/posts.php?topic=96941#1123300 (my rant apparently persuaded the person in that thread to go and use it anyway, so it may be a bit useless...)


As in the linked thread, I would also seriously consider using a "normal" pedagogical language like a Lisp or ML dialect, if you have the option: your students won't regret it. Monkey is the best of your BRL options, but there are still other choices out there.

Last edited 2012


collimic(Posted 2012) [#3]
Here is a link to the Course Outline.

http://www.rop.cc/attachments/137_Computer%20Game%20Design.pdf

I do not have much of a choice in what I teach. I wish I did.
The school has me using Blitz3d right now but maybe next year I can talk them into something that is more industry standard. The students are not ready for anything like C++ they are having a hard enough time with BASIC.

Also can you tell me what BRL stands for?

Thank you again


Yasha(Posted 2012) [#4]
BRL = Blitz Research Ltd. The company who made these things.

If you are going to use Blitz3D, consider using the IDEal editor for it: http://www.fungamesfactory.com/

It's a replacement for the rather uninspiring bundled IDE. Useful features like strict mode, autohighlighting, autocomplete, capitalisation correction... most people here use it. It's free.


And good gracious no, I certainly wasn't recommending C++ as a teaching language! That... would not make your life easier.


Zethrax(Posted 2012) [#5]
BRL stands for Blitz Research Limited, which is the name of the small business run by Mark Sibly that develops and sells the various compiler languages available here.

Note that some of the Blitz languages have educational discounts or free versions available, so you should investigate that if you haven't already done so.

What I always recommend for people learning a programming language is that they start by modifying the existing code samples provided with the language. Basically what you do is to find an interesting code sample and turn it into something more unique and interesting. That way you can study the way the existing sample works and the effect your changes have on it.


collimic(Posted 2012) [#6]
Thank you. I know that sounded like a stupid stupid question but I wanted to make use I understood the post fully.


collimic(Posted 2012) [#7]
Just last Friday I had my students turn in the first program.

Most of them came out great for a beginner and some of the really impressed me as to the depth they put into them.

Is there a place I can share the projects? i.e., upload the .exe and images?

1 last question is there a good file packer so my students do not have to move all the files instead they can create some sort of installer once they have finished?

Thank you for all your help it is making my job easier having such a great support community even though most of the posts are old. Glad to see people still check the forums.

Thank you again.


Yasha(Posted 2012) [#8]
There are some file packers here: http://www.blitzbasic.com/toolbox/toolbox.php?cat=10 (couldn't say if any of them are any good)

I've also heard of MoleBox, which reportedly works OK, and InnoSetup if you want to create a proper Windows-style installer program.

To be honest though it's probably easier to just chuck everything in a zip file. That should be easier than packing anyway, since they have to move the same set of files. B3D programs don't need to be installed in a formal way (unless obviously you write something extra complicated that does... B3D itself won't impose this on you though). In fact you probably don't want your students submitting executables anyway, so you can check over and compile the code yourself.

As to where to upload... this site doesn't provide anything like that (don't use the code archives for "projects": everything there has to be public domain). You could always use something simple like DropBox though.

Last edited 2012


collimic(Posted 2012) [#9]
Here is one of the best one from one of my students.

http://www.mrcollinsrop.com/files/solarsystem.zip

Feel free to comment but please remember it is the first program they made that did not say "Hello World"


Zethrax(Posted 2012) [#10]
The best place to post projects is the worklogs section of this site. You can also post them in the showcase part of the forum.

Worklogs: http://www.blitzbasic.com/logs/logs.php

Blitz Showcase: http://www.blitzbasic.com/Community/topics.php?forum=61

For hosting files, try: http://www.mediafire.com/
For hosting images, try: http://imgur.com/

For packing files, either zip them up or use a tool such as Blitz Media Linker (for Blitz3D) which I've linked below. Creating installer versions is a bad idea as most people won't want to install something just to see what it does. Installers tend to leave a lot of clutter behind after un-installing too.

http://files.pmnova.com/stuff/BlitzMediaLinker.zip


collimic(Posted 2012) [#11]
Well I guess I am not smart enough to make Blitz Media Linker work. keeps giving me compiler errors.

O'Well I will play with a few files and try and make it work.

Thank you again for all your help and suggestions.


Zethrax(Posted 2012) [#12]
I haven't used Blitz Media Linker for a while so it may no longer work with the latest update to Blitz3D. Zipping the files up is probably the best approach anyway.


Midimaster(Posted 2012) [#13]
I would prefer BlitzMax. It is more modern, will work on future windows, also on MAC and it is BASIC. You need no installer no packer nothing. BlitzMax results will run on every computer without any additional files. Students can copy their resulting EXEs on a stick and run it at home.

BlitzMax is more modern and more strict in use and scope of variables. This helps students work more organized. It offers OOP, but you are not forced to do it. And it has MiniB3D which offers you all possibilities of Blitz3D.


Kryzon(Posted 2012) [#14]
I think this is the first time I see Blitz3D being used in 'serious' education.


Creating installer versions is a bad idea as most people won't want to install something just to see what it does. Installers tend to leave a lot of clutter behind after un-installing too.

I agree. I don't like to install something unless it's from a reputable source.
Use compressable archives (7Zip for instance). You know it's not gonna put anything in your registry or program data folders.

And if you want any automation at all (so it "feels" like an installer), you can teach them how to make self-extracting archives: http://www.wikihow.com/Use-7Zip-to-Create-Self-Extracting-excutables


Midimaster(Posted 2012) [#15]
With the command INCBIN he already can include all resources into the code and use them in the final EXE. With the ZIP module of user Koriolis he would be able to INCBIN compressed resources. So he always has to give away only one file: the EXE-file itself!


collimic(Posted 2012) [#16]
What is the INCBIN command?


Yasha(Posted 2012) [#17]
IncBin is a BlitzMax thing, it's not supported in B3D.


Mikorians(Posted 2012) [#18]
Yea! old B3D rejuvinated!
Someone tell me there are now bugfixes/updates in the works!
I'm an old stubborn fogie who dislikes C intensely.
I can read it, but I wouldn't use it.

Last edited 2012


MarkG(Posted 2012) [#19]
I just purchased Sprite Candy and the Fast Libs suite for Blitz3D and feel really fortunate these products still exist. Also IDEal which is super slick (kudos to the author for making it available as abandonware).

Blitz3D is that super comfortable worn out pair of jeans you never want to get rid of. As long as it keeps working under the latest Windows, even if having to use workarounds, I'll be happy.


Yue(Posted 2012) [#20]
Xors3D?


fox95871(Posted 2012) [#21]
I remember when I was worried learning Blitz3d might be in vain, the way stuff's always becoming obsolete and no longer compatible. But that was YEARS ago, and it's still around! I guess when you think about it, at the end of the day it is just a very easy to use way to control the display of 3d math on screen, and it's not like that's ever gonna change, right? And if that's true, who knows, maybe it'll be around forever.


Captain Wicker (crazy hillbilly)(Posted 2012) [#22]
BlitzMax can do more than Blitz3D.


Kippykip(Posted 2012) [#23]
I would say Blitz3d :)


andy_mc(Posted 2012) [#24]
I developed a series of Blitz3D tutorial videos on youtube: www.youtube.com/amcadam26 and have jhad many good comments from peopole that have used these to get into programming. True, Blitz3D is older and supports less features, both language and technology based, but for a beginner it's the most simple to learn and make something good out of. They won't be writing Crysis so they don't need anything super modern. It's like teaching someone to drive a car, you might think a 4x4 4.5 litre Porche Cayenne is a great car, but you don't teach your 17 year old to drive in one, you go get him a 1.2 litre Fiesta. That's what we're talking here. Monkey with it's 3D engine support and multi platform compiling is great and everything, but is too much for a the new beginner, stick to something simple that won't confuse them. Using Money or something like C++ with Ogre would be trying to run before you can walk.


airborne(Posted 2012) [#25]
Well said


boomboom(Posted 2012) [#26]
Hi Collimic, I am a teacher here in the UK and have taught my students programming using several languages. Blitz3D is a great choice as it allows them to quickly create 3D worlds and really start to imagine they can make games they love.

At the moment the students start off at 11-12 years old using scratch to make a virtual pet. Then 12-13 they make their own games in scratch, following one of 3 project tutorials, or creating their own.

Then at 13 they play with a little bit of Blitz3D. When they come to do qualification courses they get to pick their own language, and they discuss their choices during the analysis of their project. Usually if they are doing data processing it will be Access, but some will choose to use Python or SmallBasic.

SmallBasic, Python and Greenfoot are very good choices for this age group as they are industry standard, but quite simple (SmallBasic consumes objects from .net, and greenfoot is like a cut down version of Java).

Let me know if you need any help.