martes, 30 de diciembre de 2008

FactionWars-Desarrollo

Entrada para comentarios y aclaraciones sobre el desarrollo de la EP5

27 comentarios:

Edu dijo...
Este comentario ha sido eliminado por el autor.
Edu dijo...

Antes de que alguien lo diga... algunos valores (como el precio del armamento, coste de casi todo...) no tienen sentido. Ya se pondrán los correctos cuando se finalice el juego... es que llevaría semanas calibrar todo más o menos. Algunas cosas están, pero faltan muchas.

En la nueva versión, estará activo el envío de un correo de confirmación. Si no tenéis bien configurado todo, no lo enviará (en la web sí lo hace). Si tenéis problemas para registraros en local, simplemente confirmad vosotros el correo diractamente en la BD cuando el correo no se envíe.

Al registraros en la web, si no os llega el correo, mirad en la carpeta de SPAM.

Si quereis generar nuevas regiones con ciudades y posiciones de base, poned como activas las regiones en la BD y luego entrad en el juego como administradores, seguidamente aparecerá todo.

Está subida una nueva versión de la BD, hay un pequeño cambio que no afecta a nadie y ya tiene los datos de armamento, protecciones, defensas, naves, investigaciones y niveles... etc.

saludos

saludos

Edu dijo...

Para conectarse a la BD, usad la clase BD.

//Creamos una instancia del objeto BD y nos conectamos.
$bd=bd::getInstance();

//INICIO SESSION
session_start();

$sql = "XXX";
//Para ejecutar la consulta $bd->ejecutar($sql);

Eduvixes dijo...

He incorporado soporte multiidioma para el juego.
Ahora todas las paginas crean un objeto bd_i con un metodo en bd_i->texto_idioma(nombrepagina, numerotexto) con el cual se puede hacer un echo bd_i->texto_idioma(nombrepagina, numerotexto) donde tengais un texto de interfaz.
Este metodo va a una tabla "texto_idioma" que tiene cuatro atributos (nombre de pagina, numero texto en pagina, CASTELLANO, INGLES) y recoje para el idioma que esta en la variable de sesion $_SESSION['idioma'](la cual se elige en el momento de login) el numero de texto de esa pagina.
Obviamente cada uno tendrá que dar de alta en la tabla los textos de interfaz de su parte de pagina.
De las partes comunes ya se encarga el grupo LosUltimos al cual ya le he encargado el trabajo.
Algunos textos (4) ya los he puesto yo como ejemplo. En el caso de las imagenes habrá que definir otro metodo pero ya estoy en ello.

Ala, todos a poner sus textos de interfaz en la tablita y colocar el metodo en sus paginas.

Poneros las pilas que no veo mucho trabajo hecho.....

javi

Eduvixes dijo...

Grupo diuses

Si creeis que asignar equipamiento a mercenarios debe tener su propia página (lo cual me parece correcto) debeis poneros de acuerdo con el grupo que lleve personal o el que lleve armamento para ver como enlazais vuestra pagina.
O sea, deberiais poner un post con vuestra propuesta para que se discuta. En caso contrario vuestra pagina no tendria enlace en ningun sitio.

javi

santo666 dijo...

La verdad es que me gustaría contactar con el Grupo: Cait
que se encarga de;

9.5.1. Visualizar mercenarios

creo que su página debe enlazar con la nuestra o integrar nuestro código (una vez realizado) en la suya de alguna forma. Si algún representante puede puede ponerse en contacto conmigo. correo uni: jsorban.

Un saludo.

santo666 dijo...

Perdón se me olvido comentar que pertenezco al, mal llamado, grupo diuses.

Eduvixes dijo...

Teneis en el usuario diu de la maquina gig5, en su home el directorio ep5. Este directorio corresponde con el directorio ep5 de la web: gig5.ei.uvigo.es/ep5/.

Si quereis probar vuestras versiones de la ep5 en gig5, cread dentro de ep5 un directorio para vuestro grupo y poned ahi vuestro codigo para probarlo en la maquina.

un saludo

javi

Juan dijo...

edu somos del grupo "los ultimos" y necesitabamos las imágenes editables para cambiar el idioma de los botones, sino las tienes o no las puedes subir ya nos apañamos.

gracias

Eduardo dijo...

Hola a todos.
En mi opinión, me parece un error enorme, usar la BD para guardar las frases en un idioma.

Cuando en TODOS los proyectos grandes se guardan en un archivo, solo necesitariamos crear los archivos:

Armamento_ES.php

Solo necesitariamos hacer:

include("../idioma/Armamento_".$_SESSION['idioma']);

Aunque desconozco que va a guardar la variable idioma, pero apuesto a que todo menos algo lógico y estandarizado como un ES_AR, ES_ES, EN etc...

Las frases se guardarían en una variable que se podría llamar:

$idioma['bienv_a_frtn'] = 'Bienvenido a Fraction';

y en el código solo necesitamos leer la variable así:

echo $idioma['bienv_a_frtn'];

Lo se, complicado.

No encuentras una frase, descargas el archivo, ves si existe la frase y sino, la creas tu.

Una vez creado el archivo ES, solo necesitariamos traducirlo a los demás idiomas. (Algo que sería más apropiado a gente de Filología).

Pero es cierto si esto es usado por proyectos como phpBB (su foro tiene más de 200.000 lineas de codigo), no debe de funcionar bien.

Pero como dije, solo es mi opinión.

mdcarregal dijo...

Por los clavos de cristo!!! como vamos a hacer una llamada por cada texto que queramos mostrar, solo en textos podemos llegar a generar entre toda la pagina 50 llamadas solo en texto de langs que podrimos ahorrarnos usando algun sistema tipo defines o lo que comentaba Eduardo (del grupo esfera, osea el mismo que el mio :)).

Creo que deberiamos reconsiderar la posibilidad de cambiar el sistema de los lang ahora que estamos a tiempo porque vamos este juego con 100 usuarios online no lo aguanta ni un dual xeon... (ya si nos ponemos a jugar miles de usuarios como en el Ogame en cada mundo pues las consecuencias creo que son facilmente deducibles).

Un saludo

Eduardo dijo...

Solo quiero resaltar una, el buscar una frase por su numero es muy poco intuitivo, cuando tengas 50 frases, saber que la 2 es tal cosa, parece complicado.

Quiero añadir que si al final se ponen todas las frases en un archivo, permite reutilizar las frases en otras partes del programa.

Porque es muy facil que frases del estilo "Se ha comprado el armamento" o "Tropas en movimiento" etc...

Además quiero agregar que si el juego quiere que haya más de 1000 jugadores online (los servidores estan caros), no es viable realizartantos pedidos a la BD, tendríamos que estar usando como maximo unas 10 llamadas por pagina (y me parece mucho), en vez de todas las que hacemos, nose cuantas son, pero seguro que son muchas.

Eduardo dijo...

Me olvide de terminar esta frase:

Porque es muy facil que frases del estilo "Se ha comprado el armamento" o "Tropas en movimiento" se repitan en otras secciones del juego, así ahorramos trabajo a todos.

mdcarregal dijo...

Seria interesante cambiar el tamaño del campo de varchar(100) a text porque yo he querido insertar la frase:

No tienes ninguna tecnología, debes pinchar en el menu en tecnologías e investigar una tecnologia antes de comprar antes de poder comprar armamento

Esa frase son 161 caracteres(si los conte uno a uno tengo tiempo aunque este en examenes).

Y ya no deja, y tampoco es una frase extremadamente larga.

PD: No puedo cambiar el tamaño del campo porque el usuario no tiene los permisos necesarios.

Eduvixes dijo...

Hola a todos....

El soporte multiidioma es el que hay. Va contra la base de datos en la forma en la que está definido.
Solo realiza una conexión a la base de datos y se realiza la desconexion en el piehtml.
La variable de session lleva el mismo valor que el nombre del atributo de idioma en la tabla texto_idioma. De esta forma incorporar un nuevo idioma es simplemente añadir un atributo a la tabla y rellenarlo con su correpondiente valor para ese idioma y la tupla ya tiene los otros valores de idioma.
Ya amplio los atributos a 200 caracteres en cuanto levanten la red en la esei que se cayo ayer sobre las 11 de la noche..

un saludo

javi

mdcarregal dijo...

La conexion no tiene nada que ver, aqui lo que hablamos es de llamadas a la base de datos no de conexiones, si ponemos en la clase que gestiona las llamadas a la bd un contador de llamadas seguro que es bastante elevado el numero.

Ah y eso de las conexiones en este momento no es cierto porque el archivo /clases/class_Clasificacion.php tiene su propio sistema de conexion no usa la clase generica.

200 caracteres me sigue pareciendo poco pero bueno, habra que trocear los mensajes en varios campos.

Un saludo

Eduvixes dijo...

En un gestor de bd el punto critico es el numero de conexiones que tiene abiertas.... una vez que las conexiones exiten el numero de transacciones dentro de la maquina tiene que ser muy elevado para afectar a su rendimiento.
En cuanto a la funcionalidad de clasificacion ya les he avisado de que cambien su codigo para adaptarlo al de desarrollo comun.
Dime a cuanto quieres que aumente el texto y lo hago......

javi

Eduardo dijo...

Nosotros en local hemos cambiado el campo varchar(100) por text, de esta manera soporta una mayor cantidad de caracteres y nos olvidamos del limite.

El problema del numero de consultas es que si con la configuración actual soporta unas 1000 consultas simultaneas, no es lo mismo 100 personas * 10 consultas = 1000, que 10 personas * 100 consultas. (Se que es irse a los extremos, pero en nuestro caso creo que es un ejemplo valido).

Me gustaría que hagan una prueba de rendimiento, simulando una prueba real de uso del juego, con los archivos del juego y despues comentando las lineas dentro del metodo "texto_idioma", seguro que se va a notar una mejora notable.

Saludos, Eduardo

Eduardo dijo...

Me olvidaba, ayer a la noche ya habíamos subido la versión modificada de nuetsro código para que funcione con la opción multilenguaje, lo único que nos falta es la modificación en la BD para importar nuestros datos.

Eduvixes dijo...

los atributos de idioma en la tabla ya estan a 300 caracteres.

Si algun texto tiene mas de 300 caracteres comentarmelo porque no me imagino que puede necesitarlo.

javi

mdcarregal dijo...

Rodeiro te mande un correo porque nuestros archivos han desaparecido del CVS :S yo no los veo por lo menos, e intente por ssh meter los archivos en el path de la web pero creo que no tiene permisos el usuario diu, ya lo intentara previamente en la primera version y tampoco lo consiguiera, igual es que no estoy yendo al path que es, donde se escriben los archivos para verlos via web? yo los intente meter en /var/www/FW

Gracias.
Un saludo

Eduvixes dijo...

Hola,

como ya comente en el correo teneis en el home de diu:diu una carpeta llamada ep5. esta carpeta tiene un enlace simbolico a /var/www/ep5/ con lo cual puedes verlo via web. lo normal seria que creases un directorio esfera y lo pruebes a traves de gig5.ei.uvigo.es/ep5/esfera/

javi

AdRi dijo...

Boas! Son do grupo BAD. Resulta que teño un problema. Na táboa texto_idioma teño que meter unha descripción en inglés que vai a superar os 300 caracteres.

Poderiades aumentar o tamaño ata 400 para asegurar?

Grazas. ;)

AdRi dijo...

nOn, contei mal. Perdón. Pero pouco lle falta. xD

Edu dijo...

Adri, las descripciones estaban ya a en longtext, no deberías tener problemas.

Lo del soporte multilenguaje... coincido con vosotros en casi todo... me parece que lo correcto sería lo siguiente:

En mi opinión, el único objetivo de tener los textos en la BD sería dar facilidad a los administradores de idioma y evitar que toquen el código. Bien, los textos irían en la BD, pero como han dicho, acceder a ellos continuamente no es nada óptimo. Lo ideal sería usar un archivo en PHP en donde se meten los textos como variables (un archivo por idioma). Luego se hace un include del archivo del idioma correspondiente según el idioma seleccionado por el jugador en las opciones o en el momento del registro... y ya estaría. Se accede al archivo y no a la BD.

Las modificaciones de los textos las harían los administradores en la BD y actualizarían los archivos de sus respectivos idiomas UNA vez mediante la ejecución de un script desde el panel de administración.

AdRi dijo...

oK. Despois de exames cambiaremos iso e quitaremos os textos da base de datos e porémolos nun archivo tal como me comentas.

saúdos meu.

Edu dijo...

Ba, eso obviamente ya es cosa mía... a ver si sobre marzo hay algo jugable.

saludos !