Get yourself ready to test development versions of AC
#1
In the near future, the network protocol of the development version of AC will become incompatible with the current release version. This happens in every development cycle (before a new version gets released) and means, that to test multiplayer functionality, one needs both a very recent (and matching) client and server - which usually both have to be compiled by yourself.

Soooooo...

If you want to help to develop and test the next version of AC, you should get yourself a "build environment". The main parts of that are a compiler and a git client. With it, you can get the newest code versions (from the official AC repository and from any forked version) and compile and test them yourself. If you are capable of coding, you will also have everything at hand, that you need to contribute code to the project.

What you need:

* a compiler (or better, a full IDE with editor, compiler and debugger)
* some development libraries, depending on your platform
* a git client and a clone of the official AC repository (from github)

You only need a github account, if you want to contribute code directly. If you only want to help testing, you don't need to sign up on github. You certainly don't need to create a fork of AC on github unless you want to contribute a lot of code. Single commits can easily be contributed by email or IRC+filehoster.

If you need help: there should be several tutorials around somewhere from our SVN days on sourceforge. Those still apply, except that we use git (and github) now. If you need more help: asking on IRC is probably the best way. We will put together more documentation as we go (for example: what to do, once you have compiler + git client installed).

It would be nice, if the first few who set up their build environment would document the required steps and post them here...

PS: please be aware, that off-topic posts will be deleted here. We have plenty of other threads, if you just want to bitch about stuff.
PPS: I'll make a second thread to discuss the actual testing of new features - this thread is only about the setup of build environments.
Thanks given by:
#2
My Windows build environment:
Win 7 Home Premium 64-bit
Visual Studio 2012
GitHub for Windows (needs GitHub account)

Using the provided vcpp solution with some tweaks works.
Thanks given by:
#3
Build environment:
Windows 7 Home Premium x64
Codeblocks 13.12
GitHub for Windows


Quick how-to for Windows:

1. Get the GitHub client for windows
I have signed up, since all you have to give away is one email adress. Do not know whether it works without signing up actually:
Link: https://windows.github.com/

2. Clone project on your local PC
I'm still not sure whether I did this completely correct. Anyone may please give advice here. Thanks in advance. However, here's what I've done so far:
- Start GitHub.exe
- Open your browser and go to https://github.com/assaultcube/AC
- On that page change the menu item branch from master to next (not sure about this one)
- Hit the button clone in desktop which can be found on the right side
- You will now have to select GitHub from a menu
- Next (if I remember correctly) you will have to set up a local repository, speak where the stuff will be saved to your local drive
- It should now start downloading the files

3. Get Code:Blocks (freeware)

There are 3 different builds, if you don't know better you may follow the instructions given below the download-links and use the codeblocks-13.12mingw-setup.
Link: http://www.codeblocks.org/downloads/binaries#windows

4. Start the Code:Blocks-project

- Go into the repository you've set up when cloning the project.
- Open the following file using CodeBlocks.exe as standard application:
[your project path here]\AC\source\codeblocks\AssaultCube.cbp
- Now Code:Blocks will start and load the project.

5. Compile cube.exe
- Hit the build button (yellow gear-wheel)
- Now you should see some information about the compiling process while it's running
- Be patient, the build took about 1.5 minutes for me and may take even longer on other systems.

6. Start AssaultCube

- Go into the repository you've set up when cloning the project.
- Now click on assaultcube.bat
- If everything went right, the game should start


****************
Remarks:
- Visual Studio 2012 will spit out a whole lot of issues I can not solve myself, that's why I tried out Code:Blocks which seems to work perfectly fine.
- I don't quite understand whether I've got the master or the next files on my system. How can I find out?
Thanks given by:
#4
(24 Nov 14, 11:17PM)Mr.Floppy Wrote: - I don't quite understand whether I've got the master or the next files on my system. How can I find out?

The way I understand it, GitHub for windows updates the files to be whatever branch you last hit "sync" on, instead of using separate folders for each. Pick a branch, hit sync, that's what you have. You're better off using a regular git client if you want to have separate folders for each branch. I could be completely wrong, though.

If someone's looking to compile it in Visual Studio instead of Code::Blocks for whatever reason, here are the changes I had to make to the vcpp project file to get it to compile (accessed by right-clicking the project from within VS and hitting "Properties"):

Under Configuration Properties -> General:
1. Change the output directory to be "..\..\bin_win32\"
2. Change the intermediate directory to be something you like. I chose "..\..\obj_win32\"
3. Change the target name to be "ac_client"

Under Configuration Properties -> Linker -> Advanced:
1. Set "Image has Safe Exception Handlers" to "No (/SAFESEH:NO)"

Under Configuration Properties -> Linker -> Input:
1. Under "Ignore Specific Default Libraries", add "LIBCMT"

Hit build and you should be good to go. I made all these changes just to the "Debug" configuration since that was all I was going to use for testing.
Thanks given by:
#5
Something like this:


Code:
pacman -Syu clang vim git
cd
git clone https://github.com/assaultcube/AC.git AC_Testing
cd ./AC_Testing/source/src
git checkout -b next
make install
cd ../..
./bin_unix/native_client
Thanks given by:
#6
Build environment:
Windows 7 Home Premium x64
Codeblocks 13.12
GitHub for Windows

Think I have everything working now, I followed all of Mr.Floppy's steps so there should be np.
Thanks given by:
#7
To install from scratch, here's everything you may need on Mint 17:

To install git, install the packages git, gitk and git-gui. You may also want "meld" as a merge tool (though I'd prefer diffuse or sometimes tkdiff).

As a development environment, you can try Code::Blocks (packages codeblocks and codeblocks-contrib). Make sure, you enable the ThreadSearch-plugin, since it would be crazy, to work on over 80 source files without a proper search tool.

To compile, you'll need several dev packages and a compiler: build-essential libsdl1.2-dev libsdl-image1.2-dev libopenal-dev libvorbis-dev libcurl4-gnutls-dev. With build-essential, you'll get GNU C++, but the AC makefile is preset on clang. If you want to stick with gcc, you need to add "CXX=g++" to your make commands. You can also just create a file "Makefile_local" with the line "CXX=g++". No matter, if you intend to compile AC with clang, you still need to install gcc, since the enet library will use gcc.

To use clang as compiler, just install the package clang.

In "ubuntu noob notation":
Code:
sudo apt-get install git gitk git-gui meld
sudo apt-get install codeblocks codeblocks-contrib
sudo apt-get install build-essential libsdl-image1.2-dev libopenal-dev libvorbis-dev
sudo apt-get install clang

(EDIT: only the master branch still requires libcurl)

To clone the repository from github (let's use the path names from Mousikos above):
Code:
cd
git clone https://github.com/assaultcube/AC.git AC_Testing
cd ./AC_Testing/source/src
git checkout -b next origin/next

If you want to see commits from forks of the main AC repository, add them as "remotes":
Code:
# for example:
git remote add grenadier https://github.com/aurhat/AC.git
git remote add stef https://github.com/ac-stef/AC.git
git fetch --all  # repeat this fetch to get all new commits
For more forks, check https://github.com/assaultcube/AC/network/members (careful - if you add them all, it may get messy)

To browse through all commits in the repository, use gitk. You can also use it to checkout various branches.

To compile and test (pick a compiler and a binary type: regular or debug):
Code:
cd
cd ./AC_Testing/source/src
make CXX=g++ clean install              # compile with gcc
make clean install                      # compile with clang
make ACDEBUG=yes CXX=g++ clean install  # compile debug binaries with gcc
make ACDEBUG=yes clean install          # compile debug binaries with clang
../../assaultcube.sh                    # start the game

EDIT: I changed the libcurl version to the one, that travis uses

Furthermore, I consider that trickjumps must be removed
Thanks given by:
#8
My OS X build environment:

OS X Yosemite (10.10.2)
Xcode 6.2
GitHub for Mac

How To Compile Assault Cube 'next' for Mac.

Step 1
Download and install the latest copy of XCode, which is free software provided by Apple, from the Mac App Store at https://itunes.apple.com/gb/app/xcode/id497799835. At the time of writing, Xcode is a hefty download weighing in at 2.58GB. Download it, and while waiting for it to download, grab a coffee or watch some TV.

http://i.imgur.com/bQezycJ.png

Step 2
Warning: Do not download the ZIP! It will not work!

With Xcode downloaded and installed on your computer, we now need to clone the AssaultCube project. Install Github for Mac from http://mac.github.com/ . Then, navigate to the AssaultCube repo at https://github.com/assaultcube/AC and click "Clone in Desktop" from the right hand sidebar.

http://i.imgur.com/jAaLqmI.png

Step 3
Once Github for Mac has finished cloning, change the branch you want to use like I have done in my screenshot. Sync it and then browse to the ‘AC’ folder destination you have cloned to.

http://i.imgur.com/cvkTvaw.png

Step 4
Open the ‘AC’ folder and browse through the files (AC > source > xcode) until you find the XCode project file called 'assaultcube.xcodeproj'. Double click this file and it should open in Xcode.

http://i.imgur.com/F9EOykF.jpg

Step 5
With Xcode open, click on the assault cube project file in the left hand side bar. This will allow you to change some settings within the project file that will enable you to compile Assault Cube. Go to Build Settings and under Architectures change Base SDK to 10.10 (latest) and change Build Active Architecture Only - Release Deployment to ‘yes’. 

http://i.imgur.com/2oOo0ca.png

Step 6
In the upper left hand corner you should see 'assaultcube' and My Mac (64-bit). First, click where it says 'assaultcube' as shown in my screenshot, then change the build configuration to release-deployment. 

http://i.imgur.com/fcFmGYY.png
http://i.imgur.com/xnlSp5J.png

Step 7
Now we are at the building stage. There is a 'play' button in the upper left hand corner of Xcode, this will build AC. Hit it. Enable ‘Developer Mode’ as you wish. 

http://i.imgur.com/6wXtKAq.png

Step 8
At this point Xcode will state ‘Build failed’. Don’t worry, this is normal. In the left hand side bar Xcode will show you a lot of warning symbols and issues that have come up. The only ones that matter here are the last, the Semantic Issues in glext.h. Please comment out (//) any red errors in glext.h ONLY, like I have done in the screenshots below. If you are seeing any Mach-O errors at this point you may have done something wrong, please go back a few steps and make sure you are building correctly. You should only have to comment out 3 lines in total. 

http://i.imgur.com/uu8KHiz.png
http://i.imgur.com/YXWcM2E.png


Step 9
Again, hit the play button in the upper left hand corner of Xcode, this will build AC. Congratulations! Build Succeeded! At this point your screen will go black for a moment and Xcode will probably give you an output that it could not launch AssaultCube.
This is normal. Go to step 10.

Step 10
Open finder. Go to Library > Developer > Xcode > DerivedData > assaultcube-cmhdicjxajxouscwdfdbwigmrihz > Build > Products > Release-Deployment > assaultcube.dmg

You should copy the created assaultcube.app in this dmg to somewhere where it will not overwrite your regular assault cube installation. Remember, you are testing a future version of Assault Cube and this release is incompatible with the ‘current’ Assault Cube version. It will however use all your current settings etc, stored in the Library > Application Support folder, like your standard install.

http://i.imgur.com/FtP9eN6.jpg

Want the latest updates that have been committed to this branch? Just hit 'Sync' in your GitHub app, load up Xcode and hit the compile button again!
Thanks given by: