Suggest BlitzMax alternative-
Miscellaneous Forums/General Discussion/Suggest BlitzMax alternative-
I'm after an alternative to BlitzMax. I love the language, but I want to write a realtime sample generator for fmod, and the garbage collector just won't play ball with the callbacks.
So what I want-
A language with no GC
Simplicity of Blitz
Power of BlitzMax
Existing fmod wrapper or interface
XP compatible. X platform an advantage but not necessary.
Suggestions?
Can't you turn the GC off?
Anyway, PureBasic might be worth a look.
Thanks for the recommendation, Tony.
I would love to solve the problem in Blitz, but I've tried everything I can think of. I even went to the extent of rewriting the callback so it wouldn't generate any garbage, doing manual garbage collection and not calling GCCollect in the callback. BRL don't seem to have an answer, although it's still possible they could get back to me. If anyone has any more ideas, I'm all ears.
C/C++ fits all those except for the "Simplicity of Blitz"
Nomen luni
Goto Microsoft website and look at C# - you should find its free to develop with (using the express version of Visual Studio) and you have the added knowledge that your new skills will be applyable to many more projects in the future as C# is the Next big thing.
IPete2.
@Nomen
Tried PlayBasic?
What about QuickBasic 45 :-P?
I would say C# for the mainstream solution, Purebasic if you want another hobby language. C# runs on multiplatform (via .NET), and is pretty well supported. Both are much more complete than BMax.
Darkheart
But they're not as sexy as BlitzMax :D
C# by its very nature is far more sexy than BMAX
- it is far more complete as a language
- it has a much higher regard in the professional programming fraternity
- 95% as powerful as C/C++ (thats a low estimate btw)
- fraction of the learning curve of C/C++
- it is based on a massively powerful and far more popular framework i.e. .NET
- it's free under the Visual Studio Express license
- there's far more documentation
- a million times better IDE
- many, many more users and examples to rummage through
- can be used to programme for XBOX 360 as well as Windows by harnessesing XNA
- the list is almost (not quite) exhaustive...
I am outta breath even just typing this minimal list.
IPete2.
He said no GC.
PureBasic has a kind of garbage collection. When the program ends, all allocated memory is freed. Strings are freed exactly at the moment they are not longer used. Procedures not called anywhere in a program are not compiled.
You could try Free Basic
http://www.freebasic.net/Or theres REAL BASIC
http://www.realbasic.com/products/index.phpbut some how I don't think you will like the price
PureBasic has a kind of garbage collection. When the program ends, all allocated memory is freed.
That happens in most if not all non-gc languages.
The only real alternative to BlitzMax would be GNU C++.
Can't stand C or C++. C# as mentioned has GC, right? Plus I have a feeling I won't like that either. Purebasic has put me off because it has keywords like 'procedurereturn'. A fairly minor thing I know but it will do my nut. Yet to investigate free, real, play (basic)
Realbasic won't be a good choice, because it won't deliver BlitzMax' speed, is a crappier language and it also has a GC. It's got a gorgeous IDE and tons of components, though.
Since you're mainly interested in Windows, but still want a simple application and fast application language, you should check out PowerBasic. It's not object-oriented, but boy, it -is- fast.
Or try good old Pascal: www.freepascal.org. This compiler is also lightning fast (meaning that it not only blows GNU GCC out of the water, but also a ton of other compilers). And it's multi-platform. Pascal was my second language in the 80s and taught me structured programming. I still love it and can only recommend it when you have the freedom of choice. C is an ugly piece of dung compared to the elegance of Pascal.
@winni
You forgot to mention the Lazarus project
http://www.lazarus.freepascal.org/This is basically a open source version of Borland's Delphi 6.
Now I have used this and it does help if you can get a copy of the Delphi help files. I found this to be pretty stable on XP and ubuntu (but there are problems on OS X (x86). I dont know about the PPC, but trying to build a application bundle is a pain)
What is GC?
Edit:
I think I answered my own question....Garbage Collection?
Hey! C# is not very good - you need always NET-Framework for this... (i don't understand why all people like NET)
Here is Alterntive: D Language
http://en.wikipedia.org/wiki/D_languageThis compile to native exe with many smilar features to C#
And more - i saw a converter (alpha) that can convert C#-like-code to C-Code
http://en.wikipedia.org/wiki/Vala_%28programming_language%29
Good point, Credo. I don't want to be reliant on NET. Thanks, Winni, you've saved me the effort of looking into Realbasic. Anyone know if Cobra is suitable for my requirements?
GC = Garbage Collector from what i picked up :o)
why not stick with blitzmax, ditch fmod and use openal instead?
I wonder what the supposed problem with the .NET runtime is these days; Vista has it built in, Server 2003 and 2008 also come with it and even XP (Version 2002) has it on its OS CD. Seems to me as if all relevant Microsoft operating systems are pretty much covered.
And in doubt, you can still use Mono instead of .NET, even on Windows. The big difference is that the Mono runtime can be embedded into your application. However, it is not as feature-complete or as fast as .NET, so you better make sure that all your needs are covered before you choose that path.
I understand quite well why people usually like .NET: It does not care for the language that you want to use, but it cleans up the old Windows API mess and gives you a well designed object-oriented framework instead.
The downside is that C# plainly sucks on OS X. Just check out the latest Mono download and play with MonoDevelop a bit; even Netbeans 6 blows it out of the water in reverse gear. I don't know how it behaves on GNU/Linux nowadays.
Cobra: It says on their homepage that it is 'leveraging .NET/Mono for machine code generation'. That translates to that it requires the .NET or Mono framework as much as C# would. So I don't think you would have a real benefit of choosing it over C#, but you would have exactly the same deployment issues.
Lazarus and Free Pascal: Lazarus is a pain to install on OS X. It requires Fink and one or two (or more?) ported GNU/Linux libraries to run, so as a lazy Mac user I simply chose to ignore it. My latest encounter with Mono and MonoDevelop were already frustrating enough, I am not a big fan of running ported Linux-software on a Mac.
Since I still cannot stand Objective-C, C or C++, or D, which tries to be C++++, BlitzMax is by far the best choice. It just would be great if it grew up and dropped that 'games only' attitude.
It just would be great if it grew up and dropped that 'games only' attitude.
Awe, come on now!
Who in their right mind would want to write anything other than games??
Awe, come on now!
Who in their right mind would want to write anything other than games??
Ahem, you, Brucey? ;-)
Well, I don't count, because I'm obviously certifiable.
Anyhoo, how's about Python?
It's Oopy, easy to get into, and there's a wrapper for fmod called Pysonic.
Whether or not you can get it to go fast enough...
So what I want-
A language with no GC
Simplicity of Blitz
Power of BlitzMax
Existing fmod wrapper or interface
XP compatible. X platform an advantage but not necessary.
C#
-has gc, can't turn it off. GC is not a problem though. I will say it again. GC is not a problem. ( .NET's memory management > max's memory management. )
-more complex. But in a good way. I went from blitz to c#. If I can do it, anyone can.
-more "powerful" than blitzmax. ( As a simplification. Its hard to rate a languages "power" without lengthy analysis, and agreeing on how to measure such things )
-FMOD sdk comes with c# binding. It works great.
-runs on vista, earlier windows need .net installed, or mono. Other platforms with mono. ymmv.
Seconding C# just because I think you'll like it.
Here's a place you can look for stuff
http://www.thefreecountry.com/
Have you considered FORTRAN '77?
Thanks for the links, Dawlane. I'm going to give C# a whirl after all that. Used Pascal many moons ago and not a big fan.
F77? You joking, Tea?
From what I've read you can turn garbage collection off in C#...
http://msdn.microsoft.com/msdnmag/issues/0900/csharp/Darkheart
I recommend C# as well.
-AF
@IPete2: I know very well C# programing, most of the BLIde engine is done in C#. Anyway, thanks for your comment. I still believe BMax is much more sexy... :D
As everybody is recomending C#, wich would be also my recommendation, I think it is a good exercise to list some things to keep on mind:
-windows only, the mono version produces slow code, and if using the windows.forms namespace it looks weird in non windows computers. you may use the fltk version, but then you would need an extra binary to be distributed with your application, and it will look weird on windows computers.
-The GC works in a very different way when used in release or in debug mode. that makes it difficult to debug the speed of your application at runtime.
-Multithreading on C# has some automatic monitor operations when used from the IDE, wich makes it possible to debug several threads at once, so you can have some semaphore problems at release time you didn't get when debuging.
-Not all versions of the framework (mono again) accept type-safe lists (or collections), so most of the time it requieres late binding, wich is slow unless using .net 2.0.52 or greater
Why isnt any1 recommending Java 2?
Why isnt any1 recommending Java 2?
Why would they?! :p hehehe
I know no commercial game or commercial application that was coded in C# - you? only tools or text-editors...
Sony vegas
heres just a few examples
http://www.thezbuffer.com/categories/games.aspxhttp://www.xnaracinggame.com/Unity3d uses mono for scripting
http://unity3d.com/And this is pretty cool, not a game though.
http://www.youtube.com/watch?v=eTsZXzUvcss&feature=PlayList&p=BA4DB0AC0DE30C83&index=4http://www.intoi.net/They aren't all commercial -- but that doesn't necessarily imply that the technology they were created with is inferior or inappropriate.
People have certainly done some stuff in XNA and Managed DirectX, it's not bad, but from the looks of it, it's all stuff that could have been done years ago in Blitz3D, under DX7 nothing particularly 'wowing' that I noticed. :/
Also I'd also bet the Blitz3D version would take 1/5th of the memory footprint.
The discussion in general is ridiculous. Unless you have a 10 million dollar budget, nobody will be able to make anything 'wowing' these days anymore. And a one man army, like most of us here only are, will never be able to take full advantage of any available modern technology in a realistic amount of time.
So even if we had a new version of Blitz3D with DirectX 10 and multi-threading support and an integrated high-end physics engine and a Visual Studio-like IDE and let's say 2 years time with no need to work a day time job: Does anybody here really believe he would be able to come up with something in the league of Gears of War, BlackSite, The Darnkness, Half-Life 2 or BioShock?
All those feature lists read great, and all that whining for the "lack" of features only translates to an individual denial of facts of reality.
Technology (that you can't even harness) won't make you a great piece of software or a great game. Accept that you cannot compete with large teams with multi-million dollar budgets and learn to master what you have and can do instead. And there's a lot of great things that can be done by a one man shop, even after you've looked at everything from a more realistic perspective.
And if you're that digital Picasso: Proof me wrong and write that next generation mega game. On your own. With that fabulous Microsoft technology and that killer IDE. Please. And if your game is any good, I will certainly buy it. But keep in mind that in my book "good" does not translate to "has high-end 3D graphics and physics and a newest generation engine and requires a PC that has not even been built yet". Good simply translates to good. The kind of good that some people here have proven can be done with the BlitzMax and Blitz3D as they are TODAY.
The discussion in general is ridiculous. Unless you have a 10 million dollar budget, nobody will be able to make anything 'wowing' these days anymore. And a one man army, like most of us here only are, will never be able to take full advantage of any available modern technology in a realistic amount of time.
I understand your point of view on this, and I agree with you to an extent, but you don't need to make Half Life 3 to make people go 'Wow', it doesn't even need to be a complete game. But when I look at a demo of how good a particular system is, (Be it Blitz3D / XNA / Truevision etc.) I ask myself how does this improve on what already exists. If it doesn't improve in any appreciable way on what already exists (either in ease of creation / overall flexibility or quality of output) then, although the games / demos are good, it's not a compelling system to switch to.
Now a good artist can make good pictures with an old piece of chalk, but as most artists will tell you, good materials will improve the end result. In terms of improvements, I feel that Blitz3D brought an ease of use and accessibility that were pretty outstanding at the time. Even though XNA+C# may make great strides in image quality possible, the 'Accessability' and 'Ease of use' factors are still outstanding pluses for Blitz as opposed to most other systems I have come across, and hard to replace.
Unless you have a 10 million dollar budget, nobody will be able to make anything 'wowing' these days anymore. And a one man army, like most of us here only are, will never be able to take full advantage of any available modern technology in a realistic amount of time.
Not really. A good programmer can implement modern technology and fun gameplay mechanics, although it usually will take considerably longer than a full team. Here's an example:



The planets rendered in this game are procedurally generated, full sized (just as large as they would be in real life), and transitions into the planet are seamless (there's no loading before you enter a planet). This technology is very 'wowing'.
Is this your current project, John? Where do I send the cheque?
No, it's not (although I've just recently started creating a prototype planet engine of my own).
The screenshots above are from a game called "Infinity: The Quest for Earth", which is being developed by Flavien Brebion. Predictably, it's taking a very long time any is impossible to tell when it'll be complete. Personally I think the planets, while technically impressive, are just too large for game purposes. Millions of square miles on a single planet it just too much, for a MMO.
One of my most technically advanced projects is probably the PagedGeometry vegetation renderer for the Ogre engine:


240,000 trees, 150 FPS.
heh heh.. They've got Wow :)
@winni:
"Technology (that you can't even harness) won't make you a great piece of software or a great game. Accept that you cannot compete with large teams with mult..."
you are not geting the point WHY we want to have new technology. sure, tech itself does not make you a great game, but it makes things a lot easier. no need to fiddle with 3rd party addons or huge b3d-constructs for e.g. shadows and that stuff. dx7 is cpu based, every animation is calculated by the cpu. with the new tech its the GPUs job to do that, giving a huge speed increase and therefore much more room for other things in games (more detail, higher textures, shaderstuff, fullscreen antialiasing, ...)
i think we are all aware, that a one man army cannot (and will not) compete against the AAA studios.
my projects should be limited only by my knowledge/capability, not by the tools i am using.
Ok old thread revival time. While just mindlessly searching the net I came upon this site (
http://basic.mindteq.com/Index.html ) that list a load off other basic languages.
I downloaded and unzipped a file from that site (RapidQ.zip). When I tried to execute the program, Norton flagged a trojan. I'm thinking it's just a false positive. I emailed the site to see what they might know about it.
I use callbacks all the time with Newton. You might need to call GCSuspend() and GCResume() before calling a function that might call callbacks. And make sure you are using the right calling convention, either "c" or "win32".
240,000 trees, 150 FPS.
Oh ya, whats the vegetation count on that? :O
I would suggest c# if your going to move on from Max.
blitz 3d
/ducks
Was with ya upto the
- it is based on a massively powerful and far more popular framework i.e. .NET
C# is a good language tho but a die hard C++ hack like myself I prefer to use that :D. There are loads of engines out there that oversimplify the entire thing for you. DevC++ has packages that you can download and install that allow prebuilt projects to be created (im studying OpenGL atm with DevC++ :) )
DevC++ has packages that you can download and install that allow prebuilt projects to be created
Last time I looked, DevC++ development looks like it's stalled and the Dev packs haven't been updated for a while.
When I tried to execute the program, Norton flagged a trojan
I use Norton (fully updated daily) and it didn't flag it.
I'm selling my PureBasic license so if you want to use PureBasic, I'd sell you my license for $30 (it's a very good language, it just doesn't support INTEL Macs, just PPC -.- and I'm working on an Intel iMac).
If you want to use C++, then try Dev C++ with Nuclear fusion.
http://www.nuclearglory.com/
@Leadwerks -
I was actually trying to write the callback itself in BlitzMax, and it just won't have it, even if I try disabling the GC and writing a function that doesn't generate any garbage.
I'm not keen on C, and I despise C++.
Nomen, I'd be interested in the problem you're having. We had callback and GC issues ourselves with Flow but they're all gone now. I refuse to believe what you're trying to do is absolutely impossible. :-)
As with Leadwerks, We're using Newton, but also callbacks are in other places of Flow.
Hey Cygnus that's the spirit. If you could help I would be really grateful.
See my previous thread. Example code is half way down.
http://www.blitzmax.com/Community/posts.php?topic=75483I have tried everything I can think of, and even sent a mail to BRL. Si H didn't know what the problem was and it was escalated to the big man himself. That was some time ago now.
C#
I would have thought C/C++/Java were closer alternatives to BMAX as they are fully cross platform and all of them have more than enough power.
Wont C# doom him to a lifetime of programming MS .net systems only (which is fine if thats all you want/need), or is it FULLY cross platform as well yet?
Java is really cool man...huge userbase, loads of good books, and cross platform...and from my point of view, its easy to pick up than C++
Wont C# doom him to a lifetime of programming MS .net systems only (which is fine if thats all you want/need), or is it FULLY cross platform as well yet?
C# and the CLI are all open specs. Anyones allowed to create an implementation of them.
In 2008, you have 2.5 choices. Microsofts versions, for Microsoft platforms, or Novell's version which runs in alot more places( but is always playing catch up to microsoft )
DotGNU seems to always be a distant 3rd. I don't really pay attention to what they're doing. Maybe its alot better now. *shrugs*
Anyways, if you're doing apps which don't require windows.forms, (ie, most games ) -- mono should work well enough.
Just wanted to say to all the Norton antivirus users in this thread: I recently cleaned a computer which had 63 different viruses and trojans, and Norton which was running on the computer was happy and oblivious to it all.
Everything was ruined, the register was shot, user permissions were changed and so on.
I will never trust my files with that program.
@Orca
Thanks for that, i didnt know. That mono looks promising and knowing this will probably try the c# plunge some day. I think i will wait until it gets a little older and more worn-in across the board, so to speak. For now i will continue with learning C++ as its still more of a C.P. standard language (at the moment) and is still the main player on my primarily used platform.
@ashmantle
LoL way to fall Off Topic :) where on earth did that come from?
Anyway, Symantec / Norton is S(poop)T! Get sophos or avg and combine it with Super A. Spyware which seems to get what most scanners dont (esp. symantec).
C++ was the standard language. Managed C++ is becoming it on Windows and it behaves far more like a modern language than the pointer hack language from the 90is, followed by VB.NET most likely as application development is far easier with it. (C# is somewhere in between of everything and therefor its hard for it to catch a stable userbase. Its neither C# nor Java nor VB.NET but a bit of all of them in an interesting mix).
I left Java out of that as it is, if we forget about platforms entirely the by far most important language for software development and with the capabilities of todays mobile devices it will only strenghten its position in the future.