2017-07-24 01:56:10 (edited by blindncool 2017-07-24 05:10:17)

Many of you may know that Visual Basic 6.0 is no longer (technically) supported by Microsoft, although the VB6 runtimes are still available for modern versions of Windows.
Many of you also may know that I'm a beginning programmer with experience with a few languages (mostly those used to develop interactive fiction) and I've been struggling to find a language that works for me.
So, after finding the source code to several sample games in Visual Basic 6.0 (chief among them being Chopper Patrol and Jim Kitchen's Guess The Number), I've decided to dip my toe in the water and try to learn VB6.

Yes, I know a bit of Python (and PureBasic to a lesser extent), but not anything substantial. So if you're going to criticize me for using ancient technology, keep this in consideration.
Sorry if I sound like a bit of a jerk, I've just been trying to find an easy-to-use programming language for a few years and nothing has really suited me.
(I've also discussed JavaScript on this forum. Yes, Dark Defender is an excellent audiogame, but I don't think JavaScript is the best language to use with my current skill set.)

I'll keep you guys posted, so stay tuned.

P.S: I know some VB6 games (such as those by BSC or L-Works) don't work that well; what components/libraries/modules should I avoid using?

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-24 02:42:55

Blindncool, I personally haven't run into any components/libraries/modules that you'd need to avoid.  The problem with some of those games is that the authors specifically hard-coded in paths for where files will be saved.  They almost all try to save files where older versions of windows kept "my documents".  The folder paths are not the same on modern versions of windows, so those games error and crash when they attempt to access a non-existant folder path.  Technically any game written to use those old folder paths would suffer the same fate, but it seems a few old VB6 developers made that mistake with more games than most, giving VB6 itself a reputation for that problem.

- Aprone
Please try out my games and programs:
Aprone's software

2017-07-24 04:36:01

Whatever floats your boat, but if you are looking for an easy to use language I think you're going to find that Visual Basic isn't really any easier than the other languages you mentioned trying.

Plus as old and unsupported as it is, I don't think that Microsoft has ever declared it abandonware, in fact they probably consider that Visual Basic is not a dead product but is now called Visual Basic .NET, so I think I'd be careful about trumpeting how you got your copy.

2017-07-24 05:08:30

Good points Orco, as I said this is a temporary thing, and I might not end up using VB6 in the end.
I'm just trying it out, but it seems that VB 6.0 is pretty easy to use so far. I only know the basics (pun definitely intended, big_smile) and I don't think I'm any where close to creating games yet.

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-24 06:26:18

Once you get the hang of VB6, you should try learning VB.NET. It has more features and is far more modern; plus, you'll be able to find more documentation and information on VB.NET than you will VB6.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2017-07-24 06:53:18

At Aprone: could an instance of one of those games, running in administrator mode, on a computer with the documents and settings / my documents / whatever folders added manually, still work?

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2017-07-24 11:40:22

VB6 and VB.net are very different languages, in that VB.net gets all of its functions using .net objects, so it's extremely object oriented, as much as BGT or JavaScript, except using different keywords instead of braces to indicate code blocks. So if you found the concepts of OOP
difficult you probably want to stay away from VB.net for the moment.

<Insert passage from "The Book Of Chrome" here>

2017-07-24 14:02:14

Wow. People still use VB6? Crazy.

I took a VB6  distance learning course several years ago when I was in high school and got quite good at using it. I used some of the controls and wrote a very, very basic text editor that had autosave functionality. Unfortunately I forgot nearly all of it as I never applied it anywhere, and that floppy with the source code for that program is likely long gone.

2017-07-24 16:07:42

CAE Jones, I do believe so, yes.

Ethin, like Pitermach said, VB6 and VB.net are very different languages even though their names are similar.

Draq, people do.  A large number of audiogames have been written with VB6, even through to today.  Probably a few times each year I am sent emails or called by companies desperately looking for experienced VB6 programmers.  The list of (experienced) VB6 programmers is shrinking every day, but the world still has many pieces of critical software that are written using it.  Those programs need to be expanded and patched just like any other.  Keep in mind that for a decade, somewhere in the neighborhood of 90% of all office and business related software was written in VB 1-6 (or so I was told in school and from multiple other sources growing up).

A good portion of places running their businesses on custom created software, are not going to tear everything down to replace it with things written in new languages, as the world constantly decides which ones are "popular" that year.  When stuff works, it works, and even to this day many companies are running themselves on VB software written back in the early 90s.  When they do find they need changes made, again it doesn't usually make sense to tear everything out and start from scratch, but rather tweak and change what they already have.  I've actually been told that good quality VB6 programmers are often paid more per hour than programmers of today's modern languages, just because they are more rare.

If you look around online, you'll find that I'm not the only modern day nut still using VB6 on a daily basis, ROFL!
Maybe one of these days I'll tell the guy on the phone that I'm interested.  big_smile

- Aprone
Please try out my games and programs:
Aprone's software

2017-07-24 17:30:13

Wow aprone, I didn't know that.
If only Microsoft were smart enough to release a VB6 express/community edition for those still using it.

One question I have is this. Can a project be written without any forms? I know 90% (if not more) of VB programs include forms, but are they absolutely necessary for things like games?
There's an option in the project properties to start with the sub Main routine (rather than form1). Is that all I need to do to remove forms?

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-24 17:55:01

Unfortunately, that will never happen, Microsoft pretty much sold out the entire Visual Studio 6 community by converting all of it's languages to use their .NET framework. I think that only C/C++ that compiled to native code survived the .NET conversion, and only because most of the C/C++ developers were ready to jump ship and go over to other brands of compilers, and Microsoft didn't want to lose those customers. It's a pity they didn't feel the same way about the Visual Basic community. I know a lot of those developers that didn't embrace .NET switched to Real Basic. It was a visual development environment like Visual Basic, could use the same active X controls Visual Basic did, and compiled to native code, and was almost syntactically identical to Visual Basic so it didn't take much effort to convert Visual Basic projects to Real Basic. And there were probably more than a few developers who decided they didn't need the active X environment of Visual Basic that switch to other basic languages like Pure Basic. And then there are some that thumbed their noses at Microsoft and simply decided to just keep using Visual Basic 6.

2017-07-24 19:31:22 (edited by blindncool 2017-07-24 19:31:55)

Here's my current progress: I'm running through Using Visual Basic 6, by Bob Reselman, Wayne Pruchniak and Richard A. Peasley.
The first exercise is to build a calendar application, using the MonthView control.
Is there another way to add a control to a form, other than the toolbox? It seems that the toolbox is completely inaccessible with NVDA (when choosing toolbox from the view menu, I get a dreaded unknown error).

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-24 20:14:13

Visual Basic's toolbox is very visual. I've heard that there are blind developers using it, but don't know if their screen reader has a mode or scripts to deal with Visual Basic, or if they've simply learned how to bypass the visual toolbox and just code everything.

I've looked at Visual Basic 6 source code before I lost my vision and can tell you that everything you define in it as far as dialogs and controls is saved to the source code files as structured text definitions.

It's also possible they are bypassing the entire Visual Basic way of defining the program's GUI and building it with Windows API calls similar to the way Pure Basic does it.

2017-07-24 21:02:50

Alright, since the book I mentioned is clearly focused on the "visual" side of Visual Basic, are there any documentation which teaches the syntax instead of focusing on the visual side?

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-24 21:42:21

There probably is, but I don't know of them personally, ages ago when I learned Visual Basic 6, all the books I used were from Microsoft Press.

2017-07-24 22:10:52

AFAIK JAWS came bundled with scripts for the VB6 ide, which were extremely good, even going as far as telling you if the controls you were placing using the toolbox were overlapping or not and so on. This is most likely one of the reasons why so many blind people picked it up. There were quite a few applications written by Blind people that had GUI's like Day by day pro.

Whether these scripts will still work, I don't know. I don't think FS/VFO has a habbit of removing even super old scripts. What might be a bigger issue is that because they were written so long ago they probably rely a lot on the Off-screen model rather than UIA and the OSM was limited somewhat in recent Windows versions. So my only suggestion would be to just try it and see if it works, and keep in mind that for audio games all you'll probably need is   just a large, full-screen Window and you shouldn't have to touch your form after that.

<Insert passage from "The Book Of Chrome" here>

2017-07-25 00:05:30

Blindncool, while I haven't done it myself, I do believe at least one of the alternate project types will give you just a console window rather than a form.

I think your new plan to focus on the syntax rather than those "visual" approach books is a good one.  When I was still learning, most of the books I saw did focus on the visuals rather than the true meat of the language.  These days I barely use more than a few of the core tools (button, listbox, picturebox if I'm doing something with nicer graphics, and the timer).  When working with audio games, there's very little need for all those tool box thingys.

- Aprone
Please try out my games and programs:
Aprone's software

2017-07-25 07:44:58

I do know that VB6 and VB.NET are very, very different languages. However, they do have similarities that tie the two together; sure, VB.NET uses objects and OOP, but it still has the core things VB6 has: subs, dims, etc. I'm honestly extremely bad at the language; perhaps I'll one day rekindle that fire and see how it goes. I never was a fan of the VB6 IDE -- I'm more used to the Visual Studio IDE (which, for me at least, seems far more usable than the VB6 one does). I might scrounge around and see if I can find it again.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2017-07-26 00:51:59

Here's what I know so far:

  • creating and assigning values to variables

  • creating and resizing arrays

  • how to create basic subroutines (Form_Load, Main, Etc.)

Also, I did try an old version of the  JAWS demo (I think it was v15) and it did work rather well with the VB IDE. The only problems are (1) I'm not going to buy JAWS, just so I can use it for VB6 development, and (2) It only shows a few controls in the toolbox at a time (E.G. when you open the virtual toolbox, it doesn't show any controls, but controls are slowly added to the list over time during the VB session.)

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-26 02:25:01

I'm a JAWS user and even I wouldn't buy it just for one program, especially when that program is VB6 and there are far better choices available.

If I were going to use VB6, I'd probably look to a much older version of JAWS. A version that was current when VB6 was current, which would put you back before 2002 when .NET was introduced.

2017-07-27 04:33:10

I know there aren't many answers to this question, but are there any alternatives to DirectSound? I know I'll probably have to use DirectInput for audiogames.

“Can we be casual in the work of God — casual when the house is on fire, and people are in danger of being burned?” — Duncan Campbell
“There are four things that we ought to do with the Word of God – admit it as the Word of God, commit it to our hearts and minds, submit to it, and transmit it to the world.” — William Wilberforce

2017-07-27 04:36:54

Is there a reason you intend to use directinput?  If keyboard and mouse are the inputs you'll use, you won't need it.

- Aprone
Please try out my games and programs:
Aprone's software

2017-07-27 04:58:51

The problem with older versions of Jaws is that they aren't always very forward compatible. I tried installing Jaws 3.7 on whatever version of windows my schools were running in 2003-2004, and they had to be reimaged. So, yeah, I'm not sure when Jaws 4 came out (between 2001 and 2003, iirc), but that's probably the safest, if you're going that route... but for all I know that one breaks modern Windows, too.

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2017-07-27 15:07:03

just spin up and old xp VM...

on the subject of old programming languages, I'm going to laugh so hard when more and more bugs/vulnerabilities are found in the old languages like VB, PB, and BGT. FYI, they won't ever get patched. when I get better at security and ethical hacking I intend to destroy BGT up one wall and down the other.

I don’t believe in fighting unnecessarily.  But if something is worth fighting for, then its always a fight worth winning.
check me out on Twitter and on GitHub

2017-07-27 15:27:49

Kyleman, VB6 was released in 1998 and was officially dropped by Microsoft in 2008.  What are the bugs/vulnerabilities that have been found in it since then?  I'm curious to know if there is a list somewhere since you're waiting on More to be found.

- Aprone
Please try out my games and programs:
Aprone's software