-
-
Notifications
You must be signed in to change notification settings - Fork 44
State of Mac and Windows Builds and Vega Strike
Vega Strike has historically supported all three major platforms: Windows, Mac, and Linux. The current Vega Strike Dev team is committed to making that happen again; however, a confluence of factors has left us for the time being only being able to offer full support for Linux. The below is an overview of the issues and should cover most of them.
When the last full release (0.5.1) was done it was more common that projects would have individual developers build, test, and release software from their own systems, especially in the open source world. For Vega Strike this also meant that some binaries were built and contributed to parts of the repository for other devs to utilize. This also means that developers are needed on each platform to support it.
All of our current dev team is primarily working on Linux. Some of the team has experience with Windows but few are on it enough to help with fixing the issues to get a Windows build not to mention play testing to verify the builds work. Want to help out? We certainly have people that can help guide people through the ropes, troubleshoot issues, etc for those willing to learn.
We have similar issues with Mac OS X support too. Apples move to the M1 ARM processor is going to complicate this a little as well; but we should be able to make a relatively smooth transition to that once build systems are able to support it.
Dependency and dependency management today is far different than it was when the last Vega Strike release was made for Windows (0.5.1). The current Vega Strike Dev team has been at work updating dependencies to bring things up to date, reduce security issues, etc. We're presently stabilizing the system and getting things fully to modern standards. That said, this also means that more time and effort is required to bring the Windows and Mac sides fully up to snuff.
As part of getting things up-to-date the Vega Strike Dev team has also integrated CI/CD systems into the review and release processes. At present we use Travis-CI, which has support for Mac OS X (x86-64) and limited, experimental support for Windows (https://docs.travis-ci.com/user/reference/windows/). To support a platform equally we need to be able to integrate it into the CI/CD pipelines.
We've looked at using Circle-CI, however there are some limitations there that prevent us from using it - between (a) it's more credit based, and (b) for our account level it drops the Mac support, though it adds the Linux support. Since we have limited funds the credit-based mechanics are a bigger issue.
Linux and Mac are easily supportable via the GCC suite. However, for fully native builds it is best to use Visual Studio and build on Windows itself. Vega Strike was last compiled successfully before Visual Studio 2015 was released; there have been numerous changes to the compilers.
Today Vega Strike makes more use of C++11 where previously it used C++0x. This also means a C++11 Visual Studio compiler is required, which leaves us with a target of using Visual Studio 2017 and updating the code for compliance.
We are aiming to support several compilers: clang, gcc, and Visual Studio. While gcc and clang both support Linux and Mac, each platform has its preferred compiler (Linux - gcc, Mac - clang). There are methods of using either gcc or clang for Windows; however, for the best experience and integration using Visual Studio is the best option. Additionally, by using all three major compilers we also raise the bar on the quality of the code as each will raise different issues and by fixing the issues we make the code better for everyone.
We do have issues set aside to track the progress on Windows and Mac: