All Projects → spezifanta → hldm-docker

spezifanta / hldm-docker

Licence: MIT license
Half Life Deatchmatch Server as Docker Image

Programming Languages

Pawn
127 projects
SourcePawn
201 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to hldm-docker

PrimeXT
Modern SDK for Xash3D FWGS engine, uses PhysX for physics, has advanced OpenGL renderer with a lot of features. Crossplatform, supported Windows/Linux. Based on XashXT and Spirit Of Half-Life.
Stars: ✭ 65 (+242.11%)
Mutual labels:  goldsrc, half-life
web-hlmv
WebGL implementation of the Half-Life Model Viewer
Stars: ✭ 90 (+373.68%)
Mutual labels:  goldsrc, half-life
halflife-op4-updated
Half-Life: Opposing Force SDK based on Half-Life Updated, with bug fixes. Check README.md for more information.
Stars: ✭ 57 (+200%)
Mutual labels:  steam, half-life
BS2PC
Half-Life PlayStation 2 map converter
Stars: ✭ 32 (+68.42%)
Mutual labels:  goldsrc, half-life
Half-Life-Resurgence
Recreation & expansion of NPCs, entities, and weapons from the Half-Life series into Garry's Mod!
Stars: ✭ 52 (+173.68%)
Mutual labels:  steam, half-life
SteamDiscoveryQueueBot
A userscript to automatiaclly harvest the Steam Trading Cards from the discovery queue.
Stars: ✭ 39 (+105.26%)
Mutual labels:  steam
Steamworks.Net-MonoGame-Integration
This repo is for everyone who is about to integrate the Steamworks.Net.dll into a MonoGame project. It shows some Steamworks.Net features and how easy it is to integrate it into a MonoGame project.
Stars: ✭ 30 (+57.89%)
Mutual labels:  steam
Facepunch.Steamworks-MonoGame-Integration
Facepunch.Steamworks + MonoGame.Framework = the easiest SteamAPI Integration for your app!
Stars: ✭ 18 (-5.26%)
Mutual labels:  steam
Fixator10-Cogs
Cogs for Red-DiscordBot. Including port of Stevy's V2 leveler.
Stars: ✭ 66 (+247.37%)
Mutual labels:  steam
Launchpad
Step up your non-Steam game! Generate Steam-compatible .exe files to effortlessly launch any game through Steam with overlay support.
Stars: ✭ 25 (+31.58%)
Mutual labels:  steam
steampak
Nicely packed tools to work with Steam APIs
Stars: ✭ 21 (+10.53%)
Mutual labels:  steam
SteamTradeOffersBot
SteamBot fork that provides an easy-to-use Trade Offer library and a true generic inventory interface.
Stars: ✭ 45 (+136.84%)
Mutual labels:  steam
LuckyAPI
A modloader for Luck be a Landlord
Stars: ✭ 12 (-36.84%)
Mutual labels:  steam
Steam-Apps-Management-API
A basic Steam Application Management API and Valve Data Format (VDF) reader/writer.
Stars: ✭ 24 (+26.32%)
Mutual labels:  steam
GeekServer
基于.Netcore的开发效率高,性能强,跨平台,持久化层透明,支持不停服热更新的游戏服务器。Best for your unity game server!
Stars: ✭ 171 (+800%)
Mutual labels:  gameserver
SalienBot
👽 Salien Progress Tracker / C# headless bot for Saliens
Stars: ✭ 15 (-21.05%)
Mutual labels:  steam
protonup
Install and Update Proton-GE
Stars: ✭ 436 (+2194.74%)
Mutual labels:  steam
HLADM
Half-Life: Alyx: Deathmatch
Stars: ✭ 24 (+26.32%)
Mutual labels:  half-life
scam-links
Collection of phishing and malicious links that focuses on Steam and Discord scams.
Stars: ✭ 118 (+521.05%)
Mutual labels:  steam
Achievement-Watcher
A sexy achievement file parser with real-time notification, automatic screenshot and playtime tracking. View every achievements earned on your PC whether it's coming from Steam, a Steam emulator, and more.
Stars: ✭ 331 (+1642.11%)
Mutual labels:  steam

Half-Life

Half-Life Deathmatch Server as Docker image

Probably the fastest and easiest way to set up an old-school Half-Life Deathmatch Dedicated Server (HLDS). You don't need to know anything about Linux or HLDS to start a server. You just need Docker and this image.

Quick Start

Start a new server by running:

docker run -it --rm -d -p27015:27015 -p27015:27015/udp spezifanta/hldm

Change the player slot size, map or rcon_password by running:

docker run -it --rm -d --name hldm -p27015:27015 -p27015:27015/udp spezifanta/hldm +map crossfire +maxplayers 12 +rcon_password SECRET_PASSWORD

Note: Any server config command can be passed by using +. But it has to follow after the image name spezifanta/hldm.

The following default maps are available:

  • boot_camp
  • bounce
  • crossfire
  • datacore
  • frenzy
  • gasworks
  • lambda_bunker
  • rapidcore
  • snark_pit
  • stalkyard
  • subtransit
  • undertow

Advanced

In order to use a custom content like maps or server config file, create a directory named gamedir and place your files there. For an example of a custom server.cfg run:

mkdir gamedir && echo 'echo "Executing custom server.cfg"' > gamedir/server.cfg

Add your settings to the server.cfg and mount the directory as volume by running:

docker run -it --rm -d -p27015:27015 -p27015:27015/udp -v gamedir:/gamedir spezifanta/hldm

You should see Executing custom server.cfg in the server log when starting the server.

About this Docker image

This image uses the latest version of Half-life, which can be installed via SteamCMD and patched versions of:

Patches: https://github.com/spezifanta/metamod-p

But why?

Speed

Setting up a new HLDS from scratch can be a bit tedious because since a few years now SteamCMD will fail to download all the files on the first try. The general workaround is just by retrying. And retrying, and retrying, and... 🔫. A more promising workaround is replacing certain files and forcing a redownload. But even this can fail sometimes. Anyway, just searching for the download link of SteamCMD takes longer than just copying & pasting the Docker run command from above (yes, this assumes you have Docker installed. But why haven't you already?).

Also, there are a couple of server commands, which need tweaking, and plugins, that need to be installed and configured.

So this image saves a lot of time.

Sustainability

Half-Life is more than 20 years old now. Many major community pages and tutorials are offline. I am not saying, that Half-Life will die, but the sites with the step by step instructions, workarounds and plugins might not be around for ever. Furthermore not everybody, who likes playing Half-Life and wants to set up a server, is a Linux geek. You don't need to know anything about Linux or HLDS to start a server by using this image. That's why I build this image.

I want HLDM to live forever!

Other reasons

  • In most cases, you have to wrap hlds_run anyway by using something like screen, tmux, wmux or systemd, because the server will exit as soon as you close your terminal. So why not add Docker to that list.
  • Decoupling. To set up a HLDS you need to install 32bit libraries. On a 64bit system, this is somewhat less than perfect. On a company PC, you might need extra permissions to do so. With Docker on the other hand... I hope you get my point ;).
  • Scalability.

License

MIT

Test Server

Connect to steamcalculator.com:27015 to give it a try.

HLDM Docker
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].