Game Development Community

TGB versus BlitzMax

by Greg Squire · in Torque Game Builder · 05/02/2006 (4:15 pm) · 5 replies

I've been comparing 2D engines some (mostly TGB & BlitzMax). I wanted to get some opinions on why TGB might be a better choice over BlitzMax (or vice-versa). I'm an experienced programmer (just new to these engines), so the Basic vs. C++ thing is not a concern for me. Cross-platform support (Windows and Mac) is important to me (and they both support that). It seems like the built in editors in TGB might be a big plus, where in BlitzMax you have to build your own or look for a third party one. Thoughts? What are the pros and cons.


Also, Is the source for the demo (and other demos or tutorials) available if purchased? It seems like there are supposed to be some on TDN (but since I don't own it yet I can't really tell).

#1
05/02/2006 (4:44 pm)
Well for one thing with TGB you get the C++ source to everything and can change core behavior of the engine as you need. I don't believe this is the case with BlitzMax.

Also looking ahead, your experience with TGB will allow you to transition towards TGE or TSE with less of a learning curve. TGB, TGE, and TSE share the same code and behavior in many areas.

While we're at it ... does anyone happen to know how big the BlitzMax community is?
#2
05/02/2006 (6:11 pm)
I don't have any actual numbers, but Blitz community is really big. It may even rival the GG community. There are tons of good indie titles out there made with BlitzPlus, Blitz3D, and BlitzMax.
#3
05/02/2006 (6:19 pm)
Okay, you're comparing apples to oranges. BlitzMax, while having components which make game development easier than the common language, is a language. TGB is a game engine. You would have to code all of the engine functionality in BlitzMax (or C/C++) to create an engine.

I am a strong supporter of BlitzMax. It's a great language with a large population that has shifted from BlitzBasic to Max to reach a cross-platform, newer tech audience. There are several engines, such as Aurora which make use of it (as well as other technologies such as OGRE and Newton physics). It is extremely simple and fun to get things up and running if you're a programmer (as it is a language that facilitates game/graphical development). As an artist, it has the benefit of a level language structure that has a lot of precedence. One thing that is lacking is documentation of the quality of Blitz3D or BlitzBasic, but the user-created docs and tutorials are excellent. You can download a 30 day trial and have some fun. I'd recommend it.

I'm also a huge supporter of TGB. I love the Torque Game Engine (had some problems in the beginning because of the learning curve, but years later, here I still am) and absolutely adore the work that Melv, Josh, and the TGB crew have put into the engine. You get the complete source code to the engine (C++). Some of the tools do not have the TorqueScript source included, which has been a sticky point for some, but not so much for me. The game demos have the source included. This includes the fish-tank demo, the shooter, and the networked checkers demo. There are examples of tetris, RTS, and platformer game-types on TDN (as well as others). Bounties are currently being filled for more as well.

I love both and would use them for their strengths. If I'm making something simple yet horrifically game-specific, I will use BlitzMax and build it from the ground up. If I'm making something which I can reuse over and over again and add to the functionality of the engine, I will use TGB.

It depends on what you want, what you need, and what your final product (and next seven products) are going to be.
#4
08/01/2006 (2:31 am)
I've been using blitz products for a few years now and recently have gotten into TGB. Off the top of my head here are my list of pros/cons.

BlitzMax (pros):
*Simple to learn
*Strong and active userbase (get answers to your questions in minutes many times)
*large amount of resources within the community including tools/examples/code archives
*Can interface with external dll libraries, c++, win32 api, you name it
* extendable due to the plugin "mod" architecture (therefore you can use libraries created by others)
*cross platform
*ogl or directx
*can quickly throw together apps to do little tasks (such as a Quiken QIF to CSV converter I did today in maybe 30 minutes and also made a quick app to convert a huge dictionary into a specific format for a game I'm working on) I'm not sure TGB would be good for such tasks but as mentioned previously... Blitzmax is a language.

BlitzMax(cons):
*No visual interface ( TGB has a visual interface)
*Everything has to be coded from scratch (sprites systems/particle systems/physics systems etc/ gui systems)
*Still relatively a new product like TGB and has it's bugs and quirks
*docs are horrible, even knowing the language just about inside and out.... I still have an extremly hard time trying to nail down what I'm looking for help on. Had I not learned blitzplus and blitz3d... It would have been a nightmare to try to learn blitzmax.
*product is maintained by 2-3 people and they seem to live more and more in a cave lately and it's hard to get issues addressed (such as streaming .ogg support... as of now the program will freeze completely until the ogg is unpacked in memory)
*did I mention again No Visual Interface????




TGB (pros)
*Visual interface (this is very important to me as I'm more of a visual person... do you really want to code all of your menu positions by trial and error?)
*Takes a lot of the grunt work out of coding, enabling you to get going with your game faster. This also helps in prototyping your game. I've found myself 'settling' for someting in Blitzmax because it was too much of a pain to keep iterating through ideas. With TGB, you can iterate quickly and see if you like or dislike the way something is behaving without much effort.
*Event based system is very nice! As game logic is typically a response to events.... this gives TGB a + for game development. In blitzmax, you'd have to code an event system or make specific event logic for every type of class that you have. In TGB, there are pre-defined events that quickly get to the point of what you expect it to do.
*built in editors/tile map creator/gui creators/etc..
*cross platform
*I believe that it is also ogl/direct x capable

TGB (cons)
*very intimidating at fist... and still is (as I'm going on maybe my 6th day using it) but it does seem to be making more and more sense and I can appreciate the power it holds.
*tile editor is nice but seems weak feature wise. For blitzmax, someone is about to release a great looking tile editor found here:
http://www.blitzmax.com/Community/posts.php?topic=61642

compare that to the TGB tile editor and you'll quickly see the difference. I'd assume that the native TGB tile editor will improve over time though and it is nice to have an in program editor!

*gui system is bewildering as can be. I've read it's powerful and have experimented a bit with it but have yet to understand even a piece of it. Again, it's nice to have a naitive gui system built in but it's a bit to difficult to grasp without better docs.


If you have the money, get them both. Each will have it's place for specific projects. It's good to have options and flexibility. What may take you a week to code in one may take you a month in the other due to different functionality of the software. If you're on a limited budget, consider what you're really in this for. If you only want to make games then I'd put my money on TGB.
#5
08/01/2006 (8:40 am)
Simply put, BlitzMax is a language with OOP capabilities. TGB is a game building tool suite...or sorta. Bmax will take a bit longer to make things with since you're doing it all yourself. TGB has a lot built for you to save time, but really hard to get use if you're not use to it yet (i'm still not). You can make games with both, but Bmax can also do apps and other things too. Documentations sucks for both.

It all depends on what your goal is at the end and how you want to get there. You want to build a game fast, I would suggest TGB - but keep in mind you'll be restricted to what TGB can offer. BMax will allow for more flexibility to what you want but is far more time consuming. You can buy a version with TGB that allows you to modify the source....but i'm not a big fan of digging through C++ code.

I have both, and currently still prefer BMax over anything else. But I'm still learning the ropes on TGB so I views can change in the future......