Author Topic: Shifting from the TBP forums - Instant Action Skirmishes in FS2  (Read 7043 times)

0 Members and 1 Guest are viewing this topic.

Offline Black Wolf

  • Twisted Infinities
  • 212
  • Hey! You! Get off-a my cloud!
    • Visit the TI homepage!
Shifting from the TBP forums - Instant Action Skirmishes in FS2
http://www.hard-light.net/vwbb/showthread.php?threadid=9856

It was, rightly, pinged for being OT in the TBP forums, so I figured it should be brought over here.

OK. The theory is this. An additional option, probably out of the tech rooms mission selector, that'll autogenerate simple dogfights. Obviously, we're not talking about campaign quality missions here, but rather very simple mission archetypes that are varied based on the users choices and a degree of randominity. We've all played games that do it - many FPSes have a version of it for example, and I think that FSes misison design system would actually be pretty much ideal for this kind of addition.

This is how I reccomend it be done. First, the player is allowed to choose from a series of mission types

Defence.

The typical Defend a capship against bombers mission. If motion (waypoints) is possible, then the mission could be further split into defending a capship through to a node, or defending a capship waiting for a new subspace drive, ala the [V] mission with the Aquitaine. The mission could also be to defend an Arcadia.

Assault

A typical attack a capship misison. The player flies either in a bomber, or is tasked with defending another bomber wing.

Strategic Assault

The player is sent in alone or with a small wing, tasked with the performance of a very specific objective (probably eliminate turrets/subsystems) without destroying the target ship.

A difficulty setting (Easy, Medium or Hard, specific to the mission being generated rather than the players chosen difficulty (very Easy - Insane)) would be set to define the missions parameters for a simple mission, then the player could modify them specifically himself for an advanced if he chose to. These could be

Environment - Nebula, Asteroid Field, Open space, EMP Nebula
Player Faction - GTVA (Terran), GTVA (Vasudans) SOC, NTF, HOL
Hostile Faction - Shivans, or any of the above (Putting Shivans as friendly would probably be difficult)
Rank (To define available weapons/ships, ie. an ensign in the Vasudan GTVA may be limited to Horuses and Serapises, an Admiral can have Bakhas and Ptahs)
Reinforcements - On/Off

And probably a few others as well. Some of these would have to be randomized in a simple mission, like the environment (perhaps weighted so that the numbers of Open Space>Asteroid Fields>Nebula>EMP Nebula), while others, like the rank, would be obviously defined as part of what makes the mission easy, medium or hard.

OK. Step 2 - the briefing.

Obviously, the computer can't generate full on briefings. But I reckon that it wouldn't be hard to set up some generic briefings (at least half a dozen for each mission type, so it doesn;t get stale) with a system where the various names are simply referenced.

EG.
"Welcome pilots. The (HOSTILE FACTION) has been harrassing shipping in (SYSTEM NAME). We've tracked their base of operations back to (SYSTEM NAME) IV, and the (SHIP NAME)(Note - all ships would need to be prefixed (GTCv, GTD) for this to work well). Your wing will assist the (FRIENDLY FACTION) to eliminate it."

Etc. Depending on the complexity of the codes, and the amount of information they can be set up to give, we can go further, telling the pilot about possible enemy resistance, who he'll be going in with, whether reinforcements are available etc.

Part 3 - The mission itself. This would obviously be the part that would need the most coding, and be the most complex, and obviously I'm no coder, but I think that there would be some things that could be done to make things simpler.

Firstly, naming the ships wouldn't be a problem. A set of tables could be set up, with, say, 50-100 names for various species. The prefix could be applied based on the class and faction (EG, HLD, NTCv etc.).

Fighters could be told to arrive from relevant locations at various intervals, with numbers, waves, intervals etc. all defined, again possibly by table, depending on the difficulty setting. Making use of the "near-ship" arrival would make things stay together a bit more too. More tables would define the quality and types of ships used by each faction.

Obviously, complex AI couldn't be figured in, but initial orders, defined by thetype and difficulty of the misison, would probably be enough, even if you just limited then to Guard and Chase.

The premade mission backgrounds Lightspeed is shipping with his nebs these days would be all you'dneed for that aspect of the mission, or you could possibly splice in something like Kazans random Background generator.

Capships could be integrated based on the difficulty (IE. on easy you get a capship for assault missions, on hard you might get one arrayed against you in defence missions, though of course this would have to be partially random) and then told to arrive like fighters. The quality of caps would also be controlled by the difficulty and a random figure. For example, on a Medium defensive mission, you have a 15% chance that a capship might arrive to attack your vessel. There's a 75% chance this vessel will be a Cain (Or Fenris, or Aten) and a 25% chance it'll be a Lillith (or Levi or Mentu)

A set of prewritten messages, again using the codes from the briefing, could be used to signify predictable events, like the arrival and departure of ships, hull percentage dropping, time to departure etc.

The debrief would work like the briefing, but would obviously have to be more complex, depending on whether you pass or fail.

Right. My first suggestion, as a complete non coder, is that, if youguys choose to look into this, you look into it based on having FS2 modify existing .fs2s, that could be set up in FRED and shipped with FSO. You'd already probably have to use Lightys misison files for the BGs, so it might be an idea to insert the Debriefing sexps (even if the stages were left blank, to be called from a table for randomness). It strikes me that this might be simpler than trying to code. This could also be useful for briefing Icons, as the code would tell it whether it needed to switch to cruiser, corvette, destroyer etc., but the .fs2 would tell the icons and the camera where to position themselves. Of course, this may be relatively simple to code, and buildig off an existing .fs2 may be very difficult, but it is just a siggestion.

My second suggestion is that you forgive me for suggesting so many tables. :nervous:. My motivation here is to make it easy for mods to insert additional stuff for this feature. As Karajorma mentioned in the VWBB thread, this would be really great for Inferno and TBP, but they'd need the ability to modify things (EG, put the EA in place of the NTF in factions, change the ship preferences, etc.) without going into the code. Similarly, they may need to rebalance, eg. in the SW Mod, capital ships might be a lot more powerful than standard FS2 caps, and so we might need to bring down the percentage probability that you'll face any.

My final...not really a suggestion...anyway, finally, if someone does pick this up, or WMCoolmon decides to run with it, I'd be willing to assist in non code ways, such as moifying the interface, writing up Name tables, writing briefings etc.

I do realize this'd be a lot of work, but it does have several advantages IMO. For one thing, there's the already mentioned extention of the life and appeal of TCs - once you've completed inferno's released campaign, go and play at taking out a GTVA capship as a pilot in the EA. Or you might not even need a TC. Maybe you just feel like a bit of good old FS2 fun, but you don;t have any decent campaigns you haven't played to death, or you're stuck on a particularly hard misison. Plus, in addition to a new PXO replacement and the graphical upgrades, I think this could become one of the SCPs major upgrades to the game, and quite possibly get more people playing. That sort of instant action has proven very popular in the past, and I see no reason why it couldn't apply to FS2.
TWISTED INFINITIES · SECTORGAME· FRONTLINES
Rarely Updated P3D.
Burn the heretic who killed F2S! Burn him, burn him!!- GalEmp

 
Shifting from the TBP forums - Instant Action Skirmishes in FS2
I totally agree with all BW said. I am afraid I cannot really help, but I am willing to try, if you can wait 3 weeks 'till I pop in (exams).
If you need more MODs to request this, FSCZ hereby requests it.
just another newbie without any modding, FREDding or real programming experience

you haven't learned masochism until you've tried to read a Microsoft help file.  -- Goober5000
I've got 2 drug-addict syblings and one alcoholic whore. And I'm a ****ing sociopath --an0n
You cannot defeat Windows through strength alone. Only patience, a lot of good luck, and a sledgehammer will do the job. --StratComm

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Oy.

Wow, you've definitely put a lot of thought into this. :p The thing is that it would be a huge amount of work.  It would probably be straightforward to code, but you're asking for a lot of code here.  Your best option would be to make a standalone program to generate .FS2 files based on your criteria.

  

Offline Liberator

  • Poe's Law In Action
  • 210
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Not to mention the art that would be required.
So as through a glass, and darkly
The age long strife I see
Where I fought in many guises,
Many names, but always me.

There are only 10 types of people in the world , those that understand binary and those that don't.

 

Offline Solatar

  • 211
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Maybe if we got fs2 to run programs from inside the actual game it could help? This way you could also run FRED2 from inside fs2, and it could provide a nice way to add expansions like a random mission generator, or maybe even use a program such as winamp to help play .mp3's or .ogg's ingame.

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
:shaking:

When you put it that way...

Like Goober said it'd be an enormous amount of work, and I'm definitely not comfortable enough with the mission code to be able to help with much besides creating briefings or voices and such.

If it does get worked on, I think it would be much easier to have template missions, ie assault.fs2, that have different things replaced according to a table rather than generating a whole new mission each time. It'd also let you expand it to use mods easily, or toss in some extra fighters, or have a central plot with the randomly-generated ships.
-C

 

Offline Black Wolf

  • Twisted Infinities
  • 212
  • Hey! You! Get off-a my cloud!
    • Visit the TI homepage!
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Quote
Originally posted by Liberator
Not to mention the art that would be required.


As mentioned, I'd be willing to do that stuff - there really wouldn;t be that much if you loaded it from the Tech room - a modified monochrome and base pic layout, a few more button pics, and then the base screen itself. I've had a lot of experience playing with the FS2 interface files, it could be done.

Quote
Originally posted by Goober5000
Wow, you've definitely put a lot of thought into this. :p The thing is that it would be a huge amount of work.  It would probably be straightforward to code, but you're asking for a lot of code here.  Your best option would be to make a standalone program to generate .FS2 files based on your criteria.


I pretty much figured there'd be a lot of code involved, though I still think it'd be a worthwhile aim to put that amount of code to. I realize that everyone has other stuff to do, but putting the idea out there can't hurt right :D
TWISTED INFINITIES · SECTORGAME· FRONTLINES
Rarely Updated P3D.
Burn the heretic who killed F2S! Burn him, burn him!!- GalEmp

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Not unless it involves FS3 or geomapping :D :nervous:
-C

 

Offline Kosh

  • A year behind what's funny
  • 210
Shifting from the TBP forums - Instant Action Skirmishes in FS2
It sounds cool to me. Also, how about just a straight head to head battle in addition to that? Where we pick the freindly fighters, bombers, and capital ships (and types) and also the enemy fighters, bombers, and capital ships (and types). They then proceed to blow eachother up.


I also do like Black Wolf's idea too.
"The reason for this is that the original Fortran got so convoluted and extensive (10's of millions of lines of code) that no-one can actually figure out how it works, there's a massive project going on to decode the original Fortran and write a more modern system, but until then, the UK communication network is actually relying heavily on 35 year old Fortran that nobody understands." - Flipside

Brain I/O error
Replace and press any key

 

Offline Singh

  • Hasn't Accomplished Anything Special Or Notable
  • 211
  • Degrees of guilt.
Shifting from the TBP forums - Instant Action Skirmishes in FS2
pffft......no need for such code changes.....the gauntlets are good enough atm :P
"Blessed be the FREDder that knows his sexps."
"Cursed be the FREDder that trusts FRED2_Open."
Dreamed of much, accomplished little. :(

 
Shifting from the TBP forums - Instant Action Skirmishes in FS2
I could hack together a basic mission generator as BW described in a week or 2, 3 at the most, but it would be stand-alone, DOS only, and buggy as all Hades, Hell and some other afterlives combined.

Doing this externally might be the easiest option, but it would require some more stuff. What we could do is make a Launcher/Mission gen combo, that takes the stuff BW described, gens the FS2 file, and launches the game using command lines, starting the generated FS2 file.

I geuss that might be possible, but it'd be slower and messier.
just another newbie without any modding, FREDding or real programming experience

you haven't learned masochism until you've tried to read a Microsoft help file.  -- Goober5000
I've got 2 drug-addict syblings and one alcoholic whore. And I'm a ****ing sociopath --an0n
You cannot defeat Windows through strength alone. Only patience, a lot of good luck, and a sledgehammer will do the job. --StratComm

 

Offline aldo_14

  • Gunnery Control
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
I wouldn't mind trying a bit of coding for a mis-gen, actually.  Would be a good way to get back in coding - albiet I'd have to write it in Java (at least initially - I've only just started learning C++).  Time is still a problem for me, though, so I'm not 100% sure (looking for work and also maybe taking up a short 10-week placement )

Is there a command-line option to start up FS2 on a selected mission?  Could very easily merge that into the mis-gen I think*

Main trick would probably be in reading the tbl files to get info, so the program would work with mods, et al.  Unless someone wants to help me by ripping out the parsing code from the SC and generating an output format which I could map to a Java / platform independent interface*.

(*I want to do a bit of work in language-independent coding sometime)

I can tell you one thing, though - it could be very useful for model testing.

 
Shifting from the TBP forums - Instant Action Skirmishes in FS2
If you do it in C++ I can help in a week or 3, 4. If you don't mind someone who needs C++ for dummies for every command. (I am intending to start with C++ after my exams, so...)
just another newbie without any modding, FREDding or real programming experience

you haven't learned masochism until you've tried to read a Microsoft help file.  -- Goober5000
I've got 2 drug-addict syblings and one alcoholic whore. And I'm a ****ing sociopath --an0n
You cannot defeat Windows through strength alone. Only patience, a lot of good luck, and a sledgehammer will do the job. --StratComm

 

Offline aldo_14

  • Gunnery Control
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Quote
Originally posted by kasperl
If you do it in C++ I can help in a week or 3, 4. If you don't mind someone who needs C++ for dummies for every command. (I am intending to start with C++ after my exams, so...)


My intention would be a Java implementation, broken into encapsulated sub-components, and then gradually replacing each sub-component with a more optimised C++ implementation as and if necessarry.  I don;t know enough of C++ to implement from scratch at present.

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Yeah, if anyone wanted to experiment with programming this, we'd welcome the help.  We'd only have a few requirements:

1) It must be a standalone program.  Combining it with FRED or FS2 would create bloated code.  Don't worry about integration; it should be a simple matter to execute the program from a button in FRED or the FS2 tech room.
2) It should be written in C, C++, or Java.

This would be an ideal way for someone to ease their way into the SCP, or even to join as an associate member just to see what we're doing.  Take aldo for example... aldo, if you wanted to try coding this, we'd be glad to give you SCP internal access and provide you with any pointers you needed.

Interested?

 

Offline aldo_14

  • Gunnery Control
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Quote
Originally posted by Goober5000
Yeah, if anyone wanted to experiment with programming this, we'd welcome the help.  We'd only have a few requirements:

1) It must be a standalone program.  Combining it with FRED or FS2 would create bloated code.  Don't worry about integration; it should be a simple matter to execute the program from a button in FRED or the FS2 tech room.
2) It should be written in C, C++, or Java.

This would be an ideal way for someone to ease their way into the SCP, or even to join as an associate member just to see what we're doing.  Take aldo for example... aldo, if you wanted to try coding this, we'd be glad to give you SCP internal access and provide you with any pointers you needed.

Interested?


If someone can provide me with a 'template' fsm file (i.e. which I can use to establish a basis for output*), I'll give it a shot - albeit I can probably only spare a few hours a day or so at present.  I wouldn;t imagine I'd need SCP internal access until the first java program was written - albeit would probably need community input to figure out the depth of the options.

EDIT * - also for developing an abstract class representation.  I guess this would be crucial - i.e. how much the user should have to do.

 

Offline KARMA

  • Darth Hutt
  • 211
    • http://members.fortunecity.com/aranbanjo
Shifting from the TBP forums - Instant Action Skirmishes in FS2
as I said when talking about ferrium, I can only dream to have a mission generator connected to a persistent variables system... you know, you could make some interesting things...

 

Offline aldo_14

  • Gunnery Control
  • 213
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Right.... did some very early thinking about key issues (this list will definately change if and when i start proper work on this)

Code: [Select]


Issues;
mission types?
x / y/ z placement (maybe require some form of AI to make sensible judgements RE alignment in particular - maybe also set a

preference for variation)
Background placement (just randomly? - or use region templates?)
How to parse in ship / weapon data and use it? (specifically RE: mod recognition)
Random ship / loadout?
Language independence (for future integration / enhancement?)
!!!Level of user control (key! - need to judge interface too)!!!
Interface itself (what to include, what level of complexity, whether to have some form of very basic 'battleships' style placement?)
SEXPs - what to use and how to control
Briefing generation (templated?)
Factions (how to Id & set hostiles, what about new species entries?)
waypoint setup?
how to time / judge arrival of hostile / friendly wings? And also speed caps?


Basically, there's going to be 'complexity watershed', where you'll need to write what is effectively an AI expert system to create a complex mission.  One thing I realised is that, if you want an escort mission, you have a very difficult issue in timing when hostiles will arrive and where.  Even stuff like initial orientation is important - and not to mention if you want fighterbay arrivals.

So.... I'd suggest concentrating on simpler missions types.  I think any mobile escort missions would require a degree of planning and judgement that is very difficuly to emulate in code - at least in terms of an initial implementation.  

What I'd suggest is starting with simple attack / defend missions set around a single static target, such as an Arcadia or destroyer.  That should be a relatively simple way to work-out and setup a simple fsm output algorithm.

Another key issue is identifying the ships themselves.  This is going to be quite tough, because of the orientation and beam-free issues.  i.e. not only will i need to figure out the ship names (for fsm use), but also their types for setting up where they can use.  It may be easier to create a simple config file with short entries ala;

Code: [Select]

$ship: unique-name
$type: fighter/bomber/capship
$player: yes/no
$faction: list? or hostile/friendly?

(or similar)


For the generator.  Depends on the user, of course.  from a personal point of view, I would like to start with this approach - which would still leave the possibility of adding in a tbl parsing module later on.  Same goes for other tbls - OO will make it piss easy to add new parsers later on, there's a fair old number of patterns that allow dynamic / static changing of class types without affecting the rest of the program.

In terms of loadout, i'd say it's best to keep the default and allow the player to alter their loadout  - with every weapon unlocked.  Again, this'll require a way to get weapon info.


(ASIDE!!)
NB:  I did think of a neat gametype idea which may / may not work - have a pool of 'neutral' ships.  As the player racks up kills - or as the opponent does, the neutral ships join their side.   I'm not sure how easy this would be to implement in a generator, but it could be a neat alternative to straight skirmishes.

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Quote
Originally posted by aldo_14
If someone can provide me with a 'template' fsm file (i.e. which I can use to establish a basis for output*), I'll give it a shot - albeit I can probably only spare a few hours a day or so at present.
A few hours a day would be great... that's about what people on the team contribute (sometimes more, sometimes less) depending on their schedules.

As for a template, why don't you just start up FRED, add a single "when true do-nothing" event and save it as your basic mission?

 
Shifting from the TBP forums - Instant Action Skirmishes in FS2
Man, wish I had not be on a bit of a vacation.  This was something that we wanted to do with the Imperial Alliance project.  If anything was done with this it was going to be even a little simpler.  We were semi planning on doing one like the combat chamber in Xwing Alliance.  There would only be two sides, yours and hostile.  There would not be any of that logic involved what side is friendly/hostile to whatever side.  There would be no briefing.  I think it would be possible just to skip the briefing and go straight to mission.  I think it would be rather simple just to have generic flight groups (attack/bomber/protect cap/destroy cap/etc) saved as templates inside the code or maybe even as a text file.  Then you give the user a simple GUI to pick what options they want for the mission.  If they want two attacking wings then it just pulls the generic attack module and puts it in the file.  Could then let the user choose how many craft are in the wing, whatever weapons, change the craft.  Here it would be nice to read in the ships.tbl and fill out a couple of drop down boxes with the usable weapons for the selected craft.

I don't think it would be very hard to do a console/Win32 mission designer.  The real trick (and I know it could be done) would be to intergrate it into the FS2 interface.  It would be possible to create something using just the standard FS2 controls.  The only tricky part I would see is making a list box or something that contains all of the flight group info.  Editing all the other attributes could easily be ripped from controls that are already used in the game.