lunes, 2 de marzo de 2009

Crear server de SMO (StepMania Online)

El tutorial está basado en el oficial encontrado en la wiki de SMO, sólo que además de estar traducido, he rellenado algunas lagunas que quedan al leer el tutorial original.

Obtención del Servidor

Usaremos la versión más reciente (SMOnline 2.5 rc2), para poder bajarlo pueden usar 2 métodos:

1.- Bajar Directo desde SourceForge (Recomendado para Windows)

Deben ir a esta página y bajar el archivo SMOnline-2.5rc2-win32.zip que contiene el servidor compilado y listo para usarse, la mejor opción para windows y usuarios inexpertos.

Para el código fuente deben bajar el archivo SMOnline-2.5rc2.tar.bz2 y compilarlo.

2.- Usar Cvs Checkout (Bajarán siempre la última versión existente)

Windows

Para Poder bajar por cvs, necesitan un programa especial llamado
tortoisecvs , luego de instalarlo, al hacer un click izquierdo en el escritorio les saldrá un menú contextual
Cvs Menu

vayan a cvs checkout (cvs obtener si está en español)
e introduscan ésta dirección

:pserver:anonymous@smonline.cvs.sourceforge.net:/cvsroot/smonline

Tortoise

Los demás datos se introducirán solos, luego precionen aceptar y comenzará a bajar el código
el cual se guardará en una carpeta con el nombre del Módulo (SMOnline).

Linux

Los usuarios de linux pueden usarlos siguientes comandos para obtener el código:
cvs -d:pserver:anonymous@smonline.cvs.sourceforge.net:/cvsroot/smonline login

cvs -z3 -d:pserver:anonymous@smonline.cvs.sourceforge.net:/cvsroot/smonline co -P SMOnline
Compilar el Código

Para compilar en linux se puede usar el compilador g 3.4 y para Windows se puede usar los compiladores Microsoft Visual C 6.0 y Microsoft .NET.

En linux debes usar
$ make
en el terminal, para windows solo abran el archivo de proyecto VC 6 y compilar en modo “Release”.

Configuración del Servidor

Nota:

Si es que nos hemos bajado la versión previamente compilada, ésta solo traerá un ejecutable, sin archivos de configuración, por lo que bastará con abrir el ejecutable una vez y luego precionar la letra r para que genere automáticamente el ini correspondiente, también es recomendable crear un archivo llamado motd con extensión txt ( (motd.txt) Message of the day), el cual contiene un mensaje que se muestra a todos los que ingresan al servidor.

Archivos en Carpeta

Configuración del Ini

El archivo ini siempre debe estar nombrado SMOnline , ya que sin él el servidor cargará la última configuración usada.
Los valores por defacto del ini son estos:

[ChatOptions]
Color=FFFFFF
CommonColorCode=|c0

[JudgeWindows]
Boo=0.180000
Good=0.135000
Great=0.090000
Marvelous=0.022500
Perfect=0.045000

[LobbyRoom]
AllowGameRooms=0
Description=
Name=Lobby
NumberSubRooms=0
Type=chat

[SQLOptions]
Address=
AdminLevel=1
BanTable=
BanUserIDField=
Database=
LevelField=
Passwd=
PasswdField=
PingTime=60
Port=3306
User=
UserIDField=
UserTable=
UsernameField=

[ServerOptions]
CPS=20
EnableSQL=1
LobbyName=Lobby
MOTD File=MOTD.txt
Name=SMOnline Server
PingTime=60
Port=8765
RoomKickTime=60
RoomNameLength=15
SMLAN=0
UseConsole=1

[StatsSQLOptions]
Address=
Database=
Passwd=
Port=3306
User=

Comenzaremos desglozando el archivo y configurándolo.

[ChatOptions] Opciones del Chat
Color=FFFFFF Color del texto al chatear (valor hexadecimal)

CommonColorCode=|c0 Formato para colorear el texto, luego se escribe el color en hex (|coFFFFFF)
Opciones de calificación, son las que están por defacto en el Stepmania, puedes alterarlo, pero es mejor dejarlo como está ya que la mayoría de los usuarios lo tendrán de esa manera.
[JudgeWindows]
Boo=0.180000
Good=0.135000
Great=0.090000
Marvelous=0.022500
Perfect=0.045000
Opciones de los rooms (salas) , luego explicaremos como crear más
[LobbyRoom] Ésta es la room por defacto, no se puede borrar
AllowGameRooms=0 ¿Permitir crear salas de juego? (0=no, 1=si)
Description= Pequeña descripción de la Sala
Name=Lobby Nombre de la sala
NumberSubRooms=0 * Importante * Número de Sub-Salas, luego explicaremos mas tarde
Type=chat Tipo de sala, hay 2 chat y game, game es para las salas de juego asi que solo usaremos chat
Opciones de la Base de datos para los usuarios
[SQLOptions]
Address= Dirección del servidor de Mysql
AdminLevel=1 Level requerido para considerarse Admin
BanTable= Tabla de usuarios baneados (phpbb_banlist)
BanUserIDField= Campo de id del usuario (ban_userid)
Database= Nombre de la Base de datos
LevelField= Campo de level de usuario (user_level)
Passwd= Contraseña de la base de datos
PasswdField= Campo de contraseña de usuario (user_password)
PingTime=60 Tiempo de espera antes de considerar al servidor offline (segundos)
Port=3306 Puerto del servidor de Mysql
User= Usuario de la Base de Datos
UserIDField= Campo de id del usuario (user_id)
UserTable= Tabla de usuarios (phpbb_users)
UsernameField= Campo del nombre del usuario (username)
Opciones Generales del Servidor
[ServerOptions]
CPS=20 Ciclos por Segundo, lo recomendado es 20, hace que el tiempo de espera entre cada sección en el juego sea mayor o menor, si lo aumentas será más rápido, aunque consumirá más recursos
EnableSQL=1 ¿Habilitar SQL? (1=si,0=no)
LobbyName=Lobby Nombre de la sala principal (se toma la configuración del [LobbyRoom] )
MOTD File=MOTD.txt Archivo del motd (Message of the day)
Name=SMOnline Server Nombre del Servidor
PingTime=60 Tiempo antes de considerar offline (segundos)
Port=8765 Puerto del Servidor (si es el defacto, los usuarios solo deberían poner la ip sin el puerto)
RoomKickTime=60 Tiempo de espera antes de patear del room (segundos)
RoomNameLength=15 Máximo de caracteres permitidos en el nombre de la sala
SMLAN=0 *No Recomendado* Convierte al Servidor en uno de SMLAN (No usa estadísticas ni salas adicionales) (0=no,1=si)
UseConsole=1 Usar consola para enviar datos (0=no,1=si) Recomendado 1
Opciones de la Base de Datos para las estadísticas
[StatsSQLOptions]
Address= Dirección de la Base de Datos
Database= Nombre de la Base de Datos
Passwd= Contraseña de la Base de Datos
Port=3306 Puerto de la Base de Datos
User= Usuario de la Base de Datos

Creación de Salas Adicionales

Para ello modificaremos la sala lobby en el apartado NumberSubRooms=0, la modificaremos por el número de salas adicionales a crear, vamos sólo a crear 2 más y no permitiremos crear salas de juego en el lobby, por que desordenarían todo, también hay que agregar el nombre de la sala que estará dentro de Lobby con SubRoom0 (0 como número de la sala en el órden) así que el código debe quedar parecido a lo siguiente:

[LobbyRoom]
AllowGameRooms=0
Description= Sala Principal
Name=Super Lobby
NumberSubRooms=2

SubRoom0=SubSala1
SubRoom1=SubSala2
Type=chat

Luego Crearemos la configuración de las Sub-Salas por debajo de la configuración del Lobby

[SubSala1Room]
AllowGameRooms=1 Permitimos la creación de salas de juego
Description=La primera Sub Sala del Lobby
Name=Sub Sala 1
NumberSubRooms=0 Puede Haber más Sub-Salas dentro de ésta, solo configuren como en el Lobby
Type=chat
[SubSala2Room]
AllowGameRooms=1
Description=La segunda Sub Sala del Lobby
Name=Sub Sala 2
NumberSubRooms=0
Type=chat

De modo que el archivo de configuración final debe quedar algo así:

[ChatOptions]
Color=FFFFFF
CommonColorCode=|c0

[JudgeWindows]
Boo=0.180000
Good=0.135000
Great=0.090000
Marvelous=0.022500
Perfect=0.045000

[LobbyRoom]
AllowGameRooms=0
Description=Sala de Lobby
Name=Super Lobby
NumberSubRooms=1
SubRoom0=LOL
Type=chat

[LOLRoom]
AllowGameRooms=1
Description=Sala de LOL
Name=LOL
NumberSubRooms=0
Type=chat

[SQLOptions]
Address=localhost
AdminLevel=1
BanTable=phpbb_banlist
BanUserIDField=ban_userid
Database=stepmani_newstats
LevelField=user_level
Passwd=mipass
PasswdField=user_password
PingTime=60
Port=3306
User=miusuario
UserIDField=user_id
UserTable=phpbb_users
UsernameField=username

[ServerOptions]
CPS=20
EnableSQL=1
LobbyName=Lobby
MOTD File=MOTD.txt
Name=Mi Servidor SMO
PingTime=60
Port=8765
RoomKickTime=60
RoomNameLength=15
SMLAN=0
UseConsole=1

[StatsSQLOptions]
Address=localhost
Database=stepmani_newstats
Passwd=mipass
Port=3306
User=miusuario

Guardamos el Ini, y si todo salió bien abrimos el SMOnline.exe y debería salir algo así

ServerOK

Si te salió otra cosa, debes revisar el ini por posibles errores.
Para poder ingresar a jugar, solo debes conectarte como en el servidor de SMO oficial (creandote un profile con el nombre de tu usuario, e ingresando la direccion ip en Network options, puedes ver tu ip en What’s my Ip, y dársela a tus amigos (si usaste un puerto diferente al defacto debes dar la dirección del server de ésta forma ip:puerto ejem: 127.0.0.1:4453), pero si es para ti mismo puedes usar 127.0.0.1)

Nota: Debes fijarte de tener los puertos que has usado (8765 por defacto) habilitados en tu firewall y router, para que la gente de afuera de tu red pueda entrar a jugar.


Creditos: Darthroom

Gracias

No hay comentarios:

Publicar un comentario