tangobattle / tango

Play Mega Man Battle Network online with rollback netcode!
https://tango.n1gp.net
GNU Affero General Public License v3.0
85 stars 15 forks source link

Build Tango 4 for Linux x86_64 #136

Closed ubergeek77 closed 1 year ago

ubergeek77 commented 1 year ago

This PR adds a GitHub Workflow that builds Tango 4 for Linux x86_64 as an AppImage.

Note: Unlike the Windows and Mac versions of Tango, the Linux version does not have an "installer," and therefore runs in place. Since updater.rs is configured to replace the .AppImage, I decided to set the Workflow property asset_name to simply:

Tango-x86_64-linux.AppImage

Without a version in the filename. This is to avoid situations where the version in the .AppImage filename does not match what is actually running after an update. I figure the version number displayed on the release page will be enough to avoid confusion when people are downloading Tango.

The AppImage is not multiarch, however I wrote build.sh to be very reusable if you ever wanted to build for aarch64. The only additional work that would need to be done is setting up a sysroot for the cross compilation. After that, you simply swap out two variables to build for a different architecture. If an aarch64 build is ever in demand, maybe we can look at that.

This was tested in an Ubuntu VM and on a Steam Deck, and everything was confirmed working on both - singleplayer, netplay, replays, and exporting.

It also looks and runs extremely well on a Steam Deck in Game Mode, especially with the new single-window format 👌