El hecho que nos gusten los ambientes GNU/Linux no nos exime a algunos de seguir con los vicios heredados de las andanzas por Windows.
El otro día estábamos buscando la forma de poder jugar Defense of the Ancient (DOTA) con el mayor numero de personas sin tenerlas a todas bajo la misma LAN así que me di a la tarea de aprender a montar un BattleNet (a.k.a BNet) en mi servidor Debian de manera que se pudiera acceder desde cualquier parte de la provincia y así resolver el problema de la falta de jugadores.
Todos conocen la aplicación PVPGN de cuando usábamos Windows pues bien este será un tutorial de como montar nuestro propio servidor PVPGN en ambiente GNU/Linux.
Breve introducción
PVPGN (del ingles Player Versus Player Gaming Network) es una aplicación que permite crear lo que se llama en algunos lugares un “servidor privado” que permite conectar jugadores de Diablo, Warcraft y Starcraft la primera vez que lo vi fue por allá por el 2005 mas o menos y cuando aquello lo usábamos para jugar Diablo pero hoy en dia es muy común ver en foros y sitios cubanos las “noticias” de que montaron un Bnet en tal lugar.
Instalando en ambiente GNU/Linux
PVPGN está disponible en los repositorios de la mayoría de las distribuciones mas populares como es el caso de Debian por lo que para instalar el servidor como tal solo necesitamos abrir una consola y escribir
sudo aptitude install pvpgn
Una vez instalado vamos a necesitar un paquete adicional llamado pvpgn-support:
Cuando descarguen el archivo abrimos la terminal y ponemos sudo pvpgn-support -l /RUTA_DEL_PAQUETE (me refiero al pvpgn-support-1.0.tar.gz) por ejemplo
sudo pvpgn-support-installer -l /home/neji/Descargas/pvpgn-support-1.0.tar.gz
Configurando nuestro servidor
A estas alturas ya tenemos instalado el servidor pero todavía no debe ser visible puesto que no esta configurado del todo así que ahora pasaremos a ese punto.
Como la mayoría de las aplicaciones los archivos de configuración están alojados en el directorio /etc así que editamos el archivo:
sudo nano /etc/pvpgn/bnet.conf
En esa configuración encontraremos muchas opciones pero yo personalmente no las uso todas así que les voy a poner las que uso:
1 – La ruta donde se guardarán los progresos de los jugadores:
storage_path = file:mode=plain;dir=/var/lib/pvpgn/files/users;clan=/var/lib/pvpgn/files/clans;team=/var/lib/pvpgn/files/teams;default=/etc/pvpgn/bnetd_default_user.plain
2- Los ficheros que utiliza pvpgn para registrar las cosas:
filedir = /var/lib/pvpgn/files reportdir = /var/lib/pvpgn/files/reports chanlogdir = /var/lib/pvpgn/files/chanlogs logfile = /var/lib/pvpgn/files/bnetd.log maildir = /var/lib/pvpgn/files/bnmail ladderdir = /var/lib/pvpgn/files/ladders statusdir = /var/lib/pvpgn/files/status pidfile = /var/lib/pvpgn/files/bnetd.pid motdfile = /etc/pvpgn/bnmotd.txt issuefile = /etc/pvpgn/bnissue.txt channelfile = /etc/pvpgn/channel.conf newsfile = /etc/pvpgn/news.txt adfile = /etc/pvpgn/ad.conf topicfile = /etc/pvpgn/topics.conf ipbanfile = /etc/pvpgn/bnban.conf helpfile = /etc/pvpgn/bnhelp.conf mpqfile = /etc/pvpgn/autoupdate.conf realmfile = /etc/pvpgn/realm.conf mapsfile = /etc/pvpgn/bnmaps.conf xplevelfile = /etc/pvpgn/bnxplevel.conf xpcalcfile = /etc/pvpgn/bnxpcalc.conf aliasfile = /etc/pvpgn/bnalias.conf DBlayoutfile = /etc/pvpgn/sql_DB_layout.conf supportfile = /etc/pvpgn/supportfile.conf transfile = /etc/pvpgn/address_translation.conf fortunecmd = /usr/games/fortune tournament_file = /etc/pvpgn/tournament.conf versioncheck_file = /etc/pvpgn/versioncheck.conf anongame_infos_file = /etc/pvpgn/anongame_infos.conf command_groups_file = /etc/pvpgn/command_groups.conf
Estos ficheros son ficheros de texto que nos permiten modificar cosas como la configuración del canal de Chat del servidor, el mensaje del bienvenida etc.
3- Configuraciones internas del propio servidor
loglevels = fatal d2cs_version = 0 allow_d2cs_setname = true iconfile = "icons.bni" war3_iconfile = "icons-WAR3.bni" star_iconfile = "icons_STAR.bni" tosfile = "tos.txt" allowed_clients = all skip_versioncheck = false allow_bad_version = false allow_unknown_version = true version_exeinfo_match = none version_exeinfo_maxdiff = 0 usersync = 300 userflush = 1200 userstep = 100 latency = 600 nullmsg = 120 shutdown_delay = 300 shutdown_decr = 60 new_accounts = false kick_old_login = true ask_new_channel = true report_all_games = true report_diablo_games = true hide_pass_games = true hide_started_games = false hide_temp_channels = true extra_commands = true disc_is_loss = true ladder_games = "topvbot, melee, ffa, oneonone" ladder_prefix = "ldr_" enable_conn_all = true hide_addr = false chanlog = false quota = yes quota_lines = 5 # must be between 1 and 100 lines quota_time = 5 # must be between 1 and 60 seconds quota_wrapline = 40 # must be between 1 to 256 chars quota_maxline = 200 # must be between 1 to 256 chars quota_dobae = 10 # must be between 1 and 100 lines mail_support = true mail_quota = 5 log_notice = "*** Please note this channel is logged! ***" passfail_count = 0 passfail_bantime = 300 maxusers_per_channel = 0 savebyname = true sync_on_logoff = true hashtable_size = 61 account_allowed_symbols = "-_[]§@" max_friends = 5 track = 60 trackaddrs = "localhost:9999" servername = "Bnet Abreus" max_connections = 1000 max_concurrent_logins = 0 use_keepalive = false max_conns_per_IP = 0 servaddrs = ":" # default interface (all) and default port (6112) w3routeaddr = "0.0.0.0:6200" initkill_timer = 120 woltimezone = "-8" wollongitude = "36.1083" wollatitude = "-115.0582" war3_ladder_update_secs = 300 XML_output_ladder = true output_update_secs = 60 clan_newer_time = 0 clan_max_members = 50 clan_channel_default_private = 0
En estas configuraciones nosotros definimos aspectos del servidor referentes a cosas como el nombre que tendra el servidor, la cantidad de mensajes permitidos entre usuarios, la cantidad de amigos, los puertos que se usaran en el servidor, la cantidad de conexiones entrantes permitidas etc.
Como el Bnet permite moderación de usuarios etc nosotros podemos definir una cuenta que seria algo como el root o administrador del Bnet para eso podemos modificar el archivo /var/lib/pvpgn/files/users/»usuario» (usuario es el nombre de la cuenta) y dentro de este agregar esto:
"BNET\\acct\\userid"="1" "BNET\\auth\\admin"="true" "BNET\\auth\\command_groups"="255"
Luego que terminemos de configurar nuestro servidor ya podemos reiniciar el servicio de bnet:
invoke.rc.d pvpgn restart
Y listo… ya tenemos nuestro Bnet para invitar a nuestros amigos y pasar un rato jugando DOTA o cualquier otra cosa.
19 comentarios, deja el tuyo
Oh genial!! Muchisimas gracias! Yo y mi gran vicio de Warcraft te lo agradecemos :3
+1
Impresionante.
A ver si también me pongo a investigar para poder armar un server en LAN para así jugar Gunbound en LAN sin internet (ya que el servicio de Gunbound.ca usa la versión Thor’s Hammer y sus servidores usan Debian).
Genial.
Es una tarea pendiente que he tratado de hacer y fallé en alguna ocasión. Aprovecho para decirles que siempre me ha gustado el juego Diablo2LoD. Si alguien quiere y se arma un servidor me prendo para jugar.
Una pregunta, cómo es el tema de la ip a la que se tienen que conectar los que quieran jugar desde afuera? Mi ISP me provee de IP dinámica. No habrá problema si le paso siempre mi IP correcta por más que ésta sea dinámica? Alguien tiene idea si se puede evitar esto último creando algún tipo de IP fija?
Muchas gracias y para mi, un fanático del Diablo, un post muy interesante.
Gunbound cuanto tiempo que no escuchaba de este juego. Acaso tiene version para linux?
Pues no hay versión para Linux, pero se está portando el juego para Facebook en respuesta a DragonBound. Ahora, de que usen HTML5 al igual que DragonBound lo veo dudoso, pero la verdad es que Softnyx no le interesa ni mejorar el actual GunBound ni menos portarlo hacia Linux.
A propósito, el nombre de usuario «neji» estaba de casualidad en la imagen o está relacionado con vos, elav?
Nop. Es el nick del autor original del post 😉
Vaya… no me diste tiempo a ponerlo de alla para acá… pero bueno al final lo importante ya está hecho. Así que ahora veamos que hacen los demas viciosos xD
Y aquí está tu post (y de paso, les aviso que GUTL ha vuelto a la vida) >> http://gutl.jovenclub.cu/tips-para-jugadores-montar-un-servidor-de-bnet-en-debian/
Instalando este servidor, puedo montar un ET (Enemy Territory)?
Una pregunta. Si es estúpida díganlo.. Pero más estúpido es quien no pregunta.
¿Para jugar Warcraft 3 o StartCraft u otros, los juegan sobre wine, no?
Bueno… yo particularmente uso una version antigua de Crossover y una archivo llamado W3l.exe (un lanzador de W3 Frozen Throne) que es el que permite conectarse a Bnet privados o no oficiales como este que puse en la entrada.
Gracias por el posr elav. si compartes acerca de como crear un servidor de counter strike estaría encantado. he leido sobre open game panel, pero no se si me vaya a interferir con el cpanel, y el cPGS lo descontinuarán el proximo mes.
Esto me recuerda que gracias a haber montado un servidor de WoW (World of warcraft) privado, página web, foro, etc. Es que aprendí sobre servidores que es en lo que actualmente trabajo. Linux es lo mejor
Hola!!!!
Muy bueno el tutorial, pero alguien podría decirme como poder jugar Warcraft III en debian o deribados??? He intentado con el wine, pero hasta donde más pude, podía jugar bien, pero cuando regresaba al sistema operativo (alt+tab) después no podia volver al juego 🙁 Me he estado documentando y creo que existen buenos emuladores como el cedega, me pueden recomendar algunos para poderlos descargar y jugar mejor, y si pueden un tutorial sería excelente!!!! jejeje Como jugar Warcraft III en linux y no morir en el intento xD….Gracias!!!
genial tu post, lamento haberlo leído ahora, me encanta el war y el linux, si se siguen dando la mano así me mudo de a 1000 pa SL, gracias elav por tu post, q viva el DOTA!!!!!
Buenas ante todo buen post,
Pero ahora, tengo una duda en el encabezado dice que se pueden conectar personas que no estén en nuestra lan, pero el problema que tengo es el siguiente, todos llegan a mi servidor por enrutamiento es decir que una lan de 10 maquinas llegan a mi servidor como si fuese una sola, y ahí esta el problema, la conexión perfecto sin ningún problema, pero a la hora de jugar es el problema, se crea una partida y sin problema pero dos personas que esten en una misma lan no se puede conectar al parecer porque viene por la misma ip.
Si m pudieran aayudar con eso gracias.
debe estar buena lo que no he podido descargarla aun