Updating again April 20, 2021 since VS 2019 is now required.
First, you'll need Visual Studio Community 2019, available for free here:
https://www.visualstudio.com/downloads/
Make sure you select "Desktop Development with C++" and, in the right column, "MSVC v142 ... ".
You don't need any other optional components, but the Just-In-Time debugger takes up negligible space and could be useful for debugging crashes. One item in the build, TransPackage, requires Universal Windows Platform Development and an older SDK, but this takes up an additional 16 GB of disk space and isn't necessary to successfully build the game, at least for me.
You can adjust the installed components by going to Tools -> Get Tools and Features...
Then follow the README:
Also see
Getting started with git and github.
I had to run the installer in compatibility mode for Windows 7, but otherwise had no trouble.
Use Microsoft Visual Studio 2010 2019 or later. Load Transcendence/Transcendence.sln,
which is the Transcendence solution file. The following warnings, if shown under
Output from Solution, may be safely ignored:
<root dir>\Alchemy\zlib-1.2.7\contrib\vstudio\vc10\zlibstat.vcxproj :
warning : Platform 'Itanium' referenced in the project file 'zlibstat'
cannot be found.
<root dir>\TransCore\TransCore.vcxproj : error : Project
"...\TransCore\TransCore.vcxproj" could not be found.
Select the Transcendence project as the StartUp project. Ensure that the correct
locations of the DirectX SDK Include and Lib folders are specified for the
Transcendence project (under the Transcendence solution) by bringing up the
project's Properties page, and checking the following property sets:
Configuration Properties > VC++ Directories > General > Include Directories
Configuration Properties > VC++ Directories > General > Library Directories
Always point the Library Directories variable to the \Lib\x86 folder of the SDK.
Build the solution. Executables will be placed in the Transcendence/Game
directory.
Let's not get ahead of ourselves here.
For security reasons the source code does not include certain files to
communicate with the Hexarc arcology (the cloud service). The code will compile
without it, however, as long as you add CHexarcServiceStub.cpp to the build.
In Visual Studio, find the CHexarcServiceStub.cpp file in the TSUI project under
the \Source Files\CloudInterface Files folder. Bring up the Properties page for
the file and under General properties set "Exclude from Build" to "No".
Similarly, you also have to set CHexarcService.cpp to be excluded.
Now you should be able to build the game engine.
Note that changing the files included in your build will change the config file Mammoth/TSUI/TSUI.vcxproj. Assuming you also want to be able to submit pull requests, you should avoid pushing this change to your remote so it doesn't show up in them. There are a few ways to do this:
1. You can get git to ignore local changes to this file without changing your remote with the command:
Code: Select all
git update-index --assume-unchanged Mammoth/TSUI/TSUI.vcxproj
You can put this in a .bat file like this:
Code: Select all
cd path-to-your-repository
call git update-index --assume-unchanged Mammoth/TSUI/TSUI.vcxproj
This may occasionally make git unhappy when you try to pull or rebase. If it does, you can undo it with a similar command or .bat file, replacing --assume-unchanged with --no-assume-unchanged. Then do what you need to do, change your build configuration back if necessary, and run the --assume-unchanged command again.
2. Always avoid including this file when pushing to your remote. When rebasing, stash your changes first, then restore them after.
3. Delete your changes to this file before pushing. Then change your build configuration again before building.
4. Change this file on a branch. Use that branch to build, but other branches to submit pull requests.