Ceibal Jam/Juegos: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:


== Requerimientos ==
== Requerimientos ==
* Python 2.5
** PyGame
* Perspectiva isometrica/ortogonal en 2D.
* Mantener documentación en esta wiki.
* Licenciar a través de la licencia GNU GPL v2


== Análisis y Diseño==


== Análisis y Diseño ==
== Desarrollo==
=== Introducción al análisis ===
A pesar de que las técnicas en que se basara el diseño son muy antiguas o mejor dicho clásicas, pero es ahí mismo de donde sale la elegancia al utilizarlas, son muy probadas y demostraron ser casos de éxito en un pasado y lo serán ahora.

El código ejemplo propuesto aquí sera inicialmente meta-código, esperamos a futuro implementar código en python
Creemos que es la forma de ejemplificar lo mas posible su claridad para toda la gama de voluntarios.

=== Abstracciones ===
Partiendo desde el requerimiento de desarrollar un motor capaz de desplegar desde una perspectiva isometrica/ortogonal, nuestro argumento es justificar el uso de coordenadas enteras y limitar los cálculos flotantes(float, etc...) por que estos agregan una carga extra a los procesos y demorar los cálculos mas importantes del juego en si como serian la interaccio'n continua y un flujo dinámico de información ínter-comunicada entre diferentes XO para actualizar la información de el entorno y sus relaciones a otras entidades dentro del juego.

=== Mapas o Universo ===
Crear las fronteras de adonde puede ir cada jugador es primordial para llegar a algo. Necesitamos un limite para concentrarnos en su implementación.

La representación de nuestro universo se limitara a un vector y su representación en un array bidimencional.
Las ventajas en velocidad y trato de información sin necesidad de grandes complejidades se denotan por su forma.

map[x][y]

El tipo de información de que hay en ese lugar del mapa estará contenida en un entero sin signo (unsigned int), cada bloque (coordenada) de información vector pocicio'n(x, y) tendrá' un numero y este representara su imagen.

Supongamos entonces que deseamos crear un mapa / nivel del juego del tamaño 3 x 3 bloques, entonces tendríamos 9 bloques donde cada uno representa un lugar posible o no donde nuestro jugador podría estar situado o no si es que existe un obstáculo ahí.



map[3][3]

[0][1][2]
[0] 1 1 1
[1] 1 0 1
[2] 1 1 1
0 = libre
1 = obstruido
funcion get y set
map[0][0].getvalue = 1
map[1][1].getvalue = 0


==== Un Array Bidimencional ===

== Desarrollo ==


== Pruebas ==
== Pruebas ==

Revision as of 04:24, 19 August 2008

GoogleTrans-es -English -български -中文(中国大陆) -中文(臺灣) -hrvatski -čeština -dansk -Nederlands -suomi -français -Deutsch -Ελληνικά -हिन्दी -italiano -日本語 -한국어 -norsk -polski -português -română -русский -svenska


Ceibal Rol

Ceibal rol es un proyecto comunitario de Ceibal-Jam en el que todos podemos participar, creando, diseñando, programando... El objetivo es lograr un potente motor de alto nivel para facilitar a maestros y docentes a crear juegos a través de esta plataforma.

Requerimientos

  • Python 2.5
    • PyGame
  • Perspectiva isometrica/ortogonal en 2D.
  • Mantener documentación en esta wiki.
  • Licenciar a través de la licencia GNU GPL v2


Análisis y Diseño

Introducción al análisis

A pesar de que las técnicas en que se basara el diseño son muy antiguas o mejor dicho clásicas, pero es ahí mismo de donde sale la elegancia al utilizarlas, son muy probadas y demostraron ser casos de éxito en un pasado y lo serán ahora.

El código ejemplo propuesto aquí sera inicialmente meta-código, esperamos a futuro implementar código en python Creemos que es la forma de ejemplificar lo mas posible su claridad para toda la gama de voluntarios.

Abstracciones

Partiendo desde el requerimiento de desarrollar un motor capaz de desplegar desde una perspectiva isometrica/ortogonal, nuestro argumento es justificar el uso de coordenadas enteras y limitar los cálculos flotantes(float, etc...) por que estos agregan una carga extra a los procesos y demorar los cálculos mas importantes del juego en si como serian la interaccio'n continua y un flujo dinámico de información ínter-comunicada entre diferentes XO para actualizar la información de el entorno y sus relaciones a otras entidades dentro del juego.

Mapas o Universo

Crear las fronteras de adonde puede ir cada jugador es primordial para llegar a algo. Necesitamos un limite para concentrarnos en su implementación.

La representación de nuestro universo se limitara a un vector y su representación en un array bidimencional. Las ventajas en velocidad y trato de información sin necesidad de grandes complejidades se denotan por su forma.

map[x][y]

El tipo de información de que hay en ese lugar del mapa estará contenida en un entero sin signo (unsigned int), cada bloque (coordenada) de información vector pocicio'n(x, y) tendrá' un numero y este representara su imagen.

Supongamos entonces que deseamos crear un mapa / nivel del juego del tamaño 3 x 3 bloques, entonces tendríamos 9 bloques donde cada uno representa un lugar posible o no donde nuestro jugador podría estar situado o no si es que existe un obstáculo ahí.


map[3][3]
      [0][1][2]
   [0] 1  1  1
   [1] 1  0  1
   [2] 1  1  1

   0 = libre
   1 = obstruido
funcion get y set
map[0][0].getvalue = 1
map[1][1].getvalue = 0


= Un Array Bidimencional

Desarrollo

Pruebas