I Like BlitzMAX (notes on the win32 beta)

BlitzMax Forums/BlitzMax Beginners Area/I Like BlitzMAX (notes on the win32 beta)

bradford6(Posted 2005) [#1]
BlitzMAX is a very nice language to work with so far.

The Major improvements over Blitz are currently also generating the most complaints.

With Modular Design, Object-Oriented Programming and Cross-Platform support, I look forward to a Language that will Scale to the latest Hardware and Evolve over time. The Traditional Blitz Model of POINT updates is now supereded by Module Synchronization. A change in one module should have little or no effect on the overall stability of the language. After just a week or so of playing with the OOP functionality, I have learned quite a bit and really look forward to more modular and manageable code.

Blitzbasic, Blitz3D and Blitzplus have a tremendous record of support and stability.

and, yes, While I don't consider them finished, the documentation is rather good. The BBDOCS system generates documentation when the Modules are synchronized. It is up to the Module builder to make the docs clear and informative. Many of them are excellent. Mark's inro to OOP in the tutorial forum is top notch.

as more tutorials and documentation updates occur, we should have plenty of reference material to accomplish our goals.

Many of us are waiting for the 3D module. I am already amazed by the 3D demos that have already been released in MAX. The 3D modules should serve to simplify and streamline some of the complexities of 3D OpenGL.

I understand that some folks are dissatisfied with the complexity, lack of docs and other factors. Some of them are attempting to port over an existing Blitz3D of BB project. If you fall into this category, please try to consider MAX a seperate and distinguished language, not a 2.0 version of BB or B3D. The syntax and overall scope of MAX is quite different than that of its predecessors.

Overall, I thoroughly enjoy learning this fantastic new language.


wedoe(Posted 2005) [#2]
I admit I was hoping for a lot more with BlitzMax but what I have seen so far of new stuff is great still.
I'm not complaining about BlitzMax for a long time yet, but if there's still poor docs and no 3D/GUI in a year I will :)


Gabriel(Posted 2005) [#3]
The language is pretty nice. Quite a few obvious things missing, but nothing so far that can't be worked around.

The documentation is barely adequate for a beta, and if I had a Mac, I'd consider the documentation completely INadequate.

I'm very disappointed with the 2d module. I was expecting it to be a lot more impressive than the extremely basic one we got. I mean alpha blending and realtime rotation and scaling are an improvement over BlitzPlus ( though not over B3d ) and that's pretty much as basic as the improvements could be, considering that OpenGL is all 3d accelerated anyway. But hey, it's early days, so the good stuff may be added later.


AntonyWells(Posted 2005) [#4]

I'm very disappointed with the 2d module. I was expecting it to be a lot more impressive than the extremely basic one we got.


I think the 'problem' is his constant struggle to make things powerful and easy at the same time. It has kind of knocked him over the head and took control of his senses.

So on one hand you have a set of powerful language features, but on the other hand there are areas(Only a few mind you, 3d aside) over-simplified or simply not supported, like .dll creation, function overloading, macros. He had macros in Blitz2.1, so it's clearly not a lack of knowledge on his part..he could do things like this over ten years ago.

(edit- err my point being that's probably why the 2d is so cut back...never mind :) )


jhague(Posted 2005) [#5]
Sybixsus, what were you expecting out of the 2D module?


Warren(Posted 2005) [#6]
The ability to draw a piece of an image? :) I mean, I was able to cobble together my own function based on work Noel Cower had done in the code archives, but it seems kind of silly for that not to be part of the base functionality.

It means that packing images onto larger textures is just not a realistic option in the baseline Max code.


Dirk Krause(Posted 2005) [#7]
Overall, I thoroughly enjoy learning this fantastic new language.
yes.


AdrianT(Posted 2005) [#8]
I didn't really notice anyone complaining too much about the new features, just the docs, sample code and tutorials.

I have a grasp of the basics of old blitz and how it relates to Bmax, but mostly through doing old blitz tutorials in Bmax.

the sample code seems to be full of coders trying to show off new features like Methods, extensd or something and doing all kinds of crazy things thats really confusing to someone thats trying to learn the basics of types, arrays and functions.

Too much stuff thrown in my face at once and no point of reference or basic instruction to build up from makes the whole learning process very difficult indeed.

The doc's in the IDE help mean very little to me as they stand, since they don't seem to show examples about how you go about using them, and the samples have no progression from beginner through to advanced.

If I want to learn the basics and shoot bullets from a ship all I find is methods, extends, all intertwined in a fashion that probably makes sence to a programmer with some experience.

So far I have gotten by by cutting out and isolating areas that I am having trouble with, but don't know how to proceed from that point on.

If you ever gave your grandad a computer and tried to teach him how to use windows with a mouse (he having never used a computer before) When it comes to Bmax, it's kind of like being your grandad, only I havent got a manual thats in plain english, but something that assumes you've used a computer before and just need a quick refresher course as to whats changes. Which essentially what the Bmax docs and samples are.

At least the other languages have a couple of years of user docs, articles and techniques to learn from, so with a lot of time and effort and experimentation you can get through it.

I think Bmax itself is excellent, and just through comparing B+ and B3D code in tutorials to what canbe done in Bmax, I can see how much better it is than previous languages.

Like Sybixsussays

The documentation is barely adequate for a beta



Seems to sum it up pretty well. I think it was definately $80 well spent though :).


flying willy(Posted 2005) [#9]
Lighting would have been nice for 2D. Pretty essential IMHO... ie... ulimited max2d module fake lights with proper attenuation that ends where it should.

Don't get me started on the pathetic joke that is Blitz3D's unlimited falloff, preventing light re-use.


John Pickford(Posted 2005) [#10]
We won't. You can spare us any more moaning skunk, we get the point.


AdrianT(Posted 2005) [#11]
Anyway, think thats enough moaning on my part too :) Writing tutorials and stuff takes a lot of time, but I hope it all gets sorted out for people like me that turn up weeks from now.

Looking forward to seeing Bmax getting fixed and signs of the 3D module taking shape, rather than have people like Mark and Skid spending an age writing docs. In the meantime I'll soldier along and see what I can learn from the code people are starting to post out there on the forums.


Gabriel(Posted 2005) [#12]
Ant: That does appear to be the cause of the problem, I agree.

Sybixsus, what were you expecting out of the 2D module?


Err yeah.. didn't really want to get into this, since it inevitably ends up with a whole bunch of people telling another bunch of people that all the things they want/need are completely worthless. It would be rude to complain and not at least offer a few points to illustrate, however.

Yes, as Skunk says, I expected some form of lights.

I expected UV control ( which I guess is a broader but similar feature to drawing parts of an image, as Warren mentioned. )

I didn't expect full pixel and vertex shader support, but I did think there might have been some built in image effects, such as those present in HGE.

Those are simple enough examples, already present in rival products, some of which are also pretty early in development.

It's not that there's anything wrong with what's there, it's just that what's there is very underwhelming.


flying willy(Posted 2005) [#13]
Looking forward to seeing Bmax getting fixed and signs of the 3D module taking shape, rather than have people like Mark and Skid spending an age writing docs.


Offhand I can name some five dedicated individuals with experience who would like to be part of the team and do it for free.

It's their loss...


Steve Elliott(Posted 2005) [#14]
the sample code seems to be full of coders trying to show off new features like Methods, extensd or something and doing all kinds of crazy things thats really confusing to someone thats trying to learn the basics of types, arrays and functions.

Too much stuff thrown in my face at once and no point of reference or basic instruction to build up from makes the whole learning process very difficult indeed.

The doc's in the IDE help mean very little to me as they stand, since they don't seem to show examples about how you go about using them, and the samples have no progression from beginner through to advanced.

If I want to learn the basics and shoot bullets from a ship all I find is methods, extends, all intertwined in a fashion that probably makes sence to a programmer with some experience.


Sums up my feelings exactly. Can we have a game or 2 with the basics covered and shock horror without OOP until we get the hang of the language?


bradford6(Posted 2005) [#15]
please take a look at my ship movement tutorial in the 'tutorials' forum. It uses OOP but I've attempted to document it.

I think the unfortunate thing about OOP is the choice of terminology the Wise old masters decided upon. POLYMORPHISM, come on, what the hell!?
INHERITENCE
OPERATOR OVERLOADING!?!?

These words scare more people away than anything.

OOP is actually very simple and there are some very good tutorials on the web Google for them

here is one I like:
http://sepwww.stanford.edu/sep/josman/oop/oop1.htm


Dreamora(Posted 2005) [#16]
Operator Overloading does not exist anyway


bradford6(Posted 2005) [#17]
Ok here is something with absolutely no OOP




Warren(Posted 2005) [#18]
I wonder why people who are familiar with types are having such a hard time extrapolating that understanding to classes. There's not THAT much difference (in BlitzMax) aside from the addition of methods/functions.

What is the mental block here?

If you understand how to declare a type and instantiate instances of it ... you're 75% of the way there. You don't need to know any OO terminology, you just need to add a few more things to your mental bag of tricks (methods/functions and an understanding of how a TList works). With those few elements added, you can be productive in BlitzMax within an hour of buying it.


Robert(Posted 2005) [#19]
Can we stop the silly moaning about the 2D module?

Given that some pretty amazing commercial games have been written in BlitzBasic and BlitzPlus which have far fewer features than the Max2D module, I don't think that it is exactly limiting.


Dreamora(Posted 2005) [#20]
hehe it is just working a little different than the old one did.
I think after all get used to it the results will become as superb as Tea Virus small lightblend sample


teamonkey(Posted 2005) [#21]
Offhand I can name some five dedicated individuals with experience who would like to be part of the team and do it for free.

It's their loss...


Why don't they write an alternative module and release it into the public domain? That's why the standard modules are all open sourced, anyway. Max is designed to be extended by the public.

Actually, I'm guessing that those individuals you mention are already in the process of writing their own modules, and are too busy to moan.


jhague(Posted 2005) [#22]
I wonder why people who are familiar with types are having such a hard time extrapolating that understanding to classes. There's not THAT much difference (in BlitzMax) aside from the addition of methods/functions.

What is the mental block here?

Conceptually, it's easy. In practice, it's not so easy. It requires a very different code organization. And some things that are super easy in a straightforward, non-OOP solution, tend to get messy and awkward when you OOPify them. This is why there are entire books about design patterns and wacky-seeming concepts like class factories and so on. The trick is in getting people to use OOP where it makes sense and not going overboard. New programmers tend to make a mess with OOP.


Gabriel(Posted 2005) [#23]
Can we stop the silly moaning about the 2D module?

Given that some pretty amazing commercial games have been written in BlitzBasic and BlitzPlus which have far fewer features than the Max2D module, I don't think that it is exactly limiting.


No we can't. If I'd wanted to use BlitzBasic or BlitzPlus, I'd have stuck with them ( since I already own both. ) Compared to rival products in the same price range, the 2d module is extremely basic. If you're sufficiently impressed with it, that's great. I won't tell you not to share that you're impressed, so try to show me the same respect.


EOF(Posted 2005) [#24]
some highlights for me are:

* stability - blitzmax seems solid so far.
* small executables thanks to modules
* flexible and low-level access
* very expandable thanks to modules
* fast!


Mark Tiffany(Posted 2005) [#25]
If I'd wanted to use BlitzBasic or BlitzPlus, I'd have stuck with them

It depends on what you view BlitzMax as. I think the BRL viewpoint is that Blitzmax is, at least initially, an upgrade over previous versions of Blitz in the following two areas:
1) Cross-platform-ness
2) Improved Language constructs / OOP
And it is these two things that they have decided to focus on. Having reached a point where the core language and 2d engine are roughly equivalent to Blitz Basic, they have decided to release it *on the Mac*.

BlitzMax is not an upgraded 2d language compared to other versions because it isn't intended to be. It isn't even officially released on PC yet (it's beta!), so it's not entirely fair to compare them.

I'm not discounting your requests as invalid - I'm sure they'd be useful additions. I'm just saying that they were never BRL's focal points during development, so it's not entirely surprising that they're not vastly different from what us as PC users already know.


Steve Elliott(Posted 2005) [#26]
Thanks bradford - but you didn't use types! I'm sure they're not that difficult to understand. But there seems to be various ways of accessing them judging by some of the code posted here and what exactly is a tlist?

What is the best way of setting up and accessing types in the standard Blitz Plus/3d way?


bradford6(Posted 2005) [#27]
Ok. Sorry to be confusing. What we have are 2 different ways to achieve (almost) the same effect.

These are not necessarily the "right" way, Just "My" way.

1. Spaceship moving with NO OOP, NO Types whatsoever
2. Spaceship Movement with OOP

NO OOP


OOP inside

[/codebox]


Steve Elliott(Posted 2005) [#28]
Thanks Bill, I guess using OOP isn't so bad after all and your code is well commented which helps.


Hotcakes(Posted 2005) [#29]
If you're bored, bradford, maybe you could do a third example using Classic Blitz style OOP (ie just Types and nothing else)... =]