cambridgekids / David-games

0 stars 0 forks source link

The Engine #21

Open cambridgekids opened 5 years ago

cambridgekids commented 5 years ago

Esta parte va a ser lo más importante y me cuesta por lo tanto te pongo aquí lo que he pensado. Mañana voy a profundizar. De todos modos se puede montar alguno proyecto pequñito para ver que tal me sale. Al ponerse de verdad a crear es cuando te das cuenta de lo fácil o difícil que es el proceso. PLATFORMS

  1. App local: Android, apple
  2. webGL online: PC, chrome books etc... Esto hay que tomarlo en cuenta porque no vamos a querer duplicar el trabajo. Es decir que todo se tiene que acceder del mismo lugar.

CEREBRO Usabamos files.xml y media.xml files.xml Aquí poníamos los archivos que se tenían que incluir en cada nivel y las rutas hasta los juegos etc... Se editas cualquier archivo se tenía que incremetar la version de ese archivo. ej: Así cada vez que se actualizaba se subía al servidor. El app comprobaba si había una version nuevo y lo bajaba. media.xml Es el cerebro de los gráficos.

CONTENT INICIAL El contenido de los juegos mismos. En VB lo hacía bastante mal. Usaba excel spreadsheets y no tenía nada muy bien organizado. Hace muchos años usaba un access database y tenía todo bien organizado. Por lo tanto el contenido original que monto para los juegos como las palabras de los crosswords etc... me gustaría usar un sistema parecido a una base de datos. De allí, es más sencillo exportar como lo queramos. Creo!!! Valdría la pena hacer una prueba. Supongo que tengo que incluir todas las columnas que existen en el xml. Hasta ahora tengo utilidades que me hacen en csharp. Copio y pego las frases etc... de un excel spreadsheet y esa utilidad me los convertía exactamente como los necesitaba. Supongo que esta parte es más mi lado ya que tú no conoces muy bien como monto los xmls etc... PERO igual me das consejos. Me dices Gerry - crealo en mysql o en access bdd y luego haces tal etc... SI no sabes muy bien me pongo a hacer pruebas estos días. (Perdona enrollarme allí).

En cuanto al file "structure" yo lo veo muy bien. Más que nada para no liarme e ir usando todo lo más similar posible. data.xml - media.xml - data (folder) - levels - routes to the games media (folder) - audio + textures

XMLS ANTIGUOS de los juegos. Tengo miles de XMLs antiguos que tengo que usar de momento. Por lo tanto supongo que lo tengo que convertir a json (hay utilidades) o quizás las puedes usar tb sólo al principio.

Deivith commented 5 years ago

@cambridgekids Estuve revisando bien el thread y aquí van mis observaciones al respecto:

1 - Plataformas Unity permite el export para las 3 plataformas, por lo cuál solo usamos un base code. Así que no hay ningún tipo de problema al respecto.

2 - CEREBRO Al archivo de Files lo reemplazaría (lo explico abajo), al archivo de texturas, mp3 lo mantendría pero solamente para los archivos especificos de los juegos, por ejemplo las imágenes de animales nuevos o sonidos nuevos que se agreguen.

No se como funciona ahora la actualización de contenido, pero me parece que deberíamos hacer algo como lo siguiente:

1 - Lanzamos App en Unity 2 - Se agrega nuevo contenido (palabras y sonidos) 3 - La App se actualiza con el contenido de internet. 4 - A su vez, seguramente seguiremos trabajando en la App, entonces el contenido ese que se descarga online ya lo incluiria para que venga por defecto en el siguiente build, así se actualizarían online solo las Apps viejas.

No utilizaria el archivo de Files, ya que para mi el proceso debería ser todo con base de datos ahora:

1 - Un administrador que permita cargar contenido de Media (Imágenes, Sonidos, etc). Cada contenido de media cargado tiene que tener un identificador, ejemplo BEE sería un identificador para texturas que sean la imágen de la Abeja y el sonido del nombre de la abeja por ejemplo.

2 - Yo como programador agrego un nuevo tipo de juego en el sistema. Cada tipo de juego va a tener una estructura distinta, por ejemplo como programador cargo en el sistema un tipo de juego crossword que permite ingresar para cada versión del juego, una cantidad de filas, columnas, tiempo limite, y listado de palabras, incluso el juego podría permitir asociarse a contenido de MEDIA, en un juego de word cheff por ejemplo leugo de cargar cada palabra se podria asociar un set de MEDIA asociado (imagen + sonido).

3 - El Software de administrador permite cargar contenido a un tipo de juego, por ejemplo entras a una opción dice Crossword, pones AGREGAR y ahi puedes cargar la info y asignarle un nombre identificador, ejemplo CROSSWORD_LEVEL_01

4 - El software administrador permite cargar un nuevo "Mapa", y a cada mapa asignarle juegos previamente cargados, entonces un Mapa va a tener información como: 1 - Nombre del Mapa, 2 - Background, 3 - Listado de Juegos

5 - Cada tipo de mapa estará visible para todos los usuarios del juego o para un usuario en particular, por ejemplo si quieres que solo un alumno vea algunos mapas o un grupo de alumnos o un alumno de testing.

Todo este proceso va a tener un botón al finalizar que sería como "Publicar actualizaciones".

Cuando publique las actualizacviones, en ese momento recien la App podrá ver la nueva información, guardarla de forma local.

Ahora bien, como ya hemos comprobado a medida que vamos trabajando es cuando vas viendo las cosas que faltan y las que no o las mejoras que podemos hacer. Integrar todo este panel de administración que propongo en el dashboard sería un proceso lento que demandaría mucha prueba y error, entonces propongo utilizar:

1 - Una base de datos para los juegos que yo pueda ir creando y modificando 2 - Utilziar una app con la que estoy familiarizado que se llama PHPMaker. PHP Maker permite crear formularios de forma visual asociados a una base de datos. Los formularios que crea no son muy lindos, sin embargo son faciles de crear, modificar, re-crear, etc.

Entonces armamos un "Admin" de juegos, separado del Dashboard, en el que yo voy a ir generando los formularios bien rapido con PHPMaker. Creamos el contenido, vemos que todo funcione como te sientas confortable y una vez este todo andando perfecto, empezamos a crear las cosas en el Dashboard, en caso que quieras liberar el acceso de la carga de contenido a los usuarios del dashboard.

Que te parece?

CONTENIDO ACTUAL No vamos a usar los XML porque Unity funciona mucho mejor con los JSON, sin embargo puedo armar en PHP un parseador de XML que incluya la informacion en la base de datos y de ahí puedas modificar.


Podemos empezar la prueba con el Crossword que esta funcionando. Armo un Parser de todos los archivos de Crossword y los incluyo en una base de datos. 1 - Armo el admin rapido apra que puedas modiuficar la info 2- Armo un webservice para que la App pueda ver la información de los juegos 3 - Le agrego un menú rapido al Crossword para que puedas elegir las distintas versiones del juego

Como lo ves?

cambridgekids commented 5 years ago

Wow! Es tan distinto a como estoy acostumbrado que no tengo ni idea. Es mejor lo que dices tú. Montamos un prototipo rápido y yo veo como funciona. Así te puedo comentar lo bueno o dificil que me parece. Si quieres empezar.

Deivith commented 5 years ago

@cambridgekids Perfecto, lo armo con crossword y te comento.