Tribes: Ascend/An easy guide to setting up the dev client and SDK

From Tribes Wiki
Jump to navigation Jump to search

Setting Up The Tribes: Ascend SDK[1]

By: AvianIsTheTerm


This post is designed to walk you through the process of getting the T:A leaked dev client and Altimor's SDK set up.

Part 1: Setting Up The Dev Client

The first thing you need is, of course, the dev client itself, which can be downloaded here. It's 5.5GB in size, so allow some time for this.

What I would do is make yourself a folder to put all the SDK related stuff in. In my case, I've made the folder E:\TA SDK. I put the zip file the dev client comes in into this folder, then extracted it as E:\TA SDK\TA_Dev.

The next thing you may want to do is make the dev client a bit more comfortable to use. In the dev client you can't actually access menus to change settings, but what you can do is copy your Tribes.ini and Tribesinput.ini from Documents\my games\Tribes Ascend\TribesGame\config into TA_Dev\TribesGame\Config. This means when you open the game it will open using the graphics settings, mouse sensitivity etc. that you use in the official Tribes client.

You now have the dev client functional! However, you can't simply run Tribesascend.exe - you need to apply commandline parameters.

Specifically, the following parameters:

 Path\Tribesascend.exe TrGameMode-Map -seekfreeloading

In order to make this easier, I've written a launcher application, which can be found here. Download this, then extract the zip somewhere (for example, the TA_Dev folder, though it doesn't matter).

Run the launcher application, then click the button that says "Set Path". In the file dialog that opens, navigate to TA_Dev\Binaries\Win32 and select TribesAscend.exe. You should now have the path appear in the text box to the left of that button.

Now the dev client is just about ready! Select a game mode and map. For example, if I want to test out Mabel's Damnation map, I should end up with the launcher appearing like this.

It's worth noting that the list of maps is a hardcoded list of the maps that come with the dev client, so if you add custom maps they won't appear in the list. You can however simply edit the text of the 'Map' textbox to be the correct name of the custom map, and the launcher will allow you to spawn into it.

Click Launch, and after a few seconds Tribes should launch, and send you straight into the map you chose. If it takes you to a login screen, that means that the map name you provided was not valid. Play around with this if you like, but that completes the setup of the development client!

Do note that when you spawn, you aren't on any team - open the console with tilde (the chat box does not work), then type:

 ChangeTeam BloodEagle

to put yourself onto Blood Eagle.

Actually using the dev client, accessing and understanding its console commands, and so on, is a subject for another guide.

Part 2: Setting Up The SDK

Alright, now that you've got a development client set up, you need to set up an environment for the SDK so that you can apply mods et cetera.

The SDK is written in the D programming language (which will be familiar to anyone with C / C++ knowledge), and you need to compile the SDK yourself. That means we need to set up a compiler and an Integrated Development Environment.

First, we'll set up the compiler, DMD (direct link here). On that page, download the second item, labelled " dmd D 2.0 compiler 1-click install for Windows" (direct link. Run the executable, which will itself download and install the D language compiler on your system.

Now, we need to set up an IDE - in this case, Xamarin Studio with Mono-Develop. Head to this page, click on MonoDevelop 4.2.2 Beta Release, and then click on Windows. Assuming you're running a recent version of Windows (certainly Windows 7, 8 or 8.1, probably Vista too), there's a good chance you already have .NET 4.0 installed. So download GTK# from that page (direct link here), and install it.

Then, download Xamarin studio from the link on that page (direct link here). If it asks you about iOS and Android development components in the Xamarin installer, don't bother installing those, since they're irrelevant for our purposes.

Once Xamarin is installed, open it. It may ask you for updates, you can ignore those if you like. Once Xamarin is open, go to Tools > Addin Manager.

In the Addin Manager, go to Gallery. Click the 'Repositories' dropdown, and go to Manage Repositories. Add a new repository, and set its URL to the following:

 http://mono-d.alexanderbothe.com

Confirm that, then press the Refresh button next to the Repositories dropdown (for me, the Refresh button didn't have its icon, making it invisible, but still clickable). Then, in the listbox, select Language Bindings, and click on 'D Language Binding'. In the right hand panel, click Install.

You now have the Xamarin Studio IDE and the D compiler set up!

Now you just need the SDK itself. The SDK can be downloaded from Altimor's page here. On the right hand column of the page, click on 'Download Zip' (direct link to the file is here).

Download this to your TA SDK folder or equivalent, and extract it. Open Xamarin Studio (if it isn't already), and in Xamarin go to File > Open. Navigate to the TASDK-master folder, and load TribesAscendSDK.sln (NOT TribesAscendSDK-VS.sln). The solution should load.

Now you need to build the SDK. If you simply go to Build > Build All, you'll probably get reference errors occuring.

Instead, right click on the project called 'UnrealScript' (which should have a purple folder icon next to it), right click it and say Build. It should build with no errors.

Then right click on the TribesAscendSDK project, and say Build. Again, this should build successfully.

Congratulations, you now have a built version of the SDK, with Altimor's 'testmod' mod compiled into it.

Part 3: Injecting the SDK

The SDK does come with an injector, but I've been unable to make this work.

Instead, I simply use Winject to achieve the same goal. Winject can be downloaded online quite easily. I'm not going to provide a link, since this program can also be used to inject hacks into the official Tribes client. However, it's easily found if you had, say, a site with which you could search for text matches in other websites. If you've ever used 0 Ping Colt or MagicChain, then you already have Winject (you can use the copy provided with those injects).

IMPORTANT: Having Winject running can get you banned from Tribes in HiRez's official client. Make sure you always run Winject as administrator, and don't leave it open when running the official Tribes client. To be absolutely safe, whenever I'm planning on injecting into the dev client, I go into Services (in task manager) and disable HiPatchService (HiRez's service which runs even when Tribes isn't running). You'll need to re-enable this to play the official client.

Now, you need to run the dev client, using the dev client launcher. Spawn yourself into a map of your choice. Make sure you're running Tribes in Windowed mode - for me, the SDK crashes if you try to use it in Fullscreen mode (ingame, you can switch between windowed and fullscreen with the F11 key).

Now, run Winject. Set the Target Process to TribesAscend.exe. Press the button next to the textbox for "DLL to Inject", and navigate to your TASDK-master\TribesAscendSDK\bin\Debug folder, and select TribesAscendSDK.dll.

Now, press the Inject button on Winject. You should see a messagebox pop up saying "Process Attach", and a sound should play. You can now exit Winject.

Alt-tab back to your Tribes window. Now, K out in the game and respawn. Firstly, you should notice that your respawn time is 2 seconds rather than 5. Secondly, once you respawn, you should find that you now have a chaingun, light spinfusor, grenade launcher, plasma gun and mortar (activated with the 1,2,3,4,5 keys).

If that's worked for you, then the SDK has successfully been injected! The five weapons and reduced respawn time are caused by the Testmod.d file which is included in the SDK. If you actually want to create your own mods, then you'll need an understanding of the D language, but if you're technically competent you shouldn't have much trouble playing around and editing things at least.

If the game crashed when you pressed 'Inject' in Winject, then it's possible your TribesAscendSDK.dll didn't compile properly. I've had this happen a few times, and to fix it I had to delete my entire TASDK-master folder, re-extract it from its zip, then freshly compile it in Xamarin.

If the game crashes when you're about to respawn, ensure that you aren't running the dev client in fullscreen mode - this appears to cause this glitch.

If you get other errors, and you can't solve it yourself, message /u/Altimor - as the developer, he'll have the best chance of being able to help you.

Part 4: Wrap-up

So yeah, that's a basic guide to getting this set up. I wrote this as there was a lack of documentation available - I had to figure this out through trial and error (and through messaging Altimor for help), and subsequently I've gone through the process a couple of times with people in mumble.

Hopefully this guide is relatively clear, and makes it relatively easy for us all to get started with this new SDK!

References