VB and DLL for Quake editing

Olivier Montanuy (montanuy@lsun80.lannion.cnet.fr)
Thu, 9 May 1996 10:51:00 +0200

Date: Thu, 9 May 1996 10:51:00 +0200
From: Olivier Montanuy <montanuy@lsun80.lannion.cnet.fr>
To: quake-dev@gamers.org
Subject: VB and DLL for Quake editing

>Are you actually proposing writiing a 3D Wireframe real time editor in
>Visual Basic?
>I'm sorry, that was rude.

Indeed. But I can confirm, because I tried, with WinTex 4.3

2 frames per second on a DX4/75, with a 400x300 picture, on even the smaller
Quake levels (without hidden face calculations of course). That was under
windoze 3.1, 256 color.
Of course, all the calculations are done in C, but the linking to Visual Basic
is so damn slow that you can't expect any decent performance.

BTW: I've got a long experience of external DLLs linked to Visual Basic.
For any decent WAD editing to be done by DLL, you end up with several dozen
of DLL functions, much more than one can find in reasonable DLLs. WinTex
didn't explode yet, but I expect it will.

> VB is purely a tool for interface *design*.
>Trying to write a complete application in it is a waste of time.
That's completely true.
Microsoft didn't provide fast or even convenient access to graphic features
in VB. When WinTex blasts pictures to the screen, Vb controls are painted
a hell lot too slow. Not to mention that the VB listbox take hours to load.

If you want fast prototyping, use Python. All the advantages of C/C++ syntax,
minus all the bore. It's interpreted, but half pre-compiled stuff. Not as fast
as C on calculations, but then you can link C code to Python.
Also, Python is a free tool. Which means it doesn't depend on the Microsoft
commercial policy, especially the one that makes VB 3.0 programs crash when
running in VB 4.0 (guess why WinTex 4.3 is still a 16-bit app).

(Note: WinTex is a VB program, that uses a C (object oriented like) library
to speed up all WAD manipulations.)

> if a compromise is what you are looking for, then Visual C++ really is
>the choice. MFC is no bed of roses for sure,
We're talking normal human with a life, not geeks who can learn a poorly
documented hundred-class C++ library, when not working for money.
I assume you learned MVC as part of your job?

> Even GDI manipulations are relatively simple once you grasp the
>concept of the device context in the framework of the CDC class.
And with every line of code you write with GDI, there can be a bug.

>Personally, I think it is going to take a Direct Draw appliction to
>acheive the ultimate goal of 3D Preview.
That's probably right. We're all counting on hackers like you to write
the middleware, so that normal human can use DirectDraw ;-)