General Game Programming Question

Started by
13 comments, last by Baiame 17 years, 1 month ago
Hello everyone, I have recently purchased DarkBASIC Pro, and I have several questions concerning DarkBASIC Pro vs. Other things. DarkBASIC Pro basically claims to be able to create professional/commercial quality games quickly and easily. Now i'm sure of course they do not mean overnight but still the point remains. They say quickly and easily, make professional quality games. Now on the other hand you have the industry standard of C++, which from what i've heard a 3 man team (which is what I have) couldn't hope to even dream of possibly getting a game that can compete with what they have on the shelves out in anything less than some double digit amount of years. So to my thinking SURELY there has to be some downfall to DarkBASIC, there has to be something very terrible about it, or wouldn't everyone be using it? It seems that if DarkBASIC can supposedly turn a 3 man team into UBISOFT in a couple of months, wouldn't all of the professional game companies use it? If someone could please give me an understanding of what i'm talking about here I would be very grateful. If someone could just tell me what the pitfalls of DarkBASIC are, or if there is anything I should know. Thank you for your time, Sincerely, Ross
Advertisement
Tools like DarkBASIC typically come with 2 drawbacks:

- speed. They often run a bit slower than the equivalent game coded in C++. Obviously that would require someone competent enough in C++ to make a game that runs as quickly as possible, and would require more time.

- feature limitations. You may find that you don't get fine-grained control over certain features. You may be unable to load certain file types, or perform a certain kind of rendering, or handle a certain kind of input.

Therefore when using such a tool, it's important to check that it can do everything you require. For most beginner games, it almost certainly can. In fact, many casual or independent games would work just as well in DarkBASIC or something similar as they would in C++, but would possibly be more robust and would have taken much less time to develop. But C++ is more versatile and more efficient, for those who know how to use it well.
Hello everyone,

First of all thank you very much for your reply, I found it helpful. What I wonder though, is how much slower will DarkBASIC be? Will it be slow to the point where I couldn't make a large game like an MMORPG, or would it just be slightly slower to where you wouldn't notice it much? Also, I have DarkBASIC Pro, and when it comes to file handling, and handling input and what not, it seems to support a lot from what the website says. If anyone has any more input on this matter I would be grateful to hear it. Thanks a lot, and thank you for your time.

Sincerely,
Ross
I have DBP. The efficiency issue isn't at all straightforward, as DBP runs scripts very slowly (several times slower than compiled C++, I suspect), but the rendering engine isn't too bad; I think it's considerably more efficient than most of the open-source ones out there.

DBP does make things easy, but it's a double-edged sword: the poor efficiency puts more pressure on you to write efficient code.
I strongly suspect you will not be able to make an MMORPG (or a hockey game...) in DarkBasic Pro. This has nothing to do with the language, though; I strongly suspect you couldn't make one in C++ either. The reason being, MMORPGs are vast projects made by huge teams. Speed is the least of your problems.
To win one hundred victories in one hundred battles is not the acme of skill. To subdue the enemy without fighting is the acme of skill.
For Tetris, Tic-Tac-Toe, heck, maybe even a clone of Super Mario Brothers DarkBASIC will probably be fine. "Speed" of language doesn't mean much for these kinds of games any more - when your processor does three billion cycles a second (as opposed to just a few million like in the bad old days), execution time is only an issue for things that get really complex.

For an MMO, no, it won't be enough. But, I'm sorry to say, neither will working on your own, or as your first (or tenth, or hundredth) project.
Sorry to disappoint you...
While I was reading this, I've finished reading this topic:
http://www.gamedev.net/community/forums/topic.asp?topic_id=438317

where says:

"Its still possible, if you are smart about it.

I would like to point you to Minions of Mirth.

Thats a commercially successful MMORPG developped in only one year by a single developper and his wife. Alright, he succeded where thousands of people and a good deal of professionnal studios failed, but it shows that its still possible. Of course you cannot do everything by yourself. But the solutions *are* out there to make a successful game"

I mean that it IS possible to make a pro game with C++; but it's not easy. By the way I'm making a 3d game too. I can't tell about DarkBASIC, but if it works for you, go forward. I can't predict the future, so if you want to know whether you're commiting a mistake by using DBPro, the only way to find out is to try. You've already bought it, didn't you? unless you can take your money back, the only thing you will spend by trying it is you TIME.

In case you don't know, Microsoft had released Visual Studio 2005 Express for free + DirectX SDK + Platform SDK 2003
Those 3 "tools" can be downloaded from the MS' page, you can try if you find DBPro useless. That's all you need to make games in C/C++/C#
The best (overall) results are achieved in C++
Also for begginers there is a XNA framework to help game development. You might want to try it.
For an advanced game design, you may preffer SDKs like Torque, Irrlicht or OGRE.
(Note that OGRE is a 3D engine while the other 2 are game engines)

Here are some links I remember:
http://msdn.microsoft.com/vstudio/express/
http://irrlicht.sourceforge.net/
http://www.ogre3d.org
http://msdn.microsoft.com/directx
There are a lot of other reasons why developers are reluctant to jump ship to any new language:

  • Legacy code. They've got a lot of years-old C/C++ code that might have to be ported to the new language or otherwise maintained in the "old" language.

  • Familiarity. They're entire staff is familiar with the "old" language, training them properly in the new language takes time. Syntax is easy to learn, but taking advantage of new language features is more involved. You don't want them programming the new language in the "old" way.

  • Portablity. C, and to a lesser extent C++, run on just about every platform imaginable -- from 8 bit microcontrollers to the latest super computers and under just about any Operating System.

  • Low-Level. While many people would call C/C++ a high-level language I would disagree*, its actually not much more than a structured assembly language. C is most definately low-level, and was in fact designed as a "portable assembly language." C++ adds OO concepts to the core language (still low level, IMO), and adds many features via the C++ Standard Library (high-level) making it a type of hybrid, or mid-level, language.

  • Maturity. "Old" languages have stable, well-understood tools, standards, practices and properties. C is the language of the masses, 99.9% of devs can at least *read and understand* 99.9% of C code.

  • Consoles. Most consoles don't provide any programming environment other than C/C++ and assembler. This is changing a bit with Microsoft readying C# for casual and Live Arcade games on the XBox 360, but you're not going to have much luck seeing a DarkBasic game on any console.



Languages like DarkBASIC tend to be fine for as long as your ideas fit into the "box" they've put you in. These types of languages aren't necessarily bad, but generally there are two paths out: Either you discover that programming is not for you, or you eventually outgrow the language when you start to desire capabilities that aren't there, or you spend more time working around its limits than writing real code.

I got my first start in programming using Apple IIe BASIC after school during elementary and spent most of my high-school years writing QuickBasic and C. The things I learned from all those years of QuickBasic were invaluable in teaching me logic, math, and good programming practices (contrary to popular belief, BASIC does not necessarily prohibit good practices like structure and modularity :) ) You may want to check out FreeBASIC, which is free to download (and less purpose-built than DarkBASIC, presumably) and has a native-code compiler for Windows, DOS, and - IIRC - Linux and MacOS. You can even access all the popular libraries like Allegro, SDL, OpenGL, and DirectX.

* Personally I define low-level languages as those which provide precicely the facilities of the underlying hardware, or basic abstractions of those facilities; this would include machine code, assembler, macro-assembler (or high-level assembler), C and others. I consider high-level languages to be those which provide features and abstractions of their own, or require runtime support such as a VM; this would include python, or any of the .NET languages. Admittedly, and especially in the case of C++, the line is often blurred.

throw table_exception("(? ???)? ? ???");

Hello everyone once again,

I read all of your replies and would of course like to thank you for them. Although one thing that came to mind that i'd like you all to look at if you have the time is this:

http://darkbasicpro.thegamecreators.com/?m=showcase_view&i=221

This was a game created with DarkBASIC Professional. The graphics are quite good. Although the game is relatively simple in nature I think it shows potential, the only thing really I find wrong about it is I don't much like the control scheme, but that is no fault of DBPro, that's just the programmer. But for the one who said to make a pong game only, use DBPro, that game that I linked to goes far beyond any pong game.

Also, if you guys would, go to the http://www.thegamecreators.com and look at the Dark GDK, it's apparently supposed to be DarkBASIC code, C++ syntax style, and it is supposed to work in conjunction with C++, you use it in a C++ compiler along with C++ code. I'd like to hear the input you guys have on that as well if you have the time.

Once more, your replies are very valuable to me, keep them coming. Thanks a lot for your time.

Sincerely,
Ross
as much as I like my favorite language and hate the other ones, it doesn't really matter. Well it does really matter, but you won't be able to do anything about it until you know what kind of programming language suits you, and you won't know that until you know which languages don't suit you. So you might as well start programming with whatever language you have available (in your case DarkBasic). Then after a while when you start to feel the inadequacies in that language you can switch to another and use it until you find out what you hate about that language. Eventually you will settle on a language that isn't that bad. Then that will start to bother you and you will either get sick of programming or make your own language.

So start programming and don't worry too much about picking the right language. The language you start with almost certainly won't be the one that you end up with.

This topic is closed to new replies.

Advertisement