Issues with your account? Bug us in the Discord!

B5:ITF Dynamic Campaign

So, I've been reading Max's journals in the logbook, and they have sparked a question in my mind. How did the B5:ITF dynamic campaign engine work from the player's perspective?

Max seems to get mission orders on a periodic basis (e.g. one per day) from his superiors. As a squadron pilot, he has basically no choice in which missions he flies. He takes each mission as it is given to him. In a way, this sounds pretty similar to the mission briefing systems in most existing space simulators such as Wing Commander or XWing.

Contrast this with the dynamic campaign engine in a combat flight sim such as Falcon 4.0 or F22 Total Air War. In that type of game, the player is a member of a fighter squadron along with 25 or 30 NPC pilots. The squadron is given a frag order consisting of dozens of missions that need to be carried out each day. The player can select any of the missions in his squadron's frag (in the F22 sim, the player is limited to flying missions with a difficulty at or below his own pilot skill rating).

In Falcon, the war progresses in something like real time even while the player is looking at the campaign and mission selection screens. As events happen in the war, new misions are ordered and appear in the squadron's mission list. If the player doesn't see any interesting missions, he can skip ahead or accelerate the simulation until an interesting mission is generated. NPC pilots fly all the missions in the frag that the player does not choose to fly himself.

So, how did it work in B5:ITF? I'm guessing that the campaign engine generates one single custom mission for the player at a time, and the player has no choice but to play that mission. How did time advance when the player was not in the active simulation (e.g. in the war room, or in his barracks)?

------------------
--milo
[url="http://www.starshatter.com"]http://www.starshatter.com[/url]
«13456711

Comments

  • David of MacDavid of Mac Elite Ranger Ca
    It worked based on preformance. If you, say, didn't find the forklift bomb, things would go differently. If, say, you blew Jeff Sinclair to hell in the battle of the line, you would return to a rather different future.
  • Yes, I know that. But that's not what I'm asking.

    I know that the missions are generated according to the events that are going on in the game. I know that these events may be different each time you play the game, and that the player's action can have an impact on those events, and therefore on the missions that get generated. There are lots of ways to go about doing that, and I'm not asking for the details.

    Those are the trees.

    I'm asking about the overall shape of the forest.

    * How were the missions presented to the player and what choices would the player have in selecting one mission over another (if any)?

    * How did the world advance when the player was not playing the simulation (e.g. when looking at a menu screen or a briefing)?

    * Were missions generated for NPC ships and carried out by NPC pilots and commanders?

    ------------------
    --milo
    [url="http://www.starshatter.com"]http://www.starshatter.com[/url]

    [This message has been edited by milod (edited 09-20-2001).]
  • RandyRandy Master Storyteller
    First of all, the player is never out of the sim. No matter what you're doing the sim continues in real time - with a couple of exceptions. Hyperspace travel is faster than canon. Between each advancement (from Squad Leader to Captain, for example) time is moved forward in a large chunk via a short cinematic with a voice over.

    Re: getting missions - the answer is different for each playing level.

    When the player is a pilot the mission can come via the data terminal in his or her quarters, via the comms. display in the cockpit, or via a scramble. As a pilot in a squadron you must follow orders or suffer the consequences. But since it's a sim - you don't have to follow orders. You can take off and go to the other side of known space if you want to.

    As a Squad Leader, you get your orders in the same way, but while on your mission you’ll be able to control your squad in any way you want, and prosecute the battle any way you want.

    As a captain of a capital ship your ship is attached to a battle group, and you get your orders from your group commander. You orders become more general. You're given an objective. When you get to the problem area, you must decide what to do. You can do what ever you want with your capital ship and all of the Star Furies and/or Thunderbolts onboard.

    When you're a Group Commander, you get orders from fleet command. Your orders are very general, and may cover several star systems. It is entirely up to you to decide what to do with your capital ships.

    So in general, as you go up the chain of command you get more assets, more access to strategy elements, and your orders become more general, which gives you more freedom - and more responsibility - while more is at stake.

    And, as in real life, expect the unexpected. Often times, at higher command, you’ll experience conflicted demands on your resources. Sometimes things will come up that are outside of your orders, but extremely compelling, and sometimes very personal.

    And then there’s Sector 14.

    Did I answer your question?




    [This message has been edited by Randy (edited 09-21-2001).]
  • , wow, I sooo wanted this game
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    *Cue insults directed at Sierra, drooling, and general wishing to live in a different world.*

    Are you planning on having a dynamic campaign, Milod?

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • FreejackFreejack Jake the Not-so-Wise
    All right you developers just shut your mouths right now! Everytime I just get over not having this game one of you has to open their respective mouths and spew forth some more great features and revolutionary game play...

    DAMN YOU ALL...DAMN YOU ALL TO HELL!!!
    (Serria, not the developers)
    [edit]Sierra not Serria, damn floating "i"[/edit]
    ------------------
    [i]This is crazy. I hope I haven't brain my damaged.[/i]

    I mean, if I went 'round saying I was an emperor just because some moistened bint had lobbed a scimitar at me, they'd put me away!


    [This message has been edited by Freejack (edited 09-21-2001).]
  • C_MonC_Mon A Genuine Sucker
    I WANT B5:ITF!!!!!!!!
    I want a game like that even if had nothing to do whit B5!!!!!

    ------------------
    Born from silence, silence full of it
    A perfekt concert my best friend
    So much to live for, so much to die for
    If only my heart had a home
    -Nightwish:Dead boy's Poem-
  • [quote]Did I answer your question?[/quote]

    Mostly, thanks!

    The only puzzling part is where you said that the player is always in the sim, and the sim continues in real time. Now, in real life, a fighter pilot will fly one or maybe two missions max in a 24 hour period. Surely you don't make the player sit there for hours waiting for a mission to come up?

    (Don't laugh: the new Eurofighter sim does exactly that. You have a squad of six pilots that you control and the game plays in real time. So you get to watch them sleep, shoot pool, eat, and sit in meetings when they don't have a mission to fly. No, it doesn't sound fun to me either.)

    [quote]Are you planning on having a dynamic campaign, Milod?[/quote]

    Of course. Usually when you see me in here asking questions about a feature in B5:ITF it's because I'm comparing notes to refine my design for Starshatter.

    Starshatter's dynamic campaign engine works a little differently from B5:ITF's because Starshatter leans more towards pure simulation and less toward the story and adventure aspects. I don't have the budget to film a huge backstory, and I don't have the obligation to maintain the feel of an existing story-driven universe.

    My dynamic campaign is more like what you would find in a military jet sim like Total Air War, or a military real time strategy game like Jane's Fleet Command. Each side in the conflict has a persistent order of battle (a hierarchy of fleets, battle groups, and squadrons, and the starships and fighters that make them up). That means that each ship in the fleet has a real identity and a definite location at all times.

    The campaign engine has a series of strategic objectives that need to be met to win each operation. It uses a set of algorithms to prioritize targets, assign assets to the targets, and then build missions for those assets. The player chooses or is assigned one of those missions, and AI pilots and starship commanders take care of all the rest.

    Since the OOB is persistent, the mission generator has to take travel time into consideration. The best asset to use against a particular target may not be anywhere near the target right now. So the campaign engine inserts a movement order to get the assets into position. That takes time, so the mission generator has to plan the mission for several (simulated) hours from now, when the assets will be available.

    I'm working on the op command UI right now, trying to determine what kind of control the player should have over time when he is not in the cockpit (or on the bridge). I'll keep you posted.

    [quote]I want a game like that even if had nothing to do whit B5[/quote]

    Me too. Maybe someone will write one... [img]http://216.15.145.59/mainforums/wink.gif[/img]


    ------------------
    --milo
    [url="http://www.starshatter.com"]http://www.starshatter.com[/url]
  • RandyRandy Master Storyteller
    B5:ITF works exactly the same way as you describe, as far as the multiplayer game goes, or the single player use of the multiplayer module.

    The single player story game is based on exactly the same sim engine that runs the non-story games. It simply imposes narrative elements and narrative-embedded missions upon the sim mechanisms that you described. It also imposes the pulling of missions from five libraries, which correspond to the five possible playing levels, which also correspond to five dramatic acts. In the single player game the player becomes just another NPC, as far as the engine is concerned. As the player goes up in rank, he simply gets plugged into the next higher level of the EA hierarchy.

    It is true that time is compressed between missions. However there is time between missions, and that time can be used by the player in numerous ways: practicing in the tactical sims that are offered aboard B5 and the ships, pleasure flying (which can be interrupted by missions), researching the database, which provide valuable clues for mission strategies, especially at higher levels, and reading vidmail, news clips, and communiqués, which move the narrative forward. For the sake of those who just want to fight, there were late talks about a button on the data terminal that will more quickly call for the next mission. I am unaware whether or not this was being implemented.

    The rest of the universe is constantly running, in which the militaries of alien species are working on achieving goals, with their unique methods, and unique resources. Their preset biases towards other species, however, will likely only change in response to player actions. What is constantly going on in the background, impacts what the player will encounter during missions, and also impacts that way in which the narrative is put forth.
  • milod: In answer to your last question, NPCs running missions.

    Without trying to be evasive, the answer is yes and no.

    There was nothing preventing the AIs from executing missions, but there wasn't much reason for them to be doing so, either; particularly the low-rank, very detailed types of missions. Idle hostile forces would, however, have tasks and orders they would be trying to implement; some within the context of, and triggered by, the current player mission. Other times (and more generally for most of the hostile and friendly AI ships), the goals and orders were determined by the current strategic situation of the game universe and progression of the "big picture" story.

    Now, there was a lot of talk about a single-player open-ended, no story, no pre-programmed mission mode for the game. The factions would be given the goal of expanding their empire (militarily) and "turned loose". Obviously this would cause lots of activity to be generated: fleets formed and displatched, capships given orders and goals (who would dispatch squadrons with tasks of their own to complete, etc. etc. etc.) From a game architecture standpoint, however, this is really just "one big open-ended mission". There would be no FMV from the actors, custom communication & personal messages, etc.; just places to go and things to do.

    B5 is really about story and drama, so the above open-ended possibility was really more of a side-effect of the game design; not its primary intended implementation. Frankly, it would have been [b]very[/b] difficult to make the above game mode "fun" since large non-steered (or scripted) campaigns tend to produce individual battles that "aren't fair". (i.e. one side is obviously going to dominate the other, so the weaker force has to either bug-out or die.)

    Status at cancellation:

    The missions were designed and documented, but the mission manager was almost non-existant in a code sence at the time of cancellation. Misssion management and selection was seen as the final major component of the AI effort and the coding work on it was just ramping up when the cancellation occured. Dan, Nicolas, Jeff, Victor, Dave, and I had basically worked out much of the design on paper, but code-wise about all we had was orders coming down the chain of command are reports going back up. There was one hard-wired mission implemented, which we were using to "learn what we didn't know".

    NPCs [i]could[/i] execute full missions. Remember that the entire game was designed from the beginning to be able to "play against itself" with no human presence required. Keep in mind that any game is, however, all about providing an interesting and compelling experince to the [i]player[/i]. AIs don't care if they are bored, doing something repeditive, or just hanging around waiting for the player to show up.

    Thus the pace of the mission and the event triggers were heavily weighted to providing 'fun' to the player. Whenever the needs of the mission conflicted with the needs of a quality experience for the player, the mission would lose.

    It is significant to note that the missions were not hardwired. The different factions were all using the same rules as the player. When a new mission came down, it was the enemy faction's job to try to execute their goals and orders pertaining to their mission to the best of their ability. Missions were not of the form "have seven enemy fighters appear here when the player gets within 7 km of the derelict freighter", but rather "go to region X, guard the freighter, and intercept any hostile ships that show up." (even from the AI's perspective)

    If during one execution of the game campaign the enemy ships are further away than another, they will arrive at different times. Because of the "breathing" of the dynamic universe, and it's chaotic (in the mathematical sense) sensitivity to minor differences in time and distance radically changing the interaction between ships, missions were unlikely to play out the same way twice. Add to this that goals and orders can be implemented by AI forces using different possible valid strategies, and you can see why we weren't worried about gameplay and combat with enemy craft being too "predictable".

    A few more implementational details...

    Like the behavior pools and music pools, missions were organized into groups. There were a larger number of the small, specific missions, whereas the more open-ended higher rank missions became fewer and fewer as you go up the chain. During one "play through" of the single player campaign, the user might only see a small number of the "player-pilot, no command, small numbers of ships" scenarios, because there is only small amount of variation available to that mission to keep it fun and balanced. Thus, more of them would be created. For the higher rank, open ended missions, however, the player would experinece higher percentage of the missions. Even though it would be the "same mission" it would play out very differently because of the number of ships involved, the increased sensitivity to minor initial condition variation, and all the increased variability in decisions possible from the various AI agents reacting to each other and the changing tactical situation.

    Emergent behavior is very powerful, but keeping it under control can be very difficult. I outlined the vision and design above, but there were plenty of "devils in the details" to find and exorcise. I'm sure that some parts of "the plan" would have been changed, radically modified, or sacrificed, but the end result being striven for would remain.

    Hopefull Rick, Randy, PDF, and Marc won't be mad at me for spilling to much in the above... [img]http://216.15.145.59/mainforums/wink.gif[/img]


    p.s. (added later)
    Jeff and Dave also worked on that component's design as well. My ommision in the above list of names (which I have since corrected) was unintentional. Sorry. Of course, I was only talking about the [i]code[/i] design, not the game design...


    [This message has been edited by John Walker (edited 09-23-2001).]
  • (I wrote the above before Randy posted his reply.) [img]http://216.15.145.59/mainforums/shad.gif[/img]
  • Randy, John,

    Thank you both. That was very helpful. In particular, it hadn't occurred to me that there were other things to do in B5:ITF than just fly missions.

    You've given me much to think about. Which is always a good thing. I like thinking. [img]http://216.15.145.59/mainforums/wink.gif[/img]

    ------------------
    --milo
    [url="http://www.starshatter.com"]http://www.starshatter.com[/url]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    Personally, I'm still at the writing the object file converter stage. [img]http://216.15.145.59/mainforums/smile.gif[/img] But when the time comes, this thread shall be very useful (clicks save).

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • SanfamSanfam I like clocks.
    IFH and the likes should be checking in on these threads every so often [img]http://216.15.145.59/mainforums/smile.gif[/img]

    [b]*click*[/b]
    [i]Saving...[/i]
    [b]*repeated clicking from computer*[/b]
    [i]Error: Unknown error. Contact your system Adminstrator[/i]


    Cool thread, though [img]http://216.15.145.59/mainforums/smile.gif[/img]

    Someone should get around to programming a [nudge-nudge]SAMPLE GAME[/nudge-nudge] to show us visual learners what was meant by this [img]http://216.15.145.59/mainforums/wink.gif[/img]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    Yes. With freely available code so I have an example to follow. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • SanfamSanfam I like clocks.
    Yesss...
    IFH! IFH!
  • Aye, I think they could benefit from any words of wisdom... and some better spelling on their misson screens [img]http://216.15.145.59/mainforums/tongue.gif[/img]
  • FreejackFreejack Jake the Not-so-Wise
    Guys this isn't helping...I still want this game!

    ------------------
    [i]This is crazy. I hope I haven't brain my damaged.[/i]

    I mean, if I went 'round saying I was an emperor just because some moistened bint had lobbed a scimitar at me, they'd put me away!
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    Don't we all. Don't we all.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • RubberEagleRubberEagle What's a rubber eagle used for, anyway?
    Yeah [img]http://216.15.145.59/mainforums/mad.gif[/img]

    maybe we should try to reprogramm it?
    I'm working on a generic dynamic universe component, where every planet has special atributes (productionvalues), and indicators what the inhabitant's think of each of the major "empires"...
    based on that system you could make real transport routes, determin wich system is resource-wise important and hurt the economy of an empire by cutting off their transport routes, or even destroying the industrial facilites on planets (wich would affect the production values)...
  • RickRick Sector 14 Studios
    Here I was, all reeady to write a long diatribe, and Randy and John beat me to it [img]http://216.15.145.59/mainforums/smile.gif[/img]

    In a nutshell, ItF *was* a sim, the only difference was in the story-based single player game, the "sim" was evaluated to see if certain parameters suited plot-based missins. If they did, that mission would be assigned, and minor tweaks were to be made to the universe state.

    The Historical missions were the only exception. Once they happened, they could have an effect on the geopolitical (or is that Astropolitical?) makeup of the universe, and those tweaks were going to be made manually (JW, Dan--Step in If I got that wrong).

    Anomoly missions wouldn't be possible in single-player or multiplayer skirmish games.

    As for "real-time" aspects: That was one area that was still in discussion. Obviously you wouldn't want real-time hyperspace transit---it would get boring as hell while you waited for 2 days to get to your destination [img]http://216.15.145.59/mainforums/wink.gif[/img] The only question was how it was going to be implemented. As I recall, time was going to be compressed in single player story-sim outside of engagements (ie. while on B5 or a cap ship using reference resources). Symantics of Hyperspace time compression were TBD.

    As for how it all worked together, think of everything being pumped through the same input routines. AIs drove most input, players drove others. Game didn't care.

    The scale ofd the game was strictly limited by:

    1. CPU Crunching Power (and RAM)
    2. Networking Bandwidth (for MultiPlayer)

    T&L support was imminant, so Graphics would have had a negligable affect on the sim speed.

    John mentioned the game "being able to play against itself." Thgis was also a GREAT plus when looking at the QA cycle. We could effectively let the game run in a closet, log the "AI" input while running a code monitor (like C-Cover) to effectively stress test the game. If we found a problem, we could replay the sim on another machine to determine if the code was a problem, or if there was a hardware issue with the testbed.

    (Am I boring anyone yet? [img]http://216.15.145.59/mainforums/wink.gif[/img] )

    All-in-all, ItF was a very well planned package. Everyone did a tremendous job of thinking forward and ahead; actually addressing issues before they became problems.

    When I throw praise way of Dan or Marc or Randy or anyone else on thge team it's because of just these things...they thought well beyond what most people do when confronted with a problem---they turn it into a victory.

    That, and they're all pretty swell people [img]http://216.15.145.59/mainforums/wink.gif[/img]

    -R.

    ------------------
    [i]"...Never start a fight...but [b]always[/b] finish it."[/i]
  • JackNJackN <font color=#99FF99>Lightwave Alien</font>
    In my case Rick it's more likely bloat than swell...

    heh heh!!!


    [img]http://216.15.145.59/mainforums/biggrin.gif[/img]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    [quote]Originally posted by Rick:
    [b]As for how it all worked together, think of everything being pumped through the same input routines. AIs drove most input, players drove others. Game didn't care.
    [/b][/quote]

    Interestingly enough, the input for my game engine is designed that way. There is one set of input functions for taking input into the game. Both the input from the player and the AI will go through these functions so at the other end it is impossible to tell if the input came from the player or the AI. However, I didn't design it this way so it could play itself. It is designed this way for basic consistency and becuase it makes sense to have the AI produce the same kind of program input as the player would.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • Note that the idea of "the AI interfaces to the ship just like a player" is not an exaggeration. The final output of the fighter AI was, for example, a "helm input" structure... joystick position of all three analog inputs and t/f settings for the digital (trigger, slew thrusters, etc.) The same was true for orders and command interface input.

    For the disciples of [i]Design Patterns[/i] out there... The human controller was implemented as a decorator pattern with subsumption of some nominal AI functionality.

    Oh, and don't forget to batsfarm the shim-stop to avoid ferndock obfuscation. [img]http://216.15.145.59/mainforums/wink.gif[/img]

    Doh! I just remembered that I owe Biggles a write-up... [img]http://216.15.145.59/mainforums/redface.gif[/img] from like 6 months ago. Sorry. [img]http://216.15.145.59/mainforums/frown.gif[/img] I'm guessing that that ship already sailed?
  • bobobobo (A monkey)
    John,

    A decorator of what onject? The flight controller? Was the flight controller a direct manipulator of the physical model, or was there another layer?

    Inguiring minds want to know!

    ------------------
    bobo
    <*>
    B5:ITF
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    John: Yes, I remember asking for that a while ago. [img]http://216.15.145.59/mainforums/smile.gif[/img] If you could do it, that would be a big help. He's still waiting.

    The way I was planning on doing AI input vs Player input was to have the input engine take in values like joystick up 10 units or key pressed and spit out commands, like fire thrusters or yaw right. I could then either make the AI spit out the same commands and link directly to the same place as the input engine, or give the AI its own specialised inputs to the input engine, or (my preference) have the AI go through the input engine in the same way as the player).

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • RickRick Sector 14 Studios
    [quote]Originally posted by JackN:
    [b]In my case Rick it's more likely bloat than swell...

    heh heh!!!


    [img]http://216.15.145.59/mainforums/biggrin.gif[/img][/b][/quote]

    Now where [b]is[/b] that thermonuclear fwapp button?.... [img]http://216.15.145.59/mainforums/wink.gif[/img]

    ------------------
    [i]"...Never start a fight...but [b]always[/b] finish it."[/i]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    I'm wiring up mine as we speak. [img]http://216.15.145.59/mainforums/smile.gif[/img]

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
  • bobo:

    Okay, let me see if I can explain this without graphics (i.e. drawing boxes and arrows on a white board.) You have read [i]Design Patterns[/i], right? [img]http://216.15.145.59/mainforums/wink.gif[/img]

    The ship 'has a' controller base class pointer instance. All the AIs (fighter controller, cap-ship controller, etc.) inherit from this. Thus, every AI in the game (or, as I prefer, PI for "pseudo intelligence") 'is a' controller.

    The inheritance was like this:
    [code]
    controller -> AI controller -> fighter AI -> 6DOF fighter AI -> Aurora (aka. 'StarFury')[/code]

    When the ship got a slice of execution, it would do its thing and also call the "GenerateActions()" method of the base controller (which would call the child class AI controller's "GenerateActions()") following the normal rules of inheritance.

    But there was also this class called a decorator controller which was the base class for the player controller.

    The inheritance for a player controller was like this:
    [code]controller -> decorator controller -> player controller[/code]

    When a player controller was attached to a ship, the decorator controller was inserted "in between" the ship and its AI controller. The connection from the ship to the AI code became:
    The ship calls decorator's "GenerateActions()" which calls the AI controller's "GenerateActions()". Thus the player's input is done first and then the AI's.

    So, how does the player controller ever get heard, i.e. doesn't the AI overwrite the players helm or other input? No. This is where the [i]subsumption[/i] comes in. When the player controller is attached, it calls some methods in the AI controller to "turn off" some of the things it would normally do. Thus, the AI is still there; monitoring the ship, generating reports for superiors, passing along reports from subordinates, etc., but it is no longer steering the ship or giving orders since that is what the player does.

    Neato, eh? [img]http://216.15.145.59/mainforums/smile.gif[/img]

    Biggles:
    Great sadness over my forgetfulness. [img]http://216.15.145.59/mainforums/redface.gif[/img]

    For the situation you describe, remember that there are many ways to "go through the same interface" as the player. For example, even though the B5:ItF helm was the same for the AI as the player, the input from the player went through quite a bit of transformation before being submitted. For example, even though the joystick analog input to rotation rate conversion was non-linear, the helm input was. Thus the AI didn't have to account for changes to the joystick transform curves within its code.

    Now, all I need is about 6 hours to do the writeup... [img]http://216.15.145.59/mainforums/frown.gif[/img]

    [img]http://216.15.145.59/mainforums/shad.gif[/img]
  • BigglesBiggles <font color=#AAFFAA>The Man Without a Face</font>
    That's a pretty impressive design. Very versatile. It would make autopilots quite simple to. [img]http://216.15.145.59/mainforums/smile.gif[/img]
    What exactly is the difference between the controller and the AI. For example, you have fighter AI inheriting from AI Controller.

    John: Do the write up when you get a chance.

    ------------------
    [b][url="http://www.minbari.co.uk/log12.2263/"]Required reading[/url][/b]
    Never eat anything bigger than your own head.
    The Balance provides. The Balance protects.

    "Nonono...Is not [i]Great[/i] Machine. Is...[i]Not[/i]-so-Great Machine. It make good snow cone though." - Zathras
Sign In or Register to comment.