DarkBASIC pro is much easier then DarkBASIC, the editor is much easier to use and is windows based, you can break down the program into different peices of source code, so far this game is made up of the following soruce code files:
3DInterface.dba
Camera.dba
Commands.dba
FederationShipData.dba
GameShipDataSetup.dba
ImpulseSysData.dba
MainMenu.dba
Main_Source.dba
ManuveringThrustersSysData.dba
Model Viewer 0-05.dba
Navigation.dba
ShieldSystemsData.dba
Star Trek Trader 0-06.dbpro
WarpScaleData.dba
WarpSysData.dba
But when it come to compiling the code, they are all compiled into a machine code .exe file or it can be compiled into an .exe and .pck file, and if you really want you can compress or encrypt the data so no one else can alter or nick it. Of cause this is an opensoruce program so I'll be giving all the source code away at the end of it anyway so no point in that :-)
it supports a subrotine sytle of doing things as well as the ability to make up your own commands, for instance the following code
function makebuttonblue(x,y,desc$)
buttonpressed=0
ink rgb(0,255,255),0 : box x-52,y-14,x+52,y+14
ink rgb(0,0,255),0 : box x-50,y-12,x+50,y+12
ink rgb(0,128,0),0
myx=mousex() : myy=mousey()
if myx>x-50 and myx<x+50
if myy>y-12 and myy<y+12
buttonpressed=1
endif
endif
if buttonpressed=1 then ink rgb(255,255,0),0
set text size 18 : center text x,y-8,desc$
if mouseclick()=0 then buttonpressed=0
endfunction buttonpressed
is used to create a function or extra command, so now whenever I want to make a button in the game I just type in the line:
if makebuttonblue(60,20,"Thrusters")>0 then buttonpressed=1
so in effect the fuction makebuttonblue works in the same way the command PRINT does. The 60,20 are X,Y locations for the screen, the "Thrusters" is the name that appears in the box and if the button is pressed by the mouse's left button the value jumps over 0 and sets the value buttonpressed to 1. Another peice of code like
if buttonpressed = 1 then gosub Thruster_Submenu
calls another subroutine whcih in turn creates more buttons using the new makebuttonblue fuction command and allows you to call even more subroutines using the same or simular method. DarkBASIC also makes movement easy ,the command:
If Downkey()=1
PITCH OBJECT DOWN PlayerShip,MaxManuver#
endif
basically this says, if the Down Arrow key is held, then (binary 0 for off, and 1 for on) then take object PlayerShip (which in the variable soruce code has been assigned a number) is angled down on a seperate axis from the world axis by whatever amount has been pre-defined as MaxManuver#, which means I can reuse this code over and over again no matter which ship is loaded into the game by the "Select_Ship" menu I created eailer. So far the only really difficult bit apart from advanced effects such as bump mapping and glows has been my bloody aweful spelling :-)
The reason I love this language is because at the tender age of 6 my father brought me home an Atari 400, which of cause used BASIC which I used to make programs that insulted my brothers when I typed in run. The I migrated to the BBC Master by 1989 (I think, straining my memory a little) and fell in love with the space trading game "Elite" and didn't get on to PC's until '96 having spent my time on the Atari ST and STOS (another language very much like DarkBASIC) so BASIC is something I've known since childhood, and while visual basic is all very nice, it's not the same thing. I'm from the old school who thought DOS was the best thing ever, mainly because you had full controll over it, if it was in memory you knew about it, unlike windows these days when you just have to log onto a website to pick up a nasty bit of code. So basically, DarkBASIC is a very good language, it's logical, supports plugin's has a whole host of tools, software and code bases supporting it, and is only about £50.
Now, if you have gotten this far in my ramblings your doing well and I'd like to offer a challange. I have here two copies of DarkBASIC Pro, one of which I don't need. It is a fully legal, and boxed copy with the original packaging. I am willing to send this copy to anyone who can prove their skills in basic. What I need is a navigation program that creates a galaxy with at least 10,000 worlds in it. You can download a trial version of DarkBASIC Pro at
http://www.darkbasicpro Now the rules
1) The worlds can not be random and must be generated from number seeds. If you read the Elite FAQ on
http://www.frontier.co.uk you will gain an idea of how to do this. I don't need them named or discriptions given, but different colour stars would be nice (not essentual)
2) The interface must be in 3D (this is easier then it sounds trust me).
3) You must be able to click on a system and pull off a set of x,y,z location data into the values ISNavX, ISNavY, ISNavZ and save this data to a simple .txt text file called "NavCourseData".
4) You must be willing to work on this project with me for at least six months.
5) You must be willing to release your work to the general public at the end of this project.
As I say, you will get a FULL copy of DarkBASIC Pro posted to you if you win this, please submit the code to
dforemanuk@gmail.com with your name. I won't ask for an address until you've won.