Advertisement

Why Not Visual Basic?

Started by January 15, 2003 03:15 PM
25 comments, last by VbDestroyer 21 years, 10 months ago
If you´re good at Basic, why don´t you give DarkBasic a try? I´ve never tried it (I don´t know Basic), but the demos in the official website look (and play) really cool.

Edit: the tildes.

[edited by - Ignacio Liverotti on January 16, 2003 11:17:22 AM]
I switched from VB to C++ just because from a windows development standpoint, C++ give you so much more control over you project. Of course, that control comes at the cost of more complexity
Advertisement
There are a number of reasons which make C++/C the primary language of choice in game development.

First and foremost being that Visual basic up until .net was still an interperated language. This ment that you''d need to include a bunch of unneeded dll files with your project in order to distribute it. This is not the same with C/C++ for the most part if you create a basic application you don''t need to package up vbrun6.dll''s with your .exe file. This greatly reduces the size of the end files you package with your application.

Secondly up until visual basic .net visual basic was lacking alot of the object oriented functionality of C/C++ (yes you can do object oriented coding in C with some work). This means it''s not a good chocie for a project with a large number of people working on the code. The lack of this functionality also made the code more difficult to maintain.

Thirdly, almost every graphics API that visual basic uses has to go through a C/C++ created ActiveX control for use. This reduces the overall speed of the graphics calls.

Then there are the whole design pitfalls that people fall into when working with a "basic" derrived language. Such as creating large ammounts of unmaintainable spegetti code using the wonderful GoTo statement.

And finally the largest reason for not choosing VB as a development enviornment lies in the fact that the majority of applications that a game developer uses do not provide a visual basic SDK, (Photoshop, 3dStudio Max, ect). This means that the programmers using such a tool would need to use Visual C++ and write their own external controls to link into visual basic. This creates much more work for the developer and adds time onto the project.

This is by no means a bashing of the visual basic language...just a list of reasons why alot people don''t use it as their primary development language in game development.
quote: Original post by Ignacio Liverotti
If you´re good at Basic, why don´t you give DarkBasic a try? I´ve never tried it (I don´t know Basic), but the demos in the official website look (and play) really cool.

Edit: the tildes.

[edited by - Ignacio Liverotti on January 16, 2003 11:17:22 AM]


Yes, I have heard of it, and almost baught it, but I decided that I going to have trouble getting a job as a dark basic programmer.
Howdy. Me again. First off, I stick by the recommendation that starting off with VB with the goal of moving to C++ later is a valid option. VB is very nice for developing quickie tools that help you along the way. It won't hurt you to learn it, but keep in mind that there are pitfalls which I mentioned in another post.

I would also like to dispell some myths raised by AP:

quote: First and foremost being that Visual basic up until .net was still an interperated language. This ment that you'd need to include a bunch of unneeded dll files with your project in order to distribute it. This is not the same with C/C++ for the most part if you create a basic application you don't need to package up vbrun6.dll's with your .exe file. This greatly reduces the size of the end files you package with your application.


Wrong. VB has not been an interpreted language (like Java is interpreted) since version 4. Starting with VB5 it compiles native code.

quote:
Secondly up until visual basic .net visual basic was lacking alot of the object oriented functionality of C/C++ (yes you can do object oriented coding in C with some work). This means it's not a good chocie for a project with a large number of people working on the code. The lack of this functionality also made the code more difficult to maintain.


I'll give you that one. VB6 lacks of LOT of proper OO.

quote:
Thirdly, almost every graphics API that visual basic uses has to go through a C/C++ created ActiveX control for use. This reduces the overall speed of the graphics calls.


You can easily use DirectX. Starting with DX7, VB is fully supported. I'm not sure about OpenGL, but I'm not aware of a VB type library for it. Essentially, anything that supports COM can be used with a trivial amount of effort from VB.

quote:
Then there are the whole design pitfalls that people fall into when working with a "basic" derrived language. Such as creating large ammounts of unmaintainable spegetti code using the wonderful GoTo statement.


I've written thousands of lines of VB code without using a single GoTo. VB is a lot like C in its structure with functions, subroutines, properties, etc. You can easily avoid the pasta bar and make very maintainable code. The key is to develop some solid coding guidelines prior to writing a single line of code.


quote:
And finally the largest reason for not choosing VB as a development enviornment lies in the fact that the majority of applications that a game developer uses do not provide a visual basic SDK, (Photoshop, 3dStudio Max, ect). This means that the programmers using such a tool would need to use Visual C++ and write their own external controls to link into visual basic. This creates much more work for the developer and adds time onto the project.


Not sure what you mean here. As long as an application supports the COM model and thus has a type library, you can easily interface with VB. I'm not sure why you would need to interface VB with PhotoShop - you can just as easily load the graphics file in VB as you can in C++.

I will say that yes, indeed, if you want to make a killer game with all the bells and whistles that rivals some of the best of the currently available games, you're going to have to use C++. But, if you're just getting started and need to figure out programming logic, and want to get something out quick, VB is a good stepping stone into bigger and better things.

-Kirk

[edited by - KirkD on January 17, 2003 9:42:04 AM]
quote: Original post by kirkd
Howdy. Me again. First off, I stick by the recommendation that starting off with VB with the goal of moving to C++ later is a valid option. VB is very nice for developing quickie tools that help you along the way. It won''t hurt you to learn it, but keep in mind that there are pitfalls which I mentioned in another post.

I would also like to dispell some myths raised by AP:


Wrong. VB has not been an interpreted language (like Java is interpreted) since version 4. Starting with VB5 it compiles native code.


That''s only partially true. From what I''ve read on the microsoft site. Visual basic 6.0 can can compile native code, however there are a number of limitations to the native compiling. First if any .dll files are included it will not build native code, which of course brings me to the fact that MSVBVM60.DLL is included in every visual basic compliation so it seems to void out the entire native code process. Perhaps it was a mis-understanding on my part but that''s how I read the docs. Unfortunately I can''t seem to track down the page now that microsoft''s updated all the online docs to VB.net documentation..

quote:

You can easily use DirectX. Starting with DX7, VB is fully supported. I''m not sure about OpenGL, but I''m not aware of a VB type library for it. Essentially, anything that supports COM can be used with a trivial amount of effort from VB.



Yes but you''ll notice that the provided directX libraries are still OCX controls. Just because they are provided by microsoft does not make them any less active X than if these active X controls were supplied via 3rd party.

quote:

I''ve written thousands of lines of VB code without using a single GoTo. VB is a lot like C in its structure with functions, subroutines, properties, etc. You can easily avoid the pasta bar and make very maintainable code. The key is to develop some solid coding guidelines prior to writing a single line of code.


I said it was a design pitfall. The laungage itself encourages the use of the GoTo statement (pre .net) and although you can write code with out it more often than not it''s used more often than it should be.

quote:
Not sure what you mean here. As long as an application supports the COM model and thus has a type library, you can easily interface with VB. I''m not sure why you would need to interface VB with PhotoShop - you can just as easily load the graphics file in VB as you can in C++.


In game development often times you need to make custom tools. Photoshop offers a SDK for writing plugins for the application used to lets say export a image from Photoshop onto a GBA,PS2, Xbox, or Dreamcast development kit. This is higly useful and often little to no COM support is available in these SDK''s provided for 3rd party plugins. This also applies to Maya, 3d Studio Max and many other tools that are commonly used through out the industry.

And just so you know these weren''t myths or falicies they were all accurate. I''ve got plenty of experiance using Visual Basic



I will say that yes, indeed, if you want to make a killer game with all the bells and whistles that rivals some of the best of the currently available games, you''re going to have to use C++. But, if you''re just getting started and need to figure out programming logic, and want to get something out quick, VB is a good stepping stone into bigger and better things.

-Kirk

<SPAN CLASS=editedby>[edited by - KirkD on January 17, 2003 9:42:04 AM]</SPAN>

Advertisement
quote:
The laungage itself encourages the use of the GoTo statement (pre .net)


encourages!? that is complete and total bullcrap...Even C (and that extends to the superset known as C++) has a GoTo statement, and no one ever says that language encourages you to use it...VB doesn''t have some sort of little animated MS Word like helper paperclip telling you to "use goto, use goto, use goto" every ten minutes...Even VB''s DOS programing syntax grandfather, the old QBasic, had GoTo; but even that language didn''t encourage it''s use.

quote:
In game development often times you need to make custom tools. Photoshop offers a SDK for writing plugins for the application used to lets say export a image from Photoshop onto a GBA,PS2, Xbox, or Dreamcast development kit. This is higly useful and often little to no COM support is available in these SDK''s provided for 3rd party plugins. This also applies to Maya, 3d Studio Max and many other tools that are commonly used through out the industry.


WTF ever happened to file conversion? You can find the file formats to just about every thing those apps support online. Is it that hard to write a little file converter/processing utility? It''s what professional game developers have done in the past (and still do today)...we wouldn''t be playing Quake if id hadn''t written thier BSP building, lighting and VIS utilities for thier .map formats...or even thier utilities to combine image/texture files into .wad files...those didn''t required a photoshop or other apps SDK to develop...
I''ve recently started developing games with VB6 and DX8, but I can''t really tell you anything it being better or worse than C(++) since VB is all I know... all I can tell you is that the 2D graphics, DirectSound, and DirectInput are working fine, and that''s all that matters to me right now There''s just a right tool for every task, and VB seems to be totally sufficient for writing little apps and games. And I don''t know that much about all the things that VB lacks in some way according to the others, like OO or pointers, so it don''t bother me For now... I guess I have a bad programming style now. But, oh well.

And since my teacher in 10th grade told us he''d shoot us if we use any goto''s (in QBasic then), I haven''t used a single one!
there is one thing that hasn''t been mentioned.
Potability. C/C++ code can be compiled on almost all operating systems used nowadays and VB only runs in MSWindows.

For me that''s the most important reason to choose C/C++ over VB
My eyes!! MY EYES!!

Quick! Get me to an eyewash station!!

{{splash splash splash}}

{{Injects self with morphine.}}

Ahhh, that''s better. No one should ever HAVE to program in VB.
- Advice, eh? Well, besides working on your swing...you know, besides that...I'd have to think.

This topic is closed to new replies.

Advertisement