Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: athropy on July 08, 2002, 06:10:27 am
-
I'm pretty new with this, so bear with me.
We are having a live roleplaying event in the late fall. It takes place in a vagabond freighter ship, escorted by a few fighters. Naturally the plot thickens with more-than-life characters and clichee twists. To spare you the details, we're experimenting with different technologies to implement in the live roleplying scenario. Namely, we're actually building the insides of a rather big modified freighter (about 20 people), a space station lounge, a few smaller vessels (transport, a couple of fighters) and combining them with actual game engine. Namely (you guessed already, didnt you) Freespace 2.
And here the problem begin. I'm being selfish here and just listing everything I want and need.
DELUXE
- A flyable, fighter dockable ship (not necessarely a capital ship)
- A way to expand the fighters limited point of view (for example, tactical displays, radar displays, communication pads)
- A Gamemaster option, to implement realtime changes in the mission and monitor the players progress
- The cutscenes are obvious
I'd appreciate the feedback. I know this is a bit over the top, but you have to start with big plans and when everything fails go with something that actually works. Thanks for the patience, I understand that I posted this a bit wrong .. I intended to put it in the requested changes thread, it is just that i don't have any experience with forums at all. :doh:
-
- A flyable, fighter dockable ship (not necessarely a capital ship)
A new ship, that's simple.
- A way to expand the fighters limited point of view (for example, tactical displays, radar displays, communication pads)
This could be possible by simply editing the HUD
- A Gamemaster option, to implement realtime changes in the mission and monitor the players progress
Even with the source code I'm afraid this might be a bit too hard to accomplish. Perhaps some _really_ heavy mission scripting would help, but even that wouldn't make it possible to do absolutely anything(as you can in a LARP)
Not sure about the cutscenes.
-
Thanks for the quick reply.
If it really is that simple to add a flyable freighter or sorts into the game, all the better. That is the most essential thing to accomplish to us after all. Well, if that would be a simple thing. How about dividing the control of the ship to several stations.. gun control, pilot control, tactical control, machinery control? I know that there was talk away back, when the source code hadn't been released that it would be nice to have a gunnery position, like in XW:A. Can that be done now? Not really that important to me, at least I'm not gonna put any effort to it, but that would be an atmospheric boost to have a few gun turrets (flashbacks from Star Wars Death Star escape scene, perhaps)
I think I wasn't that clear about the "expanding the fighters limited point of view". What I meant was, to have the information of the game sent to other stations besides the actual pilots. The captain oughta have a clear picture of the situation for his decicions, even though he's not actually flying the ship. Tactical officer could monitor the escort fighters and navigational officer could be presented with a larger map of the region and it's jump nodes (the easiest one to do), the crew could have warning and ships status monitors in their personal quarters ("Brace for impact", "Red Alert") and the Engineer has the realtime image of the ship status and so forth. This is a secondary thing, but I think it could be done, the information is somewhere in the code .. we just need to pass it on, right?
All the rest (the cutscenes, game master options) are just extra bonus that can alternatively be done with careful mission planning (in-game + off-game) and manual cutscenes (switching from the game engine to another source while a new mission loads).
Any pointers?
-
Player controlled turrets are something that I think could be possible, someday. But about diving information, the problem would be, that I think all of the computers(I understood you are going to use multiple computers on LAN) should have a bit different modifications, so I'm not sure how well would it work. Even if it did, making that kind of changes might be just a bit too hard.
-
If I read all that correctly, you're asking for people to be in a ship and to divide controll of each section to different players?
That requires a different engine all together.
Now you could possibly do a really big ship, let every player meet in the 'hangar' and get to defend the ship...
But otherwise, well, wait till I finish the LARP statistics for the ships...
Then you can use a webcam or chatroom device for internet play.
http://www.furnation.com/corwyn/freespacestuff/deimos.html
This is a temporary version untill I recieve more feedback on terminology and such.
Remember, a Work In Progress...
-
Thank you all for your interest :nod:
About the engine requrements. I know that Freespace isn't designed for multiple crew members, but what needs to be remembered is that what we want for the players dont necessarely need to change anything as dramatically as it may sound. We dont actually need the game engine to report that a power rele is burned and need to be fixed. It's all about the atmosphere in live roleplaying anyway, the thing we're trying to accomplish differs from actual gameplaying a bit (hard to explain). The most important thing we need from the game engine is the actual flying. Everything else can be done with other tricks. But to elaborate, here's a rough scetch of our current plan, bear with me because I'm not a native english speaking person, nor is this easy to explain in words.
Shiptypes:
- A larger ship with aprox. 20 crewmen (player controllable)
- A couple of escort (player controllable)
- Transport (used only occasionally)
- AI or Non-Player character controlled ships
¤ A couple of Escorts:
The Escort fighters and transports are a pretty obvious thing. Only interesting thing is the actual docking (and not meaning the game engine), the platforms they're built on need to movable, for example from the place where the cruiser is built to where the space station is set (this all sounds fancier than it actually is). They only have one interface, for lack of a better word .. the actual game engine that allows them to fly in the virtual space with the Freespace engine. Phew, if it was only that this project would be simple.
¤ A larger ship
But the problem is the cruiser / freighter / corvette whatever type of ship that is essential for this (imagine playing for seven hours alone in a cockpit of a lowsy fighter) enviroment. Of cource this ship also has a pilot and if everything fails that's all the interface they'll get to the Freespace 2 engine, possibly a Star Trek like wallscreen with a video projector is suitable, dont you think? But if possible, it would be great to have different sort of displays for the other crewmen as I explained before. These displays dont necessarely (or even probably) need to be done using the actual game engine, only the game information! If need be, we'll do it the hard way and type down the progress of different vessels manually and pass them on to different screens via html, chatroom, IRC or webcam tehcnology (undecided or unimportant). But if it were possible, it would be all the better if this could be done automatically, all we need to modify is to enable the game engine to broadcast it's statistic to a third party, a text file, server/client application, SQl database, whatever. Also, I think it would be rather easy to divide simple control to more than one player (the pilot) in the cruiser (at least you can split the ps2 connection to several sources), to what extent .. I don't know, just gotta try and use our / your imagination. But honestly, any suggestions would be great, eventhough we have people working with this, none of us are that experienced with game coding .. and you gotta admit, the freespace source is quite a monster. What would be fun to know for starters is for example where the game engine receives its input and could that be modified in any way and where it stores ship data / status and could that be passed on in any way. :D
¤ AI controlled ships
Are basically just cannon food and casual entertainment, but we're planning a plot twist that would involve a rescue operation from a big evil capital ship. As Kitsune suggested earlier, this game wouldn't only be a Freespace game, it's just a small part of the actual experience, allowing us to have a nice virtual enviroment in space. The game probably has scenes (for lack of a better word) where players need to defend the ship outside the Freespace engine when actual boarding parties try to take over the ship (with softair guns), but this wouldn't even be fun with the Freespace engine even if it could be done (I honestly dont understand First Person Shooters, what's the fun part of punching your keyboard when you can pull the trigger).
Kitsune:
Crew: 900 Crew (100 Officers, 800 Enlisted)
Troop Capacity: 200 Marines
Talking about ambitious plans, even I'm not that ambitious to have 900 players in my project, but *grin*, thanks for the reply.
-
Whoa, you completely lost me there.
No, wait, I think I lost you.
You don't seem to understand.
When the stats say "Crew: 800 Enlisted, 100 officers"
That means that the ship has 1,000 total people on the ship on average.
In an RPG setting that would be at best 2 players, and 998 NPC's. (Non-player characters.)
The players would be A captain, and an executive officer.
The rest of the peons who make the ship fly right and shoot stuff would be run by the gm kind of autonomously. Or if you were one of the 200 marines on board, you might be getting transferred to another ship, or being a gunner...
You don't need a "player" for every person in the universe, cause if you did oh boy...
What I supplied is a sample ship with statistics, a small history (ripped right out of the fs database sure, but it's solid enough right now,) and listings for armor and weapon damages for ship to ship combat.
This is meant for a type of game where you have a handful of players, most likely simple pilots aboard a carrier or destroyer who do what we do in FS. Fly about, shoot stuff, go home. But once home it all changes, go talk to the commander, tell him he's a flaming idiot, laugh your ass off as he strips you of rank, kick his ass then write up a new character... (Come on, who wouldn't do that just once if we had the little button that says "Screw you! I'm taking sick leave!")
What you're wanting is similar but done in a graphical engine that would best be described as a MMORPG. (Massively-Multiplayer-Online-Role-Playing-Game). This would be like everquest, dark age of camalot, or the soon to be released star wars: galaxies (or some bs like that).
My suggestion for your game however is this:
Meet online with others in an online community, be it forums, chat, whatever. Set the rp guidelines. For first person shooting events (inside a freighter or something) have someone find a FPS game such as quake or doom, make a modpack for that mission.
When you want to fly around and blow up cruisers and shivans, have everyone meet in a game online where the gm hosts and watches, bringing in shivans with special keybutton pressed scripting.
When the fighting is over, return to the board and contiue the rp where you can do other things.
This will take a lot of work initially, but once you have everything modded to standards. And the GM gets a hang on mission designing and balancing, it would go a lot smoother.
--edit-- oops, missed something.
-
turret control is easy if the ship is stationary...for a moving ship you'd need a new engine. My suggestion is that you edit the huds on different pcs so they show what you want them to show, for the turrets, you'd need to create a new ship (for the best result) that looks like a turret, with a forward speed of 0 but a close to normal rotation rate. You can then stick it in Fred2 and put it on a turret base or just stick it really close to the hull.
Im really surprised that anyone is going through this much trouble for an RPG....
-
Kitsune, I think he's talking about a real _live action role play_, so they don't play online, but in real life :)
-
Yeah, I think you *did* lose me somewhere in the process. But maybe a few helpful points would clarify something
¤ This is a LIVE roleplay(LARP or LRP), which is completely different compared to average RPG. Especially (not sure how it's done abroad) in Finland the rules are almost nonexistent (meaning, there are no silly hitpoints and such) and rely heavily on putting your soul to the character. But the main thing you've missed here is that when a live roleplaying event is organized there are actual people and actual places, not imagined ones. In this case, we're really building the insides of a small cruiser / freighter (not in a game engine, in real life) and assigning it with its appropriate crew, with their own personality and background (with actual people, you cant just imagine them there, at least it wouldn't be fun that way). My problem here isn't the roleplaying part or advertising, eventhough I'm greatful for the tips. This part is after all the part I and the other members are familiar with. The thing that we need help with is only the technical aspect of the engine we use to emulate the feeling of actually flying in space, which we are planning to implemented with the modified Freespace 2 multiplayer, but all the same can be done without.
¤ This is not your average LAN-game, or even Massively-Multiplayer-Online-Role-Playing-Game, this is a live roleplaying event, eventhough it exploits the possibilities of multiplayer space simulation, the Freespace engine is just a small (but interesting) part of the project. The most important thing is the characters taking part on a journey, not trying to win something (blaah, blaah, sorry).
¤ The game masters, or even the non-player characters arent what I think you have in mind. I know this can be a bit confusing, at least if you're RPG person, but the game-masters (or preferably writers, or organizers) only set the game in motion, write the backgrounds, explain the events, elaborate the characters, design the settings. But when the actual game begins they usually dont have any control over the gameplay, the game is driven mostly (preferably entirely) by the players in their character. The non-player characters in live roleplaying doesn't mean "characters controlled by the game master" but players that arent entirely playing in-character, or inside the game. For example a non-player character in this project could be a mother calling to his son who is a player in the spaceship. In this game the gamemasters have a more demanding role because of all the Freespace organizing (docking, mission loading, alerts and such), usually they're just part of the game as players themselves.
¤ The game isn't done in segments. It has a clear beginning and ending in which time the players ARE their characters.. they cant just "lets have a coffee while the next mission is loading, eh what did you think of the football match yesterday". Fortunately we dont have any need for a FPS engine, since all actual conflicts inside the ship are dealt with less virtual weapons (softairs), as I tryed to explain before.
softairs = replicas of guns that shoot 6mm plastic bullets.
> The rest of the peons who make the ship fly right and shoot
> stuff would be run by the gm kind of autonomously
Not in our game they wont. Not if its up to us. We have a great background story for the navigator and the pilot, and damn if i'm gonna let some virtual player in my head act them out, besides whos gonna start a mutiny in the ship if there are only virtual first officers .. :nod:
If specific questions arise concerning live roleplaying, or non-specific .. i'm not that picky, they can always be addressed directly to me via email, I understand that this isnt the place for that kind of discussion.
-
Originally posted by LtNarol
Im really surprised that anyone is going through this much trouble for an RPG....
I'm surprised that anyone is going through this much trouble for something less :rolleyes:
But thanks for the tips with the turrets, of cource our ship is not stationary, but its good to know before hands what we cant have. I didn't quite get that pcs editing tip, I would need to have that information in different displays inside the same ship. Can different players play the same ship, each with uniquely modified freespace?
-
I think what he's saying is to make a turret-shaped 'ship' with a maximum speed of 0, import it into Freespace, then, in a mission, put it onto the ship you want to have turrets. Then you play it in multiplayer. This would give the appearance of turrets and most of the functionality without having to do any game engine work.
-
Well then that is different.
Sorry that I got carried away on a different tangent then. I completely missed it.
My brain's too fried right now to ponder helping in any useful sense, so I'll just step on out.
-
Yes, I understood the "turret-shaped 'ship' with a maximum speed of 0" part, and it's a great idea. I'm not that interested in gun turrets that much, though, it wouldn't be that interesting because you'd still have to use a joystick and a screen to use them, and that dont feel right. It'd be great, but not top priority. But I think I can use the same idea on sensors and engineering. For example, I can have a freighter with two (modified) ships docked with it, the other only has a view for the sensors (radar, maps and such) and the other only has a view for the engineering (enginepower, damage, etc). This way I can duplicate some of the freespace data easily (after all, you can use both the monitor output and the tv-out) to different locations besides the pilote view. I'll just have to see how that works, I don't have the opportunity to test that kind of multiplayer experiments right now, but I will get to it as soon as possible. Has anybody tried something like that? For example is the docking possible in a multiplayer game where one player-controlled fighter is trying to dock into a player-controlled (modified to "player_ship" "bomber") freighter? Any complications I should be aware of?
But yeah, things are already well away. I got to fly a handsome freighter last night (why didn't anyone tell me it was that simple) and it worked just fine. It was nice and slow in movement and had a "big ship" feel to it. The AI-controlled turrets also worked and fired hostiles, although a quick question arised:
- Is there a way to shut down the AI controlled turrets while in the game ("cease fire" "open fire")?
- And similarily, could it be possible to add new navigation commands and such ("lay a course to 1,1,0", "self destruct in five seconds", cant seem to come up with good examples today). A big thanks to Pera for a helping a newbie out. This helps things alot.
-
Unfortunately, only one ship can be docked to a ship at a time. It's some kind of an engine limitation, and I'm not sure if it can be fixed with the source code. Also, there is no way the player can dock his ship to something, the ship must be docked at the start of the mission, or an AI controlled ship must dock to the players ship.
AI controlled turrets can only be shut down by using SEXP:s(ie. in the mission editor). Some new commands can be added by using imagination and the "when-key-pressed"-SEXP, but they usually work only once. So here comes the scripting part again.
-
Has anybody tried something like that? For example is the docking possible in a multiplayer game where one player-controlled fighter is trying to dock into a player-controlled (modified to "player_ship" "bomber") freighter? Any complications I should be aware of?
I don't think that will work, I'm pretty certain only ships flow by AI can dock to another ship.
- Is there a way to shut down the AI controlled turrets while in the game ("cease fire" "open fire")?
- And similarily, could it be possible to add new navigation commands and such ("lay a course to 1,1,0", "self destruct in five seconds", cant seem to come up with good examples today). A big thanks to Pera for a helping a newbie out. This helps things alot.
Those last two, those might be possible by combining SEXPs with an in-game command prompt or something of the sort. Like
if player_command_equals 'lay in a course to %1,%2,%3'
set-waypoint '%1,%2,%3'
Or some such. Then, in game, you could type in "Lay in a course to 1,2,3" or "Lay in a course to 4,5,6" and the waypoint would automatically be set. If you want to make sure they don't go off the map:
if player_command_equals 'lay in a course to %1,%2,%3'
and %1 < 10
and %2 < 10
and %3 < 10
set-waypoint '%1,%2,%3'
So simple, yet incredibly flexible :eek:
Another way you could do this would be to hard code it into the game so it would automatically parse text typed in the multiplayer comm prompt and assign new objectives for the AI of various ships depending on the commands.
-
Damn, that docking would be the next most important thing to accomplish. Any plans to fix the docking problem with the source code? Guess we just have to be clever with the mission planning if it cant be helped. The sexp player commands seem to be really flexible indeed. Thanks for the tips, I'll try them out. Especially switching off the turret fire would be handy, the ships just too smart if it starts firing alien ships without orders from the captain.. :)
Could the docking be done the ugly way? For example whenever a ship wants to dock it flyes near the fighter bay and jumps out. Can the jumping animations be removed, so it would only seem like the ship disappeared in the fighter bay? That would make coming back a bit difficult, but anyway.. it would give some room for the mission planning.
It really is a shame that this function isnt a part of the engine, wonder why they left it out? Isnt there a key press for docking or something? And if the AI can do it, why cant the players?
-
Originally posted by athropy
Damn, that docking would be the next most important thing to accomplish. Any plans to fix the docking problem with the source code? Guess we just have to be clever with the mission planning if it cant be helped. The sexp player commands seem to be really flexible indeed. Thanks for the tips, I'll try them out. Especially switching off the turret fire would be handy, the ships just too smart if it starts firing alien ships without orders from the captain.. :)
Erm, the SEXP stuff isn't added in the game, it'd have to be done with source editing.
-
Originally posted by athropy
Could the docking be done the ugly way? For example whenever a ship wants to dock it flyes near the fighter bay and jumps out. Can the jumping animations be removed, so it would only seem like the ship disappeared in the fighter bay? That would make coming back a bit difficult, but anyway.. it would give some room for the mission planning.
Sure, this is possible just the way you described it. Just check the ships "no warp effect" box in FRED2. But if a player ship does this in a multiplayer mission, it ends the mission from everybody.
So this works only when ending missions or for AI ships.
-
Originally posted by WMCoolmon
Erm, the SEXP stuff isn't added in the game, it'd have to be done with source editing.
Well now, lets get into some source editing then *grin*. I would love to see that work, maybe if i have some spare time to fiddle around I'll get myself a Visual6 compiler and try things out. Its a great idea never the less.
Damn, mission ends when somebody warps out? That's just silly (you notice my lack of experience with the freespace), but I guess it cant be helped. Can the ships be transformed invisible or something? Guess this docking seems more and more a thing that absolutely cant be done with the engine, eh? Well, good thing it's not our only option. Some preplanned docking sequences can be arranged by overriding the Freespace engine display with a docking officer webcam and in the meantime loading a new mission.
-
If a ship has an actual working fighter bay (for instance an Orion class destroyer) you can set that ship's fighterbay as a jump out point for a ship/wing of ships. It won't really affect player ships though. Don't recall how well it works, but in game I think you can have two ships docked to a third. You have to have a ship with two dock points and two two other ships. One ship docks with the big ship (either in game or setup in FRED2) and then in game the other one has to dock to the big ship's other dock point. Player ships can't dock with other player controlled ships because there isn't any controls to tell the game to dock them and players can't see the docking point paths that AI ships use to dock. One thing that might work for multiple displays would be to fake them with some sort of special program or even just a static screen saver image. (You might have to have the players manipulate the displays, if possible, to keep them synced with the game's data.) That way you could have displays that don't actually look like a hud. If you're going to be using the game over a LAN, then that may limit what you can do with other stuff network wise. There's only so much space within the network packets, and changing them would probably require redoing the whole network code. (Which might take too long.)
With the FS2 source code available, just about anything is possible. Whether anyone can make something work, and work well, is an entirely different thing.
PS Multiple people should be able to control the same ship by using multiple keyboards attached to one computer. The trick would be getting multiple, different, displays. Multiple displays that are the same wouldn't be hard. (You could split the cables to multiple monitors.)
-
Thanks for the reply and tips EdrickV. The docking seems to be something the game engine really is not suited for (tryed different things yesterday, and none worked). The AI can although pretty limitedly dock with ships, but this way all these events would need to be pre-planned, which is always really difficult (usually impossible) in live roleplaying.
The hard realities are these, and they cant be sacrifised to gain other possibilities.
¤ We need to have our carrier ship flyable (or at least very freely controlled)
¤ We need to have our escort ships flyable
Only after these things are established (and they already are, thanks to helpful tips) we can try accomplish other things that would boost the atmosphere even further, and these things are.
¤ All sorts of docking
¤ Multiple control, and displays
¤ More flexible mission parameters (realtime changes), which could be possible, if WMCoolMons suggestion (command prompt SEXP) would be possible.
Your multiple keyboard idea is great and its something we'll probably use. If, after all, our carrier ship is essentially *one* ship .. we only have one PS2 and Joystick input. We just have to experiment with different hardware solutions. One possibility to do the multiple displays would be to use kind of invisible observation pods, which would be player crafts that would be modified to show only the radar, target and map information. At least this way we could have a few more tactical views. Is there a way to autopilot player-flyable ships?
About the LAN and networking ideas. The only thing I would actually need is for example the game-engine to occasionally save its state into a text file. We could then read these files with java-applets and use htmlpages for the extra displays. And this way we could easily add a few spices to the boring gameplay statistic ("hull breached, containment field collapsed, power reles burned"). It wouldnt mind if the tactical information lagged a few seconds, this is an old-fashioned pirate ship after all.
-
We accomplished the multiple keyboard solution. We first thought to make a hardware PS/2 splitter, but then thought of using USB keyboards. There are really cheap PS/2 -> USB adapters. This way we can use as many keyboards as we like. At least the engineering and tactical should have their own keyboards (or parts of them).
Has someone tryed creating the command prompt sexps?
Or a sexp that would change a player ship into an AI-controlled ship.
-
I decided to put some news about the progress of our little project.
Things are looking pretty good. The live roleplay named 'Vapaa Avaruus' (finnish for Free Space) takes place July 11th. We were fortunate enough to have a chance co-operate with Oulu University which provided us with some resources to program a little bit more sophisticated interface than originally planned. It is not finished yet, but is coming along nicely. Its nothing fancy, but every little bit helps. And its fun work when you even get credits for doing it.
The plan is to divide control to five different clients that connect directly or indirectly to Freespace 2 engine. Basically the Freespace 2 acts like a socket server and responds to clients requests. The socket server is started with a sexpression that indicates which ship provides this functionality. The exact solution is kept open as the project is not finished yet.
These clients are according to their function.
ENGINE ROOM
¤ Naturally has access to the ships power controls (shields, weapons, engine)
¤ Some added tasks (fix the fuse or the ship will shut down)
TACTICAL
¤ Has tactical information (radar, local maps, ship/object information)
¤ Controls the weaponry (turrets on / off)
NAVIGATION
¤ Has the jumpgate navigation information and bigger maps (isnt directly connected to the Freespace 2, but rather pre-planned with mission editors)
¤ Locations, details about different systems
CREW
¤ Receives messages from command (brace for impact, intruder alert, docking complete) possibly with a sexpressions passing the information in certain points of the mission.
GAME MASTERS
¤ Issue pre-planned events (like engine shutdown, shields down, unvulnerability, arrival of the destroyer)
¤ Monitor the situations
All of this is pretty much unfinished, so every bit of help is appreciated. If something useful is finished, of course we'll pass it here if someone wants to make use of it.
WISHLIST
¤ The previously suggested player-flyable --> ai-controlled switch would be useful, especially autopiloting and docking would be a great help for us.
¤ External views, anything from duplicating the 1st person view to another machine or simply copying the radar information would be helpful. I've been tinkering with an idea to use the Fred's view as an overall map (like in X-wing), but have no idea how to implement this.
¤ Suggestions, pointers, tips, help, slaves, inspiration, direction.
-
Will you be releasing this code to the public after you are finished with the role-playing? ;):confused:
-
:ha:
That'd be a long wait.
-
athropy said:
>WISHLIST
>¤ The previously suggested player-flyable --> ai-controlled switch
>would be useful,
I have thought of a possible solution but there are limitations. First I will explain my method.
First you will need to create a variable:
"autopilotStatus" "0" "number"
And a suitable, invisible, custom made, ship to dock with the player ship. Here I named it 'AutopilotShip1'.
You will also need an invisible trigger ship, because FRED2 won't allow for values of variables to be a condition for ship arrival. I named mine 'AutopilotTrigger'.
The arrival and departure cues to the autopilot ship would be:
$Arrival Location: Hyperspace
$Arrival Cue: ( is-iff "Unknown" "AutopilotTrigger" )
$Departure Location: Hyperspace
$Departure Cue: ( has-undocked-delay
"AutopilotShip1"
"Player Spaceship"
1
2
With no warp effect set.
Below is an event to activate the autopilot:
$Formula: ( when
( key-pressed "Z" )
( modify-variable
@autopilotStatus[0]
1
)
( key-reset "Z" )
( change-iff
"Unknown"
"AutopilotTrigger"
)
)
+Name: AutopilotSwitchOn
+Repeat Count: 1
+Interval: 1
+Team: 0
Below is an event for switching the autopilot off again:
$Formula: ( when
( key-pressed "V" )
( modify-variable
@autopilotStatus[0]
0
)
( key-reset "V" )
( change-iff
"Neutral"
"AutopilotTrigger"
)
)
+Name: AutopilotSwitchOff
+Repeat Count: 1
+Interval: 1
+Team: 0
There will also need to be an event to get the autopilot ship to dock:
$Formula: ( when
( has-arrived-delay
2
"AutopilotShip1"
)
( add-goal
"AutopilotShip1"
( ai-dock
"RPG Spaceship"
"lower ring"
"rearming dock"
80
)
)
)
+Name: AutoPilotShip1Dock
+Repeat Count: 1
+Interval: 1
+Team: 0
And, of course, an undock event:
$Formula: ( when
( and
( has-arrived-delay
2
"AutopilotShip1"
)
( = @autopilotStatus[0] 0 )
)
( add-goal
"AutopilotShip1"
( ai-undock 81 )
)
)
+Name: AutoPilotShip1UnDock
+Repeat Count: 1
+Interval: 1
+Team: 0
You could include messages to go with the keypresses like:
$Team: -1
$MessageNew: XSTR("Engaging Autopilot system...", -1)
$end_multi_text
$Name: Disengaging Autopilot system..
$Team: -1
$MessageNew: XSTR("Disengaging Autopilot system...", -1)
$end_multi_text
When the autopilot ship is docked with the player ship add a goal to make it follow a waypoint path. Waypoint paths, as far as I know, have to be pre-set in the mission file.
This would result in an autopilot system that:
Requires the player ship to stop moving to allow the autopilot to engage.
There would be a delay of a minute or more while the autopilot ship docks, even if it arrives out of the player ship's docking bay and is custom made to be very fast moving.
It's possible accelerating to full speed might force the autopilot ship to undock.
Once the autopilot is disengaged it won't work again, unless there are more autopilot ships added to the mission with an arrival condition that the previous autopilot ship must have warped out. Perhaps there is some way to make use of the event repeat option in FRED to deal with this? Reusing the same ship would be possible if it was also switched to escort orders while the autopilot is off to keep it near to the player ship.
You could do some kind of fake 'player docks with ship' using this method by setting two more keys to 'DockOn' and 'DockOff'. 'DockOn' causing an autopilot ship to enter, dock and waypoint its way real close to the ship the player ship is fake docking with. Also by using waypoint speed capping and timer events some unstable, player fake docked, flying could probably be implemented.
athropy said:
>¤ External views, anything from duplicating the 1st person view to
>another machine
Using the standard camera controls on the numpad you can view the first person view of other ships, but you get no hud which unfortunately means no radar data.
-
Something about roleplaying... and a furry...
Hmm. As to the shared-control thing, you couldn't have it on the same ship, but what you might be able to do is have a modular ship in multiplayer and some FRED commands. Hence, when, say, the engineering "section" (really an independent ship, permanently docked to the other components from the beginning in FRED) gets a bunkerbuster in the tail or loses power due to a pre-scripted event, you can have the dude playing engineer use a walkie-talkie to inform the guy playing captain, hit a button setting off an alert, whatever. It'd take about a thou in hardware to set up, but you roleplayers seem to be rolling in it anyway so there you go. Or you could even automate it- set up the play-captain's room with multiple monitors giving displays from the different computers (a lot of wiring and probably even more money, as well as some tech savvy), and throw in some FRED codes so that the appropriate people at the appropriate times.
I think it goes without saying that turrets are another story altogether, though you could potentially knock together a few ball turrets if you don't plan on having the ship, say, move. THAT could ge ugly REAL fast.
As for docking, set a special explosion. Kill those suckers when they get to the dock bay and press a button, be sure to disable comms first. Then all you've got to worry about is getting them back in the game.
And the, ah, "commander" can change mission parameters the same sort of way. Set up the game with some sexps so that certain keypresses can change certain objectives or send certain messages- or set up options, with y/n responses. Simple enough, same sort of **** I did as a newbie working on LB.
As for external, again, easy. Have an invisible, invincible ship with no weapons and maybe no engine control. Set it about 20k out, and tracking the freighter.
-
Towani, have you tryed this yourself? I dont have that much experience with Freespace mission design, but I had the impression that you couldn't dock with player-flyable ships. But nevertheless, its worth trying. It could get a bit messy with multiple ships..
I guess I could use the 1st person view as you described, but that would only be useful for spectators (like the crew or something). I think I could add a few of those if I have extra computers available. Passive displays or sorts.
And Stryke 9, funny you should mention it. Its exactly engine room and turrets we have been able to "share-control". The functions were easy to locate and once the socket server is up and running inside Freespace, it has access to these functions which fire up whenever the clients wants to.
So we already can do this
1) A sexpression starts a socket server inside Freespace and starts accepting calls from clients
2) A client connects to the Freespace socket server and sends a message "INCREASE_SHIELD"
3) The socket server does function
if(at_self)
control_used(INCREASE_WEAPON);
increase_recharge_rate(objp, WEAPONS);
if((Game_mode & GM_MULTIPLAYER) && (Net_player->flags & NETINFO_FLAG_AM_MASTER))
{
Assert(npl != NULL);
multi_server_update_player_weapons(npl,&Ships[objp->instance]);
}
4) The server replies to the client that it has been done.
So basically we can easily add all the simple elements of Freespace to our clients (like sexpressions and commands). Next we are trying to tackle the tactical officer's client, which ought to have access to some tactical information, like maps, radar, ship information, mission telemetry, you know. This is a bit trickier, naturally, 'cause we need to receive real-time Freespace data and not just activate commands.
-
For ship information such as subsystem status, shield status, speed, etc. it sounds like you need code to send out the ship structure for the player ship and maybe the ship_info structure for it too. Those store just about all the info you'd need I think: hitpoints, weapon inventory, shield status, subsystem info, etc. You'd also need a custom client to catch that data and show it on a screen with a UI to let the operator change stuff. (Or at least give them a USB keyboard/keyboard equivalent with bindings for the functions they're allowed to control.) FS2 doesn't have maps as such, and I don't have any idea what you could do about radar other then hiding a monitor showing cockpit view behind something so only the radar screen part shows.
-
I haven't managed - or dared, it's exame time after all - to look into the code, but I assume FS has to store all the locations if the ships. The same goes for IFF and stealth.
If the server could send that data to a client a radar can be created pretty fast. Even a non-FS program could handle the data.
It's up to the interface to visualise the data.
If you need a radar corresponding with the main ship's radar then the position and orientation of the main ship should also be transfered.
For a targeting mechanism - or detailed radar - the orientation of the other ships should be sent as well.
If it's just a radar it can run on a separete screen without FS using only the data.
-
Ok I have run some tests and created an example mission file, which I have uploaded here:
http://www.angelfire.com/falcon/danproject/autopilot.htm
The mission is set as a multiplayer co-op and red alert. An Elysium will jump in at the start and dock with your ship. It will then proceed to take you on a waypoint run. Once docked you have no movement control of your ship.
I couldn't quite get the keypress triggers to work so I made them unnecessary in the example. The triggers themselves activate the events but the Elysium would not gain the dock order due to some kind of problem with the event conditions. In the example the 'X' key should set the trigger ship to Unknown IFF and the 'J' key to Hostile IFF. The fighter in the mission is just an extra to show you are actually travelling around somewhere. You may notice that your ship gets rotated at the rate the docked transport can turn, which may seem a bit unrealistic.