Difference between revisions of "Building Bitfighter"

From Bitfighter
(OS X)
(Windows)
 
(155 intermediate revisions by 27 users not shown)
Line 1: Line 1:
=Linux=
+
{{TOC right}}
Bitfighter should build on any major flavor of Linux.  It has been tested and is known to work on Ubuntu and Centos. 
+
  
The Bitfighter client depends on Freeglut and the Lua development librariesFreeglut is not needed to build a Bitfighter dedicated server (without client portions).
+
This page is dedicated to getting Bitfighter to build on your system of choiceSome useful links:
 +
*[https://github.com/bitfighter/bitfighter Browse source]
 +
*[https://github.com/bitfighter/bitfighter/commits/master Changelog]
  
Bitfighter must be compiled with the g++ compiler, which is not included in many Linux distributions.  SVN is required to obtain the source code.
+
Also, please see the README.txt included in the source.
  
To get the Bitfighter source, use SVN (check the repository for the latest version):
+
===Source Code===
<pre>
+
Bitfighter has migrated to Git to manage the source code, on the GitHub website.  Here is some useful Git information:
svn co <nowiki>https://zap.svn.sourceforge.net/svnroot/zap/release-013a</nowiki> bitfighter
+
*[https://try.github.io Intro to Git]
</pre>
+
*[https://guides.github.com/activities/hello-world/ Simple GitHub usage]
 +
*[https://guides.github.com/ Other GitHub guides]
  
The game will build out-of-the-box on many distros.  For details of the various build options, please see the top-level Makefile.
+
The Bitfighter code can be found here:
 +
*[https://github.com/bitfighter/bitfighter Source Checkout (Click 'Clone or download')]
  
 +
If you have Git installed, you can easily check out a copy of the source code by running this command in a terminal in a folder of your chosing:
 +
git clone https://github.com/bitfighter/bitfighter.git bitfighter
  
'''Building full game client on a clean install of Ubuntu'''
+
After checking out the code, if you don't want to compile the current development version, you can update to a specific released version.  To see a list of released versions, type in:
These instructions should work on both 32 and 64 bit platforms.
+
git tag
<source lang="bash">
+
sudo apt-get update
+
sudo apt-get install subversion g++ libreadline6-dev
+
sudo apt-get install freeglut-dev libopenal-dev libalut-dev
+
  
# Get the source code
+
We recommend to always chose the latest release as the build instructions for older releases will be different that what is shown here on this wiki page.  Update to a release that you want:
svn co https://zap.svn.sourceforge.net/svnroot/zap/[version] bitfighter
+
git checkout bitfighter-019f
  
# Build the game -- the standard options should work
+
===Windows===
cd bitfighter
+
make
+
  
# Copy required files into exe folder:
+
We have migrated to [CMake http://www.cmake.org/] for Windows builds in version 019 and later (and currently in the most recent development code). Note that we recommend using Visual Studio 2017 (though other versions will work) for the building environment on Windows. To build:
cd exe
+
cp -r ../installer/levels .
+
cp -r ../installer/robots .
+
cp -r ../installer/sfx .
+
cp -r ../installer/screenshots .
+
  
</source>
+
# Install CMake from http://www.cmake.org/
 +
# In a terminal, change to the 'build' directory in the bitfighter source code tree.
 +
# Run the following command (A list of CMake 'generators' for different build environments can be found [here http://www.cmake.org/cmake/help/v3.8/manual/cmake-generators.7.html#manual:cmake-generators(7)]): 
 +
#* '''cmake -G "Visual Studio 17 2022" -A x64 ..'''  # Substitute a different generator if you like
 +
#** To target Windows XP, add the proper toolset to the CMake command: '''cmake -G "Visual Studio 15 2017" -T "v141_xp" ..'''
 +
# Open the resulting Visual Studio solution file
 +
# To run and debug, you may need to right click "Bitfighter" in solution explorer, and choose "Set as StartUp Project"  (the active project is shown in bold text)
 +
# If the game starts, but you can't find the window, try running the debug build from the cmdline (in the exe folder) like this: '''bitfighter_debug.exe -window -winwidth 600 -winpos 4 28'''; then quit the game and it should run fine moving forward.  This is a rare issue.
  
 +
===Linux===
  
'''Building a dedicated server on a typical clean Centos virtual server instance'''
+
====Detailed Instructions====
<source lang="bash">
+
Bitfighter should build on any major flavor of Linux.  It has been tested and is known to work on Ubuntu, LinuxMint, Centos, Fedora, Debian, Mandriva and openSUSE. If you can not get it to work, you can try running it in wine: [http://www.winehq.org/] 
yum -y update
+
yum -y install subversion
+
yum -y install gcc
+
yum -y install gcc-c++
+
yum -y install zip        # For archiving purposes
+
  
yum install -y ncurses-devel    # Needed on some servers
+
Bitfighter has several common, open source dependencies, which can be easily installed:
yum install -y readline-devel    # Needed on some servers
+
  
 +
* sudo apt-get install cmake libphysfs-dev libsdl2-dev libopenal-dev libvorbis-dev libmodplug-dev libspeex-dev
  
# Get the source code
+
You must install these '''and their development headers''' using your distribution's preferred method.  The development headers for these libraries have similar names with a suffix, for example:
svn co https://zap.svn.sourceforge.net/svnroot/zap/[version] bitfighter
+
* libvorbis-dev or vorbis-devel
  
# Build the dedicated server (called bitfighterd)
 
cd bitfighter
 
make dedicated
 
  
# Copy required files into exe folder:
+
You will also need the following to compile:
cd exe
+
* cmake version 3+ (sometimes called cmake3)
cp -r ../installer/levels .
+
* make
cp -r ../installer/robots .
+
* gcc / g++
cp -r ../installer/sfx .
+
cp -r ../installer/screenshots .
+
</source>
+
  
=Windows=
+
Once your dependencies are installed, you can build bitfighter with these steps:
Bitfighter can be built with MS Visual C++ 2010 Express Edition, a free download from Microsoft, and a much-improved IDE over previous versions.
+
# cd build
 +
# cmake ..  [or cmake3 ..]
 +
# make
  
To compile, you'll need to obtain a few files directly from Microsoft -- see the <i>readme.txt</i> in the folder <i>win_include_do_not_distribute</i>.
+
If you want to build a dedicated server (with no GUI), replace the 'make' step above with:
 +
# make bitfighterd
  
=OS X=
+
Next, you'll need to copy the resources to where the executable was built:
Bitfighter builds on OS X using xcode.
+
# cd ../exe
*note you must have developer tools installed to build bitfighter on mac*
+
# cp -r ../resource/* .
*You can get them [Here [http://developer.apple.com/technologies/tools/xcode.html]]
+
  
To get the svn on Mac:
+
And if you wish to run in standalone mode, create a standalone.txt file in the 'exe' folder to trigger this mode:
Open applications > utilities > terminal and paste the following link
+
# touch standalone.txt
[quote]svn co https://zap.svn.sourceforge.net/svnroot/zap/trunk bitfighter[/quote]
+
  
As usual, it will download into your home folder.
+
====Centos Dedicated Server Instructions (Easy!)====
The bitfighter xcode project will be found at :
+
'''Building a dedicated server on a typical clean Centos 5 or 6 virtual server instance'''
 +
<nowiki>
  
*Bitfighter > Zap > bitfighter.xcodeproj
+
# We recommend that you install and run a dedicated bitfighter server with a special
 +
# user account used only for this purpose, that does not have root access.
  
''Do not use the osx project folder, the project has been moved and it is no longer used''
+
# First, create a bitfighter user; you can skip this step if you want to use an
 +
# existing account
 +
useradd bitfighter      # Create the account
 +
passwd bitfighter        # Set the password.  Pick a good one!
  
Before you are able to compile it, you will have to build two frameworks included in the svn.
+
# Do the following as a user that has sudo privileges
  
First, navigate out of zap and into the folder, libtomcrypt.
+
sudo yum update    # system should be up to date
*You will find another xcode file named  libtomcrypt.xcodeproj
+
*To build this framework, open the project and find the target icon. Click open the triangle, right click it, and select "build 'libtomcrypt' "
+
*It will now build the framework you need to use later.
+
*Once its completed, navigate back to the bitfighter root folder
+
  
Now, we need to build the tnl framework.
+
# The following sets up the EPEL repository for extra packages (needed for newer git)
*as usual, navigate through TNL > tnl.xcodeproj
+
# Choose one based on your server architecture
*Once open, find ''external frameworks and...> Linked frameworks > libtomcript.framework"
+
# 32 bit:
*select the framework and click the info button
+
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
xcode has not found framework we just build correctly, so we need to manually choose its path
+
# 64 bit:
*click the choose button
+
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
*Find and open your bitfighter root folder
+
*navigate through Libtomcrypt > Build > Debug > Libtomcrypt.framework and click choose.
+
  
Now that you have your framework in place, you can build tnl.xcodeproj the same way you built libtomcrypt.xcodeproj
+
sudo yum install git gcc gcc-c++ zip ncurses-devel readline-devel patch cmake3 screen
  
Once this is done, you are ready to build bitfighter.xcodeproj.
 
Navigate through Bitfighter > Zap > Bitfighter.xcodeproj
 
  
Open it, and locate the same Linked frameworks folder that you did when you built the tnl framework.
+
# Do the following as the bitfighter user
 +
su bitfighter
 +
cd ~
  
Now we need to locate both libtomcrypt.framework and tnl.framework
+
# Get the source code -- this will create a folder called bitfighter in your
*select the framework, and click info.
+
# current location. This may take a couple of minutes!
*where it says path in red, click choose and locate through
+
git clone https://github.com/bitfighter/bitfighter.git bitfighter
  
Home > bitfighter > libtomcrypt > build > debug > libtomcrypt.framework
+
# Update to the tag/revision you want
for libtomcrypt
+
cd bitfighter
 +
git checkout bitfighter-019f
 +
 
 +
# Build the dedicated server (called bitfighterd)
 +
cd build
 +
cmake3 ..          # Creates a Makefile for the next step; may emit warnings
 +
make bitfighterd
  
and
+
# Copy required files into exe folder (found at the root of the code tree):
Home > bitfighter > tnl > build > debug > tnl.framework
+
cd ../exe
for tnl
+
cp -r ../resource/* .
 +
touch standalone.txt  # Tell bitfighterd to run in portable mode (don't skip this!!)
 +
</nowiki>
  
once you have chosen the correct paths for the frameworks, Click Build and Go at the top.
+
===OS X===
Bitfighter should compile successfully and attempt to launch.
+
+
If you get an error message saying bitfighter crashed upon launch, follow these steps to fix this
+
*Navigate to your bitfighter and through Zap > build > debug > Bitfighter.app
+
*right click it and select "show package contents"
+
*navigate through contents and make a new folder called frameworks IF there isn't one there already.
+
*if there is a folder, open it.
+
*now you'll need to put a few frameworks in it
+
  
These frameworks are mandatory, they MUST be in the folder for bitfighter to work:
+
We have migrated to CMake for OS X as well.  You must have the following software installed (in addition to the bitfighter source code):
 +
# CMake
 +
# XCode (includes development libraries and compilers)
  
*ALUT.framework
+
To build:
*Libtomcrypt.framework
+
# Open a terminal
*tnl.framework
+
# Set up the compatibility environment by running:
*openal.framework
+
#* export MACOSX_DEPLOYMENT_TARGET=10.6
 +
# change into the 'build' directory within the Bitfighter source
 +
# Run CMake:
 +
#* cmake ..
 +
# Build with 'make':
 +
#* make Bitfighter
 +
# The .app will be built in the 'exe' sub-folder of the main bitfighter source directory
  
To find these frameworks, go back to the bitfighter project window in xcode
+
Building with XCode is supported with CMake, but it is untested with Bitfighter. To do so:
Navigate back to where all the frameworks were.
+
# Open a terminal
Right click on a framework and select "reveal in finder"
+
# Set up the compatibility environment by running:
Copy the framework to your clipboard, and paste it in the frameworks folder you just made, or that was already there.
+
#* export MACOSX_DEPLOYMENT_TARGET=10.6
*Repeat these steps for all four frameworks
+
# change into the 'build' directory within the Bitfighter source
*If a framework is already there, skip that one
+
# Run CMake using the Xcode generator:
 +
#* cmake -G Xcode ..
 +
# This will create an Xcode project within the 'build' directory that you can open
  
When you are done with this, you can copy your bitfighter.app game and paste it into the installer folder, located in Bitfighter > Installer, and launch it.
 
*By doing this, you acquire your sfx folder, your levels folder, your screenshots folder, and your robots folder
 
*NOTE Make sure you copy your bitfighter.app game to the installer folder if you intend on making edits to the xcode project.
 
  
Now you have successfully built your own bitfighter game.
+
====Notes====
 +
# Bitfighter user settings are found in $HOME/Library/Application Support/Bitfighter

Latest revision as of 02:37, 9 January 2023

This page is dedicated to getting Bitfighter to build on your system of choice. Some useful links:

Also, please see the README.txt included in the source.

Source Code

Bitfighter has migrated to Git to manage the source code, on the GitHub website. Here is some useful Git information:

The Bitfighter code can be found here:

If you have Git installed, you can easily check out a copy of the source code by running this command in a terminal in a folder of your chosing:

git clone https://github.com/bitfighter/bitfighter.git bitfighter

After checking out the code, if you don't want to compile the current development version, you can update to a specific released version. To see a list of released versions, type in:

git tag

We recommend to always chose the latest release as the build instructions for older releases will be different that what is shown here on this wiki page. Update to a release that you want:

git checkout bitfighter-019f

Windows

We have migrated to [CMake http://www.cmake.org/] for Windows builds in version 019 and later (and currently in the most recent development code). Note that we recommend using Visual Studio 2017 (though other versions will work) for the building environment on Windows. To build:

  1. Install CMake from http://www.cmake.org/
  2. In a terminal, change to the 'build' directory in the bitfighter source code tree.
  3. Run the following command (A list of CMake 'generators' for different build environments can be found [here http://www.cmake.org/cmake/help/v3.8/manual/cmake-generators.7.html#manual:cmake-generators(7)]):
    • cmake -G "Visual Studio 17 2022" -A x64 .. # Substitute a different generator if you like
      • To target Windows XP, add the proper toolset to the CMake command: cmake -G "Visual Studio 15 2017" -T "v141_xp" ..
  4. Open the resulting Visual Studio solution file
  5. To run and debug, you may need to right click "Bitfighter" in solution explorer, and choose "Set as StartUp Project" (the active project is shown in bold text)
  6. If the game starts, but you can't find the window, try running the debug build from the cmdline (in the exe folder) like this: bitfighter_debug.exe -window -winwidth 600 -winpos 4 28; then quit the game and it should run fine moving forward. This is a rare issue.

Linux

Detailed Instructions

Bitfighter should build on any major flavor of Linux. It has been tested and is known to work on Ubuntu, LinuxMint, Centos, Fedora, Debian, Mandriva and openSUSE. If you can not get it to work, you can try running it in wine: [1]

Bitfighter has several common, open source dependencies, which can be easily installed:

  • sudo apt-get install cmake libphysfs-dev libsdl2-dev libopenal-dev libvorbis-dev libmodplug-dev libspeex-dev

You must install these and their development headers using your distribution's preferred method. The development headers for these libraries have similar names with a suffix, for example:

  • libvorbis-dev or vorbis-devel


You will also need the following to compile:

  • cmake version 3+ (sometimes called cmake3)
  • make
  • gcc / g++

Once your dependencies are installed, you can build bitfighter with these steps:

  1. cd build
  2. cmake .. [or cmake3 ..]
  3. make

If you want to build a dedicated server (with no GUI), replace the 'make' step above with:

  1. make bitfighterd

Next, you'll need to copy the resources to where the executable was built:

  1. cd ../exe
  2. cp -r ../resource/* .

And if you wish to run in standalone mode, create a standalone.txt file in the 'exe' folder to trigger this mode:

  1. touch standalone.txt

Centos Dedicated Server Instructions (Easy!)

Building a dedicated server on a typical clean Centos 5 or 6 virtual server instance


# We recommend that you install and run a dedicated bitfighter server with a special 
# user account used only for this purpose, that does not have root access.

# First, create a bitfighter user; you can skip this step if you want to use an 
# existing account
useradd bitfighter       # Create the account
passwd bitfighter        # Set the password.  Pick a good one!

# Do the following as a user that has sudo privileges

sudo yum update    # system should be up to date

# The following sets up the EPEL repository for extra packages (needed for newer git)
# Choose one based on your server architecture
# 32 bit:
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# 64 bit:
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

sudo yum install git gcc gcc-c++ zip ncurses-devel readline-devel patch cmake3 screen


# Do the following as the bitfighter user
su bitfighter
cd ~

# Get the source code -- this will create a folder called bitfighter in your 
# current location.  This may take a couple of minutes!
git clone https://github.com/bitfighter/bitfighter.git bitfighter

# Update to the tag/revision you want
cd bitfighter
git checkout bitfighter-019f

# Build the dedicated server (called bitfighterd)
cd build
cmake3 ..          # Creates a Makefile for the next step; may emit warnings
make bitfighterd

# Copy required files into exe folder (found at the root of the code tree):
cd ../exe
cp -r ../resource/* .
touch standalone.txt   # Tell bitfighterd to run in portable mode (don't skip this!!)

OS X

We have migrated to CMake for OS X as well. You must have the following software installed (in addition to the bitfighter source code):

  1. CMake
  2. XCode (includes development libraries and compilers)

To build:

  1. Open a terminal
  2. Set up the compatibility environment by running:
    • export MACOSX_DEPLOYMENT_TARGET=10.6
  3. change into the 'build' directory within the Bitfighter source
  4. Run CMake:
    • cmake ..
  5. Build with 'make':
    • make Bitfighter
  6. The .app will be built in the 'exe' sub-folder of the main bitfighter source directory

Building with XCode is supported with CMake, but it is untested with Bitfighter. To do so:

  1. Open a terminal
  2. Set up the compatibility environment by running:
    • export MACOSX_DEPLOYMENT_TARGET=10.6
  3. change into the 'build' directory within the Bitfighter source
  4. Run CMake using the Xcode generator:
    • cmake -G Xcode ..
  5. This will create an Xcode project within the 'build' directory that you can open


Notes

  1. Bitfighter user settings are found in $HOME/Library/Application Support/Bitfighter