Should I go with BMax or...?
Miscellaneous Forums/General Discussion/Should I go with BMax or...?
Okay, I'm going to be starting a new project within a month or two, and really have to reassess my initial decision to use Blitzmax.
I can't fully describe what the game will be like, as I'm still ironing out the design, but suffice it to say it'll be something like an old school RPG (ala Final Fantasy 2 on the SNES, but simpler and smaller in scope.) However, I'd plan to include some simple mini-games and such, perhaps a basic match-3 type game, along with a few others. Actually, these mini-games are a key part of the main games overall purpose, so I can't really exclude them or write them off as extras that would be nice if I had the time to include them; they're necessary.
That being the case, I need a tool that will minimize the amount of coding I need to do, or at least increase the efficiency with which I can get things done. Right now I'm considering Torque Game Builder instead of Blitz as it seems like I'd be able to get much more done more quickly.
Things like integrated physics should make coding spell effects much easier, along with removing the need for me to code my own physics for the mini-games. The GUI builder seems like it would save time designing menu-screens, dialog boxes, etc. The rest of the tools all seem like they'd save me considerable time and let me focus more on the game rather than the programming (not that I mind programming per se, but all I care about in the end is results.)
I have experience using Multimedia Fusion, and considered using it for the project, but I know from past experience that once a project reaches a certain level of complexity MMF makes things MORE difficult than it would have been to just code it from scratch.
Well, I know the best thing for me to do is to d/l the TGB demo and start experimenting, which I will do when I get home from work, but I'm hoping to get some opinions from those who've used both extensively. Nothing I'm going to do is going to require massive speed or processing (which from what i've read, BMax has the obvious upper hand here). I just really really need to use the tool that'll keep the development time as short as possible.
3D or 2D? If 2D, have you looked at Grey Aliens game framework?
"but I know from past experience that once a project reaches a certain level of complexity MMF makes things MORE difficult than it would have been to just code it from scratch"
...which is the exact problem with TGB. You just need to figure out where the break-even point is with TGB and where your game sits with respect to it.
Sounds like Python might be the right language for you, if you really want to use something other than BlitzMax. There are Python wrappers for several game and graphics engines available, including Torque ("PyTorque"), and Python is one of the most productive and efficient languages out there, widely used and supported and pretty easy to learn.
But why are you thinking about using something other than BlitzMax for a game? The language is also very nice and has a dedicated community supporting it.
You are right to question the direction, particularly at this initial stage.
I'm gonna advise you go with BMax.
TGB can be restrictive and frustrating from what I have heard from a fellow coder who - like us all - likes to keep abreast of the best technologies out there for us to utilise.
The process of going from paper into code should be as simple as possible, but there are always going to be some moments when you think "Why on earth did I think that the best method/way was that??!!!"
With TGB or similar - to some extent you are bound by someone elses approach to the problems you will face as a coder. This can be frustrating and very slow, especially when you are used to hand coding every aspect of a game. I have yet to see a game builder which isn't strangely contrived and rarely one that is simple to use, and has every feature I could ever want to dream of including. What's nice about having to code everything yourself is three fold.
(1) You are only restricted to your own effort and brain power capability, not a game builder restriction or omission.
(2) When there is a problem, if it's in YOUR routine, you will have a much better chance of finding it. When a problem exists in a project, in someone else's code or a game builder you have no control over the quality or ability to alter it, this is definately not the best approach for efficiency. Anything gained by using built in tools, usually (depending upon the scale of the project) is countered by unforeseen issues and restrictions.
(3) When it is done - its ALL your own work! A nice feeling, that!
The community here on Blitz forums is very strong too, I don't know how many times someone has given me the wisedom of their advice and saved me from despair, but its numerous.
Finally, with very complex things like physics well, if you don't understand them its not worth risking the project's success on a 'maybe I can make it work', but, for example, you can buy in Physics wrappers for BMax using Physx or ODE afaik, both are very reputable, cheap and easy to use.
Which ever way you choose, good luck and keep us posted.
IPete2.
I've not got time to go into detail. But BMax is great, nice and easy, OOP, can make great looking games, and there is a fab community too - you'll never be on your own when making a game with it.
I used TGB, then I found BlitzMax and tossed TGB.
I will tell you how to make that decision easy. Do you want to write the program like any other language, where you have full control, create classes, etc. Or, do you want to point and click, set a bunch of properties and be forced to work within the constraints of a program that is doing the work for you?
I am a programmer and TGB really pissed me off with its limitations and just the way writing a program in it works.
I hate to say this, but I would say using TGB is for people who do not know how to actually write programs. That is my opinion, I am not trying to start a flame war.
I also think you should go with BlitzMax. In the time it would take you to learn how to use TGB comfortably, you could have your game well on its way to completion. I have only tried the TGB demo, but I was not very impressed.
In Torque's defense, however, it does have integrated physics and the GUI builder, both of which could speed up development time. TGB's GUI builder seemed like more trouble than it was worth, although I don't really have enough Torque experience to have a worthwhile opinion on the tool.
Python as a language is so awesome. Its hard to beat python for ease of coding, conciseness and readability. Its just a shame that its so slow. At least with pygame anyways. Pygame just crawls :/
Though, I'm still toying with the idea of writing my next project in python, and using either c or c#( w/ iron python ) to do the heavy lifting. I mean its good enough for eve online sooo...
Anyways, back on track--- I think I read somewhere that TGB lets you use python? If thats true, that might be a really cool combination.
FWIW, after using bmax on 2 recent jobs, I can't wait to get back to c#( or possibly python )
:]
<EDIT> duuuurrrrrr.....I just noticed winni's post mentions PyTorque. ^_^ </EDIT>
Thanks for the feedback so far guys. Sounds like TGB has a fair amount of constraints and/or quirks and I kind of expected that, although, I do wonder if it still wouldn't be powerful enough to get the job done and done more quickly than BMax. I'm off to download the demo in a minute so I'll have a better idea in a few hours or a few days.
Anyways, the game is 2D, so I know BMax could handle it. It's just, while I consider myself a competent if a bit inexperienced coder, I don't really enjoy programming itself, I enjoy creating things, and programming is just a means to an end. So, I really have no problem using a tool that'll speed up development time (assuming it would) despite the fact that I couldn't say "I made this ALL by myself", because the simple fact is that if the programming is taking too long and gets too tedious, the likelihood of me finishing anything starts to decrease rather quickly :P.
Is Python, or Pygame cross-platform? If so, is it a real pain to write cross-platform code?I'm really looking for cross platform support, and to be honest, the ability to deploy on the Xbox is a plus in regards to TGB (what are the other catches to deploying for Live Arcade? I'm assuming a rather rigorous QA and testing along with some fees?)
Anyone experimented with Novashell (http://www.rtsoft.com/novashell/) at all? It seems like it could handle the RPG side of things, assuming the features listed work as intended, but I"m wondering how it would fare at the myriad of potential casual mini-games I plan on including.
Python runs on everything. Pygame is a python wrapper of sdl and its friends( sdl_mixer, sdl_gfx, etc )
Sdl runs on everything. But pygame is slow. I'd be more interested in using python to script tgb( or insert some other engine here ).
I've never tried doing any crossplatform stuff with python, but from what I've read, python scripts just work regardless. If you want to create standalone exe's, theres py2exe on windows, and py2app on macos.
Well, I'm working my way through the first TGB tutorial, and I must say I'm already less than impressed with the fact that you have to manually open up your script file, make your changes, save it, and then close and restart TGB for it to take effect. After getting used to Lisp's ability to compile individual functions as you code, even BMax's full source compilation seems a bit clunky....but this is something else.
I'm curious to see if there is any kind of debugger for these scripts.
Well, I haven't finalized my decision yet but I'm almost sure I will end up going with Blitzmax.
I was researching TGB some more over at the Indiegamer forums and it seems like there are still a multitude of bugs and frustrations to deal with, and the only way to overcome them is to go with the pro license and edit the engine source code yourself. Considering that would require me to brush up on my C/C++, I'm beginning to think that it would take as long or longer to finish my game in TGB.
I'd consider Gamemaker, as it seems like it is less buggy and also much easier to use and the increase in efficiency does seem like it would cut development time, but there's no cross-platform support and the developer doesn't intend to work on it.
Are there any game libraries for lisp? Maybe lisp.net + XNA?
I wonder how good this one is:
http://www.garagegames.com/products/torque/x/Via XNA it enables you also to publish for XBox360. There's even a free version if you're in the GameCreatorsClub.
I've used TorqueX pretty extensively in the last 5 months, developing our own game, which is also multiplayer over internet. I've also used Bmax for several things. Thoughts on TX:
- Tools have been great for what we've wanted to do. They covered like 90% of what we needed. But this did not eliminate us from having to make custom tools for the other 10%.
- Yes, we could've developed everything from scratch but that would've just left us less time for fancier graphics/functionality/polish.
- TX/TGB is not a 100% end-to-end game development solution for EVERY game like so many people seem to think. It's a great starting point, and yes you could probably make a simple shmup in TX with little outside tinkering. Once your game gets rather complicated or very different from standard games then of course TX won't solve every problem and it WILL take time to solve them, just like any other development. Having the source was a great help in this regard, even though we barely modified the engine we still had a better understanding of how things worked and how to extend functionality.
After more consideration I've decided to go with Blitzmax. It's the language I have the most experience in, and also, a lot of the things that I'll need to develop for this project will be useful in a project that I've been dreaming of for a few years now, and knowing the tools and code inside and out will greatly speed that along as well.
yay! welcome aboard.
If it's a game, my framework may save you TONS of time and prove pretty useful...
I've been considering it, trust me.
I'm coding a custom modular behavior system right now, and am wondering how well that would integrate into your code.
If nothing else, I may end up purchasing it down the road just to take a look at your code for ideas and solutions to a number of BMax's little quirks.
yay, a klikker :D
I used to use CNC (I own MMF but didnt really like it). Both are indeed brilliant upto a limit, the second you go a tiny bit over said limit things start falling apart!
This time last year I asked whether I should go with Blitz or Blitzmax and like you, went with Max; I'm so glad I did too!
The object orientated stuff you can do is fantastic and made coding a wide rang of enemies/objects very easy.
custom modular behavior
wow sounds pretty interesting!
Indiepath advised me to get BMax about 6 months before I finally did but I was mid way through a game in BPlus so it wasn't really feasible.
@.Alex
Thanks for the insight.
I own TGB.
From the current beta I can only say: You will definitely get casual stuff far faster gone than BM will ever be!
Due to the addition of behaviors, you are able to do whole asteroids, grid wars, breakout etc just from within the editor with a few clicks after you scripted the needed behaviors. Just assign and run and thats it.
There are and always have been people unhappy with the editor. Funnily it are the same people that actually never post on the TGB boards and ask on how to use the editor plugin system. Yes, the editor is extendable by own scripted elements! And if you have Pro or the EA, you can even base modify the whole thing to your needs.
The TGB guys are definitely doing a great job, and what they don't get fixed or corrected to the "majority need" is normally done by someone in the community like Amaranthia and others, that have actively helped pushing TGB further and further.
If you are more the C# coder than C++ / TorqueScript, I would as well suggest that you have a look at TorqueX Builder, built around XNA and allowing you to do them for Windows / XBox 360. (with the dev club thing membership for xbox360 you can get TXB bundled. This club thing is needed to get your game onto your XBox360)
Actually, it was TGB's behavior system that is prompting me to write my own for Blitzmax. So far, it's coming along nicely.
It's actually not just a behavior system, per se, it's really a modular logic system where you code your logic module and can then attach it to any LogicObject, or you can even attach it to another logic module. At the moment I'm coding an error handling system with it, and the error handler itself is just a logic module. In fact, the default error handler is going to be a logic module that is attached to all new logic modules upon creation.
The beauty of it is, not only can you swap in a different error handler if you wanted to (say you wrote a custom logging error handler..you could attach this to any and all entities you desired.) but you can even switch out functions on the fly, in realtime.
It'll have dang near the flexibility of a scripting language (you'll be able to view and/or modify any and all parameters and variables an object contains at runtime, and I plan to make a visual editor to make this even easier.) You'll be able to activate, deactivate, swap, add, or remove logic modules during runtime. The only thing that can't be done during runtime is actually writing or loading a new function (well, actually this COULD be achieved via DLL's, if it was really necessary.)
So besides being able to redefine or define new functions (or classes or whatever), it'll be as flexible as a scripting language but should be far more powerful due to the underlying structured API I'll be providing. What I'm hoping to do is to release this and then allow others to write their own behaviors/logic modules and then we can openly share them. For instance, I might write a "sinusoidal movement behavior" that can link to any number of variables (you'd probably link them to your characters/enemies X and Y values, but you could also say link it to only their X velocity if you wanted them to speed up and slow down according to a sine pattern).
You can then change the parameters of my logic module, such as the amplitude of the wave (which would affect whatever variables the module itself is affecting...a larger wave = more variance applied to the variables it is affecting). These parameters can be changed in real time. Also, since each logic module is it's own separate instance, you could give the enemy ships their own sin logic module and make it a large wave, thus they have very wide flight patterns, while at the same time applying another sin logic module to the alpha value of the stars in the background, and hence they flicker in and out according to that particular modules settings.