Wordpress Themes

Si te emocionan los video juegos y software disfrutarás de los casinos más destacados en español, apostando en juegos como ruleta, tragamonedas, video poker y mucho más.

El sistema de plantillas de Earwyn

En varias ocasiones hemos comentado cosillas sobre el sistema de plantillas de Earwyn, pero no hemos entrado en detalles acerca de su funcionamiento. Este post dará algunas ideas de cómo está realizada su implementación y de la gran utilidad que puede llegar a tener.

Leyendo

Para mostrar el contenido de una página desde Earwyn, en el módulo apropiado se carga la plantilla que se desea utilizar. Por ejemplo,

$wod_engine->set_template(”my_template”);

El sistema buscará el fichero my_template.html, dentro de la carpeta de plantillas del theme (tema) activo. Leerá su contenido, identificando símbolos y tags. Después de esta instrucción, podremos agregar valores a las variables dinámicas presentes en la plantilla, encerradas entre signos de interrogación.

$wod_engine->add_value(”my_variable”, “valor de la variable”);

Por ejemplo, aquí reemplazaremos la cadena ¿my_variable? presente en la plantilla xhtml por la cadena “valor de la variable“, una vez llamemos al método que obtiene el código final:

$texto_a_mostrar = $wod_engine->get_xhtml();

Símbolos

Además de variables calculadas en el módulo php, en las plantillas también pueden mostrarse otra serie de datos:

  • Literales: puesto que el framework tiene soporte multi - idioma, también debe poder aplicarse en el contenido xhtml. Entre símbolos de exclamación, se indicará el nombre asociado a la cadena a traducir, presente en un fichero de lenguaje (uno por idioma).
  • Campos: de forma directa, se puede obtener el valor para un determinado campo. Las cadenas entre corchetes indican el nombre del campo… pero también es posible mostrar campos de otras tablas relacionadas con la actual, como por ejemplo las asociadas a través de una clave ajena.
  • Variables predefinidas: existen una serie de variables que el sistema interpreta de forma automática, sin necesidad de ser añadidas a través del método add_value. Por ejemplo, Earwyn reconoce valores pasados a través del método GET / POST en URLs y/o formularios, datos de acceso global como el session_id generado por php, cookies generadas…

Ventajas

Esta forma de plantear el desarrollo nos ofrece un par de ventajas básicas:

  • Organización: el código de los módulos es mucho más sencillo de leer y de modificar. Lo mismo pasa con el código de las plantillas, al no estar mezclado, se ahorra mucho tiempo a la hora de actualizar. Y, en general, se mejora la estructura de la aplicación web. Por otro lado, mejora la coordinación entre programadores / diseñadores, pues el diseño se podrá cambiar de forma radical sin tocar código php.
  • Flexibilidad: el sistema es flexible. Con poco esfuerzo, se puede adaptar a nuestro gusto. El diseño por orientado a objetos permite crear nuevos métodos, nuevas clases dependientes y ampliar a las funcionalidades que deseemos, manteniendo el orden e integridad de la aplicación. Y, al mismo tiempo, tiene la comodidad de un framework.

Desventajas

La principal desventaja radica en el supuesto de que en una misma página, se tengan muchos elementos repetitivos, para los que haga falta definir un patrón en otra plantilla. Por ejemplo, los listados. Por un lado estaría la plantilla general de la página y por otro, la plantilla que da formato a cada list item de la lista. Esto supone una pequeña molestia de andar creando plantillas muy simples… pero es de sobra compensado por las ventajas. De todas formas, andamos dando alguna vuelta a cómo mejorar el comportamiento de Earwyn en estos casos. :P

Código

Una pequeña captura de una parte del código de una plantilla xhtml..

Código Plantillas Earwyn

Themes en Earwyn / WoD

Ayer publicábamos un pequeño avance sobre Earwyn, en el foro de cplabs, que se puede seguir en este enlace. En el post se enlazan con un par de capturas referentes a los themes del juego, que Earwyn controla y gestiona a través de su sistema de temas. ¿Cómo funciona?

La potencia del sistema radica en el sistema de plantillas, implementado a través de una clase llamada EWN_Template y encargado de interpretar los tags dentro de los ficheros .html. Los themes están dividos en directorios y tienen asociado una hoja de estilos CSS2, que da formato visual al diseño de cada uno. Al cargar cada página, Earwyn sabe qué conjunto de plantillas leer (es decir, de qué directorio) en función de lo que tenga definido el usuario o el theme por defecto si el usuario no está logeado.

Puesto que todo el código xhtml está desligado de la generación de datos a través de php, no sólo puede cambiar el estilo visual, sino que también es posible mostrarlo en otro lugar diferente o mostrar en cada plantilla unos datos u otros, resultando un sistema muy flexible.

Plantilla Theme Pruebas Theme Red Alert Alpha

En la primera captura, el theme activo es el de pruebas. El segundo, el theme red alert en alpha. Una de nuestras ideas es que los usuarios del juego puedan participar de forma activa y cargar sus propios themes, personalizando totalmente su visión del juego. :P Aunque quizá eso no esté en la fase beta…. ;)

La definición de objetivos en el desarrollo indie

Tras tener más o menos organizada la infraestructura logística básica comentada en el post anterior de esta serie dedicada al “arranque” de un grupo de desarrollo amateur, el siguiente punto a tratar es la definición de objetivos. A pesar de ser un tema vital, muchas veces, sobre todo en los grupos noveles, tiende a obviarse. Tener claros los objetivos ayudará a mantener una buena estabilidad y un camino común; de lo contrario, el grupo podrá convertirse con facilidad en un equipo sin rumbo…

Según nuestra experiencia, distinguiremos 3 tipos de objetivos.

Objetivos del grupo. En las primeras reuniones de constitución del grupo, es necesario acordar con todos los miembros los objetivos generales del equipo de desarrollo. Es decir, cual es la finalidad o finalidades. La base del grupo, por tanto, radica en lo que aquí se decida. Por ejemplo, las posteriores pautas a seguir no serán las mismas si el objetivo es sólamente aprender y hacer currículum en lugar de sacar algo comercial… o de tener desde un principio una visión empresarial y de negocio.

En esta definición debe haber consenso. Si los intereses de cada miembro son diferentes… y aún así se crea el grupo, habrá más de un problema a la hora de enfocar tanto los proyectos como la marcha y funcionamiento del equipo. Por ello es importante asociarse mirando hacia el mismo lado y evitar así una fuente de discrepancias en aspectos fundamentales.

Después de este primer paso, lo siguiente es tomar responsabilidades, decidiendo quién se encarga de qué. Se elegirá al coordinador del equipo y se definirán el resto de perfiles (grafista, programador.. ) y roles (encargado de “marketing“, responsable del servidor…). Si entre los “fundadores” no existen todos los perfiles requeridos, una buena solución es comenzar por proyectos que requieran los perfiles existentes y buscar colaboradores externos para lo que quede pendiente una vez el juego esté avanzado, de cara a comenzar con algo y no estancarse buscando tal o cual perfil. Durante ése tiempo, también se puede buscar alguien “estable” para incorporar a la plantilla.

Objetivos anuales. Con los objetivos generales definidos, suele ser conveniente fijarse unos objetivos anuales. Al principio del año se definirían, intentando a lo largo del mismo cumplirlos. Al finalizar el año, en otra reunión, se haría balance de los objetivos que se han conseguido y los que han quedado pendientes, analizando el por qué de su no consecución. Ése es un buen momento para proponer mejoras de organización, de funcionamiento interno, de hacer auto críticas… y de plantear los nuevos objetivos anuales teniendo en mente los fallos de programación anteriores.

Objetivos del proyecto. Cada proyecto cuenta, además, de su propia lista de objetivos. En un mismo grupo, puede haber proyectos muy diferentes, con objetivos también muy diferentes. En función de éstos, se definen los recursos a destinar, las herramientas más adecuadas a utilizar para su superación, el presupuesto…. y se plantea un planning de desarrollo.

Tener todo esto bien definido, podrá suponer la diferencia entre terminar un proyecto, terminar un proyecto con años de retraso o directamente, no terminarlo. Por ejemplo, omitiendo el estudio previo de los objetivos, podemos considerar utilizar tal herramienta…. y tras meses de desarrollo… darnos cuenta de que para lo que queremos ahora tal herramienta no vale… tirando trabajo a la basura… y muy posiblemente, sin retorno… Y dependiendo de los objetivos del grupo, este supuesto puede convertirse en algo muy grave…

Conclusión: definir objetivos, es algo esencial, sirviendo para que el grupo de desarrollo tenga unas pautas, reglas y motivaciones comunes… así como una estructura sólida que ayudará a sacar los proyectos adelante.

Desarrollo Indie: logística

Siguiendo el orden planteado en el post “creando un grupo (indie) de desarrollo“, hoy comentaremos en profundidad el primer punto, logística, entendiendo como tal el conjunto de medios y métodos necesarios para llevar a cabo la organización de nuestro grupo.

Uno de los aspectos más básicos a considerar, es tener un servidor. donde alojar los archivos (y compartirlos), haciendo nuestra vida más cómoda y práctica. Servirá, por ejemplo, para no tener que estar mandando por correo a unos y otros emails masivos con adjuntos varios, para asegurar que tenemos la última versión de lo programado, para llevar la coordinación… Al poco rato de tenerlo operativo, se verán mil y una utilidades…

  • Subversion. Con él, se llevará el control de quién toca qué archivos, así como un registro de cambios y diferencias con las nuevas versiones a alojar en el repositorio. Es una excelente manera de asegurar que los miembros del grupo no se machaquen código y trabajen siempre con la versión actualizada de cada fichero que compone el juego. Muchos entornos de desarrollo incorporan un cliente subversion, existiendo también varias opciones que lo integran con el sistema operativo.
  • Gestor de proyectos. Esta herramienta servirá para gestionar los proyectos del equipo. Crear tareas concretas dentro de cada proyecto, asignarlas a los miembros, controlar las horas invertidas, los tiempos, el planning… todo el proceso de desarrollo estará controlado. Existen varios scripts en PHP libres para esta tarea, como dotProject o phpProjekt, que también incluyen foros donde debatir acerca de los proyectos. Y otra buena alternativa, con servicio gratuito, assembla.
  • Wiki. Una wiki es fuente de sabiduría. Puede servir para llevar la documentación de los proyectos de forma cómoda y usable, pero también para tener referencias de cómo se ha hecho tal cosa (y que a los tres meses, si uno no se acuerda pueda consultar), listados importantes a recursos externos….), exponer los objetivos acordados….
  • FTP. Los gestores de proyectos, también suelen llevar una utilidad de subir y compartir ficheros. Pero si no convence o los ficheros son muy pesados, los host tienen habilitado el protocolo FTP para poder subir archivos de gran tamaño (vídeos, imágenes, art work….).
  • Web. Tener una web de referencia, no es que ayude de forma especial a la coordinación, pero es más que recomendable. Noticias sobre los juegos que se van desarrollando, descargas de los ya existentes, información sobre el equipo….

Mantener un servidor propio en plan casero al final termina siendo bastante inviable, en la mayoría de casos. En empresas extranjeras, el hosting suele ser muy barato, mereciendo la pena invertir un poquillo y olvidarse de problemas. Un listado interesante, se puede ver en la página de rubí.

Como otro aspecto logístico, podríamos hablar de las licencias de software a usar en nuestros juegos. Pero eso depende un poco de los objetivos planteados en el juego, del estudio previo, de lo que se quiere hacer… por lo que contaremos nuestra experiencia en post sucesivos, en los que hablaremos de ese tema.

Nuevos aires artísticos

Hace un par de días, Alexis, se incorporó a nuestro equipo, reforzando así el departamento gráfico, últimamente algo abandonadillo. Hoy lo hacemos oficial y le damos la bienvenida. :P

Alexis, game artist, complementará el perfil de Piro, llevando a cabo todo el trabajo de concept art, screenplay… y dirección artística de nuestros desarrollos, especialmente los enfocados a 2D.

Con esta nueva incorporación, la plantilla queda de nuevo fortalecida, no teniendo en mente hacer más fichajes. No obstante, en el apartado “únete” de la web, se puede obtener información de cómo colaborar con nosotros y participar en nuestros proyectos.