For those of us who remember playing games on dos, steam[http://store.steampowered.com/] is a nice program for purchasing, managing, and playing video games. I grew up playing LAN games because dial-up just wasn't fast enough for online gaming, and it is way more fun to play games in the same room with your friends rather than random people online.

Things have changed since those days. Internet speeds and just fine for online gaming, but I still prefer LAN games because, again, it is way more fun to game with your friends in the same room. So, I enjoy hosting LAN games, and I found setting up a local server a fun technical challenge, and If you are interested in doing the same, this should help you do it.

The cool things with steam servers is you don't even need an account. You can create an anonymous server that is not affiliated with you.

Step 1 - Get a free operating system

Get a Debain based Linux computer. I am using an older samsung laptop (6 GB, i5 processor) running mint-cinnamon

Step 2 - Install dependent software

Get to your linux terminal and install the required software by running this command sudo apt-get install gdb mailutils postfix lib32gcc1

Step 3 - Create server user account

Create a user for the server admin, assign a password, and login to tf2server account

adduser tf2server
passwd tf2server
su tf2server

Step 4 - Install steam server software

There are multiple ways of doing this. One is to follow the steam installation or another tutorial or another tutorial, which is what I recommend and used.

This will download the script, make it executable, and execute the installation

wget http://danielgibbs.co.uk/dl/tf2server
chmod +x tf2server
./tf2server install

Step 5 - Start the server

Go to the tf2server home directory cd ~ which will take you to /home/tf2server/ and use these commands to manage your server

./tf2server start
./tf2server stop
./tf2server restart
./tf2server details

Type ./tf2server start to start the server

Step 6 - Connect via LAN

if you run ./tf2server details you will see a bunch of output

Team Fortress 2 Server Details
================================================================================================================================================
Server name:    tf2 server 1
Server IP:      192.168.1.196:27015
RCON password:  tf2server
Status:         ONLINE

Command-line Parameters
================================================================================================================================================
./srcds_run -game tf -strictportbind -ip 192.168.1.196 -port 27015 +clientport 27005 +tv_port 27020 -tickrate  +map pl_goldrush +servercfgfile tf2-server.cfg -maxplayers  16

what we want here is the local ip and port Server IP: 192.168.1.196:27015

Now we can connect locally by launching Team Fortress 2, hit ~ to drop down the console and type connect 192.168.1.196:27015 and that should connect you to the server locally

Step 7 - Set up a Public Server

If you want to make this a public server, we need to do a few more things. First, I needed to remove the -strictportbind portion on the command-line properties in the file located in /tf2server/tf2server file so that an unused port is chosen, so when you restart the tf2server, it may choose a different port to allow for online access.

After that, I access my default router IP via a web browser with 192.168.1.1 and set up a port forward on the server IP and port

Now, restart the tf2server with ./tf2server restart and go to the console ./tf2server console and look at some of the output. Note, this script uses tmux, which allows us to log out of the server and keep the server running. Here, you can run all the comamnds to manage the server

You should see somewhere in the top the public ip address of the server computer

Connection to Steam servers successful.
   Public IP is 12.34.56.78.

and

Network: IP 192.168.1.196, mode MP, dedicated Yes, ports 27015 SV / 27005 CL

Step 8 - Connect to your public server

Now we have all the information we need to create public server, the public IP and the SV port it selected. Finally launch Steam and do

Severs -> Favorites -> Add a Server -> enter 12.34.56.78:27015

Now you have a public server!

if you want to play without people, add some bots. Go to your console via ./tf2server console and add some botstf_bot_add 4 change the level to changelevel pl_goldrush

I have found many maps don't work well with bots. The maps I have listed below seemed to work well.

Server Customization

To customize your server there are a few files you should edit. Make sure you make a backup of each in case it gets messed up

The configuration file updates the server every time a new map loads. Here is mine. /home/tf2server/serverfiles/tf/cfg/tf2-server.cfg

mp_disable_respawn_times prednisone 0
tf_bot_quota 13
tf_bot_quota_mode "fill"
tf_bot_difficulty 1
mp_timelimit 15
mp_maxrounds 5
mp_winlimit
sv_cheats 0
tf_bot_melee_only 0

/home/tf2server/serverfiles/tf/cfg/mapcycle_default.txt The mapcycle file tells the server which map to go to next. if you use changelevel pl_barnblitz, it will begin the cycle there

pl_badwater
pl_goldrush
pl_upward
pl_barnblitz
pl_hoodoo_final
koth_viaduct
koth_nucleus
koth_harvest_final
koth_lakeside_final
koth_badlands
koth_king
plr_pipeline
plr_hightower
pl_thundermountain
pl_frontier_final

If you want to use your xbox controller, from the client computer access the console via ~ and run exec 260controller

Enjoy!

Here are some links that I found helpful
http://wiki.teamfortress.com/wiki/Linux_dedicated_server
http://danielgibbs.co.uk/lgsm/tf2server/
http://stevenbenner.com/2010/11/how-to-set-up-a-team-fortress-2-dedicated-server-on-ubuntu/
http://developer.valvesoftware.com/wiki/List_of_TF2_console_commands_and_variables
http://developer.valvesoftware.com/wiki/Console_Command_List
http://steamcommunity.com/sharedfiles/filedetails/?id=250332112
http://wiki.teamfortress.com/wiki/Linux_dedicated_server
http://wiki.teamfortress.com/wiki/Bots


Comments

comments powered by Disqus