Sign in to follow this  

General Game Programming Question

This topic is 3929 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Quote:
Original post by TheMirror
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.


It's easy to make pretty graphics with game development kits like this. It's not so easy to make games that are large in scope. They often require heavy optimisation of certain parts of the engine - which you can't do with a pre-canned engine - or quite different approaches to handling the data, which again may not be available to you.

You have recently purchased it, so I recommend you persevere with it and see what you can do. I think you'll start to learn the limitations through usage, and far more accurately than we could suggest given that most of the C++ programmers here don't use DarkBasic and never will. In fact, your experience with it could help out future people on these forums if you report back on your findings.

Share this post


Link to post
Share on other sites
I think that you are wasting your time by hesitating! You've already purchased DarkBASIC Pro, so I suggest you start using it. Create a few games! Learn it's programming language, push it's boundaries. And when you eventually feel that it's not powerful enough for your goals then start thinking about switching to another language. By then you will probably have already grasped the basic concepts of programming and a language switch should be a breeze*




* Well, a breeze compared to how it would be otherwise ^^

Share this post


Link to post
Share on other sites
yes, don't prepend the worry and frustration onto the start of your journey. There will be plenty of worry and frustration later in life ... like the 6th hour you are looking at code you know should work and it just plain doesn't (only to find the next day that you mis-typed 1 letter).

Begin. You will not know what the limitations are and if they matter, until you have something for them to matter for (the engine is fine for SOME game, the only way to know if it will work for YOUR game is probably to try).

Its valid to ask for general things like: what is a good starter engine? can this engine build XXX type of games easily? does anyone here have feedback on their experience with engine XYZ?

but the broad issues of "will X be easy for ME to use for doing Y, given my specific set of knowledge and experience, or will problem Z1, Z2, and Z3 matter to me on any of the 3-4 ideas I'm thinking of turning into a game in the next A year" these we just cannot know or tell you.

As long as you are enjoying what you are doing while you are learning and progressing toward a goal, it is good enough.

Share this post


Link to post
Share on other sites
Well I've downloaded the Room War game you posted and here is what I got to say:

I played it on a Pentium III 128 MB RAM & NVIDIA Vanta 16MB Win98SE (my fast pc is being repaired) and I've experencied graphical glitches (which are strange in this card, even if it's old) and it played REALLY slow. I couldn't play it. You'll say "you tested on an old pc"... but this computer can run Warcraft III & Neverwinter Nights smoothly. And those 2 are "heavy" games.
That's what we meant that you couldn't (probably) make hughe games because other languages than C aren't fast.
Even though, the problem is not whether you can make games with nice graphics or not. Take in mind that the real CPU-consuming operations are AI, pathfinding, and physics. That game doesn't seem to demonstrate a good implementation of them.

well... I suggest to still try it because you've already purchased. Read what the others posted, because I think they're all right on what they said.

Happy programming
Dark Sylinc

Share this post


Link to post
Share on other sites
Quote:
Original post by Matias GoldbergTake in mind that the real CPU-consuming operations are AI, pathfinding, and physics. That game doesn't seem to demonstrate a good implementation of them.

That's why I stopped using DBP, and started to learn C++ (and for OOP capability, which makes life alot easier).

Share this post


Link to post
Share on other sites

This topic is 3929 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this