Blog

¿Cómo subir varios servidores con un solo HLDS?

sábado 13 de febrero de 2010 por Moonlext | 4 comentarios

He visto muchas "empresas" de servidores que tienen una carpeta de HLDS para cada servidor, pero resulta que los que varía en cada servidor no es nada más que el nombre del servidor, el puerto del servidor, la contraseña de administración (RCON) y la contraseña para el acceso.

Por lo tanto, subiendo tantos servidores con contenidos repetido, es una manera de baja eficiencia y mal gasto de disco duro.

Esta guía explicará paso por paso sobre cómo subir servidores con un solo HLDS en Linux.

Instalación de HLDS en Linux

Antes de empezar, tenemos que crear un directorio donde guardará los archivos de HLDS y obtener el HLDS más reciente, para eso utilizaremos el comando mkdir hlds, después de crearlo entraremos al directorio con el comando cd hlds.

Luego necesitaremos el Linux HLDS Update Tool, lo podemos descargar con el siguiente comando:

wget http://storefront.steampowered.com/download/hldsupdatetool.bin

Cuando terminamos de descargar, tendremos un hldsupdatetool.bin en el directorio. Ahora cambiaremos el permiso del ejecutable para poder ejecutarlo: chmod +x hldsupdatetool.bin, luego extraemos el contenido: ./hldsupdatetool.bin.

Nota: Después de ejecutar el ./hldsupdatetool.bin, saldrá un acuerdo de licencia, simplemente escribe "yes".

En este momento deberíamos tener dos archivos en el directorio de HLDS: el "hldsupdatetool.bin" que hemos descargado hace poco y un archivo llamado "steam", este último lo usaremos para instalar el HLDS.

Ahora tenemos que hacer que el archivo steam tenga permiso de ejecutarse, por lo tanto haremos como hicimos anteriormente: chmod +x steam.

Empezaremos con la actualización, en este caso tomaré el servidor Counter-Strike como ejemplo, tómense una siesta ya que se demorará:

./steam -command update -game cstrike -dir .

Personalización de HLDS

Con los pasos anterior obtendremos un HLDS limpio, antes de levantar los servidores, tenemos que hacer unos ajustes y personalización.

Primero que nada tenemos que entrar a la carpeta "cstrike": cd cstrike

server.cfg - La configuración del servidor

Una buena configuración de los servidores entregará a los jugadores fluidez en el juego.

Aquí recomendamos el uso de la configuración de los servidores de CGT hecha para empresas de servidores. La configuración de los servidores de CGT es público para todos, todos pueden usarlo libremente o basarse en ella, pero con una condición: No deben modificar el sv_contact.

Si desean crear su propio configuración de servidores, recuerden que no deben configurar el hostname, rcon_password y sv_password para poder levantar múltiples servidores.

publico.cfg, partido.cfg y lo3.cfg

publico.cfg y partido.cfg son para cambiar las configuraciones del servidor para que adapte algún modo de juego.

LO3 significa "Live on three", significa que con 3 reinicio empieza el juego, por lo tanto lo3.cfg justamente es para realizar ese efecto.

Dentro de lo3.cfg, inevitablemente tendremos que usar el comando wait, este comando sirve para esperar un (1) FPS, por lo tanto dependiendo de la cantidad de FPS del servidor, tenemos que poner la misma cantidad de wait para lograr la pausa de 1 segundo, por ejemplo, si tenemos un servidor de 300FPS, necesitaremos 300 wait para lograr pausar un segundo

Si han descargado la configuración de los servidores de CGT, pueden descargar también estos archivos hecho por CGT.

motd.txt - Pantalla de bienvenido

Este archivo contiene códigos en HTML, con conocimientos generales de HTML podemos modificar este archivo para tener una pantalla de bienvenido personalizado.

Mapas

Los mapas se guardan en el directorio "maps".

En este paso, recomendamos los mapas de drax que arreglan la mayoría de los flashbug de los mapas de_dust2, de_nuke, de_train.

Modificación para múltiples servidores

Para levantar múltiples servidores con un HLDS, debemos crear la configuración para cada servidor por separado, pero para ordenar estos archivos de configuración, crearemos una carpeta dentro de "cstrike" llamado "cfg": mkdir cfg.

Entramos a la carpeta "cfg" con el comando cd cfg, aquí es donde vamos a guardar las configuraciones de cada servidor.

Ejemplo, si deseamos subir un servidor en el puerto 800, crearemos un archivo llamado 800.cfg y lo modificaremos: nano 800.cfg.

Dentro de 800.cfg ingresaremos lo siguiente: rcon_password cgt hostname "CGT World | Test Server" sv_password test exec server.cfg

¿Fijaron que al final hace el uso de exec server.cfg? Eso es porque en server.cfg ya contiene las configuraciones generales para un servidor, no es necesario rehacer de nuevo.

Guardamos el archivo, ya hemos completado los pasos para poder subir servidores.

Subir múltiples servidores

Con todos los pasos que hicimos anteriormente, ya tenemos todo listo, lo que falta es subir el servidor.

Antes de eso, tenemos que conocer algunos parámetros que nos servirán para subir servidores:

-game
El juego del servidor
+map
El mapa por defecto cuando se inicia el servidor
-port
El puerto que se usará el servidor
+maxplayers
La cantidad de jugadores máximo en el servidor, usualmente llamado slot
+servercfgfile
El archivo de configuración del servidor
-dll
La librería que utilizará el servidor (con éste puedes decidir cargar complemento o no)

Conociendo estos comandos, ya podemos levantar los servidores con un solo HLDS:

./hlds_run -game cstrike +map de_dust2 -port 800 +maxplayers 10 +servercfgfile cfg/800.cfg > /dev/null 2>&1 &

Espero que con esta guía todas las empresas logren mejorar su estructura.

Secretos de CS 1.6 - masa de armas

sábado 9 de enero de 2010 por Moonlext | 0 comentarios

Seguramente muchos de nosotros sabemos que tomando diferentes armas podemos correr con diferentes velocidades, mencionamos que las armas que permiten correr más rápido son livianas y los otros son pesados.

Pero, el juego no respeta el sentido común. ¿Realmente podemos correr más rápido con el cuchillo? ¿El famoso AK47 y el M4A1 pesan lo mismo? Sabiendo las características de las armas nos permitirán usarlo mejor en situación adecuada.

Hicimos una comparación de las armas de CS 1.6: tomamos el cuchillo como referencia (100% de velocidad) y comparamos con las otras armas en nuestro mapa especial (cgt-speedtest.bsp), con eso hemos obtenido los resultados que lo pueden ver a continuación.

Nombre del arma en CS 1.6AbreviaciónVelocidad en el juegoVelocidad en %
Schmidt ScoutScout (Coneja)260 [unidad/s]104%
KnifeKnife250 [unidad/s]100%
9X19mm SidearmGlock250 [unidad/s]100%
K&M .45 TacticalUSP250 [unidad/s]100%
228 CompactB13250 [unidad/s]100%
Night Hawk .50CDeagle250 [unidad/s]100%
.40 Dual ElitesB15250 [unidad/s]100%
ES Five-SevenB15250 [unidad/s]100%
Schmidt Machine PistolPio-pio250 [unidad/s]100%
Ingram MAC-10B31250 [unidad/s]100%
K&M Sub-Machine GunMP5250 [unidad/s]100%
K&M UMP45B33250 [unidad/s]100%
FlashbangFlash250 [unidad/s]100%
HE GrenadeHE250 [unidad/s]100%
Smoke GrenadeSG250 [unidad/s]100%
Tactical ShieldEscudo250 [unidad/s]100%
C4C4250 [unidad/s]100%
ES C90B34245 [unidad/s]98%
Leone YG1265 Auto ShotgunB22240 [unidad/s]96%
Clarion 5.56Famas240 [unidad/s]96%
IDF DefenderGalil240 [unidad/s]96%
BullpupB44240 [unidad/s]96%
Krieg 552 CommandoB44235 [unidad/s]94%
Leone 12 Gauge SuperB21230 [unidad/s]92%
Maverick M4A1 CarbineM4A1230 [unidad/s]92%
CV-47AK47221 [unidad/s]88%
ES M249 ParaB51220 [unidad/s]88%
Krieg 550 CommandoB45210 [unidad/s]84%
D3/AU-1 Semi-Auto Sniper RifleB46210 [unidad/s]84%
Magnum Sniper RifleAWP (Pipa)210 [unidad/s]84%

¿Se sorprende en que las pistolas, incluso el MP5 tiene la misma velocidad que el cuchillo? Pues, es la realidad del juego. De ahora en adelante, podemos evitar que nos ataquen sin poder defender mientras corremos con cuchillo; podemos ganar en algunos puntos sabiendo que M4A1 es más liviano que AK47. Hay muchas posibilidades esperando que lo descubras.

Cómo configurar el CS para un juego más fluido en internet

viernes 8 de enero de 2010 por Moonlext | 0 comentarios

Introducción

Este artículo es una traducción del "CS101: NetGraph" escrito por Cameron Lloyd en GotFrag. éste se explicará en detalles los comandos cl_cmdrate, cl_updaterate, ex_interp, rate y cl_smoothtime, también en cómo encontrar el valor correcto para cada uno de ellos, de esta manera mejorando la fluidez del juego.

¿Qué es net_graph?

net_graph es una característica incluido dentro del cliente de Half-Life. Es una herramienta única proporcionada para ayudar a entender y optimizar el rendimiento en el juego. Abriendo la consola e ingresando net_graph 1, net_graph 2 o net_graph 3 podemos encenderlo y ajustar las opciones net_graph.

éste nos servirá para ayudar a diagnosticar problemas de conección y distinguir si el problema está relacionado con el cliente, el servidor o la red.

¿Por qué net_graph es importante?

Porque net_graph se puede utilizar para determinar errores importantes en los ajustes de red.

También, el net_graph es una herramienta importante usada por muchas ligas importantes para determinar si una captura de pantalla fue tomado durante partido en vivo o fue tomado en una demo del mismo.

Comandos que influye en la optimización

cl_cmdrate (Número de veces por segundo que el cliente manda información al servidor)

Mellin afirma que "Lo ideal serìa que este valor iguale los FPS del servidor, no los FPS del cliente como la mayoría piensan. Si uno manda información al servidor más veces que el servidor calcula los fotogramas en el mismo periodo de tiempo, la información extra mandada al servidor seguramente va a ser información perdida, osea que el servidor no va a recibir nuestra información, por lo tanto, el máximo de cl_cmdrate no debe ser demasiado grande, sino perderá ancho de banda."

cl_cmdrate es un factor de sus FPS. Para comprobar esto, simplemente conectese a su servidor preferido e ingrese en la consola net_graph 1, mire sus FPS actuales. Si su cl_cmdrate es más bajo que sus FPS, notará los puntos rojos que son exhibidos abajo del gràfico.

net_graph con puntos rojos

Suba levemente el valor de cl_cmdrate sobre el valor de los FPS y mire como los puntos rojos desaparecen.

net_graph sin puntos rojos

Valve ha escrito esto "Al fondo del gráfico de net_graph 1 podemos observar lineas formadas por puntos azules y (a veces) puntos rojas. Estas líneas se basa en sus FPS y en su ajuste en el valor de cl_cmdrate. Por cada fotograma donde una paquete de informaciones es actualizado y mandado cuando se actualiza, aparece un punto azul en el gráfico. Si estas informaciones son acumuladas cuando estamos actualizando aparecerán los puntos rojos en el gráfico. Pruebe poner el valor de cl_cmdrate a la mitad de sus FPS para ver el efecto."

De cualquier manera, los puntos rojos significan que su valor de cl_cmdrate es demasiado bajo y las informaciones se están acumulando, porque usted tiene un valor de FPS más alto que el valor de cl_cmdrate.

Recomendación

Configura su valor de cl_cmdrate 5 puntos más alto que el valor de los FPS. Esto asegurará que usted esté enviando tantas paquetes de informaciones como sean posible. Si su conexión es irregular y empieza a sentir pegado en las situaciones de enfrentamiento directo, configure el valor de cl_cmdrate lo más alto posible hasta que no se sienta pegado en esa situación (tiroteos).

cl_updaterate y ex_interp (número de veces por segundo que el cliente pide información al servidor y tiempo de interpolación)

En este comando Mellin tiene toda la razón. Nuestro valor de cl_updaterate debe ser igual al valor de sv_maxupdaterate del servidor en el que estemos. Esto trabaja de la misma manera que el cl_cmdrate. Deseamos mandar y recibir la cantidad de paquetes máximos como sea posible.

Valve escribió que en relación con el gráfico "el área cuatro funciona correlativamente a cómo el cliente renderiza las fotogramas. Por cada fotograma renderizado, el gráfico indica cuanta interpolación fue utilizada dibujando objetos en el mundo. Si no está consiguiendo un número suficiente de actualizaciones del servidor o pierde bastantes paquetes, no podrá interpolar y en lugar de interpolar, deberá extrapolar. En este caso, se puede ver que en la parte inferior del gráfico pasa por encima la línea gris (sobre el área azul marino) se torna desde amarillo a anaranjado/rojo, dependiendo de cuanto tardan en llegar los paquetes."

Entonces, usando la información de Valve, debemos poder fijar el valor de cl_updaterate correctamente y esto fijará el ex_interp a su valor correcto (solamente si es que configuramos el ex_interp en 0, se fijará automáticamente algún valor).

¿Pero cómo encontrarlo cuando no sabemos el rcon? Simple. Entre en su servidor favorito y ingrese en la consola net_graph 1.

net_graph 1

Ahora fijamos cl_updaterate a 51, luego fijamos el valor de ex_interp a 0, lo que debería suceder es que se fije automáticamente el valor de ex_interp a cualquier valor. Pero, si miramos el gráfico, estamos recibiendo puntos anaranjados/amarillos, que quieren decir que estamos extrapolando. Sucede esto porque estamos recibiendo 51 paquetes, cuando el servidor puede enviar solamente 30 (sv_maxupdaterate 30). Por lo tanto, estamos perdiendo paquetes y estamos extrapolando. No deseamos esto, por lo tanto cambiamos nuestro cl_updaterate a 40 y nuestro ex_interp se fijará automáticamente otra vez. Conseguimos este resultado.

net_graph con puntos amarrillos más abajo

Podemos ver como los puntos amarillos son más bajos comparado con el cuadro de cl_updaterate 51. Esto es porque todavía estamos perdiendo paquetes porque recibimos solo 30 del servidor. Esto hace mala interpolación otra vez, osea, extrapolamos. Cambiando nuestro cl_updaterate a 30, se fija el valor de ex_interp automáticamente y conseguimos esto.

net_graph sin puntos amarillos

Ahora, estamos recibiendo los paquetes máximos del servidor como es posible y por lo tanto no perdemos ningún paquete. Por ende se fija nuestro ex_interp al valor correcto.

En conclusión, tenemos que emparejar nuestro cl_updaterate con el sv_maxupdaterate de los servidores en los que juguemos, de modo que podamos interpolar correctamente los movimientos del jugador basados en los paquetes reales que recibimos y no se pierden.

rate (límite máximo de bytes por segundo que el server puede mandar al cliente).

Bueno, todos tenemos que hacer que el rate aumente gradualmente, así no recibimos choke cuando estamos en combate directo. Esto garantiza que se están enviando y se están recibiendo todos nuestros paquetes, de lo contrario el valor de ex_interp es incorrecto.

cl_smoothtime

Valve escribió que "las predicciones de correcciones de errores pueden ser absolutamente sensibles. Para alisar visualmente ese efecto, el error de la predicción se corrige gradualmente sobre una cantidad de tiempo corta (el cl_smoothtime)."

Personalmente, fijaría esto a 0. En el caso que realmente no recibamos todos los paquetes del servidor, sería a causa de latencia, de un mal servidor, etcétera.

Deseamos ver la interpolación de los paquetes reales recibidos. Por lo tanto, si fijamos el cl_smoothtime a 0, nuestra interpolación "no será alisada" o corregida y veremos la posición real de los jugadores. Esto causará un "salto" en los movimientos de los jugadores, pero estará todo correctamente funcionando.

¡Nuevo paquete de entrenamiento!

viernes 11 de diciembre de 2009 por Moonlext | 0 comentarios

4 meses después de la primera publicación del paquete de entrenamiento, hemos logrado lanzar una nueva versión del paquete.

En este segundo paquete de entrenamiento, hemos incluido el Mega Waypoint pack V2 para los jugadores que desean jugar los mapas raros y de estilo Aim, luego hemos desarrollado dos complementos para AMXX: Headshot Mode y YaPB Bot Helper.

Headshot Mode

Es un complemento que decidimos desarrollar para el reemplazo del complemento Hitbot Manipulation, ya que el segundo muestra error al poner el comando amx_hitbox a, además requiere el modulo Regex donde no es necesario para la única función que necesitamos.

Código fuente: #include <amxmodx> #include <fun> public plugin_init() { register_plugin("Headshot Mode", "1.00", "CGT Dev Team"); register_srvcmd("hs_mode", "mode", -1, "<0|1> - Off or on headshot mode."); } public mode(){ new status[1]; read_argv(1, status, 1); trim(status); if(strcmp(status,"") != 0) { if(str_to_num(status[0])==1) set_user_hitzones(0, 0, 2); else set_user_hitzones(0,0,255); } return PLUGIN_HANDLED }

YaPB Bot Helper

Es un complemento para elegir el nivel de dificultad de los robots que el jugador desee. Decidimos poner el nombre de la función como bot_difficulty debido a que muchos jugadores han usado Zbot, de ese modo el jugador estará familiarizado con este comando.

Código fuente: #include <amxmodx> public plugin_init() { register_plugin("YaPB Bot Helper", "1.00", "CGT Dev Team"); register_concmd("bot_difficulty", "level", -1, "<0|1|2|3> - Choice the level of the bot."); } public level(){ new status[1]; read_argv(1, status, 1); trim(status); if(strcmp(status,"") != 0) { server_cmd("yapb kickall"); switch(str_to_num(status[0])) { case 0:server_cmd("yb_minskill 0;yb_maxskill 30"); case 1:server_cmd("yb_minskill 30;yb_maxskill 60"); case 2:server_cmd("yb_minskill 60;yb_maxskill 90"); case 3:server_cmd("yb_minskill 100;yb_maxskill 100"); } server_cmd("yb_quota 9"); } return PLUGIN_HANDLED }

CGT Offline 2009 - Iquique dream

sábado 26 de septiembre de 2009 por Moonlext | 0 comentarios

Un evento que fue conversado con la Universidad de Tarapacá Sede Iquique en el principio del año, por fin nos entregó una respuesta positiva del auspicio, por fin puedo publicar un nuevo evento en la ciudad de Iquique: ¡CGT Offline 2009 - Iquique dream!

En este evento, estamos siendo auspiciado por el Centro de Alumno de la universidad en cuando espacio, carpas, mesas y sillas, nosotros encargamos lo que es conexión, organización y electricidad.

El evento ya está publicado como noticia en CGT, también en los grandes foros públicos como el de Tarreo Chile Gamer y Counter Strike 1.6, espero contar con todos los jugadores Steam posible.

Deseo que podamos finalicemos el evento con un éxito, entregando un aporte a la comunidad de los jugadores.

Subir demos personales en CGT

viernes 18 de septiembre de 2009 por Moonlext | 0 comentarios

Actualmente el sitio CGT ya permite que sus usuarios registrados agreguen los demos personales en su cuenta, de este modo para que cada jugador tengan como un afiche de perfil para su carrera gamer.

Para acceder esta opción, se debe ingresar en "Mi cuenta", en la parte derecha saldrá una sección de "Demos", donde el usuario puede subir sus demos personales.

Espero que disfrutan la nueva función y utilícenlo moderadamente.

Nuevas actualizaciones del sitio CGT

jueves 30 de julio de 2009 por Moonlext | 0 comentarios

Como muchos usuarios antiguos pudieron notar, en la parte superior derecha del sitio CGT se agregó una nueva barra de usuario.

Esa barra de usuario aún está en desarrollo, pero actualmente ya tiene función de mensajero y lista de eventos próximos, además muestra el nivel del usuario en el sitio CGT.

El nivel de usuario se aumenta mediante la participación del foro, mientra más participa, ganará más puntos de experiencias y en caso de que supera un determinado experiencia, sube de nivel.

Actualmente no hay diferencia entre niveles, pero en futuro se dará a conocer nuevas funciones y algunos limitados para los que tienen niveles alto.

A parte de esas actualizaciones, también completamos nuestras condiciones de servicios, donde se especifica los derechos y responsabilidades de cada usuario.

El sitio de CGT cada día se está complementando con más funciones para mejorar la comunicación y la experiencia de los jugadores.