V1ctor and more!
In QB, there have been a few definitive
moments which have shaped our community for years; The first RPG, the
opening of the first website, the first published internet magazine, the
first release from Darkdread; I am here today to solemnly tell you that
FreeBASIC ranks among those hallowed events. It represents the future of
the community, period. In the past weeks I have seen our dying, stagnating
community rise again, and it is because of FreeBASIC. I am telling this to
you now, it's not a matter of IF you will get FreeBASIC, It's only a
matter of WHEN.
What is FreeBASIC? Basically it's a free, Open Source, 32-bit Basic compiler for Windows and Linux. We've all seen what passes for a BASIC compiler at some point; whether it's the bloated, C-like BlitzBasic, the impotent DarkBasic, or one of the other compilers whose names shouldn't be tainting this fine magazine, let alone our hard drives. FreeBASIC, however, is different.
For starters, it's as close to completely QB compatible as you're going to get in a 32-bit environment. I've personally ported 2 large-scale projects from QB at this point; Quest for a King by One Man Army games, and Cobra by Rockuman, as well as many lines of legacy code for tech demos, and with few exceptions, the code ran without changes. Quest for a King had hundreds of lines of custom hardware code, and uses the extremely 16-bit "Shared" keyword, but after it was removed, the game compiled without any other changes. It was running the same day. The same goes for Cobra, which I had ported in a weekend. A 3d raycaster I wrote in QB was running within minutes.
Continuing onto lib support, they're all there. Besides dedicated FreeBASIC libs being created, FreeBASIC comes with the headers to make programs using DirectX, SDL, OpenGL, and miniPTC graphics routines. There are two sound libs included, BASS and Fmod. Input can be handled by SDL, but work is progressing even there on getting it's own input libraries specifically for migrated QB programmers. The only notable omission from the current version is networking, but I've already seen a working demo of TCP networking, and I've been told that SDL_Net networking should be included in a near future release.
If you're waiting to hear about the megabyte executables it makes, or the painful time I had because my programs ran too slowly, you're in for a disappointment. FreeBASIC is fast, and it's executables are small. In tests done by the community, it kept up with 32-bit C programs, and blew crusty old QB away.
Caveats? There are a few, but then, as of this writing, the version 0.10b represented a compiler which existed only since november, but even now is extremely stable.
The first is that it is NOT a complete QB suite, it is a compiler. Check out our "Getting Started with FreeBASIC" guide this month for suggestions on a good IDE to get started. This isn't really noticable once you get started, since the IDEs out there are reasonable, but many people trying out FreeBASIC for the first time assume it will be a carbon copy of QB and are confused when fbc.exe doesn't open up a blue screen. Be warned.
Also, this IS a 0.10b version as of this writing, meaning that the program may have bugs hidden in it. Every release has had a ton of bugfixes though, and the author makes good on bug reports (so report!), but even with it's huge progress, it's not perfect, and sometimes you'll have to flip some code around to get something FreeBASIC is happy with, but that's a small price to pay.
Even the documentation, relatively scant as it is, doesn't pose a problem. The primary libs for FreeBASIC are mature C libs which have been documented to death in other forums, the BASIC language hasn't changed, and the community is really doing it's part in helping new users get started.
I'm sure that there are a few who have read this glowing review and asked themselves "other than lib support, why would FreeBASIC be anything special?". The problem lies in the age of QB, and age of DOS, this age of Windows and Linux.
Nobody has DOS anymore. Few people can even USE EMS! Some have problems with VESA! In fact, I know several people whose computers flat out refuse to run dos programs, and I've seen an entire computer lab that chokes on simple mode 13h. On the other hand, every single new PC today has working video drivers, and in protected mode 32-bit, you have unlimited memory available. You haven't lived until you've tried to code something at 1024x768 and you get a frame rate in the hundreds. Even better, the Linux version of the compiler is out, so coders can have the benefits of QB on the ultimate Open Source OS, as well.
Like I said in the opening, FreeBASIC represents the future of the community, period. It's going to -- no, it HAS, changed the face of the community, the face of QB, maybe even the face of the whole Open Source landscape, forever. This product spells the end of QB, plain and simple. It has all the great features which we all love, paired with immense power and compatiblity with Windows, Linux, and modern computers. Even with a few bugs, it's still worth picking up, because it is our future, and for many, myself included, it is our present. It's a beautiful thing.
--SJ Zero isn't getting
paid to pimp FreeBASIC (yet).
|Graphics:||With SDL, DirectX, miniPTC, and OpenGL support, FreeBASIC
is as powerful as C in terms of graphics capability.
|Sound:||Though there were some problems with an outside lib I used,
there are two quality sound libs included.
|Overall:||This is the best thing to happen to the community in a
decade, it's extremely compatible with legacy QB code, and only a few
remaining bugs and lack of documentation keep it from a score of 10.