Blitz3D Legacy: History Repeats

 By angros47

Some years ago, the compiler Blitz3D was pretty popular; now, it's a bit outdated: it still works, but it can use only DirectX 7, so it cannot access newest features (well, maybe you don't need them anyway), and (worse) it doesn't always run well on modern hardware, since Direct3D 7 is only emulated.

Since it's not open source, it cannot be upgraded by the community; only the author could do that... but the author is now working on other projects (BlitzMax, and Monkey).

Now, one enthusiast user (his nick is Xaron) decided to re-create Blitz3d from scratch (http://blitzbasic.com/Community/posts.php?topic=95581 ); it's aimed to be 100% compatible with original Blitz3d (unlike MiniB3D, OpenB3d, Ninfa3D and so on); the project's site is http://www.bitsbasic.com , and the forum already has a nice community (for a newborn site about an unreleased product).

Wait... I've already heard a similar story: a commercial compiler, user friendly, with a big community, isn't developed anymore, because the author switched to a more modern language; many people wants a new version, and some of them develop alternatives; after a while, somebody decide to create a 100% compatible replacement.

It's like... the origin of QB64! It has not been the first successful attempt to replace qbasic (before QB64, many other qb-inspired compilers have been done: FreeBasic, Xbasic, RapidQ...), but it has been the first attempt to achieve full compatibility (other solution always required a port of programs, with some changes).

There are already solutions to port Blitz3d programs: BlitzMax+MiniB3D (or Warner's engine), or FreeBasic+OpenB3D; but they require changes in the code: original Blitz3d has a quirky syntax (I.e, all UDT are also linked lists; only global arrays can have more than one dimension; for global arrays, the index is specified using round brackets, while local arrays require square brackets), and so building a compiler that acts in the same way is not easy.

Qbasic syntax, too, was strange: it mixed features from structured basic and gwbasic, and rebuilding it was hard, so most basic compilers dropped something (i.e., DEF FN, PLAY, SOUND...); but Galleon, with his perseverance, managed to build a clone: it's still not perfect, but every day it comes closer to the original.

Will Xaron be able to rebuild Blitz3D, like Galleon rebuilt Quick Basic? It's too soon to say.

Here are some infos about the project:

http://www.bitsbasic.com/community/index.php?threads/a-cube.5/

http://www.bitsbasic.com/community/index.php?threads/additional-features.4/

Well, that's all, at least for the moment.

One last note: at the moment, I'm working on OpenB3D; you might ask if there is a difference between BitsBasic and OpenB3D: I can't answer, because I haven't tried BitsBasic,  but I can give you a tip: I think it's the same difference that there is between QB64 and FreeBasic: BitsBasic and QB64 bring new features in an old language, while FreeBasic and OpenB3D take the best features of an old language and bring them into a new language. Which one is the best choice? Well, looking at FreeBasic and QB64, it seems that both strategies can coexist.

Update: I wrote this article in October 2011; now (May 2012) the activity on BitsBasic forum has slowed down, and nothing has been released.

Looks like Xaron has more important things to do:

http://www.bitsbasic.com/community/index.php?threads/has-anything-really-changed-in-the-past-few-months.27/

Congratulations, Xaron!