# Darkbasic vs. Blitz Basic

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

## Recommended Posts

I was wondering which BASIC language was better.

##### Share on other sites
Well I liked BlitzBasic, way back when I was just starting out I tried both, I thought the DarkBasic interface was dark and kind of ugly. It was in fullscreen and the command set seemed kind of awkward, I didn't like the examples, and it seemed to have a focus on 3D and demonstrating what you COULD do with it.

BlitzBasic on the other hand had a very simple interface, a big tutorial set to guide you from beginner to making your own games, and a ton of really cool examples and some nice soundfx/graphics you could use in your test projects. It was clean, everything felt great, the best thing back then was the trial had no time limit and you could use it as long as you wanted. You couldn't build executables with it though, but it was still better than now because you only get 30 runs or something like that. I had enough time to get used to it and learn to write games with it. In short I LOVED BlitzBasic, didn't like DarkBasic.

##### Share on other sites
Personally, I highly recommend you steer clear of these so-called "game" languages. They offer little to no flexibility, and poorly convey what programming is "really" like, giving undeserved egos to total noobs. These egos eventually lead said noobs into a minor depression (not literally -- you know what I mean) when they realize how shielded they were in the safety of their BASIC IDEs.

But, if I must recommend one, it would be BlitzBasic. I used DarkBasic years ago, and hated it. Put simply, it sucked hard. BlitzBasic, though I've never used it, looks considerably better. It has a C-like syntax, and offers slightly more than rudimentary OOP support, unlike DarkBasic in which OOP is non-existant.

The "game commands" for BlitzBasic also seem much more streamlined and user-friendly. DarkBasic's commands sucked, and often defied logic as to why you had to do things a certain way.

If you must use a BASIC language, go with BlitzBasic. Else, if you're looking for a beginner's language, I strongly recommend Python with PyGame.

HTH,
nilkn

##### Share on other sites
I agree with nilkn, steer clear of game-oriented BASICs... I recommend Python (as nilkn did), or FreeBASIC , if you want to go with a BASIC language. FreeBASIC isn't a game language, it's the direct descendent of QBASIC (remember that, oldies?), with some extra stuff like pointers (including function pointers), enums, unions, and the ability to use SDL, Allegro, and OpenGL. It's also crossplatform and runs on Windows, Linux, and (I'll never know why this is, but...)DOS32. That's my personal recommendation. </freebasic_advertising> Or, you could jump into the deep end with C++, but I don't recommend it. Start with FreeBASIC or Python (or both, if you like) and then move up once you got a grip on things (FreeBASIC, in this case, would be better because you could use the same libraries in C++ with very few porting issues).

##### Share on other sites
What kind of game could you create with python/pygame are there limits?

I have started reading a book called "Game Programming For Teens" as you may have heard about it. It teaches u blitz basic from the beggining. i am ahving diffculty trying to learn things from it such as all that Global and Local stuff which falls under Scope. And i am also having trouble with arrays,types. If u have this book by any chance all those things are covered in Chapter 3.

Could u plz help me?

##### Share on other sites
Python/PyGame is just a programming language, it is NOT a game creation system, and you can make simple games with it as far as I know. C++ is a much more powerful language, so it's used more for commercial games. NOBODY uses Blitz or DarkBASIC for professional development, and I must admit I've never heard of anybody using Python to do that either, although there probably are one or two examples (though, they're probably not games), and the list probably will grow. Same thing with FreeBASIC.

An array is just a bunch of variables in a list under the same name, and a TYPE (at least in FB, probably in Blitz, too) is a collection of variables coming together to form another variable type. Example (in FB, which is pretty close to Blitz)

Type foo    bar as integer    bloo as singleend typedim foobar as foofoobar.bar = 51' ...

Also, please do not use AOL language (no 1337speak either) on this forum, it will just make people think you are just another newbie who wants to get into it...

##### Share on other sites
Why do u need the global and local thing?

##### Share on other sites
Well, local means close, right? So if a variable is in the local scope, it means that it's only accessible inside a particular SUB/FUNCTION/module. Global scope means everything (functions, modules, etc.) can access it whenever they like.

##### Share on other sites
Quote:
 Original post by RedmetalWhat kind of game could you create with python/pygame are there limits?

With a normal programming language(not a "game" one) the only real limits are which APIs it can use. Since python is a fairly popular language I would assume that all the most popular APIs like DirectX,OpenGL,SDL,Allegro,etc... have python builds.

Quote:
 Original post by Redmetali am ahving diffculty trying to learn things from it such as all that Global and Local stuff which falls under Scope. And i am also having trouble with arrays,types.

Your focus right now should be learning the fundamentals of programming(like globals and arrays) rather than actually making something. Blitz and Dark where made to draw newbs in with thier "l33t screenshots" and "for only \$ you could make this!". All they do is make it so that you don't have to write your own rendering/sounds commands(which arn't that hard anyway with modern APIs).

As was suggested before, find a language that doesn't cost money(like FreeBASIC or Python) and learn the fundamentals first.

Edit: Another reason for the global/local thing is memory. When you create a global it is always there until the program exits(or you delete it manually). However a local variable created inside a function should be erased when the function is finished.

##### Share on other sites
Which is the easiest game programming language?
Thnx for all the help aprreciate it.

##### Share on other sites
There is no such thing as a "game programming language". There are languages that you can use for writing games (C++, Python, BASIC), but there is no language that does just games. BASIC, of course, is very easy to start with so I'd stick with that. However, I recommend you stay away from Blitz/DarkBASIC, because they are "game creation systems", and nobody I know uses them for anything other than prototyping. If you're going with BASIC, use FreeBASIC, both because of it's similarities to C and the fact that it's fast (you can get reasonable speeds on a Pentium 1 with 32mb of RAM), almost as fast as C++, and it supports stuff like pointers, but you do need to use those right away (as with C), so it's good for a beginner.

##### Share on other sites
ok this blitz basic thing is really pissing me off what the hell are arrays????????????????????
how do i use them?

##### Share on other sites
Redmetal: Think of an array as a line of boxes that are numbered from left to right. You can put things in each box, but you have to know the number of the box you used so you can find it. Then later on, you can walk right to that particular box because you know it by number. (Another example would be houses and buildings on a street, which you can find by address.)

In all likelihood, these boxes in your array will be nothing more than numbers in Blitz Basic, but in many other languages, it's a little more flexible (because you can put things other than numbers in them).

01010101 <-- this is an array of 8 numbers (or an 8x1 array)

Arrays can also have more than one dimension: You can have a grid, or a number of these lines of boxes running parallel to each other to make a rectangle (that is, a two-dimensional array).

11111111
10000001
10000001 <-- this is an 8x5 array
10000001
11111111

So with this, you can, for instance, make a rectangular map for your game with an array, and this map could show where the player and his enemies are on the screen by marking them on the map with distinct numbers for identification. (That's one way to do it, anyway. ;)

I hope that helped, and if not, well I tried. :P

##### Share on other sites
Quote:
 Original post by nilknThey offer little to no flexibility, and poorly convey what programming is "really" like, giving undeserved egos to total noobs.

Or do they hurt the egos of those who've spent months getting nowhere with C++? Some people don't want to program. They want to make games.

##### Share on other sites
Quote:
 Original post by Anonymous PosterSome people don't want to program. They want to make games.

Yes, but you have to program to make games (unless your using Game Maker or something like that, but those have limitations). Unless you work at some big company like EA, there is no way that you can make games without knowing how to program. Games, after all, are just programs.

Redmetal: an array is basically a list of objects. Say you had a shopping list. It would probably look something like this:

Eggs
Milk
Juice
etc..

So, with an array, you access all of those things under one name, like so

Dim shoppinglist (5) as String shoppinglist(0) = "Eggs"shoppinglist(1) = "Milk"shoppinglist(2) = "Juice"shoppinglist(3) = "Bread"shoppinglist(4) = "Ice cream"

Now, we can access whatever is in the list by giving it an number, like so:
'this is how you would have to do it without an arrayDim item1 as string, item2 as string, ...item1 = "..."item2 = "..."'later in the programGotoStoreGet item1Get item2'...' now with arraysDim items(5) as stringitems(0) = "..."items(1) = "..."'...'later in the programGotoStore'now we can use a loop to access them, unlike beforefor item = 0 to 4     get items(item)next item'...