Should I Buy Blitzmax?

BlitzMax Forums/BlitzMax Beginners Area/Should I Buy Blitzmax?

wongojack(Posted 2014) [#1]
I work in databases and have a bunch of what I would call "academic" knowledge about programming. Basically, I've compiled my own small apps in C++ and C# but I've never gotten creative with anything other than database scripting (which can be pretty complicated).

Anyway, I stumbled upon an open source freeware game written in Blitzmax, and it looks like the kind of thing that I could take a bit farther. I'm motivated because this is a remake of a classic game that I love. I'm looking at the BMX code and it just seems really straightforward. I'm considering buying BMX and working on improving the app to learn the language etc. I figure I'd target fixing some bugs, adding a few new objects, and compiling parts of the app to understand how it works. Given my limited skill is this reasonable?

If so, what tutorials should I start with and what concepts should I read up on before getting into this code?


GW(Posted 2014) [#2]
Yes, its awesome. not just for games but all kinds of general programming.
There is over a decade of valuable conversations and example sourcecode here on the forums and people are generally very helpful.

The easiest way is to stroll around the forums, find example sourcecode for something interesting and start tinkering with it. There are lots of examples that come with the installer too.


Derron(Posted 2014) [#3]
@Wongo

I hope you talk about our Open Source Game "TVTower" - which is a remake of the classic game "Mad TV" (more a "tribute").

Within my "compilation_guide.txt":

https://raw.githubusercontent.com/GWRon/TVTower/master/Misc/documentation/compilation_guide.txt

I already explain how to use the BlitzMax-Demoversion with more current module code: So you can experience "BlitzMax" with more up-to-date code (some insufficiencies with the BlitzMax-Compiler BCC are still there, but at least our game compiles then).

If you really want to use BlitzMax it is up to you if you buy it - or not.
If you want to thank the inventor of BlitzMax, Mark Sibly, you of course are obligated to buy a licence ... just to support him financially.

If you can wait a bit: The open source implementation of "BCC" (the only piece in BlitzMax not freely available) is coming along niceley - and while our game is not yet compileable (maxmod2/rtAudio needs some code changes) our framework "Dig" does compile very well - even on 64 Bit.



bye
Ron


Yasha(Posted 2014) [#4]
This sounds like a totally appropriate level of skill to do well with Max. Looking at someone else's code and wanting to improve it is a wonderful way to start anything, wish more people would do that.

It's simpler than C# or C++, so if you can use those, you should be able to use Max no problem. There are several features it doesn't have (on account of being simpler), but the only real difference I can think of that might actually trip you up, coming from those languages, is that all methods are virtual, more like Java; you don't need to either explicitly declare them as such, or to declare an override (while you can "seal" a method with Final, there's no way to truly make it "non-virtual" as such - it just prevents further use of the name altogether).


MOBii(Posted 2014) [#5]
I am probably the last to buy BlitzMax, and for me this been the best moment since QuickBasic 1995
I chose between Monkey X and and BlitzMax and for me this is the obvious choice!

I downloaded those tutorials to my phone:
* The MaxGUI Beginner Tutorial Series
* Making a MaxGUI Application: StripAnimMakerLite


Who was John Galt?(Posted 2014) [#6]
Yarp, defo worth buying.


Henri(Posted 2014) [#7]
Hello,

Blitzmax has two layers in which you can accomplish your programming tasks:

1. Procedural (old way, using straightforward A to B functions)

2. OOP (object oriented programming, encapsulating functionality in objects )


I would say OOP way is more satisfying allthough slightly harder to crasp, but all'n'all makes programming in BMAX *dare I say* fun.

-Henri


PhotonTom(Posted 2014) [#8]
Yeah Blitzmax is amazing and one of the best things about Blitzmax is the friendly and helpful community :)


Calibrator(Posted 2014) [#9]
I work in databases and have a bunch of what I would call "academic" knowledge about programming. Basically, I've compiled my own small apps in C++ and C# but I've never gotten creative with anything other than database scripting (which can be pretty complicated).

Then you are already qualified enough to start with BMax! ;)

Anyway, I stumbled upon an open source freeware game written in Blitzmax, and it looks like the kind of thing that I could take a bit farther. I'm motivated because this is a remake of a classic game that I love.

I stumbled upon BMax when I learned that it was used to make the Eschalon trilogy of RPGs. This impressed me a lot as I always wanted to make my own small RPG - which always failed because of the *massive* amount of programming needed if you want to do it right (not even considering the amount of data!).
When I saw Eschalon it was proof enough for me that BMax is able to handle the complexity of an RPG and provides enough performance, even on lower-spec'ed machines.

I'm looking at the BMX code and it just seems really straightforward.

IMHO this is one of the major advantages. The source isn't convoluted by brackets and even the included simple IDE supports keyword coloring etc.
This doesn't mean that BMax always support crazy coding styles! Start your programming career in it with the keyword "SuperStrict" and avoid many mistakes! ;)

I'm considering buying BMX and working on improving the app to learn the language etc. I figure I'd targetfixing some bugs, adding a few new objects, and compiling parts of the app to understand how it works. Given my limited skill is this a reasonable?

Yes, and it's one of the better ways as BMax is - by itself - not exactly well documented, IMHO: The included help files are the "manual" and mostly consist of an index with terse language and method entries with examples and a few articles thrown in for variety. You have been warned! ;)

Because of this you will depend on examples from (mostly) this forum (there is really a lot and very good discussions, too!) and source codes found elsewhere. You can learn a *lot* from those as the language is so damn well readable!

If so, what tutorials should I start with and what concepts should I read up on before getting into this code?

You can probably dive right while keeping the language index at hand...
Apart from the tutorials that were already mentioned I consult these ones in English language:
- "Beginners Guide to BlitzMax" by "wave"
- "BlitzMax OOP-Tutorial" by "Jolinah" (Michael Zehr)

I don't have up-to-date links for them but you will probably find them on this site, too, as I got most of my learning stuff from here.


wongojack(Posted 2014) [#10]
Great responses guys! I'm pleased that there is so much of a positive vibe about BMax.

I hope you talk about our Open Source Game "TVTower"


Nope, but I am going to check that out now. The game I am talking about has been abandoned since about 2009, and the author knows I'm interested. I'm going to wait until I hit my first unsolvable problem to reveal it (shouldn't take long).

BMax is - by itself - not exactly well documented


What is really? I'm reasonably good at finding answers in disparate sources. The amount of frustration involved in digging around is always mixed in with the self-discovery learning you get by going through that process. Anyway, it seems like a lot of other people have figured it out, so if I can't, I'll ask here.

I'll download the trial version of BMax and see if I can recompile this app. I work for a living, so the cost isn't really a factor, but me losing all interest is. Seems like this forum is a nice welcoming place which is huge in terms of eliminating barriers.

==========
Follow up question. I like the way that these apps seem to have all their graphical icons (and even levels) in application dirs where the code can reference them. I have no experience with Pixel Art, but I think I can mock up a few levels. What "paint" tool is popular for such a thing?


Derron(Posted 2014) [#11]
Pixel Art should be done in the editor of your choice: because you often need to know the shortcuts (switching front/back colors, switching between various painting tools) ... some use "generic" tools like GIMP/Photoshop/... Others like specialized pixel-art-tools (think you should surf some pixel-art-boards for this question).

@resource directories

It is upon you to decide where to store your resources. Often assets are stored within the binary while "user data" is stored in other directories ("appdata", "home directory" ...).

If you only want to code for "fun" this is no trouble, but when you try to publish the apps, you will have to use the system provided folders for userdata.


@TVTower
I would not suggest my project for "beginners" (language wise) as it is some kind of a beast evolving since ~12 years (but it gets better each refactoring :p). But you might have a look - and especially at the "dig framework" it uses - contains some useful things to work with (spriteatlases, xml handling, basic types like rectangles/vectors, lua engine, ...)


bye
Ron


Calibrator(Posted 2014) [#12]
I second GIMP - it can be used very well for pixel art and it's free.
- http://karnakgames.com/wp/2010/10/gimp-for-pixel-art-shortcuts-setup-and-tips/

Other people say that Microsoft Paint is sufficient and yet other people stick needles under their fingernails and think that's great.

Other people prefer (or already have) the ubiquitous Photoshop or even Clip Studio Paint (also called "Manga Studio") which is a great drawing and illustration program, but they aren't free like GIMP.

And then there are specialized editors for editing "tiles" like - for example - GraphicsGale or Pyxel Edit.

There is a lot of user preferences involved so you may want to check pixel art forums and tutorials. Here are a few:

- http://opengameart.org/
- http://hasgraphics.com/

- http://pixelartus.com/tagged/pixel-art-tutorials
- http://www.pixelprospector.com/the-big-list-of-pixel-art-tutorials/
- http://androidarts.com/pixtut/pixelart.htm
- http://www.natomic.com/hosted/marks/mpat/


Kryzon(Posted 2014) [#13]
I really like programming in BlitzMax.
I would be very happy if BlitzMax was still mantained by the developer, but it is not.
No official upgrades, no official 64 bit support etc.

Take that into consideration before buying it, depending on your intentions with it, as that is a red flag of its current state.
The next time I set to make a large scale software I'll have to use C# or Python to keep up with the current technologies.


wongojack(Posted 2014) [#14]
Well, the code I'm trying to compile uses BaH.FMOD

I got this from Brucey here: https://github.com/maxmods/bah.mod

Then I installed MinGW from here: http://tdm-gcc.tdragon.net/download

When I compile FMOD I get a message that I can't compile glue.cpp because I don't have blitz.h. Seems like a pretty basic file. What am I missing?


Brucey(Posted 2014) [#15]
Do you only have the demo version of BlitzMax still? That might be the problem.


wongojack(Posted 2014) [#16]
Yes, I am trying out the demo.

Edit - Can't I just compile the mod somehow in Visual Studio?


Calibrator(Posted 2014) [#17]
I would be very happy if BlitzMax was still mantained by the developer, but it is not.
No official upgrades, no official 64 bit support etc.

It's true that there are no upgrades but there still have been updates for compatibility in the last few years.

Take that into consideration before buying it, depending on your intentions with it, as that is a red flag of its current state.
The next time I set to make a large scale software I'll have to use C# or Python to keep up with the current technologies.

If I were doing commercial projects instead of my humble hobbyist stuff I would think very differently, too, but if I understand wongojack correctly he wants to primarily learn programming and not (yet ;)) create something large or something that needs to be maintained for generations of systems to come.

Apparently, he doesn't want to learn something on the bleeding edge of software technology or a language most experts consider "industry standard", either.
And of course you can learn programming with C#, too, but that's IMHO a bigger entry hurdle and AFAIK limited to .NET only (=Windows-only).

And while you can obviously get other compilers and IDEs for free (like GNU C++ or Java stuff) BMax is IMHO still inexpensive with $79 and while you can get a free version of Monkey there are still some massive differences, aren't there?


Derron(Posted 2014) [#18]
@Compiling modules

Check out the compilation_guide I linked to you: it explains how to get more current module code (for free).

So you keep the proprietary bcc.exe (the 30 day demo) and replace the modules, ld.exe/ar.exe ...
You even may replace MaxIDE in a later stage (but this is not needed for experimenting).


bye
Ron


Who was John Galt?(Posted 2014) [#19]
@Kryzon- I would have agreed with you, however now Brucey is on the case with his respin of BlitzMax I'm not concerned. He's got a track record of delivering and has already demonstrated some amazing progress.


wongojack(Posted 2014) [#20]
I bought it!

@Derron, I first tried your compilation guide. I'm glad I did because it taught me something about how the compiler works. however, I messed that up somewhere because I couldn't run "Hello World" when done - lol. I think what tripped me up is that there are subfolders inside MinGW\bin. I needed one of them to compile my mod, and so I did some piecemeal copying. I wasn't sure from the instructions what to do with the subfolders, so I got confused and probably copied something I shouldn't.

Now that I have the full version, I was able to build bah.fmod. The game now compiles and runs (once I used the newly built .dll instead of the old).

Anyway, I'm in the game now. I'd say what I'll be working on first is more of a 'redesign' more than 'recode'. I'm sure I'll be back to start new threads and ask for help soon.


Derron(Posted 2014) [#21]
@compilation_guide

That is why I included the code for a batch file there ... it copies what is needed :P. Maybe My "German-English" contains some mistakes leading to insufficient results. Mother tongues: feel free to correct my guide :D

Nonetheless: Welcome.


bye
Ron


GfK(Posted 2014) [#22]
I really like programming in BlitzMax.
I would be very happy if BlitzMax was still mantained by the developer, but it is not.
+1


zoqfotpik(Posted 2014) [#23]
Max is the only programming language I can wholeheartedly recommend, barring unusual applications for which other things might be better. I have been using it since around 2011 and I love it!