Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / DBPro is Impossible to Learn

Author
Message
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 18th Oct 2003 05:37
Ok first let me say its extremely difficult. What made original DB easy was that there was an example for every single command, now in DBPro all the commands for Basic 3D are all lumped into 1 single example pretty much. Although DBPro is an upgraded version of DB Classic it sure seems like the help system is downgraded. Does anyone know if I can find a file with examples for every command, much like original DB, for DBPro? Thanks.
Ian T
23
Years of Service
User Offline
Joined: 12th Sep 2002
Location: Around
Posted: 18th Oct 2003 07:38
You don't need to 'learn' commands. If you knew DB classic to any basic extend, Pro will come completely naturally to you. If you want to know a command, just look in the help file. The parameters explain everything. And Classic did NOT have an example for every single command-- its help system was about as large as Pro's (which is bad, considering Pro is larger, but it sure as heck wasn't perfect in Classic either).

If Pro is impossible to learn, I'd like to know where the 2000 lines of code on my latest project appeared from .

--Mouse: Famous (Avatarless) Fighting Furball

A very nice %it, indeed.
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 18th Oct 2003 08:12
Hehe, ok ok. I'll admit I was exaggerating a little when I said it was "impossible." But let me use an example.

As an example lets say I want to learn how and when to use the SET TEXTURE MD3 command. So I look it up and here's what it says:
Quote: "This command will set the specified object to use a special set of textures. The object must have been
previously loaded as an MD3 model. MD3 models are blank by default and require this command to provide
the textures. The six texture parameters H0, H1, L0, L1, L2 and U0 are values to images you must load
prior to calling this command.

SYNTAX
SET TEXTURE MD3 Object Number, H0, H1, L0, L1, L2, U0"


So now Im wondering what exactly are the paramaters and what needs to be passed into them. No problems I'll just click for an example, right? Wrong. There is absolutely no use of this command in either the showcase or usage examples.

Now lets pick a different command, lets say enable object zdepth. Now heres the description:
Quote: "This command will return the specified object to normal Zdepth operations.

SYNTAX
ENABLE OBJECT ZDEPTH Object Number"
Ok, well thats just great but what does it mean? Again, no problems I'll just look at an example and I can figure it out for myself. So I click for an example and here it is:
Quote: "rem Basic3D Functionality

rem Standard Setup Code for all examples
backdrop off : cls : sync on : sync rate 0 : hide mouse
set text font "arial" : set text size 16
set text to bold : set text transparent

rem Legacy or New Commands
legacyonly=rnd(1)
if legacyonly=1
gosub _legacycommands
else
gosub _newcommands
endif

rem End program
end

_legacycommands:

rem Test loop
do

rem Produce random values
ObjectNumber=1+rnd(500000)
Wireframe=rnd(1)
Transparency=rnd(1)
Cull=rnd(1)
Filter=rnd(1)
Light=rnd(1)
Fog=rnd(1)
Ambient=rnd(1)
MeshNumber=1+rnd(5)
TextureNumber=1+rnd(5)
LimbNumber=10
Size=10+rnd(90)
XSize=10+rnd(90)
YSize=10+rnd(90)
ZSize=10+rnd(90)
StartFrame=1+rnd(10)
EndFrame=StartFrame+1+rnd(10)
Speed=50+rnd(50)
QuarterPercent=100/4
ImageNumber=1+rnd(5)
TextureMode=1+rnd(2)
Percentage#=rnd(100)
SecondObject=1+rnd(500000)
TextureMode=1+rnd(2)
MipMode=1+rnd(2)
X=rnd(400)-200
Y=0
Z=rnd(400)
NewX=rnd(400)-200
NewY=0
NewZ=rnd(400)
Velocity=1+rnd(9)
XAngle=rnd(359)
YAngle=rnd(359)
ZAngle=rnd(359)
UValue=rnd(100)/100.0
VValue=rnd(100)/100.0
Scale=50+rnd(50)
XScale=50+rnd(50)
YScale=50+rnd(50)
ZScale=50+rnd(50)
MipmapGeneration=1+rnd(1)

rem Try each command group at random
r=r+1 : if r>=4 then r=0
if r=0 then gosub _3dobjects
if r=1 then gosub _3dmotion
if r=2 then gosub _3dcollision
if r=3 then gosub _3dlimbs

rem Display data
cls 0
print "BASIC3D EXPRESSION DATA"
print
if object exist(ObjectNumber)=1
if rnd(5)=1
print "3D OBJECTS"
print "exist:";object exist(ObjectNumber)
print "frames:";total object frames(ObjectNumber)
print "size:";object size(ObjectNumber)
print "x:";object position x(ObjectNumber)
print "y:";object position y(ObjectNumber)
print "z:";object position z(ObjectNumber)
print "anglex:";object angle x(ObjectNumber)
print "angley:";object angle y(ObjectNumber)
print "anglez:";object angle z(ObjectNumber)
print "sizex:";object size x(ObjectNumber)
print "sizey:";object size y(ObjectNumber)
print "sizez:";object size z(ObjectNumber)
print "visible:";object visible(ObjectNumber)
print "playing:";object playing(ObjectNumber)
print "looping:";object looping(ObjectNumber)
print "frame:";object frame(ObjectNumber)
print "speed:";object speed(ObjectNumber)
print "interpolation:";object interpolation(ObjectNumber)
print "object in screen:";object in screen(ObjectNumber)
print "object screen x:";object screen x(ObjectNumber)
print "object screen y:";object screen y(ObjectNumber)
print
endif
if rnd(5)=1
print "COLLISION"
if object exist(SecondObject)=1
print "object collision:";object collision(ObjectNumber, SecondObject)
print "object hit:";object hit(ObjectNumber, SecondObject)
endif
print "object col radius:";object collision radius(ObjectNumber)
print "object col center x:";object collision center x(ObjectNumber)
print "object col center y:";object collision center y(ObjectNumber)
print "object col center z:";object collision center z(ObjectNumber)
print "object col x:";get object collision x()
print "object col y:";get object collision y()
print "object col z:";get object collision z()
print "static hit:";get static collision hit( 2,2,2,10,10,10, 3,3,3,11,11,11 )
print "static col x:";get static collision x()
print "static col y:";get static collision y()
print "static col z:";get static collision z()
print "static line hit:";static line of sight( 0,0,0, 0,0,100, 1, 1 )
print "static line col x:";static line of sight x()
print "static line col y:";static line of sight y()
print "static line col z:";static line of sight z()
print
endif
if rnd(5)=1
print "LIMBS"
print "exist:";limb exist(ObjectNumber, LimbNumber)
if limb exist(ObjectNumber, LimbNumber)=1
print "offsetx:";limb offset x(ObjectNumber, LimbNumber)
print "offsety:";limb offset y(ObjectNumber, LimbNumber)
print "offsetz:";limb offset z(ObjectNumber, LimbNumber)
print "anglex:";limb angle x(ObjectNumber, LimbNumber)
print "angley:";limb angle y(ObjectNumber, LimbNumber)
print "anglez:";limb angle z(ObjectNumber, LimbNumber)
print "positionx:";limb position x(ObjectNumber, LimbNumber)
print "positiony:";limb position y(ObjectNumber, LimbNumber)
print "positionz:";limb position z(ObjectNumber, LimbNumber)
print "directionx:";limb direction x(ObjectNumber, LimbNumber)
print "directiony:";limb direction y(ObjectNumber, LimbNumber)
print "directionz:";limb direction z(ObjectNumber, LimbNumber)
print "texture:";limb texture(ObjectNumber, LimbNumber)
print "visible:";limb visible(ObjectNumber, LimbNumber)
print "linkvalid:";check limb link(ObjectNumber, LimbNumber)
print "name$:";limb texture name(ObjectNumber, LimbNumber)
endif
print
endif
if rnd(5)=1
print "MISC"
print "mesh exist:";mesh exist(MeshIndex)
print "alphablending available:";alphablending available()
print "filtering available:";filtering available()
print "fog available:";fog available()
print "TnL available:";tnl available()
print "Polys on nscreen:";statistic(1)
print
endif
endif

rem Delete Object
if object exist(ObjectNumber)=1 then delete object ObjectNumber

rem Update screen
sync

loop

return

_3dobjects:

rem Load Objects
load object "models\model.x",ObjectNumber
load object "models\model.x",SecondObject

rem Load Image for object
load image "iron.jpg",ImageNumber

rem Append Object
append object "models\extraanim.x", ObjectNumber, total object frames(ObjectNumber)+1

rem Set Object Properties
set object ObjectNumber, Wireframe, Transparency, Cull
set object ObjectNumber, Wireframe, Transparency, Cull, Filter
set object ObjectNumber, Wireframe, Transparency, Cull, Filter, Light
set object ObjectNumber, Wireframe, Transparency, Cull, Filter, Light, Fog
set object ObjectNumber, Wireframe, Transparency, Cull, Filter, Light, Fog, Ambient

rem Control Object Animation
play object ObjectNumber
play object ObjectNumber,StartFrame
play object ObjectNumber,StartFrame,EndFrame
loop object ObjectNumber
loop object ObjectNumber,StartFrame
loop object ObjectNumber,StartFrame,EndFrame
stop object ObjectNumber
set object frame ObjectNumber, StartFrame
set object speed ObjectNumber, Speed
set object interpolation ObjectNumber, QuarterPercent

rem Control Object Orientation
set object rotation xyz ObjectNumber
set object rotation zyx ObjectNumber

rem Object Visuals
hide object ObjectNumber
show object ObjectNumber
color object ObjectNumber, rgb(255,255,0)
scale object ObjectNumber,XSize,YSize,ZSize
texture object ObjectNumber, ImageNumber
set object texture ObjectNumber, TextureMode, MipmapGeneration
scroll object texture ObjectNumber, 0.1, 0.2
scale object texture ObjectNumber, 75, 75
ghost object on ObjectNumber
ghost object off ObjectNumber
fade object ObjectNumber, Percentage#
glue object to limb ObjectNumber, SecondObject, 1
unglue object ObjectNumber
lock object on ObjectNumber
lock object off ObjectNumber
disable object zdepth ObjectNumber
enable object zdepth ObjectNumber

rem Load mesh
load mesh "mesh.x",MeshNumber

rem Make Primitives
delete object ObjectNumber : make object cube ObjectNumber, Size
delete object ObjectNumber : make object box ObjectNumber, XSize, YSize, ZSize
delete object ObjectNumber : make object cylinder ObjectNumber, Size
delete object ObjectNumber : make object cone ObjectNumber, Size
delete object ObjectNumber : make object plain ObjectNumber, XSize, YSize
delete object ObjectNumber : make object triangle ObjectNumber, 0, 0, 0, 1, 1, 0, 0, 1, 0
delete object ObjectNumber : make object sphere ObjectNumber, Size
delete object ObjectNumber : make object ObjectNumber, MeshNumber, TextureNumber

rem Change Mesh In Object
LimbNumber=0
change mesh ObjectNumber, LimbNumber, MeshNumber

rem Delete Mesh
delete mesh MeshNumber

rem Make Mesh From Object
make mesh from object MeshNumber, ObjectNumber

rem Delete second object
delete object SecondObject

rem Remove redundant video items
flush video memory

return

_3dmotion:

rem Load objects
load object "model.x",ObjectNumber
load object "model.x",SecondObject

rem Adjust model to face correct direction
rotate object ObjectNumber, 270, 0, 0
fix object pivot ObjectNumber

rem Control object motion using EULER
position object ObjectNumber, X, Y, Z
rotate object ObjectNumber, XAngle, YAngle, ZAngle
xrotate object ObjectNumber, XAngle
yrotate object ObjectNumber, YAngle
zrotate object ObjectNumber, ZAngle
point object ObjectNumber, NewX, NewY, NewZ
move object ObjectNumber, Velocity

rem Control object motion using FREEFLIGHT
turn object left ObjectNumber, Velocity
turn object right ObjectNumber, Velocity
pitch object up ObjectNumber, Velocity
pitch object down ObjectNumber, Velocity
roll object left ObjectNumber, Velocity
roll object right ObjectNumber, Velocity

rem Align position and angle with other entities
set object to object orientation ObjectNumber, SecondObject
set object to camera orientation ObjectNumber

rem Delete second object
delete object SecondObject

return

_3dcollision:

rem Activate global collision
set global collision on

rem Load object
load object "model.x",ObjectNumber

rem Deactivate object collision
set object collision off ObjectNumber

rem Activate object collision
set object collision on ObjectNumber

rem Make new collision box for object
make object collision box ObjectNumber, -50,-50,-50,50,50,50,1

rem Delete collision box from object
delete object collision box ObjectNumber

rem Set different styles of collision
set object collision to boxes ObjectNumber
set object collision to spheres ObjectNumber
set object collision to polygons ObjectNumber

rem Deactivate global collision
set global collision off

return

_3dlimbs:

rem Load object
load object "model.x",ObjectNumber

rem Load Image for object
load image "iron.jpg",ImageNumber

rem Get details for all object limbs
perform checklist for object limbs ObjectNumber
for c=1 to checklist quantity()
print checklist string$(c)
next c

rem Manipulate single limb of the object
hide limb ObjectNumber, LimbNumber
show limb ObjectNumber, LimbNumber
offset limb ObjectNumber, LimbNumber, 0, 0, 100
rotate limb ObjectNumber, LimbNumber, XAngle, YAngle, ZAngle
scale limb ObjectNumber, LimbNumber, XScale, YScale, ZScale
color limb ObjectNumber, LimbNumber, rgb(0,255,0)
texture limb ObjectNumber, LimbNumber, ImageNumber
scroll limb texture ObjectNumber, LimbNumber, UValue, VValue
scale limb texture ObjectNumber, LimbNumber, XScale, YScale

return

_newcommands:

rem Set starting object numbers
ObjectNumber=1+rnd(49)
SecondObject=51+rnd(49)
ImageNumber=1+rnd(5)
Side=ImageNumber

rem Load image
load image "iron.jpg",ImageNumber

rem Create a higher quality sphere
make object sphere ObjectNumber,100,5,30
texture object ObjectNumber,ImageNumber

rem Test loop
do

rem Produce random values
Wireframe=rnd(1)
Transparency=rnd(1)
Cull=rnd(1)
Filter=rnd(1)
Light=rnd(1)
Fog=rnd(1)
Ambient=rnd(1)
VertexShaderNumber=1+rnd(5)

rem Try each command group at random
r=r+1 : if r>=5 then r=0
if r=0 then gosub _newobjectcommands
if r=1 then gosub _newtexturecommands
if r=2 then gosub _newvisualcommands
if r=3 then gosub _newshadercommands
if r=4 then gosub _newpixelshadercommands

rem Remove any second object
if object exist(SecondObject)=1 then delete object SecondObject

rem Display data
s=rnd(2)
cls
print "NEW BASIC3D EXPRESSION DATA (";r;")"
print
if s=0
print "3D DEVICE DATA"
print "devicetype:";get device type()
print "max lights:";get maximum lights()
print "max tex width:";get maximum texture width()
print "max tex height:";get maximum texture height()
print "max volume extent:";get maximum volume extent()
print "max vertexshader version:";get maximum vertex shader version()
print "max vertexshader constant:";get maximum vertex shader constants()
print "max pixelshader version:";get maximum pixel shader version()
print "max pixelshader value:";get maximum pixel shader value()
print
endif
if s=1
print "GENERAL AVAILABILITY FLAGS"
print "blit sys to local:";blitsystolocal available()
print "calibrate gamma:";calibrategamma available()
print "fullscreen gamma:";fullscreengamma available()
print "render after flip:";renderafterflip available()
print "render windowed:";renderwindowed available()
print "tlvertex system memory:";tlvertexsystemmemory available()
print "tlvertex video memory:";tlvertexvideomemory available()
print "nonlocal video memory:";nonlocalvideomemory available()
print "texture system memory:";texturesystemmemory available()
print "texture video memory:";texturevideomemory available()
print "fog range:";fogrange available()
print "fog table:";fogtable available()
print "fog vertex:";fogvertex available()
print "wbuffer:";wbuffer available()
print "wfog:";wfog available()
print "zbuffer:";zbuffer available()
print "zfog:";zfog available()
print
endif
if s=2
print "TEXTURE AVAILABILITY FLAGS"
print "alpha:";alpha available()
print "alpha comparison:";alphacomparison available()
print "anistropic filtering:";anistropicfiltering available()
print "antialias:";antialias available()
print "clip and scale points:";clipandscalepoints available()
print "clip tlverts:";cliptlverts available()
print "color perspective:";colorperspective available()
print "color write enable:";colorwriteenable available()
print "cubemap:";cubemap available()
print "cullccw:";cullccw available()
print "cullcw:";cullcw available()
print "dither:";dither available()
print "mipcubemap:";mipcubemap available()
print "mipmap:";mipmap available()
print "mipmap lodbias:";mipmaplodbias available()
print "mipmap volume:";mipmapvolume available()
print "non power of 2 textures:";nonpowtextures available()
print "perspective textures:";perspectivetextures available()
print "projected textures:";projectedtextures available()
print "seperate texture memories:";seperatetexturememories available()
print "only square textures:";onlysquaretextures available()
print "volumemap:";volumemap available()
print
endif

rem Update screen
sync

rem Short pause
sleep 1000

rem End loop
loop

return

_newobjectcommands:

rem Clone object
clone object ObjectNumber, SecondObject

rem Move clone slightly so we can see it
if object exist(SecondObject)=1 then position object SecondObject,50,50,50

rem Move against the object angle
move object up ObjectNumber, rnd(25)
move object down ObjectNumber, rnd(25)
move object left ObjectNumber, rnd(25)
move object right ObjectNumber, rnd(25)

rem Adjust the collision radius of the object
set object radius ObjectNumber, 50

return

_newtexturecommands:

rem Apply a texturing style
set light mapping on ObjectNumber, ImageNumber
set cube mapping on ObjectNumber, Side, Side, Side, Side, Side, Side
set sphere mapping on ObjectNumber, ImageNumber
set detail mapping on ObjectNumber, ImageNumber
set blend mapping on ObjectNumber, ImageNumber, 10
set bump mapping on ObjectNumber, ImageNumber
set cartoon shading on ObjectNumber, ImageNumber, ImageNumber

return

_newvisualcommands:

rem Adjust visual properties of the object
set object wireframe ObjectNumber, Wireframe
set object transparency ObjectNumber, Transparency
set object cull ObjectNumber, Cull
set object filter ObjectNumber, Filter
set object light ObjectNumber, Light
set object fog ObjectNumber, Fog
set object ambient ObjectNumber, Ambient

return

_newshadercommands:

rem Constants for vertex shader
#constant CSCALE 1
#constant CTRANSLATION 2
#constant CXROTATE 3
#constant CYROTATE 4
#constant CZROTATE 5
#constant CROTATION 6
#constant CWORLD 7
#constant CVIEW 8
#constant CPROJECTION 9
#constant CTEMP 10
#constant CLIGHT 11
#constant CDEGTORAD ( 3.14 / 180.0 )

rem Provide vertex shader with stream count
set vertex shader streamcount VertexShaderNumber, 4

rem Provide vertex shader with stream
VSDT_FLOAT2=0x01 : VSDT_FLOAT3=0x02 : VSDT_D3DCOLOR=0x04
VSDE_POSITION=0 : VSDE_NORMAL=3 : VSDE_DIFFUSE=5 : VSDE_TEXCOORD0=7
set vertex shader stream VertexShaderNumber, 1, VSDE_POSITION, VSDT_FLOAT3
set vertex shader stream VertexShaderNumber, 2, VSDE_NORMAL, VSDT_FLOAT3
set vertex shader stream VertexShaderNumber, 3, VSDE_DIFFUSE, VSDT_D3DCOLOR
set vertex shader stream VertexShaderNumber, 4, VSDE_TEXCOORD0, VSDT_FLOAT2

rem Create a vertex shader from a text file
create vertex shader from file VertexShaderNumber, "vshader.vsh"

rem Make simple object
if object exist(ObjectNumber)=1 then delete object ObjectNumber
make object sphere ObjectNumber,100

rem Convert object to correct mesh format
FVF_XYZ=0x002 : FVF_NORMAL=0x010 : FVF_DIFFUSE=0x040 : FVF_TEX1=0x100
FVF_FINAL=D3DFVF_XYZ || D3DFVF_NORMAL || D3DFVF_DIFFUSE || D3DFVF_TEX1
convert object fvf ObjectNumber,FVF_FINAL

rem Check if vertex shader was created
if vertex shader exist(VertexShaderNumber)=1

rem Apply vertex shader to object
set vertex shader on ObjectNumber, VertexShaderNumber

rem Create required matrices
r=make matrix4(CVIEW)
r=make matrix4(CPROJECTION)
r=make matrix4(CSCALE)
r=make matrix4(CTRANSLATION)
r=make matrix4(CXROTATE)
r=make matrix4(CYROTATE)
r=make matrix4(CZROTATE)
r=make matrix4(CROTATION)
r=make matrix4(CWORLD)
r=make matrix4(CTEMP)

rem required light vector
r=make vector3(CLIGHT)

rem setup camera and light vector position
sync on : position camera 0,0,-500
set vector3 CLIGHT,0,0,-500

rem Simple loop
while mouseclick()=0

rem get view and projection matrices
view matrix4 CVIEW
projection matrix4 CPROJECTION

rem setup a scale matrix
scale matrix4 CSCALE, 2.0, 2.0, 2.0

rem now setup the position
translate matrix4 CTRANSLATION, 0.0, 10.0, 0.0

rem setup rotation
rotate x matrix4 CXROTATE, 0.0 * CDEGTORAD
rotate y matrix4 CYROTATE, 0.0 * CDEGTORAD
rotate z matrix4 CZROTATE, 45.0 * CDEGTORAD

rem multiply all 3 rotation matrices together
multiply matrix4 CROTATION, CXROTATE, CYROTATE
multiply matrix4 CROTATION, CROTATION, CZROTATE

rem multiply all final matrices
multiply matrix4 CTEMP, CROTATION, CSCALE
multiply matrix4 CWORLD, CTEMP, CSCALE
multiply matrix4 CWORLD, CWORLD, CVIEW
multiply matrix4 CWORLD, CWORLD, CPROJECTION

rem transpose the matrix
transpose matrix4 CWORLD, CWORLD

rem we send the light vector3 to the vertex shader
set vertex shader vector VertexShaderNumber, 4, CLIGHT, 4

rem this is an important part – we send the world matrix to the vertex shader
set vertex shader matrix VertexShaderNumber, 0, CWORLD, 4

rem camera look
rotate camera camera angle x()+mousemovey(),camera angle y()+mousemovex(),0

rem update screen
sync

rem end loop
endwhile

rem Deactivate vertex shader of the object
set vertex shader off ObjectNumber

rem Delete a vertex shader
delete vertex shader VertexShaderNumber

endif

return

_newpixelshadercommands:

rem Create an object
if object exist(1)=1 then delete object 1
make object sphere 1,10

rem If Pixel Shaders supported
if get maximum pixel shader version()>0

rem Create a pixel shader from a text file
create pixel shader from file PixelShaderNumber, "pixelshader.psh"

rem Provide pixel shader with a texture
ImageNumber=1
load image "face.bmp",ImageNumber
set pixel shader texture PixelShaderNumber, 0, ImageNumber

rem Check if pixel shader was created
if pixel shader exist(PixelShaderNumber)=1

rem Apply pixel shader to object
set pixel shader on ObjectNumber, PixelShaderNumber

endif

rem Main loop
while mouseclick()<>2
set cursor 0,0 : print "Press Right Mouse Button To Exit"
endwhile

rem Check if pixel shader was created
if pixel shader exist(PixelShaderNumber)=1

rem Deactivate pixel shader of the object
set pixel shader off ObjectNumber

rem Delete a pixel shader
delete pixel shader PixelShaderNumber

endif

else
print "No Pixel Shader Support - Press Key" : wait key
endif

return"


WOW! Thats a lot of code, well I did see enable object zdepth in there but theres also a billion other commands. To understand what enable object zdepth does I have to understand what the whole example code does. And to understand that I have to understand what each command does. And to understand what each command does I have to see an example of how its used. Do you see the flaw here? Its impossible to learn with these examples. DB Classic had a much better handle on this.

Now I dont have the original DB classic manual or software anymore so I cant paste in a specific example, but it had very well commented examples (which DBPro does not) and the example for each command would have had as few lines as possible without any commands that were not necessary. Hell, I dont even know why they just didnt use the original manual for DBPro (that is for all the commands that crossed over).
Kevin Picone
23
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 18th Oct 2003 08:41
Yes, the examples (cough) are indeed awful. Their generally nothing more than lee's command validations while testing the compiler (as you can above). There was talk about that the help was being updated. Here's hoping

Kevin Picone
Play Basic - Visible Worlds - Kyruss II
[url]www.underwaredesign.com[/url]
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 18th Oct 2003 08:50
Well if anyone wants to start a petition, you can count me in and put my name on it
Medicine Soup
23
Years of Service
User Offline
Joined: 25th Mar 2003
Location: Arizona, USA
Posted: 18th Oct 2003 14:52
You've got my signature too. I would even be willing to spend long hours WRITING the new examples . . . that is, if I understood the commands better. But hey! I am willing to help in any way I can as far as improving the command examples are concerned.
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 18th Oct 2003 15:13
Theres no reason why we have to rely on TGC to do this, my understanding is that they all really busy at the moment - which suggests to me it will be some time before we get an updated help - theres a lot of good programmers here that do understand the trickier commands. Why don't we all get together and produce a definitive online help for DBPro, with examples and fuller explanations?

I could write a dynamic webpage that includes the standard explanations etc and allows anyone to add to it and add examples etc...

It's just a thought.

indi
23
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Earth, Brisbane, Australia
Posted: 18th Oct 2003 15:22
yeah id say the cup is half full and opt for a user based created code tutorial website for sure. Ive submitted a few tutorials and hopefully rich will post them,Im sure im not the only one who has done this.There must be a slew of coders who understand a series of commands to help promote the data content of such a site.
A petition and the way this post was constrcuted reeks of a negative angle towards learning.

David T
Retired Moderator
23
Years of Service
User Offline
Joined: 27th Aug 2002
Location: England
Posted: 18th Oct 2003 15:25
Quote: "Now lets pick a different command, lets say enable object zdepth. Now heres the description:
Quote: "This command will return the specified object to normal Zdepth operations.

SYNTAX
ENABLE OBJECT ZDEPTH Object Number"
Ok, well thats just great but what does it mean? Again, no problems I'll just look at an example and I can figure it out for myself. So I click for an example and here it is: "


Have a look at disable object zdepth

If you know darkbasic then pro is identical, with a few extra commands.

Some people moan that there isn't enough documentation on commands such as the 3d maths set, however really the only people who will use them are people who are profecient in 3d maths

Fishie says:
"Those who fail to prepare prepare to fail"
"Rules are for the guidance of the wise and the blind obdeniency of the fools"
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 18th Oct 2003 15:51
I'll get to work on something if you want? Then anyone will be able to add their viewpoint, usage tips, code, definitions etc to the exisiting help.

Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 18th Oct 2003 16:13 Edited at: 18th Oct 2003 16:17
Yeah, actually it'd be a good idea for users to document a selection of examples, most example would only need to be a few lines long. Eg. object zDepth:



See, simple and it shows what the commands to in a simple way.

It'd be good if TGC could host it, or at least link to it, but Im not sure how they would document them. They'd be checking through an awful lot of examples.

GCEclipse, I am willing to help. I could add you to my msn if you want.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 18th Oct 2003 16:32 Edited at: 18th Oct 2003 16:36
Yeah add to to your MSN, I'd like to hear from you.

I'll get a domain name for it this week, and I think I've got some hosting space to host it already. Then I'l produce some tests for people to have a look at and try out.

Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 18th Oct 2003 16:35
Done .

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
CattleRustler
Retired Moderator
22
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 18th Oct 2003 17:28
this is a noble endeavor on all of your parts! Cheers!
I was thinking of writing a type of "Intro to Programming 101" to get absolute newbies up to speed in understanding the general concepts of basic programming (not too language-specific) (ie variables, loops, if-then etc-to try and instill good programming practices) maybe something like this could be hosted with your help system. Let me know if that's something to be interested in. Then maybe others could make the second and third course to take the 101 graduates and advance them into dbp specifically - just a thought.

-RUST-
zircher
23
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 18th Oct 2003 18:49
While I'm not a DBP master (I started with DBP rather than coming from DBC), I'd like to help if some user submission system is created for an online help library.
--
TAZ
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 18th Oct 2003 20:31
Wow, Im suprised this post has gotten this much attention. By the way, some people have mentioned that I represented this post in a negative way. I just want to apologize for that and it was not my intention, I was just getting a little frustrated.

GCEclipse, maybe you could set something up where people can submit examples for various commands and better explanations of them, then a moderator or group of moderators would review them for accuracy. Do you have AIM? If you wanted to set something like this up I would be happy to submit explanations and examples for the commands I do know.
Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 18th Oct 2003 21:02 Edited at: 18th Oct 2003 21:05
It'd be good to have all the DBPro commands with:

- 1 Explanation of what it does
- 1 Syntax example
- Several Demonstrations and examples, maybe a simple, easy to see demo, and some more complex demos to show uses for the commands.
- Maybe a list of situations where it would/could be used
- A list of similar/related commands, and links to the page.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 18th Oct 2003 22:23
Yeh thats the sort of thing I was thinking - a "see also", full search, index and user submission of comments, gotchas, source examples and explanations.

I've got an idea in my head of how its all going to fit together But obviously I'd like as much help, etc as I can get.

Vandetta, I only use Messenger: [email protected]

CattleRustler - yeah good idea, it could ultimately be integrated into it in some way.

Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 18th Oct 2003 22:33
You appear to be on the forums, gonna log onto msn?

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
adr
23
Years of Service
User Offline
Joined: 21st May 2003
Location: Job Centre
Posted: 18th Oct 2003 23:44
It's been mentioned a load of places before - a new set of documents.... The trouble with documents, tutorials, examples, whatever, is that they're written by one particular author. If the reader doesn't understand the problem like the writer did, then the reader is no better off.

I'm seriously contemplating making an online documentation system. I've got a domain, unlimited transfer, php/mysql access just waiting to be used. I know I've said it before, but I still think the best documentation you can have is the official docs, with user submissions, comments, snippets etc...

So that I don't have a 2nd full time job on my hands, I make the submission process automatic. Major changes to the documents, simple examples etc can be added as and when needed obviously, but the major attraction here is the variety of explanations available.

Also, it'd be cool to have a search system, much like the php system whereby you just type "www.php.net/thing you want to search for" and it finds it

D'you know, I'll make a start on that now.

Can I ask you a Question?
What is it?
It's an interrogative form of sentence, used to test knowledge. But that's not important right now.
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 18th Oct 2003 23:49
Adr, I just talked with GCEclipse a few minutes ago and he's putting something together right as I write this. Once its online Im going to start submitting for the commands that I do know. Would you rather just submit examples, explanations, etc. to his? That way we dont have two identical projects running at the same time? We could cover more ground if there was just one.
adr
23
Years of Service
User Offline
Joined: 21st May 2003
Location: Job Centre
Posted: 19th Oct 2003 00:01 Edited at: 19th Oct 2003 00:01
if you look at something like http://www.php.net/print_r then as well as the official explanation, there's lots of people who've submitted "hey, if you're having this problem then blah" or "I find that doing blah blah blah gets best results" type comments. Also, the self-maintaining nature of the system makes it easier on the webmaster.

If someone's already doing it then I'm not gonna stand in the way

If you need help with adding auto-submission systems, or search engines, gimme a shout.

Can I ask you a Question?
What is it?
It's an interrogative form of sentence, used to test knowledge. But that's not important right now.
Vandetta
23
Years of Service
User Offline
Joined: 17th Dec 2002
Location:
Posted: 19th Oct 2003 04:41
Ok everyone, I guess you could say a very early alpha version is online of the help system created by GCEclipse. Check it out, here's the URL http://www.eclipsedevelopment.co.uk/DBPhelp/
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 19th Oct 2003 04:45 Edited at: 19th Oct 2003 04:48
Please note - at this stage I've only uploaded definitions for ABS and REM in the CORE section.

Obviously its got nothing like the functionality it will have in the final version.

Just allows you to add to the commands.

Shadow Robert
23
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 19th Oct 2003 19:58
Rich is working on the new help, have patience there are over 1,000 commands in DBP ... it'll take a while to write up all of the help, unlike DB they're not starting out with a handful all very similar and expanding, there is a HUGE ammount of new commands most of which require some more intimate knowlage.

quite fankly all i'm going to say is, if you cannot use a command - then do what you want to the long way.
if you cannot achieve what you want the long way then LEARN the basics of DBPs programming structure.

quite frankly you're not going to get anywhere purely using the builtin commands ... and if you actually understand them enough to use them most of the time you don't bloody use them because they're too constricting.

Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 19th Oct 2003 20:17
Yeah, I know they are writing new help, but this could be a good feature to have in the meantime, and maybe even still useful when the new help does come. We'll just have to see how it goes.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
CattleRustler
Retired Moderator
22
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 19th Oct 2003 21:40
GC,

I'll get cracking on the "101 for newbs" thing - I'll do what I can as fast as I can as time allows, I just moved into my new house so I am little pressed at the moment...

something soon
Peace Out

-RUST-
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 20th Oct 2003 00:38
Cattlerustler, thats cool, I've got a quite a bit to do before its fully operational anyway.

CattleRustler
Retired Moderator
22
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 20th Oct 2003 00:58
no prob


-RUST-
las6
23
Years of Service
User Offline
Joined: 2nd Sep 2002
Location: Finland
Posted: 20th Oct 2003 12:26
I think the main point of this topic was neatly put here:
Quote: "Some people moan that there isn't enough documentation on commands such as the 3d maths set, however really the only people who will use them are people who are profecient in 3d maths "


Okay, that is true. But shouldn't the help files make it easier to understand the commands and perhaps even you could learn something from them? See the problem? If only those people that are good in 3d maths can use the help files (doubt they get anything out of them), doesn't it seem silly to you?

Besides, the help files have always been very, umh... inadequate. Cube mapping is one good example, so are the blend modes. The most useful help so far has been the memblock mesh help where they explained the header. But then again, I wish it was located somewhere else.

MushroomHead
23
Years of Service
User Offline
Joined: 26th Aug 2002
Location: United Kingdom
Posted: 20th Oct 2003 13:09
Put it in a .CHM file instead of a website, someone has already done a help .CHM file, you might as well contact him and add the examples to that file rather than reinvent the wheel again.
Gu re gu
23
Years of Service
User Offline
Joined: 14th Dec 2002
Location: United Kingdom
Posted: 20th Oct 2003 14:43
@GCEclipse - I would be happy to contribute to some form of online help file; I can't stand the current DB help. If you want me to write anything for it add me to your contact list ... or email me. I could write a tutorial or whatever ... we'll see how things go and what gets submitted.

Daih thel phae 'e, clann 'e phaen
Blame it on INSANITY!
Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 20th Oct 2003 19:14
If you want to write a tut, then you could send it to TGC, they want tuts. The help I think will be for anyone to post on, so you and anyone else will be able to write and upload it instantly.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
xtom
23
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Ireland
Posted: 20th Oct 2003 23:01
I'd rather updates of the existing help files instead of an online thing. Like downloading a single help file patch every month or so instead of constantly having to go online to check commands out. When the rgt online command help thing went up I thought it was a great idea but in the end I never really went near it. Anything would be an improvement though.
Hamish McHaggis
23
Years of Service
User Offline
Joined: 13th Dec 2002
Location: Modgnik Detinu
Posted: 20th Oct 2003 23:03
This is not a replacement, just an extra.

Brains are for idiots.

Athelon XP 1400 Plus - Nvidia Geforce MX400 - 256mb RAM
GCEclipse
23
Years of Service
User Offline
Joined: 23rd Sep 2002
Location: United Kingdom
Posted: 21st Oct 2003 02:05 Edited at: 21st Oct 2003 02:08
The current position I am at is converting all the help files to fit on the webpage. I'm going to write a script for doing this - which I'll do tommorrow.

I also will add a way of quickly accessing commands, which I'll do this week.

Login to post a reply

Server time is: 2026-07-26 05:22:45
Your offset time is: 2026-07-26 05:22:45