Jump to content
3000AD Forums
Sign in to follow this  
Guest Xlogic

The GUI Project - A lesson in futility (?)

Recommended Posts

Guest

LOL!

Galcom news update: Due to extensive work with SpacePhish on the old BC3000AD code I have decided to put off future products until further notice. Instead SpacePhish and I will be re-populating the BC3000AD universe with giant planet sized space stations for no real reason other then they look REALLY cool.

If all goes well work is expected to pick up again in Q2 2002 on BC:M or until our project is complete.

SpacePhish can be contacted at the following phone number and street address...

Anyways yeah SpacePhish my stocks doing pretty good, but the price being I work my butt off (along with everybody else at the company). However I'll be fully vested VERY soon so uhmm.. heh heh...

Anyways back on topic. I'll keep an eye on this thread, but I don't have time to contribute much right now. Keep those findings coming. If a mod community starts for BC3000ad it might be said that this is where it started...

Share this post


Link to post
Share on other sites
Guest Xlogic

My only main problem right now is that I don't know the GBS completely. But so far I have developed a simple form that is used to generate all the code necessary for a [dynamic] block. The script blocks don't pose a problem. A single form takes care of all code that needs to be in a specific block. And if the user feels that they want to modify this existing object(s), they can easily reload it and modify it. The script blocks are what makes programming this GUI so easy. [AI] is next. =)

As for the campaign type missions,.. I havent begun work on this section yet, but I have it outlined in my notes, and it shouldnt pose a problem either.

Another feature that I am in the process of implementing is 'logging' the mission. This feature, when enabled, will generate in plain english, the flow of the mission. It will basically be comments in a seperate file.

The only difficult part will be including the option for the user to use logic in the mission, and that wont even be too hard, just take a little time. Another time consuming task is listing all the available objects. *bats eyes at SC*

But you were right. As you said earlier "It would be similar to using the graphical editor in VC++ to create entities for resource files." And I suspect in the end that the GUI may be as hard(for newbies) to use as the scripting language itself. And knowledge of the GBS may be necessary to use it in the first place. I will just have to see how it results and avoid that if possible. =

As soon as possible, I will generate the exact code that you left above with the GUI just so everyone can see how things are coming along.

But this best part is this is really fun. It is really just a fun project. And its for the BC Community. Oh, and about the "autographed copy to every game [you] develop until the day [you] die or go out of business. Whichever comes first." ... Sounds good to me. =)

[This message has been edited by Xlogic (edited 03-16-2000).]

Share this post


Link to post
Share on other sites

quote:


Another time consuming task is listing all the available objects. *bats eyes at SC*

Oh, thats the easy part. Since the players will only be allowed to include ships (mostly) in scripts, just go to line #143 to #647 of OBJECTS.SCR. This lists all the ships and they are separated by comments block, indicating the ship types. So, you could also set up a form that provides a similar division. This way, it is easy to determine what ship type (cruiser or fighter) to select. The GBS won't allow you to script planetary missions, so, you can skip all the ground based objects.

You should also list all the stations between line #1032 and #1255, taking care to note that there anything with a B at the end, is a planetary starbase (which can't be used) and not as space starstation. For instance, galcomhq is a valid object but earthb, isn't. To make this easy, the starstations are separated from the starbases by a comment line.

Other objects you may want to include in a list entitled missiles could be the missiles between line #863 and #947, taking care to note that really only want to allow access to STS missiles. If you look at my scripts, sometimes I actually force an entity to launch a specific type of missile (look at the script for the Daisy Mae mission) in order to guarantee the destruction of an entity. Because the LAUNCH command will allow an entity to launch, pretty much anything, it overloads the class definition for the object (defined in OBJCLASS.SCR) so that you can have an object that does not have Vagrant missiles, actually launch them, by giving it the LAUNCH command.

You may also want to include objects such as the cargo and probe models, in a MISC selection list.

And if you're going to let them script ODS systems (and why not), you would also include all the ODS platforms in an ODS Platforms selections list.

With all of the above, you've got the objects list that you need, you don't need anything else.

In the case of the selection list for the RACE and CASTE, you can get the list of valid onces from the GBSTOC.TXT file.

For your REGIONS selection list, get them from the STATICS.SCR file by parsing out the rfile parameter in all entries beginning with : (colon). As a rule, all space regions end with the letter z, all others are planetary regions. So, the Mercury space region, is denoted as :mercuryz in that file and not mercury which is the planetary surface itself.

And when doing the [ACM] block, be sure to retrict the formatting to truncate lines at column 64. See comments starting around line #1197 of .DOCSGBS.TXT for more on this block. If you don't adhere to this, the mission discription will not be formatted correctly when displayed in the COMMLINK screen.

quote:


And I suspect in the end that the GUI may be as hard(for newbies) to use as the scripting language itself. And knowledge of the GBS may be necessary to use it in the first place. I will just have to see how it results and avoid that if possible. =

Indeed.

[This message has been edited by Supreme Cmdr (edited 03-16-2000).]

Share this post


Link to post
Share on other sites
Guest Xlogic

Wow... Thanks for the info SC. This will speed things along.

I've already implemented the RACE and CASTE lists, and I have added some 'fake test objects' just to test the script output for the [dynamic] block.

The id is generated by the program. For example: 'object1' is the first id that is issued to an object. The next object will the issued the id 'object2'. I hope to improve this more by making the id's more specific like 'friendly_ship1', friendly_ship2', 'enemy_ship5'.

[This message has been edited by Xlogic (edited 03-16-2000).]

Share this post


Link to post
Share on other sites

Okay...I'm having problems get the scripts to run. I modified object.scr objectclass.scr, Glob_dyn.scr and Glob_ai.scr.

Prepall.bat ran fine, because my system lock is set-back to 1999. No problem there.

I then ran prepare on bc3k0200.scr to parse the script. No problems.

Copied bc3k0200*.* to the script folder (or should I put them in bc3lib4.idx? Going to try this after I log off.)

Ran bc3k3dfx.bat, no problems. NO profile, free flight insurgent. Everything loads fine untill I try to undock with the station, the game returns to desktop.

The error is

NO class for 416[fld.3dc]

I'm stuck frown.gif.

Mayber modifying object is not support in the 'lite' version? That's what it says in docs.

[This message has been edited by SpacePhish (edited 03-16-2000).]

Share this post


Link to post
Share on other sites

Read the GBS.TXT file SpacePhish, it has an entire section on how to create/run scripts. You don't need to put .mis files in the bc3lib4.res file. btw, bc3lib4.idx is just a text file listising of files that go in bc3lib4.res.

And you don't have put your script .mis files in the bc3lib4.res, you can put them in the SCRIPTS folder. But remember that you need put the entire set of files that make up bc3k0200*.*, in that folder. The way the technology works is that if a file of the same name exists in that folder as well as in the bc3lib4.res file (or any of the .res files), the newer file in either of the two locations, will be used.

If I remember correctly, the bc3lib4.idx file includes the sample bc3k0200.scr scripts, so, you may want to comment them out of the file by putting a ; (semi-colon) in from of the bc3k0200.mis and bc3k0200.dat and then, just copy the new onces you prepared, into the SCRIPTS folder. Don't forget to copy the bc3k0200.des file (a text file describing the scenario) into the SCRIPTS folder as well, or the script will not be listed in the MISCON mission selection screen.

Don't forget that bc3k0000*.* is FF, bc3k0100*.* is ACM and bc3k9900*.* is XC. Make backups before screwing around with these files.

And don't forget to copy the bc3lib4.res file (which contains the updated versions of the master files such as objects.scr etc, that you have modified) to the BC3K runtime folder. Be sure to backup the original version first.

Also, maybe there was an error during PREPALL.BAT that you didn't catch because the screen scrolls too fast. For that, download this utility and start it with a buffer of about 128. Open up a DOS session, start the utility, then run PREPALL. When its done, you can scroll the DOS window, read the output of the PREPALL command and see if there are any errors or warnings.

http://www.bc3000ad.com/downloads/scrollit.zip

Share this post


Link to post
Share on other sites

DAMN! Sorry, I did something terribly wrong. I forgot to copy bc3klib.res to the run-time folder frown.gif... maybe I'm too dumb for this kind of work???

Anyway, yes there was some error prepall.bat

but I DON'T THINK IT MATTERs... anyway here it is...

ECHO :: PREPARING TEST MISSIONS ::

prepare .binrw bc3k*.scr

I got bad command and file error

then I changed it to...

prepare bc3k*.scr

I got the error blah blah but I don't think

it matters anyway.

ECHO :: BUILDING LANGUAGE DEFINITION FILE ::

prepare PHRASES bc3k*.scr

Share this post


Link to post
Share on other sites

SpacePhish, I just read your post again, since you did a PREPALL, you also have to copy the new BC3LIB4.RES file to your BC3K runtime folder (be sure to backup the original) because the system files you modified, create new files. Looks like you forgot to copy the file when you copied the other files to the SCRIPTS folder. That file goes in the folder where BC3K is installed (the runtime folder) and not the SCRIPTS folder.

Share this post


Link to post
Share on other sites

IT WORKED!!!!!!!!!!!!!!!!

I now have 2 stations in the earth region, way cool!

My goal now is to create a simple console application that allows me to modify exisiting object and create objects. Nothing fancy, this way I can build up my program little by little, then add the GUI when it works.

[This message has been edited by SpacePhish (edited 03-16-2000).]

Share this post


Link to post
Share on other sites

It does matter. You don't have the Run While utility. Don't you know how to scan for error messages? The fact that the line is producing an error, should tell you that a program is missing. Download the file below and put it in the .BIN folder. This tool allows you to run a command on multiple files. In this case, prepare.exe is run against bc3k*.scr (all script files begining with bc3k)

http://www.bc3000ad.com/downloads/rw.zip

Later tonite I will upload a newer version of the GBS, which includes this utility.

Share this post


Link to post
Share on other sites

Cool, thanks smile.gif

A very simple utility is on it's way. It will let you edit an object like adding missiles and stuff. Then place it anywhere you want in the galaxy...

I'm will just write the info to the END of the exisiting *.scr files, before the $ marker of course.

Stay tuned peeps...

FEATURES that I would like to have:

GUI mission editor.

GUI space editor.

Import 3D *.asc files, then define their attributes and place them in the game.

Share this post


Link to post
Share on other sites

SpacePhish, please read the GBS docs in its entirety before you start polluting this thread with wishlist items. In fact, get out of this thread. It is a thread based on Xlogic's GUI project. All you're doing is learning how to script - and that is not the purpose of this thread. Please don't post anything about your scripting trials and tribulations in this thread again. I'm creating a new thread just for that - go there.

Finally, if you read the GBS docs, you will see that you cannot] just import .asc files into the world because the .3d file format I use, is a special proprietary format that contains values for the model, including AI values - not just model data, which is all a .ASC file contains.

Share this post


Link to post
Share on other sites
Guest aramike01

Time for my two-cents. wink.gif

As my above post stated, I believe it would be much easier to create a comprehensive, step by step guide to the GBS. Include a few sample scripts and tutorals.

This whole GUI thing just seems too complicated when the purpose is actually to "dumb" it up for newbies. In the end, the GUI would probably need some sort of guide anyway.

Secondly, just take a look at the average BC3K gamer. Very intelligent indeed. A few sample scripts (as Derek has mentioned) and we can pretty much figure it out from there.

Not to mention the fact that the current GBS requires next to nothing in system resources.

I personally have no need for this GUI, nor do I anticipate such a need. To me, it would only be a novelty that I would never use.

But it does seem like a fun idea. Let see what you can come up with! smile.gif

------------------

Cmdr. Michael Kristophers

Spectre Fleet

Commanding Officer, Spectre StarStation

ICV-Intrepid

Recruitment Officer

"You won't get the Purple Heart hiding in a foxhole!"

Share this post


Link to post
Share on other sites
Guest Xlogic

aramike01: The last thing we would want to do is give SC another project to work on besides BCM !!!

Besides, the existing GBS docs are sufficient if you wish to learn the GBS. I learned the majority of it in one day. SC has done and excellent job of explaining the GBS and how to use it, as well as explaining the DOs and DON'Ts.

And yes the GUI will need a guide of its own, but not one that will require the learning of a scripting language. The guide for the GUI will simply explain how to use the program effectively.

The GUI is mostly a fun project for me, as well as for use by the newbies that may never know the GBS exists. (And to get those autographed games *chuckle*). (seems like I say this at the end of all my posts =).

Share this post


Link to post
Share on other sites
Guest Xlogic

SC, are the GBS docs not complete? The file I downloaded ends at "6.0 START/STOP 'nav' commands" ... gonna be kinda hard to finish the GUI Project without knowing what alot of the commands do and what parameters they need.

---------------------------------------------

Oh, and do you have any BC icons that I could pollute the GUI with? =)

[This message has been edited by Xlogic (edited 03-19-2000).]

Share this post


Link to post
Share on other sites

You're only just finding out that the docs are not complete? Have you not been paying any attention?

The GBSTOC.TXT file is complete and lists all the commands - it doesn't show their usage. You're on your own because I don't have time for that. You can read my scripts and be able to figure out how the commands work. You already have all the syntax.

No, I don't have icons.

Share this post


Link to post
Share on other sites
Guest Xlogic

Doh!

------------------

CMDR. STEVE "XLOGIC" MELTON

ORION FLEET

DETERRENCE BATTLE GROUP

GCV - VAGABOND

ICQ: 37781388

"Pick battles big enough to matter, yet small enough to win."

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×