Re-Evaluating BMax (Feedback please)

Miscellaneous Forums/General Discussion/Re-Evaluating BMax (Feedback please)

Alright, so it's time to determine if Blitzmax is the way to go for future projects (at a fork in the road, and need to weight out which way is more efficient with similar or better results).

I do own a copy of BlitzMax and would like to start using it with the projects on my todo list (and possibly convert some other projects to it). What am I looking at?

1. How is the network support?
I see sockets, has anyone had a chance to give them a wirl? Are they better than Blitz3D/2D networking (I would hope). Is it UDP and TCP?

2. Opengl, how is it? Are we talking Glut, Glu, or other? Is it fast? Is it as fast or faster than the 3d in blitz3d? (mind you I have a bit of experience with Opengl, although there is a bit I would have to learn). I just want to be sure that it is as fast as it can be. I remember back when I was learning opengl that Glut was slow as a snail, and pure opengl was the way to go. What is the state of Blitz opengl (for 3d)?

3. GUI, how is it? Haven't played with it much (other than running demos) and it seems to be similar to Blitzplus which is nice. Can I create opengl windows in it?

Alright, now that the main points of interest are covered. How about the drawbacks of going from Blitz3d -> Blitzmax? I know there is no integrated 3d module yet, which doesnt really worry me at this point (would be nice, but I can be patient for it).

For those who have had experience with the topics above please respond. I am anxious to hear your words of wisdom as I am interested in crossing this fork in the road and going either one way or the other. At this point I can afford to weight out the pros and cons and not be affected in production. However which ever I choose will be the choice I must stick with for the next year (roughly). So any help deciding would be greatly appreciated!

Thanks in advance!

MaxGUI is a quality product. It works well and there isn't much fuss to get things up and running.

The main drawback of going from Blitz3D to BlitzMax is that Max is still so new. Because Max it is so new it will be undergoing major changes with every build. So depending on what type of coder you are this could be devastating.

But, on the other hand you can easily compile your projects for windows, osx, and linux to reach a wider audience.

Currently I've been doing all of my 2D coding in BlitzMax and I love it. But until a 3D module is produced and ready to make games with ( which will be never ) I don't see any reason why to not use both.

( Brain fart... )

Blitzmax will not be undergoing major changes with every build. It may have minor changes from time to time (improvements).

They are minor changes with no impact on most people's code, for example flushmem was removed. This made your code a lot easier to manage...

Also I could never, EVER go back to Blitz3D again. Blitz3D's language is dire in comparison. Bmax's OO approach is a sheer pleasure after a while.

2. OpenGL - you can just call openGL commands directly from within Max, so all the keyboard/Window stuff is taken care of by standard Blitz commands. Speed will depend on your GFX card/drivers, but no problem here.

But is it fast (the Opengl)? By comparison to any C opengl app?

What about networking?

Bmax's OO approach is a sheer pleasure after a while.

Never could have said it better.
I can't help you about your main questions, though. Depending on the 2d/3d focus of your future projects I'd choose Max or B3D I guess.

Going from BlitzMax 1.12 to 1.14 made IGlass unusable, isn't that devastating?

It's a bunch of OpenGL calls - to the same OGL functions as C would call - so there will be no difference, unless Max has some weird and wonderful way of implementing calls - which I severly doubt. Get the demo and check out the OpenGL 3D head for yourself.

Bottom line is Max is the future, B3D is the past. B3D is still a very usable product, but don't expect major updates.

Going from BlitzMax 1.12 to 1.14 made IGlass unusable, isn't that devastating?
IGlass is bent. I couldn't care less if someone's 3rd party code isn't updated with it.

It's probably something totally minor.

It's a bunch of OpenGL calls - to the same OGL functions as C would call - so there will be no difference, unless Max has some weird and wonderful way of implementing calls - which I severly doubt.


Your still not answering the question. If you have done any C opengl stuff, you would know that there are different ways of using opengl. Glut, Glu, and pur opengl32.

Also, There "Will" be no difference and there "IS No" difference is two different things... If you have no experience in the area in question, don't comment on it.

Get the demo and check out the OpenGL 3D head for yourself.


Your still missing the point! First off, as I said, I own Blitzmax already (so getting the demo is not needed). Secondly, I can run every demo out there, that doesnt give me user opinions. If I want marketing specs I will just look at the product page. If I want "its fast, just as good as pure opengl32" then I would ask for user comments.

Please read before posting.

Bottom line is Max is the future, B3D is the past. B3D is still a very usable product, but don't expect major updates.


Future or not, I will not abandon the past if it suites my needs better than the future at the time being. When one must make a major decision that will impact how one does business, one does not merely make a leap of faith. One weights out the odds and deduces the best solution.

B3D is useable yes, but is BMax more efficient in its current state? As far as expecting major updates, I dont. Nor did I mention anything about updates in any of my posts. Using B3D I expect it to stay the way it is, and thus means a turning point.

Honestly Nomen luni, please understand the post before replying.


In conclusion, it would seem that those with the experience to answer the above questions either havent seen this thread, or none exist.... If anyone can shed some light on the above questions I would be greatly appreciative!

I'm sorry I had the audacity to attempt an answer to your question. I won't make the same mistake again.

someone peed in dark half's wheaties... ignore him. :)

2. Opengl, how is it? Are we talking Glut, Glu, or other? Is it fast? Is it as fast or faster than the 3d in blitz3d? (mind you I have a bit of experience with Opengl, although there is a bit I would have to learn). I just want to be sure that it is as fast as it can be. I remember back when I was learning opengl that Glut was slow as a snail, and pure opengl was the way to go. What is the state of Blitz opengl (for 3d)?


It's the same as if you were working in C. There is no access to GLUT, but standard GL and GLU are available as well as the extensions made accessible via GLEW.

Asking whether or not it's "fast or faster" than the 3D in Blitz3D is pointless due to the fact that Blitz3D is not a graphics API, it's a programming language whose runtime has a 3D engine in it -- big difference.

Any engine or 3D software you write using OpenGL is only going to be slow if you do a bad job or the drivers are bug-ridden.

And I know what I'm talking about, considering that I've used C extensively in the past with OpenGL, GLU, GLEW, and SDL (not available in BlitzMax, there was a community project but no headway was made as far as I'm concerned). I've used GLUT before, but it's an outdated monstrosity with a nasty license.

LOL@Kanati..... that explains a lot.

1. How is the network support?

Sockets are not better than the networking in B3D/+. It's the same as comparing raw OpenGL to B3D's gfx engine. They are raw socket commands, as opposed to B3D's nice wrapper functions. That said, they are usable, they work etc. So there's no reason you can't write similar wrapper functions, but, you know, there's more coding involved.

2. Opengl, how is it?

What Noel said.

3. GUI, how is it?

It is more or less the same as B+, with a couple of small things gone and a couple of new small things. Oh and the mammoth task of running the same across three native platforms, natch. To stress the B+'iness of the module : the win32 module is still using the C code from B+. So, if you know what B+ is like, you can decide for yourself. =]

How about the drawbacks of going from Blitz3d -> Blitzmax?

Pretty much already discussed, but B3D is a stable, finished product - you know in advance what you're getting into. Max has had semi major improvements made with the last two releases - requiring mostly simple changes, unless you wrote messy code. Also there's always room for the introduction of bugs with such huge changes. Also in some ways Max is less developed than BlitzBasic (socket support vs networking support, freesound vs cut down FMOD etc) so some features, if you require them, will take extra coding/research. Of course Max has a tonne of benefits as well, but you didn't ask about them ;]

I have no experience though. I don't have time to code. I spend too much of it on these forums. =]

Network support: What Toby said

OpenGL: What Noel said

GUI: What Toby said

Drawbacks: Max is more complex, and is therefore likely to be 'in transition' for a while. I also made a few initial bad calls design wise (FlushMem? What was I on?!? object/handles? why didn't I fix it sooner?!?) yet this doesn't distract much from the 'core' language which is largely unchanged and I feel is a very nice combination of powerful/simple.

Before BlitzMax was released, there was much talk and many reassurances that despite being more powerful and potentially more complex than the then king-of-the-hill that was Blitz3D, if the thought of all that potential complexity make you go weak at the knees you could always code in BlitzMax in a 'higher-level' and more BlitzBasic sort of way.

In the spirit of re-examining BlitzMax then, and from a n00bie perspective (and ignoring the lack of 3D module), I'd like to ask:

a) Is BlitzMax - as it stands - capable of being as 'friendly' as BlitzBasic is/was, if one chooses not to delve into the depths of OOP and other such 'power'?

b) If not (and I must admitting to believing it's not, based on reports 'til now), do you think it's because it's still 'drying its wings in the sun', so to speak? Do you see a time when it will become as high-level as BlitzBasic, or will everyone just get used to the BlitzMax way of things (or look elsewhere)?

From the very first demo, BlitzBasic clicked for me, and let me code games like I'd never been able to before. It'd be great if that 'clickiness' carried forward into the next generation - if it doesn't, won't, or just can't, then that's okay. I just thought I'd ask the people who'd best know thus far.

I think the type handling is more complex, and there's no legacy mode. I woudln't go back - having multiple lists makes complex tasks simpler, and simple tasks more complex, so if you're doing mostly complex stuff it's a definite gain. But I think the lack of a legacy type mode is a big hurdle for beginners - I know it was for me!

It was for me too. But Michael was one of the people who encouraged me to stick with it - and he was right.

The power you gain is incomparable.

There's simply no other choice - buy it now, raise your game, or just piddle around in the junior class a bit longer :)

I'm sorry I had the audacity to attempt an answer to your question. I won't make the same mistake again.



You seemed to attempt in a @#!*y mannor. Sorry, perhaps I misunderstood.

someone peed in dark half's wheaties... ignore him. :)


No, Dark Half is attempting to quit smoking... And this is leaving Dark Half cranky and easily prone to taking things the wrong way....

@Noel, Toby, and Mark
Thanks for the answers. I was getting used to Max for some time, but then had to move back to projects which required my attention (thus having to 'relearn' B3D so to speak). I really don't mind the complexity, or having to write alot of the underlying code to use the sockets, opengl myself, I just needed to know if it was fast. Yeah, I am still a bit used to B3D, however I am finding the language so appealing with BMax that I really want to switch, regardless of the amounts of code I would have to write to make it usable for me (IE 3d and networking).

One last question thoguh, will Opengl work along side the builtin 2d? Will opengl work with the GUI?

what kinds of things have people done with multiple lists?
cant think of any uses...

One last question thoguh, will Opengl work along side the builtin 2d? Will opengl work with the GUI?

That's two last questions. =]

1. Yes, but there are pitfalls/things to watch out for. It is easy to mess up the order of the inner workings of Max2D and start getting strange results.

2. Yes. You create a Canvas, just like in B+, then attach a graphics renderer to it, such as the DX or OGL Max2D modes. Then you target draw operations on the canvas and the rest is exactly the same. If you use things like menus, drop down boxes and scrollers, you may need to learn the new Hooks interface to get the best out of canvasses.

@Dark Half - yeah ok I see how you could get the wrong end of the stick from what I wrote - no ****iness intended.

yeah ok I see how you could get the wrong end of the stick from what I wrote - no ****iness intended.


My appologies :-)

This no smoking thing is killing me.... I broke down last week and had one, why? Well, I came into work with cravings and hating the world... Then my boss sent me an email stating that my yearly review was in 30 min. Knowing I do have things to work on (weaknesses), I didnt want to go in there with a closed mind and get defensive as I have been lately, so I had one to take the edge off... The buzz lasted for 20 min at least, where then I thought of all the things I have said and done in the past few days prior which were wrong and merely taking things the wrong way on my part....

Damn you to hell nicotine!

It didn't force it's way into your system initially ;]

True..... But hind-sight is always 20/20

what kinds of things have people done with multiple lists?

I use it in boardgame map types. For games where each area can connect to a variable number of other areas (like Axis & Allies or Risk), being able to have a list of connections for each area is handy.

I use them as a lookup for all the scripts running, which are used for everything from the player characters to the layout of the background graphics.