What do you like about BlitzMax

Started by Xaron, September 14, 2017, 20:11:23

Previous topic - Next topic

Xaron

Hey there,

out of curiosity, what do you like about BlitzMax most? What do you "hate"?
What makes it superior over BB3D for instance (let the outdated DX7 stuff aside for now).

So, is it that cross platform feature? Or are there any language features you like? Do you need OOP or not?

Thanks!

Steve Elliott

#1
Cross platform on Windows, mac and Linux were great positives...Until Linux support fell away.

The downside for me was it seemed more biased towards BASIC, than C++.  So it was neither a BASIC or a modern OOP Language (so fell between two stools) and lost sight of the goal - an easy to use (modern) game language.

OOP, but not every single feature - because that over-complicates design choices.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Henri

Why, it's like the old Chinese saying;

* It don't mean jax, if it ain't got the max  :D

-Henri
- Got 01100011 problems, but the bit ain't 00000001

sphinx

Kind regards,
Maher F. Farag
www.ancientsoft.com
www.osakit.com

IanMartin

"what do you like about BlitzMax most?"
It's super fast.  I think it was the best solution for 2D Windows desktop games.
IncBin.  Almost anyone who you can buy assets from, like art or sound, wants them included in the binary, not loaded at runtime and exposed in your folders for anyone to access.
You can add things like mods, call C code, use Windows system functions.

What do you "hate"?
Some bugs were never fixed, some features never added.
'Real world features': Features that are necessary for shipping a game in Current Year.  I.E.: Steam integration which had to be shoehorned in.  Steam features were never added to the language's built-in Functions.  Built-in controller support does not work correctly with the PC standard Xbox 360 controller, etc. 
Does not export to web out of the box.
Does not export to Android out of the box.
The developer has made it pretty clear he wants to work on what he wants to work on, not necessarily what people shipping games with the product want or need.
The website was taken down without so much as an email to let me know it was being taken down.  I can no longer download all of my files (BlitzPlus, Blitz3D, BlitzMax, Monkey-X) that I previously bought from any computer in the world through the website.  Yes, I bought them all. 
BlitzMax was given away free.
No interest has been shown in added BlitzMax to Steam, despite it being Greenlit.
Little to no interest shown in marketing Blitz languages.  Despite how good BlitzMax was, almost no other devs even know it exists (Source: I started and ran a PC Game Developers group on Facebook).
You can't export to Mac from the Windows compiler.  I think you need Linux to export Linux too?

"What makes it superior over BB3D for instance (let the outdated DX7 stuff aside for now)."
Easy scaling and rotation with pixel perfect collision detection. 
IncBin (I think, I'm not sure it was in B3D?)

"So, is it that cross platform feature?"
By cross platform do you mean Win/Mac/Linux?  I usually think of cross platform as being web and mobile too.

"Or are there any language features you like?"
Scaling, rotation, incbin, collision detection.  These are some of the things that are/were missing in Monkey.

"Do you need OOP or not?"
No.  And I very much do not like the OOP direction taken by Monkey and now Monkey2.  I like BASIC's procedural approach.  You can all get pitchforks and torches now if you like.  If I wanted OOP, I would have stuck with C++ (what I made my first PC game with).  If Atari BASIC would compile to IBM compatible machine language, I'd use that ;)
Platfinity (made with BlitzMax) on Steam:
http://store.steampowered.com/app/365440/Platfinity/

Xaron


degac

Rapid Development

Download and install it, just open IDE, write code, press F5 and you have the results. In few seconds.
You don't need (unless you want to change the source code and compile new modules) to install anything else.
Again, Linux (a wild beast) has more problem (64bit support, many distro etc) - but nothing impossible to resolve.
You can choose what modules Import to get a small final .exe (maybe not so important today, but I'm still thinking that we need some 'ecologic' use of the web - so don't waste band or HD space :D)
You can write 'console' application - just a flag.

Modular design

try to make an application that reads thounsand of .txt file and transform them in PDF (cairo), then upload the results to a website (libcurl), update the database and then send an advice via email (some of work in PHP).
I still haven't found another 'modern' language (from Mark/BRL or doesn't require to rewrite everything!) that allow to make this. And I need for work...

Multitarget

At the time (10 and more years ago) supporting 3 different OS (Windows, Apple and Linux) was the top. Mobile support was very at early stage, with too many strange OS (Symbian, Blackberry ecc). So I don't think that it was (or is) a limit!
Honestly there are better and more designed solution just ONLY for mobile. And Monkey-X shown the limit of the approach of a too wide multi target support (headache to make thing working on everything, low spec feature to be fully complaint with every target and so on)

OS integrated

you can write application that integrates with the OS. MaxGUI sure is not the best solution (it stills have many limits and no grid support for example!) but again, you can improve (via proxygadgets) and write very small application with standard gadgets (compared di WX application the resulting .exe is very very compact!). Again on Linux FLTK support is out-of-time, but there are also alternatives. And HTMLgadget is very limited (for example not all the platforms supports JavaScript, and things - on that side - are gonna ahead! HTML5/CSS/DOM etc

OS support

I'm using it since Windows98 and it still works without problems. The only problems I know is accessing to some 'public/user' folder and permission-rights, but again this is due to changes in the OS (mainly Windows).
At the moment I'm using Windows 10 (64 bit) and I can compile and run everything.

Language

it is NOT keysensitive (believe me, it's important when you need to type faster and make prototype!)
It has reflection!
it has OOP support, not full but the 'useful' things are in.
Someone could critics that lacks of GENERICS (not really, you could use Object keyword with attention and fill your code of IF..THEN :D), and - of course - overloading: personally this kind of feature complicates reading a code, but this is something subjective.

--

I still think BlitzMax is the best product of BRL/Mark: very 'generic' (not targeted on games as Blitz3d for example) and without limit (just look at the modules available...)

And if someone would consider to port to mobile target (or web) should consider BMX-NG.
Or just move to MonkeyX (CerberusX) or Monkey2

We could speak for years about the marketing skills of Mark and his strategic decision, but the things don't change at all.
If there's a problem, there's at least one solution.
www.blitzmax.org

col

#7
I like the 'limited' OOP, the module system, the 'easy' interop between 'Max and C, and that you can open the editor type and compile. No need to set up project folders and build systems ( aside from installing gcc ).

Missing features for me are 64bit, stack variables for all types, private and public accessible type members. Better optimisation and assembly output - all fulfilled by Bruceys NG version of BlitzMax.

All that other stuff... overloading, generics et al are syntactic candy that expands to what you would have typed anyway so I'm not so bothered for them - although they are nice  ;)
Writing for mobile hasn't interested me just yet.
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

MikeHart

#8
Quote from: col on September 15, 2017, 13:49:33
... and assembly output - all fulfilled by Bruceys NG version of BlitzMax.
And here I sit and thought that BMAX NG was translating to C++.

col

#9
.
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Xaron

I think translating to assembler would be an overwhelming task. Every C compiler nowadays produces better optimized output than pure assembler coders usually do. Plus you have so many different processor types (beside the Intel ones there is additionally ARM as well) that this would be a lifetime job alone.

So actually translating to C/C++ and building that using a compiler like gcc is the way to go even though it means compile times go up a bit.

Alternatively you could create an interpreter for quick prototyping and almost no compile times and compile the results for release builds. ;)

col

I agree that the latest compilers do an absolute sterling job in generating optimised assembly, but you can't beat hand written assembler if it's written by an expert. Saying that... because modern compilers do such an excellent job ( regardless or being able to write better assembly ) then there's no real need to write assembly for desktop apps, except maybe for some edge cases where a language don't support a feature, but even then each compiler has its own specific keywords and flags to take care of the majority of those edge cases.

QuoteAlternatively you could create an interpreter for quick prototyping and almost no compile times and compile the results for release builds. ;)
Are you in progress of doing that?  :)

EDIT:
I just saw your other post, and the answer I would guess is 'Yes'  :P
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

MikeHart

Yes. He/we are in progress of creating something.

col

Ok, it's a secret or care to share? or too early and shouldn't have said anything just yet?  :P
I know for sure there are some folk here that still haven't managed to settle comfortably on a language/package just yet.
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Xaron

It's too early to show something but we work on something like BB3D (syntax like) plus cross platform (Windows/Mac, HTML5 via Emscripten, Android, iOS).