Jump to content

The GUI Project - A lesson in futility (?)


Guest Xlogic
 Share

Recommended Posts

Guest Xlogic

If I were to make a Mission Builder Utility to make it easier for non-programmers to make mission packs,.. think it could be shipped with the game itself? I plan on making one for myself and anyone else who wants it,.. Let me know =)

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

CMDR. STEVE "XLOGIC" MELTON

ORION FLEET

DETERRENCE BATTLE GROUP

GCV - VAGABOND

ICQ: 37781388

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

Link to comment
Share on other sites

Hey, great idea! I never thought of it! How do you plan on making this program? What language are you going to use? If you need any help just holler at me, I will try to help. I have knowledge in C/C++, DX and Win32 API.

P.S Do you have a design doc? If so, can I take a look at it? If you don't mind.

I want to add something...

You could do like this. Think how the Tacops works! It maps the whole system and it's object. With This program we can display everything in a particular system and the user can manipulate objects in an graphical manner, like planning waypoint and action etc... For example to place an object you just click on where you want the object to be at, then bang there it is. Since in the real GB scripting you specify the object and it's relative postions to another in game object. Of course everything would be already mapped in this program, so placing object would be easy, allowing the user to do it in an graphical.

manner.

I have more ideas, but before I throw it out I need to take a look at GBS. To build this program the programmer needs to understand every single aspect of GBS. So we can do it in a graphical manner and save the results into the bc3k script format. And the user can compile this script with the standard GBS compiler. The beauty of it is GBS compiler uses standard ASCII, whoohoo! Nothing to crack! Yea baby!

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

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

Link to comment
Share on other sites

Guest Xlogic

Yes, most of your ideas I have already considered. I am working on the interface now. What I was thinking was this utility could shell and compile the scripts itself so that the user doesnt have to worry about compiling the scripts. While the user is selecting objects and plotting locations, the program will be generating the script commands behind the scenes. And when the user is satisfied with the mission, he/she can save it and compile it through the programs interface. I still don't know every aspect of GBS, and the test script Derek left in the GBS forum isn't enough for us to begin (at least I don't think so). In the end the user will be able to make a mission without the hassle of worrying about syntax errors, or extensive testing of the mission.

Right now I am seriously considering Visual Basic, but the thought of using Visual C++ hasn't ecsaped my mind (trying to restrict it to Windows OS). Before I get to deep in development, I want to make sure it's ok with Derek and make sure he isn't already working on something similar, as well as seeing if I can get any documentation on the GBS he has. I will add any addition comments/ideas as they come.

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

CMDR. STEVE "XLOGIC" MELTON

ORION FLEET

DETERRENCE BATTLE GROUP

GCV - VAGABOND

ICQ: 37781388

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

Link to comment
Share on other sites

You can do what the heck you like, it'll never ship with the game. I'm not, nor do I plan on, wrapping the GBS around a GUI interface. If I wanted to do that, I would've done it by now. And anything that you could ever get from me, regarding the GBS is available for download. So, don't ask for anything else because I don't have time for distractions and pointless side projects. Yes, its pointless, but, don't let me stop you from doing it. smile.gif

btw, the GBS contains complete sample scripts.

Visual Basic? You must be drinking.

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

Link to comment
Share on other sites

Guest Xlogic

I sincerely apologize for offering the BC community the chance to make multiple missions quickly and easily using the limited skills I have.

Link to comment
Share on other sites

Hey man it may be pointless but at least I'm getting some pratice :P. Anyway, sounds good Xlogic except the part regarding V.B. I would like to help but I have no V.B! I don't know crap about V.B. So I guess we have to go our seperate ways (No offense man, I'm sure you're a better coder than I).

This weeknd I will begin my Design Docs, this project will be open-source. Beats coding side-scrollers smile.gif, time to put on my coding hat(my Laker cap :P Damn them all! Then need to do they're stuff man serisouly, no good B-Ballz players. They're aright this season, they're going all the way).

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

Link to comment
Share on other sites

Guest Xlogic

Do you have Visual C++ ? I currently have Visual Studio 6 Enterprise Edition, so I'm packed with dev tools .. if you have VC++ we can still work on this together.

Link to comment
Share on other sites

quote:

Visual Studio 6 Enterprise Edition


Damn!!! Somebody is loaded! smile.gif Don't they cost like thousands of dollars!

I have VC 6.0, standard version tho. I would like to work with you rather than do it lone-wolf style. E-mail me we can get this bad-mug underway. BTW let's to talk, on IRC or something. I still don't have ICQ yet frown.gif But I will download it if needed (I'm just too lazy when it comes to downloading new softwares)

Link to comment
Share on other sites

Xlogic,

You are not the first to make this request as I remember this conversation has passed through this way before. Have you looked through what is currently available with the GBS package? What you are purposeing is no small undertaking and the command set is somewhat huge. BC does not stop after each mission unlike most other space/flight sims nor is it restricted to a tiny portion of space (IE XWing).

Link to comment
Share on other sites

Xlogic, apology accepted.

heh, SpcFX, why don't you let him try? smile.gif By the time he puts in combo boxes for all the command variations, he'll be comatose.

quote:


For example to place an object you just click on where you want the object to be at, then bang there it is. Since in the real GB scripting you specify the object and it's relative postions to another in game object.

LOL! SpacePhish, I just read that again. Surely you jest? The GBS has several ways of placing an object in a region. In order to place and object in a graphical representation of the scene, you need to first plot a map of every space region (there's only, about, uhm, 108 of them). Then, you need to know the position of each one. For instance, if you placed a ship in a location in, say, Earth space region, that entity needs to be entered in the specific [dynamic] and [ai] blocks for that region. Now, how on Earth is that going to work?

The only person on this planet, who can do put a GUI interface around the GBS, is me. And it would be a humongous task to say the least. It would be similar to using the graphical editor in VC++ to create entities for resource files. By the time Xlogic gets to even 2% functionality, we would already be playing BC3020AD.

The GBS is very advanced and was designed to be powerful and not for newbies. Any half-baked entry level programmer, even without all the docs, can figure it out. It does not need a GUI. It is based on simple logic and all you have to know are 3 things

  1. The game galaxy layout

  2. The syntax of the commands and what they do

  3. The logic flow of the environment and being certain to take into account that AI entities, that you don't script, are guaranteed to screw up the logic flow of your script if you don't know what you are doing.

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

Link to comment
Share on other sites

Guest Xlogic

Hmm... I get the impression you think I am an amature programmer (maybe because I suggested using VB? Why not, it would save me a week or more of coding). I have already considered most all possibilities as I have 8 pages of notes on this project sitting next to me. Yes I plan on incorporating a campaign builder as well as a single mission builder. Yes I have seen the utilities that exist already in the GBS package. Like most utilities for games, these are (in my opinion) crude and unsupported intended for the developer's use only.

Now imagine yourself coding a mission... entering syntax into your text editor.

Now imagine yourslef pointing and clicking at this mission builder. In only a few minutes you could have a single mission prepared, whereas coding one could take up to an hour or so.

Using either method of building a mission the fact that this universe is not restricted is irrelevant, wouldn't you agree?

Anymore comments, ideas, support, both positive and negative are welcome. I want to know what the rest of the BC Community thinks being that this project is being prepared for them. I want to know if the BC Community in general thinks its "pointless" or unecessary.

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

CMDR. STEVE "XLOGIC" MELTON

ORION FLEET

DETERRENCE BATTLE GROUP

GCV - VAGABOND

ICQ: 37781388

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

Link to comment
Share on other sites

Okay, I admit, it's an half-baked idea. I haven't given much thought to it... well I would like to try at least...

First, I need to read that doc again, it's been awhile.

Can I place object relative to an object rather than placing it in an global x,y.

For example...

[ai] // signal the beginning of the AI block...

<1>.wing1,100,100,100,100,100,100,0 // this declear the object called wing1 and it's attributes.

<2>.wingleader // what the object will be refered to as.

<3>start inactive near earthz^jmp-01 1500 jmp-02 //start at this place...

Now if I use an local x.y instead of global.

//this figures out the global postion of

//of object...

Object.postion = 100

The script would look something like this...

Earth^jmp-01 100 right?

Now if I want to plot a waypoint...

Way point at Earth^-01 1000 ?

?? Am I stupid or what? But then I need to know the exact location of earth... Maybe I can figure it out somehow...Of course I also need to know how big an region is, so I can do some bound checking.

But then again I really need to think over... Yes now I think S.C is probably the only one capable of doing GUI on the scripts...then again I'm a "half-baked entry level programmer".

Who knows...only time will tell.

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

Link to comment
Share on other sites

I have just released all the script source files to BC3K v2.09. The archive includes the scripts for FF, ACM and XC. If you ever wanted to cheat, here is your chance to take a peak at what the scripts do.

Check the downloads page for the link. Have fun!

Note: If you ever go modifying the ACM script file - BC3K0100.SCR - know that it includes 4 sub-files that make up the entire ACM scenario. This technique of breaking up a complex script into separate files, makes it easier to manage, maintain and test. For instance, to test the entire TOD1, you would just comment out the 3 files that make up TOD 2-4. This way, they are not parsed or processed.

Link to comment
Share on other sites

quote:


Like most utilities for games, these are (in my opinion) crude and unsupported intended for the developer's use only.

Yep...hey, 'ang on a minute! crude? *whack*

quote:


Using either method of building a mission the fact that this universe is not restricted is irrelevant, wouldn't you agree?

Nope. You don't have a clue what you're getting into. But, I have faith that you'll soon find out.

quote:


Anymore comments, ideas, support, both positive and negative are welcome. I want to know what the rest of the BC Community thinks being that this project is being prepared for them. I want to know if the BC Community in general thinks its "pointless" or unecessary.

Like I said, you are welcome to try. Trial and failure is no disgrace. Go for it!

Anyway, in my stance as the devil's advocate, here is a simple scenario, based on the source scripts I just released.

code:


#

# ADVANCED CAMPAIGN MODE 1

#

# TOD1 1/5

#

#

[acm]

CAMPAIGN: TOD1 M1/5

THEATRE OF OPS: EARTH/SOL

MISSION CLASS: DIPLOMATIC ESCORT

SUCCESS: DIPLOMAT1 MUST DOCK AT STATION MAJORIS

.

Representatives of the Terran, Empirian and Vesperon governments

are meeting at the Majoris starstation located in the Majoris

region of the Alpha Majora starsystem. The Terran ship

(DIPLOMAT1) will depart from GALCOM in two minutes. The Empirian

ship (DIPLOMAT2), escorted by Commander Ugo Ra-Zin of the

GCV-Blackstar, has already departed from Cronus. Early reports

indicate that the Vesperson ship (DIPLOMAT3) has also departed

from Eridani. Other delegates are already at the meeting

awaiting the arrival of these key diplomats.

.

This is a high profile meeting targeted at solving the feud

between the Empirians and Vesperons, therefore, you are ordered

to escort the Terran diplomats to Alpha Majora and remain on

station in the region until otherwise ordered.

.

END TRANSMISSION

.

:101,earthz,setup_tod1m1,begin_tod1m1,resolve_tod1m1,tod1m1tick,5,45,15

#

[dynamic]

terran diplomat,,f1,lrt10.3dc,DIPLOMAT1

[ai]

.f1,100,100,100,100,100,100,0

start 120000 near earthz^jmp-12 2000 jmp-10

jump majorisz^wrm-23

stop

events 101

!startup

broadcast "Terran Diplomat1 launched"

!detect bc

say CMO,"Incoming transmission from Diplomat1"

broadcast "Glad to see you commander!"

!under_attack this

broadcast "We are under attack!"

say TO,"Terran diplomat1 is under attack"

!damaged this 85

destroy this,60,0

halt on this

broadcast "We are badly damaged. Evacuation in progress.."

say CMO,"Emergency self-destruct initiated on Diplomat1"

launch shuttle1.3dc,2,dock galcomhq

broadcast "Evac shuttles launched and headed for GALCOM HQ"

!damaged this 50

broadcast "Damaged by 50 percent"

say CMO,"SOS signal detected from Terran diplomat1"

emit_sos on this

!destroyed this

say TO,"Terran diplomat1 ship has been destroyed"

!arrived majorisz

IF EXIST majoris_s THEN

broadcast "On docking approach to station Majoris"

dock majoris_s,30

ELSE

broadcast "Station Majoris not operational, returning to GALCOM HQ"

IF EXIST galcomhq THEN

dock galcomhq,30

ELSE

flee

ENDIF

ENDIF

!docked majoris_s

say CMO,"Terran diplomat1 has docked at station Majoris"

!docked galcomhq

say CMO,"Terran diplomat1 has docked at GALCOM HQ"

endevents


OK, so, dear, tell me how exactly you plan on making a newbie about to create a script such as this entry for an entity, from a GUI frontend?

Here's what you need to figure out. You can start crying anytime you feel like.

  1. Whether or not this script is a segment that is included from a master script, or an entire script. If it is an entire script, then you need to make the necessary #include files. If it is a segment, as in the case of my breaking up BC3K0100.SCR into segments, of which the example above is from ACM1TOD1.SCR, included in BC3K0100.SCR, you need to know this. Because if you nest #include files, you will generate a script error. Note that in the segment above, there are no include files. They are in the master script, BC3K0100.SCR.

  2. You would have to include blank script blocks for every variation and since you don't know if the scripter is going to use them, thats your first problem. For instance, an [ACM], [AI], [DYNAMIC] blocks are mandatory, others, such as [EVENT] are optional depending if there are events in the script or not.

  3. OK, now you have a blank script with all the relevant blocks, all blank. The scriptor now has to define an [ACM] block. So, you'd have to provide a dialogue for typing in the description, as well other dialogues for all the parameters that this block can accept. All of which are mandatory.

  4. Now, the scripter needs to know the name of the variables used in the ACM block, because they are going to be needed for event manipulation further along.

  5. In you GUI, the scriptor now decides to put a ship in the region. So, you give him a drop-down list of every valid entity, in the game, maybe broken down into categories (fighter, cruiser etc). Then he has to select an option for each of the parameters required in the [DYNAMIC] block, for this entity. So, you give him another set of dialogue boxes and drop-down menus. As for the entity ID, you could cheat and make those fixed, so that he can only pick from the list you provide (it would have to be a dynamic array) being careful to grey-out any ID that he has already used. So, if he has picked, say, A1 for the ID of this entity, when he goes back to the list, he can only pick maybe, A2 and so on. You now take all these parameters, and populate this block with the info for this entity.

  6. Now its on to the AI block. Same procedure as before, as far as the first line is concerned. By this point, your problems are only just beginning. The scriptor now wants to place this entity, (lets use the script from above), F1, in the Earth region at a certain location. That START command, is the most critical and one of the more complex ones. First, you have an optional time that this entity appears in the game. Again, a dialogue box. Thats the first parameter sorted. Now you want to figure out, where in the Earthz space region, to put it. In the script above, F1 starts near (internally translated as an arbitrary point), 2000 clicks from jump point 12, facing jump point 10. Did I mention that your GUI map needs to plot every entity in the target space region? For that, you need to parse the STATICS.SCR file or do it manually. Good luck.

  7. Now you want to give it an optional initial default order, before terminating the START block with a corresponding STOP.

  8. Because of the way the game AI is designed, you can terminate the script at this point. Why? Because all NPCs have internal orders. If F1 were a military ship and you told it to jump anywhere, it will automatically engage hostile entities along the way. You do not need to give it layer 2 commands, which need to be embedded within an EVENTS block. Which of course means that you'd have one boring script. Why bother, when you can just activate AutoGeneration and just play?

  9. So, lets assume that you've decided to continue along with the events block. This is when the real adventure starts....and I stopped explaining the futility of what you are about to embark on.

If you continue and ever pull this off, I will give you an autographed copy to every game I develop until the day I die or go out of business. Whichever comes first. Good luck.

Note: I hope you don't think I'm being condescending or derogatory. I just find this whole premise, amusing - and am having fun at your expense. :-)

Link to comment
Share on other sites

I'm tripping! 'Nuff said...

Okay, just for the hella of it... I will see what I can do. Will get back to you in 42 hours, if not it's because I'm probably from massive brain damage...wish me luck...

If I give up I will tell you guys. Don't worry. :P

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

Link to comment
Share on other sites

AMAZING! I can't believe it.

I'been doing some digging around, seems like all the info I ever needed was already laid out in front of me! Why the hell was I so blind before?

I read all files that ends in *.scr, espeically the one that start with Glob_ smile.gif All I have to do now is some-how read (as in my program reading it)the info in those files, bang my work is half done! LOL, people for example take a look at

Glob_rg.scr! Modify to your heart's content.

But there is more! I'm now going over objclass.scr! Man I'm in shock, I now know how to modify the EVERY object in THIS DAMN GAME! Amazing shit!!! Man I'm in total shock!

Okay, I'm back to research, I will keep ya'll posted. I seriously think now I'm able to pull off this stunt smile.gif. But only time will time...

Question: Am I over-reacting just a little?

Link to comment
Share on other sites

Man I'm having a field day over here.

S.C: Will BCM use the same GBS or will it ship with a different one? If it differs from the current GBS will it be similar?

MCGalxayBuilding is now in opened.

Fleets leaders let's talk. I can build you people super-stations anyhwere in the Galaxy. I just did it!, well haven't compiled yet, let's hope it works.

heheh, I'm going to pouplate the galaxy with Insurgency Death Star stations.

Now if I can just figure how how to put it all toghter into an nice-graphic interface, we can have a huge MOD community, no kiddin. GBS is very powerful indeed.

It's possible to define your own types templates, and class. Which means you can build any object, then define it and put it in the game. I think.

For example GalcomHQ is defined as...

CLASS GALCOMHQ:GALCOMHQ.3DC,starstation

{

# Terran/Military

AI_OPTIONS=;

SHIP={2,BATTLECRUISERMK1};

SHIP={2,BATTLECRUISERMK2};

SHIP={2,SENTRY};

SHIP={2,SOLNAR};

SHIP={10,INTERCEPTOR};

SHIP={10,AURORA};

SHIP={10,VIPER};

SHIP={10,VANDAL};

SHIP={2,LRT10};

SHIP={2,MRT15};

SHIP={2,CANLON};

SHIP={2,JENSTAR};

SHIP={5,SHUTTLE1};

SHIP={5,SHUTTLE2};

SHIP={4,MARINELS};

POD=[sHUTTLE1];

TURRET=[iOD2,IOD2,IOD2,IOD2,IOD2,IOD2,IOD2,IOD2,IOD2];

MISSILE={50,DROGUE};

MISSILE={50,PIRANHA};

}

You see all the stuff like SHIP={blah,blah,} they're user defined types! Ain't that amazing! Except of course Galcom HQ uses the base class GALCOMHQ.3dc which is the 3d file for galcomhq. Using the include 3d builder you can build any kind of 3D object and put them in the game, with their own logic and stuff. Cool huh?

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

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

Link to comment
Share on other sites

"Question: Am I over-reacting just a little?"

NO! Infact your tempting me to join in this excavation of code with you (used to do some assembly programming before switching over to networking).

Keep posting your findings, I'm totaly interested, just wish my job didn't eat up sooo much of my time. Still I'm on my 4'th stock split so as soon as I have enough to stop working I'll join in with ya =)

Link to comment
Share on other sites

Guest aramike01

It'd probably be easier to just build a comprehensive guide for the GBS.

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

Cmdr. Michael Kristophers

Spectre Fleet

Commanding Officer, Spectre StarStation

ICV-Intrepid

Recruitment Officer

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

Link to comment
Share on other sites

Yeah, good idea. It would be a lot easier. Matter of fact I'm going to post a guide, because in the process of making this program I need to make a list of every function of the GBS. I have a lot of notes already, I'm reading the *.scr files while taking notes on my laptop, so it's all good.

Vorpal:

Cool! You're on your 4th stock spilt! Man, I bet you're loaded. Networking? Excellent, networking rules (sorry, I turning into a total nerd, so bear with me).

Since spring break is comming up, I will get a lot of work done. I'm going out of town for the weeknd, but that will be whole break. frown.gif After I come back I will start working.

Later ya'll

BTW I'm now playing around with 3Dmax and ted. I'm going to build a simple model, import it to the BC format. Since I know how to modify and add objects to game now I will try to orbit this object somewhere near spectre station. smile.gif

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

Link to comment
Share on other sites

quote:


S.C: Will BCM use the same GBS or will it ship with a different one? If it differs from the current GBS will it be similar?

It will use the same GBS but has a few new commands, geared toward multiplayer. Also, the .3DC files are obsolete because the engine will parse the .3D files internally, at runtime. No need for that extra step anymore.

quote:


For example GalcomHQ is defined as...


Yes, using that example, you can change the ship and weapons loadout on galcomhq, for instance.

Be careful with those turret entries though, because they correspond to the number of /turret vectors in the actual .3D model. You will see that there are 9 entries (all of IOD2 type), this means that there are 9 turret vectors in the galcomhq.3d model. You can change the type of shots the turret fires. Look around line 820 of OBJECTS.SCR and you will see that each shot of IOD2, packs 150 units worth of damage. So, if wanted a powerful punch, you could either create a new type, use ODSL, or modify the value of IOD2. You can also use any type of shot for those turrets. So, some could fire IOD2, while others will fire ODSL or any other type that you define.

The missile entries are more lenient because they just determine the type of missiles that are launched, in sequence, from any of the /missile vectors, on the mode. This means that you can add/remove existing missiles or just add a new MISSILE= entry in the class definition, and list the type of missile you want to add. The missile types are around line #956 of OBJECTS.SCR.

Don't forget that if you modify the OBJECTS.SCR or OBJCLASS.SCR file, you have to use the PREPALL.BAT in order to build all the models and scripts - or they will be out of synch.

Speaking of which, you have to edit PREPALL.BAT and wrap the BUILDLIB.EXE executable around a date update because it is not Y2K compliant and won't run if the date is beyond 12-31-99. The source is buried in one of my DAT tapes and I can't be bothered to go dig it up. So, if someone can hack the executable and look for the date string, good luck....you're gonna need it. smile.gif

Do this:

date 12-31-99

buildlib @bc3lib4.idx

date todays date

quote:


It'd probably be easier to just build a comprehensive guide for the GBS.

hehe, I agree. I have already included every command that the GBS uses. Most are self-explanatory but others need some explanation. The guide is complete, wrt actually building, testing and distributing scripts. The GBSTOC.TXT file lists all the GBS commands.

quote:


Matter of fact I'm going to post a guide, because in the process of making this program I need to make a list of every function of the GBS.

Dunno why you're doing this, when in fact I've already listed every command in the GBS. I just have not had the time to describe each one. However, most are self-explanatory and since most are used in my own scripts, you can pretty much take a look at my scripts for usage conventions.

quote:


BTW I'm now playing around with 3Dmax and ted. I'm going to build a simple model, import it to the BC format. Since I know how to modify and add objects to game now I will try to orbit this object somewhere near spectre station.

Max does not export the required .ASC file in the proper format required by TED2ASC. So, you'd need to use a text editor and manually edit the file so that it is compliant. Look around line #258 of .DOCSTED.TXT for more on this.

If you successfully convert a model from .ASC to .3D, load it up in TED (TED.EXE or TEDWIN.EXE) and make sure that it looks right. Then, add an entry for it in OBJECTS.SCR and OBJCLASS.SCR, do a PREPALL.BAT and go fire up the game. I would suggest that you start by putting it in order around Earth first. This way you don't have to fly somewhere to see it. Once the model is actually working, you can then go back and put in explosion vections, missiles, turrets etc.

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

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...