City Council Number Six Posted October 13, 2020 City Council Posted October 13, 2020 Welcome to the public test of the new launcher for Homecoming: City of Heroes (or HC Launcher for short)! Internally codenamed ‘Project Hangover’, the new launcher is intended to function as an officially supported successor to take the place of programs like Tequila. This post is a high-level overview of the launcher. There is a separate post with a technical deep dive here. Looking for a quick start? Click here to download the launcher! Note: This needs to be installed to a new location (not your existing CoH install directory) If you are currently using Tequila it will offer to copy over most data This testing phase is focused on using the launcher under Windows. It is fully functional when running under wine on Linux, but installing wine varies from one flavor to another. Manga has an experimental build of Island Rum that can act as a bridge to the new launcher on Macs available here. HC Launcher has three primary design goals: Speed, Security, and Compatibility. Speed: The launcher is supposed to get you into the game, it shouldn’t take any longer than absolutely necessary to fulfill this function. Tequila and several other launchers are based on .NET, and as a result have noticeably slow startup times on some systems. HC Launcher is designed not only for fast startup and faster patching, but also to avoid long and unnecessary file verification, or delays due to Internet latency. Security: This has been a frequent criticism of Tequila and its use of unauthenticated manifest files. By putting in a manifest file, you are in effect trusting the author of that manifest with complete access to the user account you’re running it under, since it can download and run arbitrary code. It also lacks protection against man-in-the-middle attacks, making it impossible to know if a malicious third party has hijacked the manifest. HC Launcher addresses all of those issues by using strong cryptography to verify the integrity of itself and everything it downloads. More details can be found in the technical deep dive post. Compatibility: HC Launcher is written in C and uses many of the same libraries as the game itself. As a result, it should run in any environment that is capable of running the game, such as wine on Linux/Mac, without any additional work. Important note: HC Launcher uses a different file layout for the client install, reorganizing it to make it easier to manage. As a result, it cannot coexist with Tequila and must be installed to a different location. By default it attempts to locate existing files to avoid having to redownload them, as well as migrate user data. More information about the new layout is available in the technical deep dive post. The new game layout is completely self contained and is fully ‘portable’. Nothing is registered system-wide and the files can simply be moved to another location, or deleted if you want to remove it. Please post any feedback or bugs in this forum. Thank you! 12 6
Bill Z Bubba Posted October 13, 2020 Posted October 13, 2020 41 minutes ago, Number Six said: Important note: HC Launcher uses a different file layout for the client install, reorganizing it to make it easier to manage. As a result, it cannot coexist with Tequila and must be installed to a different location. By default it attempts to locate existing files to avoid having to redownload them, as well as migrate user data. Unless I'm interpreting this incorrectly, once I've installed the new version, it grabs what it can from the old installer directory and once tested that all is well (sound fx overwrites, keybinds, etc) I should then be able to purge the tequila install directory completely?
City Council Number Six Posted October 13, 2020 Author City Council Posted October 13, 2020 Just now, Bill Z Bubba said: Unless I'm interpreting this incorrectly, once I've installed the new version, it grabs what it can from the old installer directory and once tested that all is well (sound fx overwrites, keybinds, etc) I should then be able to purge the tequila install directory completely? That's correct. If you don't need Tequila for anything else, you can remove it. Be sure to check screenshots before deleting it, as due to the potentially large size, that is one thing that is not automatically copied over. 1 1
Retired Game Master GM Tock Posted October 13, 2020 Retired Game Master Posted October 13, 2020 Myself, I'd keep a backup of the Tequila folder on a USB just in case there's anything you'd miss. 1
Giovanni Valia Posted October 13, 2020 Posted October 13, 2020 Cool stuff. The installation and launch was fast. I'm glad to see the "-cov" launch parameter still works as well. 1 Excelsior Server: Giovanni Valia, Operative Velez, Fortunata Valeri, LongFang Mercer SG: Shades of Arachnos; 315-6811
Bill Z Bubba Posted October 13, 2020 Posted October 13, 2020 9 minutes ago, GM Tahquitz said: Myself, I'd keep a backup of the Tequila folder on a USB just in case there's anything you'd miss. Backups are always wise but USB? Everyone doesn't have a multi-TB Precision server for such things? Madness. 1 1 2
Retired Game Master GM Tock Posted October 13, 2020 Retired Game Master Posted October 13, 2020 Any $10 16-32GB USB stick or SD Card from your favorite meatspace broker of choice will hold it just fine. 🙂 If you're screenshot obsessed, larger is better. 1
Lines Posted October 13, 2020 Posted October 13, 2020 Brilliant! Given it a shot. AVG hated trying to install it; I ended up switching AVG off for the install. Once it got going, having stuff transferred from the tequila install was utterly seamless and the game looks like nothing has changed. Game installation was less than a minute for me. I had to add the install folder to my AVG exceptions. But honestly this is just making me think how much I need something that isn't AVG. Had one instance where the game crashed after launching, then loaded itself up again. It's not happened twice.
Shayendrel Posted October 13, 2020 Posted October 13, 2020 What if Tequila is installed in the same directory as COH itself? >.>
Nerio72 Posted October 13, 2020 Posted October 13, 2020 Just downloaded launcher and it installed and validated with no problems, I did have to tell Windows I trusted it. The whole process took under a min. I did check something because I was curious. After logging in with new launcher I also tried logging in with Tequila and it told me I was already logged in and closed BOTH instances. It was trying with the same account, I don't have a second account to try it with. Not sure anyone would want/need to do that, it just occurred to me to try.
Retired Game Master GM Tock Posted October 13, 2020 Retired Game Master Posted October 13, 2020 (edited) 1 hour ago, Shayendrel said: What if Tequila is installed in the same directory as COH itself? >.> Just as long as Homecoming Launcher is not installed in the Tequila folder as it will have a different folder structure. (If using "C:\Games\City of Heroes" like we've been suggesting for a long time, "C:\Games\Homecoming" works for example.) 4 minutes ago, Nerio72 said: Just downloaded launcher and it installed and validated with no problems, I did have to tell Windows I trusted it. The whole process took under a min. I did check something because I was curious. After logging in with new launcher I also tried logging in with Tequila and it told me I was already logged in and closed BOTH instances. It was trying with the same account, I don't have a second account to try it with. Not sure anyone would want/need to do that, it just occurred to me to try. The Launcher doesn't get around the Server rules. Only one instance of your user account can be launched at a time. If @UserHero is logged in on Tequila and you try to log in @UserHero on HC Launcher, Tequila will still log out. That is working as intended. If you had a second account, launching as @UserHero on Tequila and @UserHero2 on HC Launcher will work, but it's not necessary. You can click the Gear Icon in HC Launcher and enable multiple instances. (See above.) Edited October 13, 2020 by GM Tahquitz 2
Nerio72 Posted October 13, 2020 Posted October 13, 2020 I figured that might be the case. It did close the game instance that the launcher opened first also. I didn't know there was that option to have 2 instances, that's pretty cool.
City Council Number Six Posted October 13, 2020 Author City Council Posted October 13, 2020 2 hours ago, Shayendrel said: What if Tequila is installed in the same directory as COH itself? >.> You should install the Homecoming launcher somewhere else. The game client design is different and is a clean break from the Cryptic/Paragon COH install.
RubyRed Posted October 13, 2020 Posted October 13, 2020 Pretty easy to install other than both Firefox and Windows thinking it was a virus 😛 Looks nice too, great job team! "We're out of options, I'll have to use the jetpack," I said, strapping on the jetpack and ignoring the many non-jetpack options still left. Having trouble deciding your next alt? Just need a cool name? Try out City Suggests Looking for powers data? Try the Powers API
Replacement Posted October 13, 2020 Posted October 13, 2020 Just wanted to echo @RubyRed -- Chrome wanted me to Discard the launcher install, and then SmartScreen (Win10 home) tried to stop it in its tracks. PSA: If you see a message saying Windows Smartscreen has blocked the application and the only button is "Don't Run" or similar: press the little "more info" link in the lower-left to expose the Run Anyway button. 2
Replacement Posted October 13, 2020 Posted October 13, 2020 (edited) @Number Six Do you want bug reports here or in the Beta bug reports sub-subforum? Bug: Automatic UI Scale was reset to "Enabled"; custom UI scales lost. However, I believe this is a global setting and fixing it once fixed on everyone else. At least, my 2nd character logged in didn't have the issue. Nice Touch: I saw you can drag around your favorite server. Neat. Question: is it intentional that there's no way to add a new manifest? I get that most other servers aren't running a compatible file structure, but I understand some of them (Sanctuary I think?) do, or will if they keep pace. Is the approach going to be to have those SCoRE-based servers deploy their own versions of the launcher and handle their own signing (I don't know a damn thing about signing anything deeper than an SSL, I'm just assuming this is something the server would have to handle)? Edited October 13, 2020 by Replacement
WanderingAries Posted October 13, 2020 Posted October 13, 2020 Clicking the Option dots for the servers is hit/miss. You can click it to get the Verify/Settings/etc, but you can't hit it again for some reason and it's REALLY hard to hit in the first place. I'm not sure what's there besides Verify that isn't in the gear though. I just grabbed like dozen screenshots, so we'll see how fast I can edit a simple How2 since I feel like it. OG Server: Pinnacle <||> Current Primary Server: Torchbearer || Also found on the others if desired <||> Generally Inactive Installing CoX: Windows || MacOS || MacOS for M1 <||> Migrating Data from an Older Installation Clubs: Mid's Hero Designer || PC Builders || HC Wiki || Jerk Hackers Old Forums <||> Titan Network <||> Heroica! (by @Shenanigunner)
WanderingAries Posted October 14, 2020 Posted October 14, 2020 (edited) Choosing to sign out after logging in to swap accounts does not work as when clicking login again it auto-signs you in unless there's a step I'm missing. Many of the popup buttons don't seem to work right either. I can get them to popup once, but then have to click around the window before I can do it again. There's a lot of layer/image tearing when doing the drag server thing that feels like it's related to the other issues. Edited October 14, 2020 by WanderingAries OG Server: Pinnacle <||> Current Primary Server: Torchbearer || Also found on the others if desired <||> Generally Inactive Installing CoX: Windows || MacOS || MacOS for M1 <||> Migrating Data from an Older Installation Clubs: Mid's Hero Designer || PC Builders || HC Wiki || Jerk Hackers Old Forums <||> Titan Network <||> Heroica! (by @Shenanigunner)
Retired Game Master GM Tock Posted October 14, 2020 Retired Game Master Posted October 14, 2020 (edited) 3 hours ago, Replacement said: Question: is it intentional that there's no way to add a new manifest? Homecoming Launcher is exclusive to Homecoming Servers. Updates and files are from our CDN only, there is no manifest mechanism present in it at all. Edited October 14, 2020 by GM Tahquitz 2
WanderingAries Posted October 14, 2020 Posted October 14, 2020 OG Server: Pinnacle <||> Current Primary Server: Torchbearer || Also found on the others if desired <||> Generally Inactive Installing CoX: Windows || MacOS || MacOS for M1 <||> Migrating Data from an Older Installation Clubs: Mid's Hero Designer || PC Builders || HC Wiki || Jerk Hackers Old Forums <||> Titan Network <||> Heroica! (by @Shenanigunner)
Takel Posted October 14, 2020 Posted October 14, 2020 12 hours ago, Number Six said: The launcher does not allow any code to run that is not signed, whether from a package or as part of a self-update. The signing keys are not accessible from the deployment infrastructure, so even a compromised download server could not cause users to run untrusted code. Can I get some clarification on this quote from the technical deep dive, please? Specifically, I want to know at what points the launcher is supposed to check to see if the signature is valid. Right now, I can intentionally invalidate the signature (for example, by using a hex editor to change "This program cannot be run in DOS mode" to "This program cannot be run in BOSS mud") for cityofheroes.exe after it's downloaded and the launcher won't care, but I'm not sure if it's intended for it to check for certificate validity whenever you click the "Ready" button or not.
City Council Number Six Posted October 14, 2020 Author City Council Posted October 14, 2020 31 minutes ago, Takel said: Can I get some clarification on this quote from the technical deep dive, please? Specifically, I want to know at what points the launcher is supposed to check to see if the signature is valid. Right now, I can intentionally invalidate the signature (for example, by using a hex editor to change "This program cannot be run in DOS mode" to "This program cannot be run in BOSS mud") for cityofheroes.exe after it's downloaded and the launcher won't care, but I'm not sure if it's intended for it to check for certificate validity whenever you click the "Ready" button or not. That's correct, in some cases it's more accurate to say it won't download code that doesn't chain back to something that can be validated. There are two tiers of things that have signatures. There's the launcher code itself, which is relatively small, is signed, and does verify the signature every time it's run. The launcher executable has a publicly verifiable Authenticode signature which Windows will check, and once it's running the launcher takes care of verifying that the LuaUI code it runs is signed by the internal HC CA. The game files, which include the exes and also all the piggs, are indirectly protected. The package json is signed by our CA, and contains sha256 hashes of all the files (chain of trust). Since the package data can't be modified without invalidating the signature, the sha256 hashes inside it are known to be good. The sha256 hash is checked at download/patch time and the file will be rejected and deleted rather than moved into place if it doesn't match. It does the hashing inline as the data is streamed into a temporary file. For performance reasons, the hashes of the game files aren't checked on every file at startup, so it won't detect local modifications done after the fact like you mentioned, unless you run a full verify. Also please feel free to ask tech questions in the deep dive thread, that's what it's there for. 3
City Council Number Six Posted October 14, 2020 Author City Council Posted October 14, 2020 7 hours ago, Replacement said: Just wanted to echo @RubyRed -- Chrome wanted me to Discard the launcher install, and then SmartScreen (Win10 home) tried to stop it in its tracks. PSA: If you see a message saying Windows Smartscreen has blocked the application and the only button is "Don't Run" or similar: press the little "more info" link in the lower-left to expose the Run Anyway button. This should hopefully get better as more people use it and build reputation associated with our signing cert. One of the frustrating things small independent developers have to deal with. 7 hours ago, WanderingAries said: Clicking the Option dots for the servers is hit/miss. You can click it to get the Verify/Settings/etc, but you can't hit it again for some reason and it's REALLY hard to hit in the first place. I'm not sure what's there besides Verify that isn't in the gear though. I just grabbed like dozen screenshots, so we'll see how fast I can edit a simple How2 since I feel like it. The hotspot extends quite a distance above the dots which may help. You can also right click on the profile button to get that menu if it's easier. Can you clarify which popup buttons you're talking about in your second comment? What OS are you running on? You might try running the launcher with -nowdl to force it to fall back to standard GDI drawing instead of using Direct2D. 1
Takel Posted October 14, 2020 Posted October 14, 2020 9 minutes ago, Number Six said: Also please feel free to ask tech questions in the deep dive thread, that's what it's there for Thanks, I'll make sure to do that in the future. I'll probably poke at a few things related the JSON files as well, but I don't think I'll have time until the weekend. Either way, if something breaks I'll try and let you know.
City Council Number Six Posted October 14, 2020 Author City Council Posted October 14, 2020 7 hours ago, Replacement said: @Number Six Do you want bug reports here or in the Beta bug reports sub-subforum? Bug: Automatic UI Scale was reset to "Enabled"; custom UI scales lost. However, I believe this is a global setting and fixing it once fixed on everyone else. At least, my 2nd character logged in didn't have the issue. Nice Touch: I saw you can drag around your favorite server. Neat. Question: is it intentional that there's no way to add a new manifest? I get that most other servers aren't running a compatible file structure, but I understand some of them (Sanctuary I think?) do, or will if they keep pace. Is the approach going to be to have those SCoRE-based servers deploy their own versions of the launcher and handle their own signing (I don't know a damn thing about signing anything deeper than an SSL, I'm just assuming this is something the server would have to handle)? Please post bug reports as separate threads in the Homecoming Launcher subforum. That way I can track them and lock the threads once they've been fixed. The UI scale resetting is expected, since it was moved from being a global setting to an account-wide setting, something that wasn't a thing until now. Chat timestamps and recharge timers will likely also have to be reset if they were enabled. As to your question, I'll expand a bit on Tahquitz's answer. It's fairly intentional; one of the design goals of this launcher was to be something that could be trusted out of the box, for an easier setup for new players. That's fundamentally not really compatible with the ability to add manifests from external sources -- even if they were signed, those server operators don't have our signing key and so you'd have to manually trust a different certificate. That enables them to download anything they want, making the whole thing something that we can't guarantee the safety of. While that's probably not ideal for everyone, other servers had already started moving towards using their own launchers and it's only a matter of time before some of them abandon the manifest format in favor of better options. There are now quite a few different ones out there including the new Sunrise* launcher. * Ironically, we had originally been planning to switch to Sunrise as the recommended launcher to replace Tequila, but there was a long period of time where it seemed to have stalled out and died. By the time there was news about it being revived, a significant amount of work had already gone into this project and yielded a lot of features that would be unlikely to be available elsewhere -- package signing, heavily multithreaded and efficient operation, a framework designed with delta patching in mind, automated deployments, etc. 1
Recommended Posts