Beginners - Start Here

BlitzMax Forums/BlitzMax Tutorials/Beginners - Start Here

Zethrax(Posted 2015) [#1]
Want to help support the development of Blitz Research products? Click here to go to Mark Sibly's Patreon page.

--

So with Blitz3D, BlitzPlus, and BlitzMax now free we've got a lot of new people visiting these forums. That's great! It makes the forums a lot more active and makes them a more interesting and informative place to visit. Unfortunately it also means that we have a lot of new people who don't know where to start learning about the Blitz languages, or about programming and game-making in general. This is why I've put together the information below to help get new Blitzers started on their journey with the Blitz programming languages.

Feel free to post any suggestions regarding information that you feel should be added to the post below, as long as it's 'where to go to learn the basics' type information. Tutorials should be posted in the Blitz3D, BlitzPlus, or BlitzMax tutorial forums.

If you have questions about a specific topic that you want more information on then I'd suggest starting a separate thread rather than posting those questions below. This thread is intended to be about providing basic information to help new people get started learning about the languages.


--


To get a copy of Blitz3D, BlitzPlus, and BlitzMax you'll first need to register an account on this site via the 'Signup' link on the top-right corner of the page. Once you have your account setup you will be able to login via the nearby 'Login' link. You can then click the 'Account' link in the main menu bar and then the 'Product updates' link in the sub-menu below the main menu bar which will take you to the page where you can download the products. Note that you'll need to be logged-in for the 'Account' and 'Product updates' links to work.

The best place to get started learning about a Blitz programming language product is in the help documentation that came with the product. To find the help documentation first open the editor for the Blitz product (the editor is also known as the IDE, which is short for Integrated Development Enviroment). Then click the 'Help' tab in the editor. You should see a list of topics followed by a short decription of the topic.

You can also find the command references for the various Blitz products by clicking the 'Manuals' link in the main menu on this website. This online version of the Command Reference information is likely to be more up-to-date than the information that comes with the product download, and it includes user comments that may make some things clearer.

The first thing you should do before starting on a programming project, working with a code sample, or asking questions on the forum is to read through the help documentation and get at least a rough overview of what's available in the language and how the language works. You don't need to learn it all at once. Just skim through it to begin with and re-read it later on as your understanding grows and you gain a better grasp of the concepts involved. You can also find user-created online tutorials for Blitz3D, BlitzPlus, and BlitzMax that address various topics. Bear in mind that some of these user-created tutorials may include information that is incorrect, despite the best intentions of the user who created them.

Once you have at least a basic understanding of the language and how it's used then you should have a look through some of the code samples that are included with the help documentation (you should see a link to the folder they are in on the page that shows when you click the 'Help' tab in the IDE). Have a skim through them, run them, and then have a play with the running program. I recommend that you don't edit the original code for the code samples though. You'll probably want to leave this code in it's original state so that you can refer back to it. Instead, create a copy of the folder that a code sample that interests you is in. Or you may want to just copy the entire 'samples' folder to a new location. If you copy a specific code sample to its own location then you should be aware that some of the code samples may be dependent on external files that set their graphics mode, etc. For Blitz3D, the samples in the 'mak' folder all depend on the 'start.bb' file found in that folder for example, and you will get an error message if the 'mak' samples can't find that file. Some of the 'mak' samples may also depend on the 'b3dlogo.jpg' image file found in the 'mak' parent folder. A good place to start learning to code is to investigate the code to find out how those dependencies work and research how you can localize them to the folder the code sample is in.

Another good place to go looking for sample code to play with and learn from is the Code Archives section of this website. This section of the site is mainly for people to post code that provides solutions to specific problems, but most of the code there also comes with standalone demo code to demonstrate its use. You can also find the occasional complete project there to play around with. The code in the code archives is all public domain code, so you can do whatever you want with it - which includes using it in a commercial product. To find the link to the Code Archives just click on the 'Community' link in the main menu bar and you will find the Code Archives linked in the sub-menu on any page in the Community section of the site.

Note that there's no search function in the Code Archives, so you'll need to use Google's 'Search within a specific site' functionality to search for a specific topic there. To do that, go to the Google search engine page (or use the Google search box in your web browser) and type the text in the code box below into the search box (substitute the 'your search term goes here' text for whatever search term you're looking for).
site:http://www.blitzbasic.com/codearcs/codearcs.php your search term goes here

There are many interesting and useful areas of this website, so take the time to navigate around and see what's here. Bear in mind though that some of the sections that feature off-site links may include a lot of dead links. A few sections that you may find useful are the Toolbox, the Worklogs, the Gallery, and many others.

A harsh reality of coding with Blitz3D and BlitzPlus is that the default IDEs for them are complete rubbish. They should have been put out of their misery and replaced with something better a decade ago. Fortunately many clever users have created alternative IDEs that are much better. Many of these are free, including many people's favorite IDEal.

The best way to learn how to create games and other coding projects is to start out with small, simple projects and work your way up to larger projects as your experience and skill grows. Focus on projects where you have at least a basic idea of how you're going to achieve the goals for that project.


-- Using the Forums and Asking Questions --

You can find the answers to a variety of Blitz related questions on this website's FAQs (Frequently Asked Questions) page. The link to the FAQs page can be found in the sub-menu below the main menu bar on the forum pages and the site's [a /]Home page[/a].

You can find the Terms of Use for the Blitz website, forums, etc by clicking here. You can find James's (BlitzSupport's) grumpy post about proper conduct on the forums by clicking here.

There are a variety of forum codes you can use to make your forum posts easier to read and to also add links, images, Youtube videos, and a number of other things to them. You can find a link to the forum codes above the post boxes used to create a new thread, post in an existing one, or edit a post you've already made.

If you make a mistake in your forum post and need to edit it then you can find the 'Edit' link near the top-right corner of your post.

If you make a mistake in the title of a forum thread you've started and need to edit it then you can find the 'Edit' link near the top-right corner of your first post in the thread. The edit page should include a 'Topic title:' text box that lets you edit the topic title.

If you make a mistake and start a thread in the wrong forum then the best way to fix it is to contact Blitz support via the Contact page. You can find the link to the contact page in the main menu bar at the top of each page on the site. Note that it may sometimes take several days to get a response, so be patient.

If you want to post a link to a specific post within a thread then you can find the link for the post via the number preceded by a hash '#' character on the top-right corner of the post. Just right-click on the number and use the 'Copy link address', 'Copy shortcut', etc option in the popup menu to copy the link address.

If you want to search the forums for specific information then you can find a variety of options for searching on the main forum page as well as on specific forums. Before asking for help on the forums it's generally a good idea to try searching the forums first to see if the question has already been asked and answered. Many people encounter a problem and then rush to the forum to ask how to solve it without bothering to research further, which gets annoying fast.

Before asking for programming help on the forum, first make sure that you have at least a basic understanding of the programming language you are using and of the topic you are asking about. Follow the directions at the start of this post to learn the basics of the programming language and of programming in general. Use the forum search to find previous discussions on the topic. Use Google or other search engines to find articles, etc on the topic. You'll be able to ask much more intelligent questions and gain a much greater understanding of the answers you receive if you take the time to educate yourself on the topic in question first.

Basically, you're welcome to ask questions on the forums. We were all beginners once. No one's going to hate you for asking a question that you're stuck on and have put a reasonable level of effort into understanding and solving yourself. Just try to avoid asking questions that you could have easily found the answer to yourself, or questions that you haven't taken the time to research and don't have the background knowledge to understand as a result.

If you have any problems that require you to contact Blitz Research directly (issues with your account, etc) then you can contact Blitz support via the Contact page. You can find the link to the contact page in the main menu bar at the top of each page on the site. Note that it may sometimes take several days to get a response, so be patient.


-- Blitz Research Compilers and Tools --

Blitz3D - (Free and open-source) A procedural programming language for Windows PC with a BASIC syntax. The language includes inbuilt support for 2D and 3D graphics, sound, and collisions.

BlitzPlus - (Free and open-source) A procedural programming language for Windows PC with a BASIC syntax. The language includes inbuilt support for 2D graphics, sound, and collisions as well as a Graphical User Interface system. The 2D graphics system makes use of the graphics card for real-time transformations.

BlitzMax - (Free and open-source) A modular cross-platform object-oriented compiler with garbage collection and a large module library. The platforms it compiles to include Windows, Linux, and Mac.

Monkey X - A modular cross-platform object-oriented compiler with garbage collection and a large module library. The platforms it compiles to include Windows, Linux, Mac, HTML5, Android, iPhone, Flash, and many others. Free for use on some of those platforms with a paid upgrade for the rest.

Maplet - A free constructive solid geometry (CSG) 3D modelling tool used to create 3D world geometry (3D game levels, etc). Maplet is as stable as a box of set mousetraps (it crashes frequently), so save your work often. The source code for it was apparently lost (silly Mark - make sure you back up your stuff kids) so there won't be any new versions of it.


-- Blitz Research Limited Links --

(Blitz Research Limited (BRL) is the company that created the various Blitz and Monkey X compilers. Mark Sibly is the owner of Blitz Research Limited and the author of the various compilers and tools made by BRL.)

[a /]Blitz Basic[/a] - The main website for the BlitzMax, Blitz3D, and BlitzPlus programming languages. Note that there are multiple domains pointing to this website (which can make things ridiculously confusing when links to pages on the website are posted on the forum for a domain that you're not logged into).

Monkey X - The main website for the Monkey X programming language.

Mark Sibly's personal blog - Mark is the owner of Blitz Research Limited and is the creator of the various Blitz and Monkey X programming languages.

Mark Sibly's Patreon page - If you'd like to donate to Mark's efforts in developing new game programming language compilers then you can do so via this link.

Blitz3D open-sourced - The forum post announcing that Blitz3D was open-sourced. Includes the link to the source repository.

BlitzPlus open-sourced - A post on Mark Sibly's blog announcing that BlitzPlus was open-sourced. Includes the link to the source repository.

BlitzMax open-sourced - The forum post announcing that BlitzMax was open-sourced.

Full List of Blitz Games - A list of games made with the Blitz languages.

Blitz_Research - Wikipedia - The Wikipedia page for Blitz Research Limited.

Blitz Basic - Wikipedia - The Wikipedia page for the various Blitz Research programming languages.

Monkey X - Wikipedia - The Wikipedia page for the Monkey X programming language.


-- Useful Game Programming Links --

Game Media and Resources Links - A worklog I created to list useful game media and resource links (needs updating).

Pixel Prospector - Covers many interesting topics such as making games, marketing them, selling them, etc.

Ambrosine - Game Creation Resources - A list of game creation resources.

Hotshot2005's List of Tools and Resources - A list of tools and resources put together by Hotshot2005.

(This section will get added to in future.)



---


Matrix(Posted 2015) [#2]
Zethrax,

Very nice reference document. Perhaps this should be made "sticky" so it doesn't get lost?

Tim


Edster(Posted 2016) [#3]
I've tried for hours to figure out how to install BlitzMax or to be more accurate, how to access it! But I don't care any more, given up! It's supposed to be a beginners language, only problem with that is, you need a degree in I.T to get the thing to work.

Uninstalled from my system and sorry I ever heard of BlitzMax.


Zethrax(Posted 2016) [#4]
@Edster Which system are you installing it on? Windows, Mac, Linux?

But yeah, 'straight out of the box' solutions for the win. BlitzMax has some cool stuff in it, but it can be a pain to get working and to work with.


Midimaster(Posted 2016) [#5]
BlitzMax on Windows (or OsX) is as easy as it can be: You only have to download the last version. Run it once. Then you search for the folder "BlitzMax" on "C". Inside there is a MaxIde.Exe. Start it! That's all.


Kryzon(Posted 2016) [#6]
I think the thread text can use some rearranging. Putting the essential instructions first and then the detailed description below, for those that are willing to read it.

Having the steps in the middle of the detailed description is a bit discouraging. When someone comes here they'll want quick information (think Stackoverflow type answers).
This way people that care can still read all the backstory, people that don't care won't be discouraged.

Example:

To get BlitzMax:
1) Create an account in this website, then login with it.
2) Go to Account -> Product Updates at the top of this page.
3) In the Product Updates page, download the latest BlitzMax version available for your operating system (Win, Mac or Linux).
4) Run the installer and follow the instructions.

- - - - -

So with Blitz3D, BlitzPlus, and BlitzMax now free we've got a lot of new people visiting these forums. That's great! It makes the forums a lot more active and makes them a more interesting and informative place to visit (...)