"But comrade," you ask - "why declare this a 'mod'? Surely such an effort would involve little more than just modifying the existing Freespace missions and releasing a new multiplayer campaign for download?"
No, my sad and misguided friends... you could not be more wrong. In the case of Freespace, co-operative play deserves so much more
than just the token process of changing a couple of mission flags. Where's the continuity - the story? Where are the cutscenes and command briefings? What if your friend suddenly drops out mid-campaign and you want to pick up where you left off again? And what's to become of those oh-so-precious red-alert missions?
No, my friends... this project requires something more. Through a careful process I describe as "rolling my face across the keyboard repeatedly", I've somehow produced (and integrated) several LUA scripts and code changes that make co-op play awesome.
Here's what my mod delivers:
- A carefully staggered set of multiplayer campaigns that break the original FS1 (FSPort-edition) campaign into several multiplayer-friendly chapters, for quick resuming if needed (though you can just call the individual missions if needed as well)
- Full support for host and client-side cutscenes
- Multiplayer command briefings
- Reconfigured "red-alert" style missions that take advantage of Admiral MS' Ship Save/Load Script to maintain ship persistence across missions - even in multiplayer! (with a couple of discreet source code changes)
- Subtle mission tuning for multiplayer balance to keep things interesting
Don't believe me? See for yourself:
Note that this is a beta
release, and has only been tested in the limited confines of my own local gaming circle. A list of known issues to watch is provided at the bottom of this post, so please take a read.
Also note that this mod has been configured for three players
because... reasons. Namely: Alpha 2 gets a few cases of individual scripting in the FS1 campaign that I didn't want to kill off (like showing you to one of the Vasudan fighter groups in the second mission), and for the selfish reason that my own gaming circle is only three people. I'm not sure how large the FSO multiplayer community is, but if there's a demand to raise the player cap, I'll look at adjustments.INSTALLATION INSTRUCTIONS:NOTE:
Until several outstanding code changes are integrated into trunk, this relies on my own branch of the 3.7.1 source code to function. I've included the EXEs with the mod download (along with a .patch referencing all changes if you're paranoid and would rather compile it yourself). YOU MUST TELL YOUR LAUNCHER TO USE fs2_open_3_7_1_coop.exe OR THE CO-OP MOD WILL NOT WORK CORRECTLY.
DOWNLOAD: Click here KNOWN ISSUES / ADDITIONAL NOTES:
- Download fsport-coop.zip (below). Extract it (with sub-folders) into your Freespace 2 folder - you should have a new fsport-coop sub-folder when you extract it. fs2_open_3_7_1_coop.exe (and a corresponding debug exe) should also be extracted to your Freespace 2 root.
- Select the fsport-coop mod in your launcher of choice. Again, make sure you also select fs2_open_3_7_1_coop.exe as your executable.
- Go to Features --> Custom flags and add -timeout 240 to the end of your arguments list (this is currently necessary to avoid getting booted out of the game during cutscene playback until I can R&D a better code fix)
- Launch and start a multiplayer game as normal. You should see the new Freespace: The Great War multiplayer campaigns available, across several chapters. Play, and have fun.
- Be sure to follow the on-screen instructions during the command-briefings (T to advance to the next stage, F to skip - this is currently host-only to keep everyone in sync, and yes is a hack)
- This is the first FSO mod I've ever released, and I honestly have no idea what I'm doing. Just a disclaimer.
- Due to errant issues with the multiplayer code, there are some unavoidable cases where the client-side scripting / messaging subsystem in the netcode will just shoot itself in the head. This will manifest as broken command briefings, or red-alert missions not loading your previous ships correctly (or other crazy weird symptoms). If this happens, have all players close and restart the game and see if it fixes itself. My understanding is that Karajorama is looking at an overhaul to some multiplayer code which should hopefully help resolve this down the road.
- Due to issues with max respawn counts not being respected when playing in MP campaign mode (another weird bug) and because of my own preferences, I have disabled respawning in this mod. Each player gets one ship, that's it. If you'd rather have the standard respawn behavior, open up \fsport-coop\data\tables\scripting.tbl in a text editor and remove or comment out these lines:
$On Mission Start:
--Hack to fix Max Respawns not being respected in MP Campaign mode. Effectively disables respawns; comment this out to revert.
mn.runSEXP("set-respawns !25! !Alpha 1!")
mn.runSEXP("set-respawns !25! !Alpha 3!")
mn.runSEXP("set-respawns !25! !Alpha 4!")
- If you're a client getting kicked out of the game session when a cutscene plays, make sure you're using -timeout 240 as a custom flag when running the game. Network traffic is suspended when cutscenes are playing right now due to the hacky way I call them, which makes the game unhappy - the flag makes the game wait longer before punting you out.
- This mod has been balanced and tested on Hard difficulty. I really didn't go too far indepth in terms of rebalancing the missions though - I just dropped in a few new ships and adjusted AI competencies here and there. Hopefully the effects keep the game interesting for all players without being overwhelming; if you run into any major problems though, I'd be interested in balancing feedback.
- The red-alert missions use Admiral MS' ship save / load script to save and restore ship data between missions. I've tried to be fair with this though; if you happen to be dead when the prior mission ends, you'll still be able to play the next one (but with a generic default ship loadout).
- Credit text in the final mission ("The End") doesn't appear for client players. This symptom defies logic and reason (as my hacked-up command briefings use a similar mechanism), and is under investigation.
- I intend to give the same treatment to other campaigns as soon as I'm able. On my definite to-do list are ST:R and the FS2 campaign (of course), but I'll also be taking a tentative look at campaigns from other mods as time permits.
Everyone in the entire community. Seriously, you guys are all fantastic, and are the key reason for me developing this mod. I know the multiplayer community for FSO is comparatively small, but even if this thread gets no replies I'll still be satisfied to finally give something back to the community that has given me so much.
But I should give a special call-out to Karajorma for his ongoing work in enhancing the multiplayer back-end (I've many of your old posts almost obsessively to help get a leg up in this - even if I didn't reply to all of them, your above-and-beyond documentation has been a huge help), everyone in this thread for helping me understand LUA, the FSPort team for giving me an awesome way to introduce my oblivious friends to the series right from the beginning, and the Source Code team for making all of this possible in the first place. You guys rule.