You are on page 1of 73

ANEXO PRÁCTICO

Anexo Práctico para la Guía de Producción Versión: 1.0
Fernando Sansberro

Contenido Sección 1 – Introducción y Proceso de Producción
Capítulo 1 - Introducción................................................................................................... 6 1.1 Sobre la Guía ............................................................................................................. 6 1.2 Público Objetivo ......................................................................................................... 6 1.3 Contenido de la Guía ................................................................................................. 7 1.4 Sobre el Desarrollo de Videojuegos ........................................................................... 7 1.5 Sobre la Industria de Videojuegos .............................................................................. 8 1.6 Sobre el Autor............................................................................................................. 9 Capítulo 2 - Proceso de Producción .............................................................................. 10 2.1 Ciclo del Desarrollo .................................................................................................. 10 2.2 Pre-producción ......................................................................................................... 11 2.3 Documento de Concepto .......................................................................................... 12 2.4 Prototipo ................................................................................................................... 12 2.5 Análisis de Riesgos .................................................................................................. 13 2.6 Cronograma ............................................................................................................. 13 2.7 Etapas de Producción .............................................................................................. 13 2.7.1 Concept Document y Cronograma .................................................................... 14 2.7.2 Prototipo ............................................................................................................ 14 2.7.3 Alpha .................................................................................................................. 14 2.7.4 Beta ................................................................................................................... 14 2.7.5 Gold ................................................................................................................... 15 2.8 Entregables .............................................................................................................. 15 2.9 Herramientas de Producción .................................................................................... 15

Sección 2 – Desarrollo de Actividades y Videojuegos
Capítulo 3 - La Computadora XO .................................................................................... 16 3.1 OLPC y la Computadora XO .................................................................................... 16 3.2 Hardware .................................................................................................................. 16 3.2.1 La Computadora XO-1.0 .................................................................................... 16 3.2.2 Display ............................................................................................................... 17 _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 2 de 73 Centro Ceibal – Uruguay

3.2.3 Audio .................................................................................................................. 21 3.2.4 Cámara .............................................................................................................. 21 3.2.5 Red .................................................................................................................... 22 3.2.6 Dispositivos de Entrada ..................................................................................... 22 3.2.6.1 Teclado ........................................................................................................ 22 3.2.6.2 Gamepad ..................................................................................................... 23 3.2.6.3 Touchpad ..................................................................................................... 23 3.2.6.4 Otras Entradas ............................................................................................. 24 3.3 Software ................................................................................................................... 24 3.3.1 Sistema Operativo ............................................................................................. 24 3.3.2 Interfaz Gráfica .................................................................................................. 24 3.3.3 Las Actividades .................................................................................................. 26 3.3.4 El Diario ............................................................................................................. 26 3.3.5 El Navegador y las Aplicaciones Web................................................................ 26 Capítulo 4 - Desarrollo de Actividades y Juegos .......................................................... 28 4.1 Actividades y Aplicaciones Web ............................................................................... 28 4.2 Lenguajes de Programación .................................................................................... 29 4.2.1 Python y Pygame ............................................................................................... 29 4.2.2. C++ y SDL ........................................................................................................ 30 4.2.3 Ventajas y Desventajas de Python y C++ .......................................................... 31 4.2.4 Otros Lenguajes ................................................................................................ 32 4.2.4.1 Flash ............................................................................................................ 32 4.2.4.2 HTML5 ......................................................................................................... 33 4.2.4.3 Java ............................................................................................................. 33 4.3 Desarrollo en Python ................................................................................................ 34 4.4 Desarrollo en C++ .................................................................................................... 34 4.5 Sobre el uso de Emuladores .................................................................................... 35 4.6 Sobre el Desarrollo de Videojuegos ......................................................................... 35 4.6.1 Game Loop ........................................................................................................ 36 4.6.2 Máquina de Estados (FSM) ............................................................................... 37 4.7 Bibliotecas y Engines para Juegos........................................................................... 37 4.7.1 PGU – Python Game Utilities............................................................................. 38 _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 3 de 73 Centro Ceibal – Uruguay

.......................................................... 49 6..6 Ortografía y Gramática .................................... 46 6........................................................2.2 Frames por Segundo (FPS) ............5 Legibilidad de los Textos ........................................... 40 5...5................................................................... 41 5..........3 Tiempos de respuesta ........................................................................................................................................................................................................ 49 6.........................................6 Uso de los Lenguajes .....................................2 Sobre Audio y Video ... 44 Sección 3 – Testing y Distribución de Actividades Capítulo 6 ...................5...................................3 Optimización de Memoria .....4 Uso del Gamepad ...5............................................................................................5........... 47 6..................................................................2 Box2D y PyBox2D ........................................................................ 38 Capítulo 5 .7........................ 38 4...Normas de Usabilidad y Testing ....................5 Optimizaciones de Velocidad de Ejecución ........4 Optimización de Espacio ........................... 41 5...............8 Entornos de Desarrollos ............................ 46 6........2...............................................................5.................... 46 6......................................................................................................................................................................................................................................9 Otras Optimizaciones .............7 Redibujado de la Pantalla (Dirty Rectangles) ..................2 Interfaz Intuitiva ......................................................7.........................................................................................................................................................................................2.........................................4............................................................................2 Fundamentos de Diseño ....... 40 5.......... 51 _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.............. 45 6........................................... 48 6.........................Limitaciones de la Computadora XO y Optimizaciones..................................3 Simpleza .......... 48 6...................................... 50 6......1 Barra de Carga ............................................................... 39 5......... 48 6.1 Interfaz Universal .5.......................8 Overlays (Escalado por Hardware) .......... 49 6...................................3 Guía de Estilo del Plan Ceibal ............................................................... 4 de 73 Centro Ceibal – Uruguay ...5........8 Libre de Errores ................................................ 42 5..............0 – Pág...............................................3 Boost C++ ................................ 50 6............... 45 6................................................................... 39 5.....................7 Contenido Apropiado .............................. 46 6....5................................. 38 4......................................................... 50 6.................................................................................................1 Audiencia..... 42 5.......4 Testing ......................1 Sobre el Display ................5 Normas de Usabilidad y Testing .......................................................... 43 5......

.......................................... 54 6..... 60 A.... 53 6........................................ 56 6.............1 Armado de la Actividad ................................................................................ 65 C.......................................................................... 64 C...................4 Actualización de XO .......................... 61 A...........................13 Accesibilidad ................................................ 52 6...........1.. 55 6....................1 Distribución ....................................1 Sitio Web ................................ 52 6...............5..... 62 B......................................................12 Pausa .................................... 62 Apéndice C ...............................................19 Navegabilidad ...................................................................................................................6 Plan de Testing .5.............................................Cómo se Construye una Actividad .................................................... 61 Apendice B ..................................................................... 51 6.........5....................................15 Compatibilidad con Rainbow ........................................... 64 C.....................................................................Desbloqueo de las XO y Flasheo... 64 C...................2 Dispositivo de almacenamiento .........................2 Portal Ceibal................... 5 de 73 Centro Ceibal – Uruguay ........2 Icono de la Actividad .............................5.......... 53 6...............5......................................................... 64 C................................................................. 66 _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1....................................................................................................1................................................................................... 54 6............................................................................................................... 65 C..............................1 Desbloqueo de la XO ........3 Instalación de Actividades ..............................................................................................................................11 Salvado ..................... 62 B..5...............20 Logos ................................................................................3 Repositorio de actividades de Sugar Labs ...16 Comportamiento y Funcionalidades de la Actividad ............6................9 Seguridad ....1..... 57 Apéndice A ............................................................. 60 A...........................14 Integración con el Diario ......................................................................................... 53 6......................Distribución de Actividades ........................17 Audio............. 51 6..........18 Archivo de Distribución ........................................................................................................1..................................................5..............................................................................................................................0 – Pág.................2 Flasheo de la XO ............................................................5..........................3 Datos auxiliares ....5......10 Adaptabilidad ............................5...................... 65 Referencias .......5........................ 64 C. 53 6.......5.................................

y enumera un conjunto de técnicas y prácticas requeridas para el desarrollo de un producto que corra adecuadamente en estas computadoras. y por otro lado los gerentes. Se ha elegido usar la palabra videojuegos para no usar siempre la frase “videojuegos o aplicaciones educativas que hagan uso intensivo de gráficos y animaciones”. Por ejemplo.Introducción 1. 1. en el contexto de la discusión sobre performance siempre se utilizará la palabra “videojuegos”. Pero es posible que alguien quiera realizar una actividad muy simple que tenga fines educativos para uso en clase. En esta guía se utiliza mucho la palabra videojuegos. muestra las alternativas de desarrollo existentes para las mismas. 6 de 73 Centro Ceibal – Uruguay . De esta forma se hace posible la consulta rápida de cada tema y en cada uno se listan referencias bibliográficas o sitios de Internet donde se pueden profundizar los conocimientos. analizando pros y contras de cada una. Se debe leer esta palabra como sinónimo de juegos propiamente dicho o actividades educativas con un uso intensivo de gráficos y animaciones. de empresas de informática y/o audiovisuales que necesiten conocer sobre las características del desarrollo para la plataforma XO de forma tal de _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. La guía presenta las características particulares de las computadoras XO. diseñadores.1 Sobre la Guía El presente trabajo es indicado para desarrolladores de cualquier clase de contenidos para las computadoras XO. ven a la computadora XO como otra plataforma en la cual desarrollar y son los que van a trabajar durante el desarrollo. etc. Cabe aclarar que esta guía es para producir actividades educativas y videojuegos con los estándares de calidad comercial. pero pone énfasis en el desarrollo de actividades educativas y videojuegos.Capítulo 1 .0 – Pág. que se quiera realizar rápidamente y/o que no requiera uso intensivo de gráficos o animaciones. para lo cual en ese caso no es necesario seguir muchas de las normas aquí indicadas.2 Público Objetivo El público objetivo de esta guía son por un lado los programadores que teniendo conocimientos de programación. El objetivo de esta guía es que sirva como punto de partida para el desarrollo de contenidos para la plataforma XO. Durante el desarrollo de esta guía se trató de no profundizar demasiado en cada tema para que éste trabajo tenga una función de guía introductoria en cada tema.

uno de los aspectos más importantes de este trabajo son las referencias que se brindan en cada tema que funcionan como la punta de la madeja para continuar la investigación en cada tema en particular. Por último se presentan apéndices de índole técnica sobre mantenimiento de la computadora XO.poder tomar decisiones con más información a su alcance. etc. De hecho.0 – Pág. Proponerse un juego simple y luego desarrollarlo es el mejor ejercicio para comenzar a adquirir una idea de realidad. 1. Es necesario tener en cuenta esto de modo de no subestimar el desarrollo de videojuegos. pero lograr un videojuego de calidad aceptable es un trabajo muy arduo y se requieren conocimientos específicos que no se suelen enseñar en la educación formal. Por supuesto que es posible que una empresa que nunca hizo videojuegos comience a desarrollar videojuegos (hablando de empresas tradicionales de informática o _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Naturalmente que es muy sencillo programar un videojuego muy simple. Cabe aclarar también que en algunos temas avanzados no es posible lograr esto. tratando de evitar asumir conocimientos en la medida de lo posible. en los aspectos de producción y trabajo con un equipo multidisciplinario. La primera sección brinda una introducción al desarrollo de actividades y videojuegos para las computadoras XO. pero la idea de la guía es tratar todos los puntos como una introducción. tanto en el tiempo que lleva como en los conocimientos requeridos y sobre todo. Uno de los puntos claves a la hora de evitar fracasos es el de tener una verdadera idea del tiempo y esfuerzo que lleva desarrollar un videojuego. Si nunca se hizo un videojuego. menos técnico. Por lo expuesto anteriormente.3 Contenido de la Guía La guía se divide en tres secciones. se ha tratado de utilizar un lenguaje más informal.4 Sobre el Desarrollo de Videojuegos Desarrollar videojuegos es una de las tareas de programación mas complejas que hay. La segunda sección habla sobre el hardware y software de la computadora y explica que lenguajes de programación conviene utilizar en cada caso y da información de cómo optimizar los proyectos para que corran adecuadamente en las computadoras XO. dando enlaces y referencias bibliográficas en cada tema que sirvan como puntos de partida para que el lector pueda continuar la investigación. armado de una actividad. 7 de 73 Centro Ceibal – Uruguay . lo mejor es hacer un prototipo o una prueba cualquiera para lograr adquirir esa idea. La tercera sección habla sobre las normas de usabilidad que hay que tener en cuenta al desarrollar actividades y explica cómo realizar el testing para asegurar la calidad del producto final. 1.

1. la cual se encuentra bastante desarrollada. los roles claves y las tareas involucradas en dicha actividad. que contiene noticias y artículos sobre todos los aspectos del desarrollo profesional de videojuegos. una comunidad de desarrollo de videojuegos de Argentina. como por ejemplo en [78]. son las siguientes: − Proanima [70] es el Cluster de Empresas de Animación y Videojuegos de Uruguay. 8 de 73 Centro Ceibal – Uruguay . El foro Uruguay Gamer [75] es la comunidad de desarrolladores de videojuegos de Uruguay. − Las listas de desarrollo de la comunidad OLPC [79] y Sugar [80] reúnen a todo tipo _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. − Ceibal Jam [76] es un movimiento de afiliación abierta y voluntaria. El libro Fundamentals of Game Development [28] brinda una excelente introducción a la producción de videojuegos y a la industria. explicando el funcionamiento de la misma. Sobre la industria local (Uruguay) y regional. en varias oportunidades se ha tratado el tema. con integrantes pertenecientes a un amplio espectro de edades.5 Sobre la Industria de Videojuegos Las principales referencias para comenzar a investigar sobre el tema de videojuegos y sobre la industria son los siguientes: − Gamasutra [74] es un sitio web hermano de la revista Game Developer. solucionar problemas técnicos. relacionado a los videojuegos. − ADVA [71] es la Asociación de Desarrolladores de Videojuegos Argentina. hablar sobre el Plan Ceibal. y es el lugar indicado para tomar contacto con la industria local. que comparten el compromiso con el futuro de la nación y por ello aportan tiempo y conocimientos para desarrollar software libre didáctico que funcione sobre la plataforma que utilizan las computadoras del Plan Ceibal. Estos grupos publican cada cierto tiempo papers que describen el estado del arte. [81]. De particular interés son los SIG (Special Interest Groups) que desarrollan investigación sobre cada área de los videojuegos. formaciones y actividades laborales. los principales grupos. La lista de correo de Ceibal Jam es un buen lugar para conocer novedades. etc. − ABRAGAMES [72] es la Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos.0 – Pág.audiovisuales). Éste es un punto crítico. tanto técnicos como de negocios. − IGDA (International Game Developers Association) [73] es la asociación internacional de desarrolladores de videojuegos. pero es necesario tener en cuenta lo dicho anteriormente para poder cumplir con los plazos y poder alcanzar los requerimientos propuestos. etc. organizaciones y empresas relacionadas al desarrollo de videojuegos o software educativo y audiovisual. En particular.

Mac y Linux. Garra Fútbol. web y advergaming. Nickelodeon. Fernando ha trabajado también como docente enseñando programación de videojuegos web en Flash y programación de videojuegos Java para celulares en Universidad ORT Uruguay. Uruguay. Muchos de los conceptos volcados en esta guía se recogen de las experiencias adquiridas durante el desarrollo de juegos que Batovi Games Studio ha realizado para la plataforma XO. juegos casuales para PC.com).0 – Pág. que desarrolla juegos para diferentes plataformas como celulares. un estudio de desarrollo de videojuegos ubicado en Montevideo.6 Sobre el Autor Fernando Sansberro es Director de Batovi Games Studio (www. 1. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.de gente vinculada a Plan Ceibal. Batovi Games ha desarrollado juegos para portales y publishers como AOL. Cartoon Network. entre los cuales se encuentran Super Vampire Ninja Zero. Hay muchas más listas que pueden resultar interesantes en [82] y [83]. etc.batovi. etc. GlobalFun. Big Fish Games. Sugar y OLPC. Vascolet: La Máquina del Tiempo. Xa contra los Cuatreros Galácticos. 9 de 73 Centro Ceibal – Uruguay .

. Plan de Proyecto y Cronograma.Proceso de Producción En este capítulo se presenta una introducción al proceso de producción y desarrollo de videojuegos. Plan de Implementación. Documento de Diseño. Producción: Avances de progreso. 10 de 73 Centro Ceibal – Uruguay . 2. Se asume que el desarrollador conoce y utiliza buenas prácticas de ingeniería de software. Requerimientos del Proyecto. Plan de Testing. complejidad del juego. etc. si el gameplay no está probado. 3. etc. testing y post-producción. etc). Pre-producción: Prototipo. 2. Se brindan referencias bibliográficas especializadas para profundizar en cada tema. control de calidad (QA). En cada una de estas etapas hay que lograr alcanzar ciertos objetivos para pasar a la siguiente etapa y la concreción de cada etapa en forma adecuada impacta directamente sobre el resultado final. Este proceso es variable de proyecto a proyecto y esta es una de las razones por la cual la producción de videojuegos puede ser difícil y desafiante el gerenciamiento (ejemplos típicos de cosas que pueden variar el proceso de desarrollo entre un proyecto y otro es el uso de una propiedad intelectual. 1. presupuesto. tiempo.Capítulo 2 . el uso de una tecnología determinada. Mas allá de los parámetros del proyecto. tales como el tamaño del equipo. Documento de Concepto. El proceso puede dividirse en las siguientes etapas: preproducción. lo cual impacta directamente en la calidad del producto final. Evaluación de riesgos. existe una base de proceso de producción que es común a todos los proyectos.0 – Pág. producción. Análisis de Riesgos. Testing: Liberación de assets.1 Ciclo del Desarrollo El proceso de desarrollo comienza la con definición inicial del concepto del videojuego y termina con la publicación de la versión final del mismo (denominada gold master). _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.

si trabajamos en un proyecto de seis meses. La etapa de pre-producción puede llevar desde una semana a más de un año dependiendo de cuanto tiempo se disponga para terminar el proyecto. el costo. en el cual cada uno contiene las etapas de pre-producción. Como se puede ver es sumamente importante la pre-producción del proyecto porque en esta etapa se crean las bases para todo el desarrollo. El objetivo de la etapa de pre-producción es el crear un plan de producción. En la industria de videojuegos la metodología de desarrollo utilizada actualmente es Scrum [27] o alguna variación de las metodologías ágiles. la pre-producción suele tomar desde una semana a un mes. Post-producción: Postmortem. el cual es un mapa de ruta para lograr terminar el proyecto en tiempo y forma. etc. 2. el equipo que va a participar y el cronograma. producción y testing [28]. la creación del documento técnico. Publicación. El plan incluye la creación del documento de concepto. Se estima que la pre-producción requiere del 10% al 25% del tiempo total del proyecto. 11 de 73 Centro Ceibal – Uruguay . Si por ejemplo vamos a hacer un juego en el cual no está probada la idea (o la mecánica o el gameplay) es necesario crear lo antes posible una prueba de concepto (un prototipo: generalmente es un nivel jugable para probar que el juego es divertido). _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Para esto entonces dividimos el ciclo de producción en varios subciclos. Para otros proyectos se puede adoptar otra forma. Estas etapas se suelen seguir en orden y es una simplificación de la realidad. definir cuánta gente se va a necesitar y cuánto tiempo de desarrollo se requiere. Un proyecto en el cual no se especifique bien el concepto o alcance del proyecto es uno que posiblemente encuentre problemas no previstos que afecten su normal desarrollo.2 Pre-producción La pre-producción es la primera etapa en el ciclo de producción del proyecto y es crítico para definir las características del proyecto o cómo será el juego. De esta forma.0 – Pág. El esquema anterior muestra las etapas del ciclo de producción del proyecto y muestra como cada etapa se construye sobre lo que ya hay realizado.4. el costo estimado del proyecto. determinar riesgos y amenazas que afectan el concepto.

2. Se debe evaluar cada idea si es implementable en forma sencilla o es muy complicada.4 Prototipo Si el juego tiene una mecánica o gameplay que no se encuentra probado. el género. 12 de 73 Centro Ceibal – Uruguay . o evaluar el uso de determinada tecnología. Esto incluye estudiar las limitaciones en el hardware.0 – Pág. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Luego de escrito. se investiga que tecnología funciona mejor para el juego propuesto. explorar soluciones de middleware o bibliotecas a utilizar. audio. el equipo debe crear un documento técnico y un documento de diseño para comunicar las decisiones tomadas. lo mejor es realizar un prototipo que ayuda a definir la experiencia del juego. los controles. los roles claves en el equipo deben revisar los documentos y aprobarlos. Un prototipo es una versión del juego que se construye rápidamente. Luego de que se tiene en concepto básico inicial. los personajes. a veces también es quien financia el desarrollo). que muestra generalmente un nivel del juego y con él se puede probar a ver si la idea original funciona o no.2. etc) del juego y la mejor manera de establecer la forma de trabajo (production pipeline). Esto ayuda en la estimación de tiempo y esfuerzo para luego implementarlas. la historia. A medida que estos elementos son más definidos. Los documentos suelen ser aprobados por el gerente del estudio y el publisher (quien comercializa el producto final y se encarga de ventas y marketing. Mientras se va definiendo el conjunto de features que tendrá el juego. “quisiera que esté” y “estaría bueno que esté”. Luego se discuten las ideas y el resultado es que se logra una lista final del conjunto de features que se implementarán en el juego.3 Documento de Concepto Muchos proyectos comienzan con una idea vaga y el equipo debe trabajar para bajar a tierra el concepto y llevarlo a algo tangible y que pueda funcionar. En este punto se deben identificar las características únicas que hacen que el juego se destaque de la competencia y tenga su lugar en el mercado. el siguiente paso es agregar los elementos de gameplay básicos. Se plasman las ideas principales en un documento de concepto en el cual se explican las funcionalidades básicas del juego o actividad de forma tal que todo el equipo pueda entender de que se trata el proyecto y cuales son los principales elementos de gameplay que se encuentran en el juego. etc. Se escriben las principales ideas sobre la mecánica del juego. se debe tener en cuenta que herramientas van a ser necesarias para crear los assets (gráficos. Ademas. Las características que tiene un juego (denominadas features) generalmente se establecen en sesiones de brainstorming (lluvia de ideas) en las cuales cada característica se clasifica como “debe estar”.

dado que los videojuegos son proyectos riesgosos por naturaleza. Cualquier cronograma puede servir con tal de que las versiones entregables (deliverables) estén claramente definidas y conocidas por todos los involucrados en el proyecto. alpha. etc. beta y gold master. 2. el prototipo se hace cada vez más jugable. etc. que demuestra el avance en el gameplay y el arte (look and feel) del juego. 2. prototipo. código. Si la idea funciona y se consigue un gameplay divertido y se prueba la idea. Es importante construir un prototipo pulido. Si no se toma el tiempo para realizar un análisis de riesgo. es muy probable encontrarse después con problemas en el proyecto que podrían haberse minimizado si se hubieran identificado como riesgos al principio. beta y la entrega final. en Flash. alpha. 2. por lo cual será difícil determinar riesgos específicos. puede ser realizado en papel. si algunos factores constantes son definidos con anterioridad.5 Análisis de Riesgos A medida que se definen y se detallan los conceptos mencionados anteriormente. se descarta el prototipo y se cancela el proyecto sin gastar mucho dinero. Algunos proyectos se definen en un cronograma con etapas mensuales y otros proyectos en etapas prototipo. es imprescindible la experiencia previa. que refleje lo mejor posible la experiencia de gameplay final a lograr. como por ejemplo el tamaño del equipo de desarrollo y la tecnología a utilizar. se continua el proyecto. se definen las fechas de entrega para cada etapa (milestones) y se define que se va a realizar en cada una de ellas. y a medida que las ideas avanzan y se hacen fuertes. Si la idea no funciona. Se denomina deliverable a los elementos en el juego como assets de arte. Ayuda enormemente en el análisis de riesgos y a evitar futuros problemas la experiencia que tiene el equipo de desarrollo.6 Cronograma Luego que el conjunto de características (features) del proyecto está definido y ya se sabe que se pueden realizar. Específicamente en videojuegos.El prototipo dependiendo del tipo de juego. 13 de 73 Centro Ceibal – Uruguay . audio. Sin embargo. En este momento existirán varios factores desconocidos.7 Etapas de Producción El ciclo correspondiente a la etapa de producción suele incluir las etapas de concepto. se realiza un análisis de riesgos para determinar los riesgos más grande que tiene el proyecto. Cuando se desarrolle un proyecto en el marco de _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. pueden ser utilizados para hacer un análisis básico de riesgos.0 – Pág.

7. 2.3 Alpha Es la primera versión del juego que tiene todas las partes funcionando aunque le falten bandas musicales o efectos de sonido. audio. músicas. pero también se utiliza la versión beta para relizar testing en busca de errores (buscar bugs durante el beta testing).2 Prototipo Esta es la primera versión jugable. por lo cual es mejor realizarlo lo antes posible en el ciclo de desarrollo. etc. 2. bocetos que den una idea de cómo se vería el juego. algunos gráficos.4 Beta Es una versión casi final del juego. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. que se entienda el juego y ver que se puede mejorar.7. Este focus group puede introducir cambios a nivel de diseño. los niveles no están balanceados (balancear es ajustar la dificultad gradualmente). solo faltan cosas auxiliares como puede ser el menú principal. Esta versión es para focus group nuevamente (en este caso el focus group ya nos daría detalles sobre si la dificultad es la correcta o no. Las mencionadas etapas corresponden a los entregables (deliverables) que se deben presentar para aprobación por parte de Plan Ceibal /Rayuela. muchos gráficos no son los definitivos (todavía existen placeholders). cómo se vería el arte final. etc. 14 de 73 Centro Ceibal – Uruguay . Lo más importante para mostrar en esta versión es que ya hay una idea de cómo va a ser el núcleo del juego (la mecánica principal). La versión alpha se suele utilizar para hacer un focus group interno para ver que todo esté bien. ayudas. 2.Plan Ceibal (por ejemplo durante la realización de ideas docentes a cargo de una empresa o desarrollos del Proyecto Rayuela [113]). muchos gráficos son temporales (placeholders) y faltan cosas que no hacen al gameplay como el menú. publico objetivo.1 Concept Document y Cronograma El documento de concepto indica cómo va a ser el juego (características. etc).7. Es muy variable como se presenta. éstas serán las etapas que se utilizarán en los proyectos.7.0 – Pág. 2. pero lo importante es que viendo este documento. incluso puede ser informal. los involucrados se pueden hacer una idea de cómo sería realmente el juego. la historia preliminar. Generalmente esta versión consiste de un nivel jugable. o cosas puntuales fáciles de balancear). etc.

Hay muchos sistemas de bugtracking. Durante el proceso de testing cualquiera de los testers que vea un problema.9 Herramientas de Producción Se recomienda durante el desarrollo el uso de algún sistema de versionado como Subversion [56] o Tortoise SVN [57] por ejemplo. 15 de 73 Centro Ceibal – Uruguay .0 – Pág.Material solicitado de Marketing. solamente se descargan los Durante la etapa de testing es necesario utilizar algún sistema de bugtracking (registro de errores). . marcados como solucionados. lo reporta en el sistema y luego el gerente de proyecto prioriza los mismos y los asigna para su revisión y solución. .8 Entregables Cada proyecto debe entregar los siguientes archivos entregables (deliverables).Documentación técnica del proyecto. .Plan de Testing aprobado. priorizarlos.Manual del usuario. De esta forma varios programadores y artistas pueden trabajar en diferentes archivos del proyecto. .Código fuente y assets si corresponde (depende de la propiedad intelectual). 2.5 Gold La versión gold o gold master es la versión final a la cual ya se le corrigieron todos los bugs reportados y todos los assets son finales. Es la versión que está pronta para distribución (publicación). . etc.2. 2. Cuando se actualizan las versiones del proyecto. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. es posible asignar tareas de solución de problemas. .7. . Una de las grandes ventajas de utilizar un sistema de versionado es que es posible trabajar en equipo y desde varios lugares de trabajo. teniendo control sobre los cambios realizados. De esta forma.Archivos ejecutables. uno de los utilizado comunmente es Mantis [58].Hoja de requerimientos de hardware y software.

es una computadora con características particulares.0 – Pág. el hardware y sobre el programa OLPC en sí mismo y es una excelente fuente de información para consultar. La única forma de asegurarse que algo funciona correctamente es probando en la misma computadora XO. etc. la computadora XO tiene una capacidad de procesamiento y almacenamiento limitada en comparación con las computadoras actuales en el mercado y al desarrollar software se debe tener en cuenta estas limitaciones.2. 3.5 se encuentran en [6] y [7] respectivamente. Hay muchos aspectos de performance a tener en cuenta durante el desarrollo que se describirán en esta guía. Por este motivo.Capítulo 3 . La computadora XO es diseñada por OLPC (One Laptop Per Child) [2] y al ser diseñada para niños. Por diferentes razones. el sitio Wiki de OLPC [3] contiene mucha información sobre el software. En [88] se pueden ver las especificaciones de las computadoras actuales y tener una idea de lo que se podría venir en futuras versiones de las computadoras. En general.0 Las características más relevantes de la computadora XO-1. no debe nunca asumirse que las cosas son de la misma manera o funcionan como en otros entornos. 16 de 73 Centro Ceibal – Uruguay .0 y de la computadora XO-1.2 Hardware Las especificaciones completas del hardware de la computadora XO-1.) con GPU (Graphics Processing Unit) integrada. software libre.1 OLPC y la Computadora XO La computadora XO 1. la forma de la máquina.0 son las siguientes: − Procesador: AMD Geode LX700 CPU (433 Mhz.) 3. A continuación se describe el hardware que es relevante para el desarrollo de actividades. durante el desarrollo de una actividad o videojuego. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. En [4] se pueden ver las principales razones filosóficas detrás del diseño de la computadora XO (bajo consumo. Durante el desarrollo de actividades es de suma importancia probar la misma en la XO porque va a correr bastante más lento que en la computadora de escritorio utilizada para desarrollar.1 La Computadora XO-1.0 es la laptop utilizada en el Plan Ceibal en Uruguay [1].La Computadora XO 3.

de memoria SLC NAND flash on board. Tamaño: 15. En el modo monocromo se soporta un display de 1200 x 900 píxels (200 dpi). porque no es sencillo el mismo. Cada componente de la terna da 64 niveles de brillo.− Memoria: 256 Mb.2 cm. high-resolution mode) que puede usarse bajo la luz del sol.0 – Pág.2 Display La pantalla de la computadora XO es una de las características propias de esta plataforma. Más adelante se describen en mayor profundidad algunos de estos elementos y las características que hay que tener en cuenta cuando se desarrolla una actividad para lograr una performance adecuada. Soporta una resolución de color de aproximadamente 6 bits por color (262k de colores).5 pulgadas. − Almacenamiento: 1Gb. En esta sección se hace un resumen de las características que más nos interesan como desarrolladores y se explica porqué el tamaño del display es el punto más critico en lo que se refiere a la performance de los videojuegos. DDR SDRAM. La computadora no cuenta con disco duro ni con partes móviles para disminuir el riesgo de roturas.4 cm.) con modo dual: modo color (transmissive. full-color mode) y modo blanco y negro de muy bajo consumo (reflective.. aunque la percepción de resolución es mas alta dependiendo del nivel de luz del ambiente [5]. − Display: Pantalla de cristal líquido (TFT-LCD) de 7. por segundo. 17 de 73 Centro Ceibal – Uruguay . En [5] se puede profundizar en el funcionamiento del display. 3. 6 x 4. Un test realizado en una habitación luminosa indica que se percibe una resolución de 1024 x 768 [6]. En el modo color se soporta un display de 693 x 520 ternas de color.5 pulgadas en diagonal (19.05 cm. Los datos son accedidos al dispositivo NAND a 30 Mb. donde cada píxel representa 64 posibles tonos de gris. − Audio: Subsistema de audio AC'97. La pantalla es de una resolución muy grande porque está pensada para que sea fácil la lectura en ella.2. incluso a la luz del sol. x 11. Resolución: 1200 x 900 (200 dpi). _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.

18 de 73 Centro Ceibal – Uruguay . _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 1: Un píxel refleja la luz ambiente y también transmite luz de backlight. Fig. 2: Vista de la pantalla al microscopio.Fig.

19 de 73 Centro Ceibal – Uruguay .0 – Pág. 4: Funcionamiento del Display en modo Blanco y Negro. Fig.Fig. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 3: Esquema diagonal de los píxels.

sumada a que la resolución de pantalla es enorme (1200x900) es el aspecto mas crítico a tener en cuenta durante el desarrollo de videojuegos o cualquier actividad que haga uno intensivo de gráficos. 20 de 73 Centro Ceibal – Uruguay .0 – Pág.Fig. Esta falta. 6: Teclas de control de brillo. Peor aún sería en el caso de querer hacer un juego 3D. 800x600. Para pasar a modo color se incrementa el brillo hasta que se encienda la luz trasera (backlight). _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. La computadora XO no cuenta con una placa aceleradora de video. Por este motivo no hay más remedio que trabajar a 1200x900 (salvo la excepción de utilizar overlays que se explica más adelante). Para pasar a modo monocromo se pulsa repetidamente la tecla para bajar el brillo hasta llegar al mínimo. en el cual todo el render es implementado por software (en los juegos de PC actuales o consolas de videojuegos. 640x480. por ejemplo 320x240. el render lo realiza la tarjeta gráfica que soporta aceleración por hardware y es mucho mas rápido). 5: Funcionamiento del Display en modo Color. o se expone el display al sol. Lamentablemente no es posible por programación setear otro modo de video con una resolución más baja como se hace en los PC. Fig.

Se puede profundizar leyendo la especificación de AC'97 en [31]. a 20 bits de resolución y sampleos de 48 kHz a 20 bits de resolución para grabación y reproducción multicanal. 3. permitiendo su utilización como un sensor fotométrico para aplicaciones educativas. En esta referencia se brinda una detallada explicación del funcionamiento del display en lo que se refiere a la luz de backlight y a la luz reflejada y cómo funcionan en conjunto de acuerdo a las condiciones de luminosidad del ambiente. DCON se encuentra en el pipeline de video entre el controlador de video primario (integrado en el procesador) y el LCD.0 – Pág. 21 de 73 Centro Ceibal – Uruguay .3 Audio La computadora XO cuenta con audio estéreo. El codec AC'97 incluye un número de canales de entrada y salida que no son soportados en CL1 (la computadora XO 1. Tanto la cámara como el piloto soportan la desactivación del AGC (Automatic Gain Control) y balance automático de color. Otro componente que vale la pena mencionar es DCON (Display Controller). Hay que probar en la computadora el audio a utilizar. El codec entero se apaga cuando no hay audio de entrada o salida. En [30] se puede profundizar en su especificación. En [8] se pueden ver las especificaciones de la cámara.Se pueden ver más detalles sobre las características y profundizar en el funcionamiento del display en [5]. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. a 40 kHz. El sistema de audio está basado en el estándar Audio Codec '97 de Intel. Este codec soporta sampleos de entrada y salida de hasta 96 kHz. Hay que tener en cuenta en el desarrollo. con dos parlantes y micrófono interno y entrada para auriculares o parlantes externos y para micrófono.4 Cámara La computadora tiene una cámara integrada (Omnivision OV7670) con una resolución de 640x480 píxels y puede funcionar hasta 30 FPS (frames por segundo).0). 3. que los sonidos y música con graves producen vibraciones en el parlante externo de la computadora que los hacen molestos. el cual es el controlador de video secundario que permite que la XO funcione con bajo consumo de energía alternando entre los modos como se explicó anteriormente. La frecuencia de los parlantes internos va aproximadamente desde 480 Hz.2. Estos canales son deshabilitados por el firmware para conservar energía. usando un conversores analógico/digital con un rango dinámico de 80 dB y conversores digital/analógico con un rango dinámico de más de 90 dB.2.

extendiendo el alcance de la red. las computadoras estén conectadas entre sí y con la Internet.3. El chip controlador de red inalámbrica es un Marvell Libertas 88W8388+88W8015 [32]. se deshabilitó la red malla.6. incluso si la computadora se encuentra apagada.4 Ghz. que permite conectarse con otros usuarios sin depender de una infraestructura de red inalámbrica. La idea de la red malla (que ya no se encuentra en las XO) era la siguiente: En la red malla cada máquina funciona como un router inalámbrico full-time que le brinda conexión a las máquinas a su alcance. las XO utilizaban la red malla. la interfaz de red de la computadora está diseñada para operar con poca energía como un nodo en la malla. un botón para rotar el display y el botón de apagado y encendido. Para optimizar el tráfico de la red Ceibal. La computadora posee antenas dobles coaxiales ajustables y giratorias. 22 de 73 Centro Ceibal – Uruguay . _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Se ha comprobado que la mesh (red malla) genera tráfico innecesario que perjudica a los usuarios de la red Ceibal. jugar y aprender en colaboración. Para lograr el funcionamiento de la red malla.0 – Pág.1 Teclado El teclado de membrana consta de 72 teclas de goma. La interfaz de red inalámbrica utilizada por la XO es una WiFi convencional 802. 3. el touchpad y los cuatro botones de dirección a la derecha de la pantalla (gamepad) junto con los cuatro botones de acción (game keys) a la izquierda de la pantalla. en la cual las computadoras pueden pasar los paquetes para otras computadoras. al contrario del funcionamiento tradicional de las redes inalámbricas en las cuales las máquinas se comunican con un punto de acceso en la red.2. De esta forma. sellado contra el ingreso de agua y polvo. La nueva imagen (F11) incorpora la funcionalidad de redes ad hoc. sin requerir de un punto de acceso inalámbrico.).2.6 Dispositivos de Entrada Los dispositivos de entrada de la computadora XO son el teclado. 3.2. La idea detrás de esta red es que aún en zonas remotas.5 Red La computadora XO hasta hace poco creaba una red denominada malla (mesh network) pero ahora la nueva imagen (F11) utiliza una red ad hoc. Los niños pueden trabajar.11 b/g (2.

junto con dos teclas para click derecho e izquierdo.3 Touchpad La computadora XO tiene un touchpad usado para mover el puntero del mouse. que no se tenga que apretar repetidamente la tecla de disparo.2. El touchpad tiene una resolución de 1000 dpi y un área activa de 6. 3.4 cm. Hay que tener en cuenta en el diseño de videojuegos de no requerir un uso intensivo de determinadas teclas. dentro de lo posible (por ejemplo. El motivo de esto es que no es un teclado apto para el uso intensivo en que se le da en videojuegos y hay que cuidarlo.6.0 cm. las cuales se identifican con iconos distintivos (cuadrado. En la parte izquierda de la pantalla se encuentran las teclas direccionales y en la parte derecha de la pantalla las teclas de acción. en la acción de disparar.2. En este modo solamente quedan disponible los botones direccionales y los de acciones de juego que se encuentran a cada lado de la pantalla (de esta forma el teclado y el touchpad no se pueden acceder).6. sino que se pulse una vez y se disparen varias balas).Fig. 7: Imagen del Teclado.2 Gamepad La computadora puede girar el display y cerrarse para operarse en el modo denominado eBook. por 4. De esta manera la computadora puede utilizare más cómodamente para leer libros o jugar como si se tratara de una consola de videojuegos portátil. 3. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. check y equis). 23 de 73 Centro Ceibal – Uruguay . círculo.0 – Pág.

3.4 Otras Entradas La computadora tiene tres entradas para dispositivos USB 2.25. algunas desarrolladas por OLPC y otras por docentes o programadores. 3. en termómetros u osciloscopios.1 Sistema Operativo La computadora XO que distribuye Ceibal tiene instalado Fedora. Es una interfaz pensada para el uso de los niños y es diferente a otras interfaces _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. el usuario final no puede realizar cambios a nivel de software en el sistema operativo. 3. la computadora XO del Plan Ceibal posee restricciones de seguridad para hacer más sencilla la logística de mantenimiento.3. Kernel 2. en el cual los niños pueden enchufar sensores que pueden convertir la máquina.3.2 Interfaz Gráfica La Interfaz Gráfica de Usuario (GUI) utilizada en la computadora XO se denomina Sugar.Es posible colocar un mouse externo a través de uno de los tres conectores USB. Si nunca se ha manejado la computadora XO.0 – Pág. por ejemplo. distribución y mantenimiento de las computadoras en Uruguay.6. En el sitio reduca Wiki [97] se listan muchas de las actividades disponibles para la computadora XO.2. Es importante mencionar que si bien la filosofía detrás de Linux es software libre. Hay que tener en cuenta esta restricción a la hora de desarrollar una actividad que requiera de la instalación de librerías o elementos necesarios no incluidos en la distribución y que requieran de permisos de administrador para ser instalados. En 2011 se libera la imagen F11: Fedora 11.0 un slot SD. De esta forma. 3.3 Software A continuación se describe el software instalado en las computadoras que es relevante para el desarrollo de actividades. se recomienda leer el manual básico de uso de la XO [68]. 24 de 73 Centro Ceibal – Uruguay . El micrófono incluye un modo de sensor de entrada. La versión de la XO durante 2010 fue Fedora 9 Linux Kernel 2.6. ubicado en el parque del LATU [33]) instala las computadoras sin permisos de usuario administrador (denominado root). una distribución del sistema operativo Linux. Por esta razón Centro Ceibal (organismo encargado de la instalación.6.31.

Mac.). la metáfora de objeto en lugar de archivo.) El sitio Wiki de Sugar Labs [34] es una comunidad en la cual los desarrolladores comparten conocimientos y proyectos para soportar Sugar como plataforma. Las principales características de la interfaz Sugar son las Actividades. el diario (journal) y la red malla (mesh). incorporando la funcionalidad de redes ad hoc. En la imagen F11 la red malla se desactiva. El entorno Sugar está desarrollado en el lenguaje de programación Python (más adelante se describe este lenguaje de programación). El documento describe en detalle las partes de la interfaz gráfica que se relacionan directamente con el desarrollo de software y la forma en que las aplicaciones (que se denominan Actividades) interactúan con el sistema operativo. etc. etc. Al desarrollar actividades que corran bajo el entorno Sugar. 25 de 73 Centro Ceibal – Uruguay . En el caso de los videojuegos puede ser diferente. es preferible que estas cumplan con los principios de diseño de usabilidad de Sugar. la metáfora del diario (journal) en lugar de sistema de archivos. Fig. En el documento Human Interface Guidelines [9] de Sugar Labs se pueden ver las razones filosóficas detrás del diseño de la interfaz gráfica Sugar (por ejemplo la colaboración. Los mismos pueden leerse en [9].0 – Pág. Los videojuegos como tienen su propia interfaz gráfica acorde al tema del juego (por un tema de inmersividad). Este documento es sumamente importante para entender el funcionamiento de Sugar y porqué algunas cosas son de la manera que son. generalmente corren en modo fullscreen y no interactúan demasiado con la interfaz gráfica del sistema operativo. 8: Imagen del Entorno Sugar.(Windows. los objetos. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. no tienen la obligación de adherirse a los estándares del sistema operativo y/o entorno gráfico.

3.3.3 Las Actividades En el entorno Sugar, las aplicaciones se denominan Actividades. Como en cualquier otro entorno, las actividades tienen una funcionalidad común a todas (la barra de actividad, acciones como por ejemplo compartirla, etc). Las actividades son diferentes a las aplicaciones de otros entornos en cuanto a su foco (colaboración y expresión) y su implementación (journal y la iteración) [9]. En el Apéndice A se describe cómo se construye una actividad.

3.3.4 El Diario El Diario (Journal) es una característica propia del entorno Sugar y es donde se van registrando todas las actividades que se realizan con la computadora. De esta forma, es como un cuaderno en el cual se puede ver el trabajo realizado y continuar con alguno que se encuentre pendiente. Se ha elegido la metáfora del Diario como sustituto al sistema de archivos (el sistema de archivos por debajo es el de Linux, pero en Sugar se utiliza la metáfora del Diario). Cuando se desarrolla una actividad educativa que es colaborativa, el diario toma un papel fundamental y el desarrollador debe pensar en profundidad cómo la actividad se integra con el diario. Se utiliza el diario también para poder acceder a los medios de almacenamiento externo (pendrives y tarjetas SD) y se utiliza el diario para eliminar archivos. Por este motivo es que se asocia el diario con el sistema de archivos.

3.3.5 El Navegador y las Aplicaciones Web El navegador de la computadora XO es la actividad Navegar (Browse), la cual utiliza el motor Gecko y el lenguaje de programación Javascript [36], al igual que lo hace el navegador Firefox. La actividad Navegar es bastante más simple que Firefox y la restricción más importante es que no soporta todos los complementos (plugins o add-ons) que soporta Firefox. Al igual que cuando se desarrolla una actividad nativa, cuando se desarrolla una actividad o aplicación Web, debe probarse en diferentes navegadores, pero cuando ésta es destinada al uso en las XO, no debe asumirse que algo funciona hasta no comprobarse en la misma computadora XO. Con la actividad Navegar se puede hacer lo siguiente: − Navegar páginas web. − Mostrar varios formatos de imagen, como PNG, SVG o JPEG. Se puede encontrar _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 26 de 73 Centro Ceibal – Uruguay

más información sobre formatos en [37]. − Descargar actividades online (al acceder a archivos con extensión .xo la actividad se descarga automáticamente y se instala, creándose el icono en el escritorio). El archivo .xo (denominado bundle) se descarga en el Diario. − Correr algunos plug-ins como el Flash Player (hay que tener recaudo porque corre muy lento comparado contra otras computadoras). − Ejecutar código Javascript. La actividad Navegar escala las páginas aproximadamente un 40% para que se vean a un tamaño legible (no usa la resolución 1200x900). Por este motivo, es necesario probar el diseño de la página en la XO. Se recomienda diseñar para un tamaño de 800x600. En [85] se encuentra la especificación completa de las funcionalidades y componentes de la actividad Navegar (Browse).

_____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 27 de 73 Centro Ceibal – Uruguay

Capítulo 4 - Desarrollo de Actividades y Juegos
En este capítulo se describen las características de las actividades y los posibles lenguajes a ser utilizados al crear actividades y juegos para la computadora XO. Se brindan pros y contras de cada uno y los elementos a tener en cuenta a la hora de elegir un lenguaje para desarrollar la actividad. Al comparar lenguajes para su uso, hay que tomar en cuenta las preferencias de cada uno, las realidades de la empresa y la industria, lo que se desea desarrollar, etc. Casi siempre estas discusiones de elegir entre uno u otro lenguaje son “religiosas”, pero la realidad es que es mejor poder usarlos a todos ya que uno puede ser mejor que otro en determinada situación. La regla de oro es aceptar que no existe el lenguaje perfecto ni nunca va a existir. Mucha gente se pasa buscando el lenguaje perfecto y no se enfoca en lo mas importante que es hacer el desarrollo en sí. Los lenguajes son solamente herramientas. Las variables para la elección de un lenguaje son la performance (Ej: C++ es más eficiente que Python), la sencillez de uso (un lenguaje interpretado suele ser más sencillo de utilizar que uno compilado), la disponibilidad de programadores en el mercado (suelen haber más programadores de lenguajes de script que de C++), el costo (por ejemplo Flash tiene licencia mientras que C++ o Python no), etc. En [26] se encuentra el sitio de desarrollo del Plan Ceibal, en el cual se pueden acceder a diferentes documentos relacionados al desarrollo de actividades, incluyéndose esta guía. En el sitio [96] hay compilados muchos enlaces a actividades, eventos y documentación relacionada con el desarrollo para las computadoras XO y OLPC.

4.1 Actividades y Aplicaciones Web Como en toda computadora, es posible ejecutar programas de varias formas. Cada una tiene sus pros y sus contras y muchas veces hasta definen el lenguaje de programación que debemos utilizar, por supuesto, según que se vaya a realizar. El software a ser utilizado en la computadora XO puede clasificarse según su lugar de almacenamiento: 1. Local: El software se instala en el equipo y luego es ejecutado localmente. Ejemplo de esto son las actividades que se instalan en la computadora y luego son ejecutadas localmente. 2. Web: El software es accedido a través de la conexión de red inalámbrica accediendo a un sitio web. Ejemplo de esto son las aplicaciones web que se acceden utilizando el _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. 28 de 73 Centro Ceibal – Uruguay

navegador. HTML5. o pendrive.2. por lo cual lo hace el lenguaje natural para desarrollar actividades. Una actividad es básicamente un archivo con extensión . El entorno Sugar se encuentra desarrollado en lenguaje Python así como la mayoría de las actividades instaladas en la computadora XO. El uso de Python para desarrollar una actividad es recomendado debido a que el entorno Sugar está desarrollado en Python al igual que la mayoría de las actividades instaladas en la XO. A continuación se describen las principales ventajas y desventajas de cada uno. además de que existe mucha bibliografía al respecto. Java. sino en cuál lenguaje es mejor para realizar determinado proyecto. Sin embargo. etc. por lo cual existe una gran base de código que se puede reutilizar. por ejemplo) la computadora lo instala y coloca el icono en la pantalla principal del entorno gráfico para que quede disponible. etc. es más lento que un lenguaje compilado como C++. Hay que mencionar que el código fuente de las actividades se encuentra disponible. hay que tener en cuenta que como Python es un lenguaje interpretado.2 Lenguajes de Programación Existen varios lenguajes de programación que se pueden utilizar para desarrollar software para la computadora XO y cada uno tiene sus pros y sus contras que se analizarán más adelante. C++ es el lenguaje recomendado para la programación de videojuegos ya que es el lenguaje con el cual se obtiene la mayor performance posible y es el lenguaje estándar en la industria de videojuegos.1 Python y Pygame Python [13] es un lenguaje de programación de alto nivel cuya filosofía se basa en tener una sintaxis limpia y el favorecer la legibilidad del código. instalación de plugins. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 4. Para desarrollar software para la computadora XO se recomienda utilizar Python [13] y/o C++ [38].xo (es un archivo con formato de compresión zip) que al accederlo (vía el navegador. 4. Nunca una discusión de que lenguaje utilizar se debe centrar sobre cuál lenguaje es mejor en sí mismo. En el Apéndice A se describe la estructura de una actividad. pero no es aconsejable su uso debido a que hay que trabajar alrededor de bastantes problemas de performance. Es posible utilizar otros lenguajes según el caso para realizar actividades más sencillas o web (descartando por supuesto a los videojuegos en su concepción tradicional): Flash. 29 de 73 Centro Ceibal – Uruguay .0 – Pág.

C++ y SDL C++ [38] es el lenguaje de programación más utilizado para el desarrollo de software de base y videojuegos por la eficiencia del código generado por el compilador. Las empresas de la rama Audiovisual que tienen tendencia al uso de Flash deberían optar por Python que es un lenguaje de script al igual que ActionScript. En algunos encuentros de Ceibal Jam se ha tratado el tema y se ha realizado un primer programa en Pygame [78].0 [77]. En el sitio web de la biblioteca Pygame [14] se puede acceder a la documentación de la biblioteca. Python o C++.2. Piere-Alain Dorange también escribió otro juego denominado PyFrogger. En [14] hay una lista de juegos Pygame con código fuente para probar y aprender. El mejor juego de Pygame que el autor de esta guía ha encontrado que funcione bien en las computadoras XO (fullscreen) es Micro War 2. 30 de 73 Centro Ceibal – Uruguay . En el sitio oficial del lenguaje de programación Python [13] se puede descargar el software necesario. dependiendo de sus objetivos. Es más sencillo encontrar en el mercado programadores de script que programadores C++ y también el lenguaje de script tiene una barrera de entrada mucho mas baja que C++. Pygame es un wrapper de SDL para Python (ver la siguiente sección que habla sobre SDL). que es una biblioteca para entre otras cosas.0 – Pág. y ambos utilizan un engine para videojuegos que se denomina Fgame. C++ es un lenguaje de más bajo nivel que Python. lo cual tiene ventajas en cuanto a la performance pero desventajas en cuanto a la productividad. 4. Para desarrollar videojuegos o actividades que hagan uso intensivo de gráficos se utiliza la _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. acceder a la documentación del lenguaje. Su autor. etc. Más adelante se describen los pros y contras de los lenguajes.2. C++ es el lenguaje más eficiente para desarrollar videojuegos para la computadora XO. Estas bibliotecas (Pygame y SDL) ya se encuentran instaladas en la computadora XO.Para realizar videojuegos. La librería da acceso a varias características especiales del ambiente Sugar. a tutoriales sobre programación de videojuegos. en [93] se brinda una introducción a Pygame en la computadora XO y la librería OLPC Games [94] permite que un juego desarrollado en Pygame corra dentro de una actividad Sugar. Utilizando C++ se puede alcanzar una muy buena performance en las actividades. etc. Las empresas de la rama informática que suelen tener programadores de mayor nivel podrían usar cualquiera de los dos. Viendo el código fuente de esos juegos se pueden aprender muchas cosas de Pygame. como la red malla (recordar que no se utiliza más en la imagen F11) y la cámara. a código fuente de videojuegos ya realizados. En el sitio [95] se puede obtener información de los requisitos de OLPC para el desarrollo de actividades. Python utiliza Pygame [14]. el manejo de gráficos para videojuegos.

31 de 73 Centro Ceibal – Uruguay .bliblioteca gráfica SDL (Simple DirectMedia Library) [15]. No requiere proceso de compilación. por lo cual lo hace el lenguaje natural de la computadora XO. Esta biblioteca se encuentra instalada en la computadora XO. estructurada o funcional. Puede llevar mucho tiempo encontrar determinado tipo de _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.0 – Pág. por lo cual existe mucho know how accesible en Internet.3 Ventajas y Desventajas de Python y C++ Siendo Python y C++ los lenguajes recomendados para desarrollar actividades y videojuegos para las computadoras XO. − Se pueden escribir nuevos módulos fácilmente en C o C++. Desventajas: − Es menos performante que C++ debido a que es un lenguaje interpretado. Python Ventajas: − Es el lenguaje utilizado en el entorno gráfico Sugar y en la mayoría de sus actividades.2. − Si no se codifica prolijamente se podría dificultar la lectura del código o introducir errores indeseados. 4. programadores C++. − Es más sencillo el desarrollo ya que es un lenguaje de script. La biblioteca SDL es de uso común en la industria de videojuegos. a código fuente de juegos realizados. Esto permite desarrollar en un entorno con un intérprete interactivo. lo que facilita experimentar con características del lenguaje o probar funciones durante el desarrollo del programa. − Hay más programadores Python en el mercado que lo que hay. dado que es un requisito para el correcto funcionamiento de Pygame. En el sitio oficial de SDL [15] se pueden acceder a tutoriales de programación de videojuegos. por lo que permite varios estilos de programación: orientada a objetos. a la documentación de SDL. El lenguaje tiene una barrera de entrada más accesible. el cual es un wrapper de SDL para Python. Una de las ventajas de esta librería es que es multiplataforma y ha sido portada a XO. − Facilita el intercambio con otros miembros de la comunidad de desarrolladores Sugar-OLPC ya que es el lenguaje más difundido para los desarrollos en Sugar. sino compilado. etc. sumado a que C++ no es un lenguaje interpretado. por ejemplo. Con C++ se utiliza directamente la librería SDL por lo cual es mas eficiente que usando Python con Pygame. − Es multiparadigma. Para cierto tipo de videojuegos que requieran mucha performance puede no ser adecuado el uso de Python. hay que tener en cuenta en la elección entre uno de estos dos lenguajes las siguientes ventajas y desventajas de cada uno.

0 – Pág. − El compilador del lenguaje atrapa una gran cantidad de errores de sintaxis y operaciones sin sentido que evitan que se traduzcan a problemas de lógica que luego son más difíciles de encontrar. permite programación orientada a objetos y estructurada.errores. principalmente para el desarrollo de aplicaciones o juegos web.4. − Es multiparadigma. − Tiene una barrera de entrada más alta. En [19] se explica cómo utilizar rutinas C++ con Python. característicos de los lenguajes de script. − Se puede utilizar para extender funcionalidades en un programa desarrollado en Python. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 4. Desventajas: − El proceso de compilación es más complejo y se requieren mayores conocimientos de programación (manejo de punteros y programación de más bajo nivel).1 Flash Flash es una plataforma muy difundida. En [18] se pueden ver las actividades Sugar realizadas con Python.2. En [19] y [20] se pueden ver ejemplos de actividades desarrolladas en C++ totalmente o en parte. tomando un poco mas el tiempo de desarrollo. debido a que es un lenguaje compilado.2. − Suele costar bastante más un programador C++ que uno Python. A continuación se describen los más utilizados. C/C++ Ventajas: − Es mucho mas performante que Python. − Algunos errores en tiempo de ejecución hacen caer el sistema. Se ha vuelto muy popular porque para hacer animaciones o aplicaciones básicas no requiere de conocimientos de programación. 4. Generalmente las aplicaciones flash son accedidas desde una página web utilizando el navegador. 32 de 73 Centro Ceibal – Uruguay .4 Otros Lenguajes Existen otros lenguajes para desarrollar software para XO pero su uso no es recomendable si no se tienen en cuenta aspectos de rendimiento.

33 de 73 Centro Ceibal – Uruguay . con respecto a Flash por ejemplo.x de Flash en el browser. La performance del player de Flash en la XO es muy pobre. La imagen original de OLPC traía instalado el player Gnash y el cambio se debe a un tema de compatibilidad.4. Flash por supuesto se descarta totalmente para videojuegos y aplicaciones con animaciones. que desarrolló el framework Karma [25] para crear software educativo utilizando HTML5. en cuyo caso puede evaluarse el uso de Flash. Un ejemplo de uso de HTML5 es el proyecto OLE Nepal.3 Java No es posible utilizar Java en la computadora XO. Sin embargo. aunque por el momento se encuentra muy lejos en su uso en la industria. Hay librerías para videojuegos como Impact [24]. Es posible empaquetar un programa Flash como una actividad. es posible instalar Java manualmente. para que funcionen los sitios web con flash (aunque con severos problemas de performance). Las principales ventajas del uso de Flash es el formato vectorial para realizar animaciones que hace que pese poco.2. la facilidad que tiene para permitir el manejo de gráficos. JavaScript y SVG. La idea es poder ejecutar una aplicación web desde cualquier navegador que soporte HTML5 sin requerir la instalación de un plugin. Ejemplos de juegos en HTML5 son el Pacman de Google [22] y el juego BioLab Disaster [23]. etc. La inmensa mayoría de las aplicaciones Flash no corren adecuadamente en la XO en cuanto a velocidad de respuesta. Actualmente se está comenzando a hablar de HTML5 para videojuegos. audio y video. tal cual viene instalada por no contar con el runtime de Java instalado.2. el editor que permite realizar animaciones cómodamente. pero de todas formas la performance es muy mala para videojuegos y actividades con animaciones. Puede suceder que en el futuro las computadoras OLPC sean más poderosas y permitan desarrollar actividades Flash. 4.4. o que la actividad a desarrollar sea muy simple. 4.2 HTML5 El estándar HTML5 está creciendo en adeptos y puede ser una opción viable para determinado tipo de aplicaciones.0 – Pág. la cantidad de diseñadores y programadores disponibles en el mercado que ya conocen la plataforma. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. aunque es paga.La imagen de Centro Ceibal trae instalado el player 10. y se gana un poco en performance.

A diferencia de Pygame. PyGTK no está orientada al desarrollo de videojuegos. Esto permite crear videojuegos o actividades multimedia de forma tal que es portable entre varias plataformas y sistemas operativos.5. tablas. etc).6. En Ceibal Jam se han recomendado algunos libros introductorios sobre lenguaje Python [86]. Para desarrollar videojuegos en Python se utiliza Pygame.4 Desarrollo en C++ Para desarrollar videojuegos en C++ para la computadora XO.3 Desarrollo en Python La versión de Python instalada en la computadora XO hasta principios de 2011 era Python 2. Los mejores libros que funcionan como puerta de entrada para la programación de videojuegos en Python/Pygame son Beginning Game Development with Python and Pygame: From Novice to Professional de Will McGugan [39] y Game Programming With Python de Sean Riley [40].utilizando el navegador Firefox. que es una biblioteca para implementar una interfaz de usuario. 4. botones. No se recomienda su uso para actividades como juegos por su baja performance. El libro (free) Invent Your Own Computer Game with Python [87] es una excelente introducción al lenguaje. La versión de Python se puede obtener abriendo la terminal y ejecutando el siguiente comando: Python -V Python también puede utilizarse con PyGTK [16]. que es una biblioteca diseñada para dicha actividad. 4. En el sitio web de PyGTK [16] se puede acceder a tutoriales y a la documentación de la librería. En [106] se describe la instalación de Firefox y Java en la computadora XO. Pygame permite a un programa Python utilizar SDL (por lo cual se dice que Pygame es un wrapper de SDL para Python). se utiliza la biblioteca SDL _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Pygame ya viene instalado en las computadoras XO y funciona perfectamente.0 – Pág. también hay un documento que explica la programación inicial para XO y sugiere otros enlaces para investigar [89]. La versión de Python instalada en la versión F11 disponible desde 2011 es la 2. 34 de 73 Centro Ceibal – Uruguay . favoreciendo el intercambio. sino que permite implementar los elementos comunes de una interfaz de usuario (ventanas.1. A la hora de desarrollar con Python se sugiere utilizar el estilo de código de estilo definido en la guía PEP8 de Python [17] de forma tal de utilizar un estándar de codificación conocido que permite la lectura por parte de otros desarrolladores. listas.

Sugar on a Stick [100] y Virtual Box [108]. Los mejores libros de introducción a la programación de videojuegos en SDL son Focus on SDL de Ernest Pazera [41] y Programming Linux Games [98]. a los dispositivos de entrada. 4.0 – Pág. Hay muchas cosas que se pueden dar como dadas en cuanto a compatibilidad que luego no son tal. pero es recomendable cada cierto tiempo realizar una prueba en la computadora real. artistas. Se necesita de un equipo multidisciplinario formado por productor. En [67] hay un instructivo para la instalación y uso de Jhbuild [66] para armar un entorno de desarrollo Sugar en su computadora. etc. pero no sirve para ver problemas de performance. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. De todas formas. pero de ninguna forma un emulador emula la realidad en forma confiable.6 Sobre el Desarrollo de Videojuegos El desarrollo de videojuegos es una tarea muy compleja. Se requieren habilidades específicas y se suele trabajar muchas horas. etc. es posible utilizar emuladores.5 Sobre el uso de Emuladores Durante el desarrollo del proyecto. SDL viene instalado en la computadora XO y funciona perfectamente. por lo cual no se puede prescindir de realizar pruebas periódicas en la misma XO. la única manera de garantizar que un producto corre aceptablemente en la computadora XO es realizando las pruebas sobre la misma. lo cual es lógico porque se realizan muchas compilaciones al día. la cual es una biblioteca que brinda acceso a las interfaces de bajo nivel para realizar tareas de forma eficiente en juegos 2D. músico. Pero los emuladores ayudan en dar un entorno más real que el del propio IDE. Para esto último se necesita hacer la prueba en la computadora XO misma. Muchas cosas pueden ser diferentes: como se siente el teclado. etc. por lo cual es recomendable hacer pruebas en la misma máquina. al sistema de audio. Al igual que Pygame. SDL nos da acceso al display. 35 de 73 Centro Ceibal – Uruguay .(Simple Directmedia Library). El uso de emuladores puede mostrar problemas de funcionalidad de nuestro proyecto. la luz de la pantalla que es un poco mas oscura que en las computadoras normales y los colores no son tan nítidos. el sonido de los parlantes. Si no se tuviera acceso a una computadora XO. programadores. Algunos de los emuladores utilizados son QEMU [99]. 4. los programadores prueban el juego en su computadora local con el entorno de desarrollo (IDE). En [107] se pueden descargar los archivos de imágenes de OLPC. diseñador de juego.

Lo mismo con el cuadro de animación de.0 – Pág. Actualización de la nueva posición de cada objetos del juego // de acuerdo a su comportamiento. en la cual se utiliza mucho la programación orientada a eventos. aunque el usuario no haga nada. no sabe como se hace para mover varias cosas y objetos en la pantalla y que éstos tengan comportamientos autónomos. d. De hecho tampoco sirve para programar una interfaz gráfica con animaciones. Esto es contrapuesto a la programación orientada a eventos en la cual el programa no hace nada hasta que el usuario hace alguna acción y esto ocasiona un evento.6. Animación de sprites y optimizaciones. clases y objetos típicos. 36 de 73 Centro Ceibal – Uruguay . 4. al pulsar un botón se invoca a una función).1 Game Loop El loop principal del juego (game loop) es una estructura que se repite continuamente y mantiene funcionando a todos los objetos del juego. En un juego hay objetos que se están moviendo o haciendo cosas. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Respuesta a eventos. c. e. render() // Dibujado del cuadro actual. Lo que involucra básicamente la programación de un videojuego es: a. // cada objeto. mouse. Estructura general de un juego. El loop principal. } update() { // Lógica del juego. Este tipo de programación sirve para crear una interfaz gráfica en la cual se responde a eventos (por ejemplo. etc). pero no para programar un videojuego. Los dos principales conceptos para programar un videojuego son: 1) El game loop (bucle principal) y 2) La máquina de estados de los objetos (FSM: Finite State Machine). Detección de colisiones. Básicamente el loop de un juego es algo así: while (!salir) { checkInput() // Leer la entrada del usuario (teclado. b. update() // Lógica del juego. Generalmente se tiene la base de programación que se da en la academia tradicionalmente.Mucha gente cuando comienza a desarrollar un juego y no tiene experiencia.

hay que tener en cuenta que el usar un motor (engine) ya desarrollado. etc. Cada uno de estos comportamientos es un estado y luego tendremos condiciones para pasar de un estado a otro. saltando. al estado. destruir o crear objetos nuevos. render() { dibujarFondo() dibujarSprites() } El game loop (bucle principal del juego) es uno de los principales componentes a la hora de crear un juego. o dicho de otra manera. hay que ir a esa parte específica del código que maneja esa situación. En particular. Lo importante de todo esto es que la implementación de una máquina de estado en la programación. 4. o para prototipar más rápido y probar una idea en el menor tiempo posible. no garantiza un menor tiempo de desarrollo y se recomienda entender cómo está construído _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Si la caída es muy alta el personaje pasará al estado “muriendo”. si el personaje está en el estado “cayendo”. 37 de 73 Centro Ceibal – Uruguay . cayendo.2 Máquina de Estados (FSM) Una máquina de estados (Finite State Machine) es simplemente una idea que permite definir en que estados puede estar un objeto. De este modo. el personaje de un juego de plataformas puede estar parado. álgebra y física básica). Sin embargo. junto con el concepto de máquina de estado. Se puede acceder al sitio del libro desde [102]. Estos dos son los grandes “secretos” de la programación de juegos que se deben aprender. es una forma de organizar el mismo.} // Chequear colisiones entre objetos.7 Bibliotecas y Engines para Juegos Es posible utilizar algunas bibliotecas o engines para acelerar el desarrollo de actividades o videojuegos. El libro Programming Game Ai by Example de Matt Buckland presenta una excelente introducción al tema. 4. etc.0 – Pág. Una muy completa descripción del funcionamiento de FSM y su uso en videojuegos se puede encontrar en [101]. caminando. la programación de estados es siempre el primer o segundo capítulo de cualquier libro de inteligencia artificial (el primero suele ser el uso de vectores. Por ejemplo. cuando se quiere cambiar cierto comportamiento. la condición para cambiar de estado puede ser si toca el piso.6. Por ejemplo. mientras que si no es muy alta pasará al estado “parado”.

1 PGU – Python Game Utilities PGU [42] es un conjunto de módulos (programas Python) útiles para escribir juegos con PyGame. debido a que aceleran el desarrollo. evitan reinventar la rueda y reducir costos de mantenimiento [46].7. botones. las cuales aumentan la productividad. Box2D es para utilizar con C++.0 – Pág.el motor para poder usarlo correctamente. PyBox2D [44] es una conversión de Box2D para su uso con Python. Las librerías Boost tienden a convertirse en un estándar y muchos programadores C++ están familiarizados con ellas. 38 de 73 Centro Ceibal – Uruguay . C++: Microsoft Visual C++ para Windows [50]. ver la versión para Flash Actionscript 3.3 Boost C++ Las librerías Boost de C++ son un conjunto de funcionalidades que se están adoptando como de uso estándar en la industria. 4. A continuación se introducen algunos motores o bilbiotecas que pueden ser de utilidad. combobox. Python: IDLE (es más simple) [49]. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.2 Box2D y PyBox2D Box2D [43] es un motor de física para realizar videojuegos o simulaciones basadas en física.0 es Box2DFlashAS3 [45]. Para desarrollar en Python o C++. 4. Xcode para Macintosh [52]. resultan en menso bugs. algunos de los entornos de desarrollo más usados en la industria son: − − − − − Python: Eclipse + PyDev [47] y [48]. Actualmente PGU contiene módulos para crear una interfaz gráfica con textbox. Para ver una demostración de la librería e imaginarse sus posibles usos. etc. Eclipse CPP para Windows/Linux [51]. 4.7. También trae herramientas para crear niveles con mapas de tiles y un conjunto de librerías de propósito general para videojuegos.8 Entornos de Desarrollos Existen varios entornos de desarrollo (IDE) para los diferentes lenguajes y cada uno presenta diferentes funcionalidades. Hay que elegir cual usar de acuerdo a la plataforma en la cual se va a desarrollar y a lo que se necesite.7. 4.

39 de 73 Centro Ceibal – Uruguay . Por lo tanto. 30 es un frame rate adecuado para videojuegos y 60 seria ideal aunque es difícil alcanzarlos en una XO. Entre las principales limitaciones se encuentra la gran resolución de la pantalla.Limitaciones de la Computadora XO y Optimizaciones La computadora XO está diseñada para las necesidades de los niños en la educación. Al desarrollar un juego hay varios aspectos técnicos que tener en cuenta.Capítulo 5 . Aparte de los consejos habituales sobre optimización del lenguaje. Durante el desarrollo. el espacio en memoria Flash de 1Gb para las actividades. dependiendo del juego claro. etc. como la velocidad con que va a correr el juego. nos encontraremos que el display es el cuello de botella en lo que se refiere a rendimiento. los desarrolladores deben hacer los mayores esfuerzos para escribir código eficiente y optimizar tanto en espacio como en velocidad de proceso y uso de memoria. Si bien las computadoras modernas ofrecen mucha capacidad de proceso.0 – Pág. las computadoras XO son más lentas en comparación. es necesario mostrar los frames por segundo (FPS) al cual corre el juego para asegurarse que el juego corra a una velocidad adecuada y poder identificar situaciones en el juego en las cuales el frame rate baja (por ejemplo cuando se crean objetos) y poder tomar acción para que esto no ocurra y el frame rate se mantenga constante durante todo el juego. 5. cuánto espacio ocupará el archivo a distribuir. lo cual nos introduce un mayor nivel de exigencia. etc. con los cuales cualquier programador debería estar familiarizado. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.1 Sobre el Display Cuando se desarrolla un videojuego o una actividad que requiera un uso intensivo de gráficos. la falta de tarjeta gráfica aceleradora. La computadora está diseñada para que sea de bajo costo y consuma la menor energía posible. razones por las cuales hacen a la máquina con ciertas limitaciones si se la compara con otros sistemas. un procesador más lento. se describen en esta sección los consejos de optimización para ser tenidos en cuenta en el desarrollo de videojuegos. el tiempo necesario para la descarga. no para las necesidades de los videojuegos frenéticos u otras aplicaciones de oficina [9]. En este capítulo se describen las limitaciones propias de la computadora XO que hay que tener en cuenta al desarrollar actividades y videojuegos y se describen técnicas de optimización que hay que implementar para que el producto corra en forma adecuada en lo que respecta al rendimiento.

El hecho más crítico en lo que respecta a performance es que en la computadora XO las librerías Pygame y SDL solamente soportan el modo 1200x900. etc. como por ejemplo lo hace Windows. por lo cual ese será el tamaño de ventana a utilizar y es un área muy grande considerando las características de la computadora.2 Sobre Audio y Video Para realizar un mejor aprovechamiento de la capacidad de almacenamiento y procesamiento de la XO es recomendable utilizar los formatos soportados por la XO para codificar los archivos de audio y video. el formato que funciona mejor es OGV.0 – Pág. 3) Normalmente no es posible elegir un modo de video que no sea 1200x900 (SDL y Pygame nos retornan solamente ese modo en la XO).ogg). En [12] se puede obtener más información sobre este formato. la mayoría de los juegos descargables de PC corren a 800x600. ya que éstas limitaciones tendrán un mayor impacto en la performance del software en la XO que en otras computadoras. 40 de 73 Centro Ceibal – Uruguay . 2) no cuenta con una placa aceleradora de video. y solo unas pocas actividades pueden correr en forma concurrente. En [105] se puede ver una página web con un video que funciona perfecto en la computadora XO. El formato principal para la reproducción de audio y video en Sugar es OGG (archivos con extensión . pero esto no se encuentra bien documentado). En general los videojuegos no corren a una resolución tan grande.3 Optimización de Memoria La computadora XO no trabaja con espacio de intercambio (swap). por lo cual todo el render del juego se debe hacer por software. El formato OGG es bastante utilizado en videojuegos de PC y Mac y en general cualquier software de edición de audio lo maneja. Hay que tener en cuenta las limitaciones de memoria cuando se desarrollan actividades. 5. Hay que tener en cuenta entonces que usar esta resolución tan grande introduce problemas de rendimiento y de espacio y hay que pensar en la optimizaciones que se describen más adelante. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. incluso si el video se pone en fullscreen.Las principales causas son las siguientes: 1) la computadora XO es una computadora con capacidad de procesamiento limitada para lo que son los estándares actuales. En [10] y [11] se puede obtener más información sobre audio y video en la XO respectivamente. 5. En el caso de video. No es posible elegir otra resolución mas baja (salvo utilizando overlays y escalado por hardware. los juegos flash en web a 640x480.

Hay que ver también si se logra mantener un frame rate aceptable realizando el escalado por software. 5.5 Optimizaciones de Velocidad de Ejecución Existen varias técnicas de optimización de velocidad de ejecución que son utilizadas generalmente por los desarrolladores de juegos para móviles o sistemas embebidos. que al final suman en el tamaño del archivo de la actividad. − Una optimización muy importante es el uso de la utilidad PNG Tools [90] para bajar considerablemente el tamaño de los archivos gráficos PNG. De esta forma los gráficos se reducen a la mitad del tamaño y se sigue utilizando toda la pantalla. por ejemplo.5. rotación. PNG o GIF) deben ser de mayor tamaño que lo normal y pueden llegar a ocupar mucho espacio.xo que se descarga y luego se instala en la computadora).4 Optimización de Espacio Como las computadoras tienen un espacio de almacenamiento limitado (1Gb) y las actividades se suelen descargar desde Internet con una red inalámbrica y con conexiones a veces muy lentas. Algunas de estas técnicas son las siguientes: − Es mejor utilizar un lenguaje compilado como C++ que uno interpretado como Python. − Es bastante más rápido utilizar color key (un color de la paleta que es tomado como color transparente. Debido a la alta resolución de 1200x900 de la pantalla. suele utilizarse el magenta puro) que utilizar _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Los desarrolladores de dispositivos móviles utilizan este programa para optimizar al máximo el tamaño de los archivos PNG. − Es posible utilizar imágenes indexadas (paleta de 256 colores) en las imágenes PNG si es aceptable en cuanto a la cantidad de colores requerida.0 – Pág. cambio de la paleta de colores. Hay que encontrar el balance justo. flip. − Es posible utilizar archivos JPG para los fondos. por ejemplo a la mitad (600x450) y escalar en tiempo real. que comprime mas el tamaño aunque se puede ver ruido en las imágenes. − Se podría trabajar en una resolución menor. Aquí por supuesto existirá un trade-off entre velocidad y almacenamiento. 41 de 73 Centro Ceibal – Uruguay . y hay que tener en cuenta que en algunos casos puede ser una desventaja tener menos resolución (se pierde definición por ejemplo). − Se pueden utilizar algoritmos de programación para hacer transformaciones a los gráficos (por ejemplo: mirror.) de forma tal de no requerir las imágenes correspondientes. etc. las imágenes (archivos JPG. es conveniente que se piense en optimizar el tamaño de la actividad (tamaño del archivo . Se pueden utilizar diferentes métodos para optimizar el tamaño requerido por las imágenes.

− − − − − un canal alpha. o comprobar colisiones de todos contra todos. Las imágenes con alpha también ocupan mayor espacio. Python es mas apto para quien se inicia en programación o para escribir la lógica de algunos objetos del juego o la interfaz de usuario. Evitar correr lógica de objetos que se encuentran fuera de la cámara. supongamos que tenemos un juego en el cual hay un dibujo de fondo y sobre él se mueven muchos sprites.7 Redibujado de la Pantalla (Dirty Rectangles) Un aspecto clave de un videojuego a la hora de correr a un frame rate adecuado (por lo general 30-60 FPS) es la cantidad de gráficos que hay que actualizar en la pantalla en cada frame. De todas formas siempre hay que trabajar bastante en temas de optimización y en forma constante durante el desarrollo. Es recomendable utilizar matemática de punto fijo. 42 de 73 Centro Ceibal – Uruguay . Esto se agrava por el hecho de que la computadora XO tiene una resolución muy alta. pero hay que usarlo para las partes del juego que no sean críticas en cuanto a performance. las cosas andarán lentas. Está bien comenzar haciéndolo de esta forma y luego optimizar las rutinas de dibujo. Utilizar técnicas de optimización de videojuegos como Dirty Rectangles. 5. Por ejemplo. Es aconsejable para este tipo de desarrollos el uso de C++ y SDL e incluso alguna rutina Assembler si se lleva al extremo el videojuego (por ejemplo para implementar scrolling o muchos sprites en pantalla). Utilizar pool de objetos de forma tal de no pedir memoria cuando se crean objetos nuevos en el juego. Se pierde precisión pero se gana en velocidad de ejecución. es perfectamente posible hacerlo en Python a la resolución de 1200x900. Si se diseña alguna actividad teniendo en cuenta las limitaciones de la plataforma. 5. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. pero en algún momento hay que hacerlo si el juego tiene los gráficos suficientes como para que el frame rate no sea aceptable. Lo mejor es realizar un prototipo lo mas temprano posible para asegurar que el motor del juego que se tiene hace posible el desarrollo deseado. utilizar tablas de búsqueda. de modo de no necesitar usar números de punto flotante. No dibujar todo el cuadro en cada frame. Si en cada cuadro dibujamos el fondo y todos los gráficos.0 – Pág.6 Uso de los Lenguajes Para desarrollar un videojuego para la computadora XO lo más eficiente en cuanto a rendimiento (por ejemplo que mueva muchos sprites a la vez) es C++. Para llamadas a funciones costosas como seno y coseno.

aunque siempre pueden haber excepciones. generalmente desde la esquina superior izquierda hasta la esquina inferior derecha. El nombre de la técnica proviene justamente del hecho de que dibujamos solamente los rectángulos que marcamos como sucios.En general el software se escribe primero y luego se optimiza. lo cual abre la puerta para tener muchos gráficos en la pantalla. Implementando el escalado por hardware. o incluso hacer un juego simple en 3D utilizando un motor de render por software como Mic3D [109]. utilizar motores de física como Box2D [43]. Luego cuando el objeto se mueve. se guarda lo que había en el fondo. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. La técnica de Dirty Rectangles implica definir un bounding box para cada imagen. Una optimización para lograr tener muchos sprites en pantalla y que corra aceptablemente es usar la técnica Dirty Rectangles. es hacer el juego a una baja resolución y luego utilizar overlays para llevar esa imagen a la pantalla completa (el chip de video de la computadora XO soporta escalado por hardware). De esta forma. y estos son los que marcan la posición anterior que tenia el objeto que vamos a dibujar en el frame actual. o con scrolling. cuando se va a dibujar una imagen. implementar sistemas de partícula. Para implementar overlays hay que referirse a la documentación de SDL [15] y utilizar la clase SDL_Overlay.8 Overlays (Escalado por Hardware) Una buena solución al problema de performance en juegos de acción con muchos objetos en pantalla. 5. se restaura lo que había en el fondo y se dibuja la imagen en la nueva posición. puede haber un notorio tearing. en la cual solamente se dibuja en pantalla los rectángulos que se han modificado. es posible trabajar a resoluciones más chicas de pantalla. Una ventaja también de trabajar en menor resolución es que los gráficos del juego ocuparán menos espacio en el archivo de la actividad. Hay una discusión muy interesante sobre esta técnica en la lista de Pygame [54]. la computadora XO tiene deshabilitado el vsync.0 – Pág. con lo cual si el juego se mueve a gran velocidad (scrolling). De esta forma se evita el dibujado del fondo y de todos los objetos en cada frame. 43 de 73 Centro Ceibal – Uruguay . Un bounding box es un rectángulo que engloba a la imagen. lo cual es mucho más eficiente. Hasta donde se investigó. Pygame soporta el uso de dirty rectangles en grupos de sprites para actualizar solo las partes de la pantalla que cambiaron desde el cuadro anterior [53]. implementar niveles grandes con scrolling.

44 de 73 Centro Ceibal – Uruguay .5. Si bien el código es J2ME (Java 2 Micro Edition) está escrito muy claramente y es totalmente aplicable a otro lenguaje. Existe un tutorial que muestra como hacer un pool de objetos y utilizar matemática de punto fijo en un juego arcade (Asteroids) [55]. De esta forma. tan usadas en la programación de videojuegos para celulares y aplicaciones móviles. Cabe recordar que siempre es mejor escribir la programación y luego pensar en la optimización. La idea detrás de utilizar matemática de punto fijo (entera) es evitar el uso de números en punto flotante. en un array almacenamos objetos creados previamente (por ejemplo durante la carga o inicialización del juego) y luego en lugar de crear y destruir objetos simplemente los tomamos del pool de objetos (del array) o los colocamos nuevamente en él. que siempre toman tiempo. Los sitios [91] y [92] contienen información muy útil de optimización en Python. También el evitar conversiones de tipos en las operaciones o llamadas a funciones. Se pierde precisión pero se gana en eficiencia.9 Otras Optimizaciones Las optimizaciones más críticas en videojuegos aparte del tamaño de pantalla y la optimización al dibujar.0 – Pág. Hay que balancear siempre el escribir código claro contra el escribir código más optimizado aunque no tan legible. usando punto fijo. La idea detrás del pool de objetos es que la operación new para crear un objeto es muy lenta y no se puede hacer constantemente. De esta forma. podemos tener por ejemplo. los cuales son más lentos en las operaciones que los enteros. son el uso de pool de objetos y el uso de matemática de punto fijo. tablas de seno y coseno que nos devuelven los valores sin tener que invocar a estas funciones que son lentas. El tutorial [55] explica bien ambas técnicas de optimización. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. aunque siempre hay excepciones.

generalmente es la primera computadora que manejan. en la cual sea posible descubrir las cosas por sí mismo. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. por lo cual son inexperientes en el uso de las mismas.Normas de Usabilidad y Testing Este capítulo trata sobre las normas de usabilidad a tener en cuenta durante el diseño. Con respecto a la usabilidad.Capítulo 6 . no todo debería funcionar de la misma manera. utilizando metáforas que el niño entienda. esta computadora es la primera computadora a la cual tienen acceso. a menos claro que ésto realmente no se pueda evitar. Por otro lado. por eso es importante que la actividad tenga en cuenta las diferencias de edades. Otros la recibirán a los 10-12 años. por lo cual no se debe asumir que los niños esperan que algo funcione de determinada manera. 45 de 73 Centro Ceibal – Uruguay . y la tendrán durante todo el proceso escolar. No hay mejor sustituto que realizar un focus group con los niños para probar la usabilidad de la actividad. Por este motivo hay que invertir tiempo en hacer la interfaz intuitiva. pero cuando se prueba en la computadora XO. Por ejemplo. 6. Otra consideración en cuando a la audiencia es la coordinación y los reflejos necesarios. Hay que tener en cuenta a la hora de diseñar la actividad. aunque aprenden muy rápido. De todas formas nunca hay que subestimar a la audiencia escolar y hay que probar realizando focus groups. por lo cual no es bueno que el producto requiera obligatoriamente la lectura. cabe mencionar que los niños que utilizan las computadoras XO. disparar. etc). es sumamente importante realizar las pruebas en la misma computadora XO. Durante el desarrollo es normal utilizar un PC normal de escritorio o un notebook de mayor poder. Los escolares de los primeros niveles pueden tener cierta dificultad en coordinar dos manos y varios botones simultáneamente. hay niños que reciben la computadora a la edad de 5 o 6 años. Se brinda una lista de elementos a tener en cuenta para que el software se comporte en la forma esperada por los usuarios.1 Audiencia Una gran consideración a tener en cuenta en el diseño de la actividad es que los usuarios finales serán niños y niñas en edad escolar y liceal (entre 5 y 17 años). sobre todo para juegos de acción. Como la computadora XO es una computadora con limitaciones. los escolares de los primeros niveles pueden tener dificultad para leer. la audiencia para la cual está destinado el producto.0 – Pág. El testing final de las actividades debe realizarse en la computadora XO y nunca debe asumirse que todo funciona igual. Los escolares de los primeros niveles no tienen tanta coordinación como los escolares de niveles superiores o liceales. El ejemplo típico es requerir dos manos para jugar: con una se mueve el personaje utilizando las flechas y con la otra mando se utilizan varias teclas (saltar. producción y testing de actividades educativas o videojuegos y de cómo llevar a cabo el proceso de testing. Para la mayoría de los niños.

6. En esta sección se resumen los principales aspectos de la misma que son más relevantes. etc.No todos los usuarios son iguales y hay que considerar estos aspectos desde el diseño de la actividad.2.2 Fundamentos de Diseño Es muy recomendable leer la guía de la interfaz gráfica de Sugar (Human Interface Guidelines de Sugar Labs) [9].2. occidental.2 Interfaz Intuitiva La actividad y la interfaz gráfica debe ser diseñada de forma que sea simple e intuitiva para el usuario de todas las edades. 6. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 46 de 73 Centro Ceibal – Uruguay . Tratar de mantener en todo momento la interfaz de usuario lo más clara y simple posible. ya que la misma explica la razón de porqué algunas cosas funcionan de determinada manera en Sugar y podrían ser aplicadas a nuestro proyecto para mejorar la usabilidad. nacionalidades y niveles de experiencia en el uso de computadoras.1 Interfaz Universal La iniciativa OLPC funciona a nivel global. Las actividades no deberían utilizar metáforas o ideas propias de la cultura local.2. 6. 6. evitar el uso de controles complicados.3 Simpleza En general. o que no apliquen en el contexto actual. dentro de lo posible. razón por la cual se deben tener en cuenta que la aplicación puede ser usada por diferentes culturas y en otros lenguajes a los cuales las laptops puedan llegar. sino que deben usar un nivel de abstracción que funcione para toda la humanidad en general. Se recomienda realizar focus groups dos o tres veces durante el desarrollo para detectar fallas de diseño (los focus groups suelen hacerse al alcanzar las etapas alpha y beta y los resultados suelen ser excelentes para mejorar la calidad y usabilidad de la actividad).0 – Pág.

La Guía de Estilo es una guía para desarrolladores de proyectos educativos orientados al Plan Ceibal. En ésta guía se describen aspectos básicos que son sugerencias (cuando la actividad se desarrolla exclusivamente para Plan Ceibal).0 – Pág. necesarias para mantener una consistencia y solidez en la comunicación visual institucional y con el propósito de que la actividad cumpla con los criterios de la marca Ceibal. pero necesario si se quiere realizar un producto que refuerce la marca Ceibal y utilice sus personajes. es necesario cumplir con las normas sugeridas en la Guía de Estilo del Plan Ceibal. En la guía se explica cómo son y se dan elementos para ayudar a crear las animaciones. Fig. Es importante remarcar que la idea es que estos personajes están asociados al Plan Ceibal y están presentes en la imagen corporativa de Ceibal. etc. 47 de 73 Centro Ceibal – Uruguay .3 Guía de Estilo del Plan Ceibal En el caso en el que se esté desarrollando un videojuego o actividad exclusivamente para el Plan Ceibal y se desee utilizar a los personajes Ceibal. En el sitio de desarrollo del Plan Ceibal [26] se puede acceder a la Guía de Estilo. cómo deben ser los iconos.6. Lupe y JP entre otros) que pueden ser utilizados en la actividad. que tipografía usar. Cabe remarcar que el uso de la Guía de Estilo y de los personajes Ceibal es totalmente opcional. 9: Personajes de la Guía de Estilo: Ape. como por ejemplo el uso de colores. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. En ella se brindan pautas a seguir. Lupe y JP. La Guía de Estilo desarrolla una familia de personajes (Ape.

y generalmente se realiza el testing en la versión beta y luego en la versión final.1 Barra de Carga Si la actividad está realizando algún procesamiento como una carga de gráficos por ejemplo. 6. el desarrollo de un videojuego requiere un testing especial. etc.0 – Pág. Cada una de estas normas se aplica en general a todo el producto y/o a cada pantalla. que la dificultad se presenta en forma gradual.5. No es deseable que el programa no indique cuando no se encuentra listo a responder a las ordenes del usuario (por ejemplo que no haya una indicación de que la computadora está realizando una tarea.5). mientras que el segundo se encarga de la búsqueda de cualquier error o situación no deseada (bug).6. debido a la inherente complejidad de los mismos. En [29] se describe básicamente el funcionamiento del testing en videojuegos. 48 de 73 Centro Ceibal – Uruguay . Sin embargo. con lo cual deberán estar incluidas en el Plan de Testing que se confecciona para testear el producto (como se detalla en la sección 6. Los principales tipos de testing. y ésto demora un tiempo. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. esto se puede tomar como una duda sobre si el programa sigue funcionando o no). colocar una barra de carga que se irá actualizando conforme se va realizando la carga. que el gameplay funciona. El primero determina que el juego es divertido. En el libro Fundamentals of Game Development [28] se puede profundizar sobre el testing de videojuegos.4 Testing Durante el desarrollo del proyecto se asume que se utilizan buenas prácticas de diseño de software. Se asume que los desarrolladores conocen estas prácticas que son ampliamente utilizadas en la ingeniería de software.5 Normas de Usabilidad y Testing A continuación se describen las principales normas de usabilidad y cosas a verificar para asegurar la calidad del proyecto y que el mismo tenga una excelente usabilidad y se encuentre bien probada.. son el gameplay testing y el beta testing. Esto disminuye la sensación de espera por parte del usuario (jugador) y no perder el interés del mismo en el juego. 6. de programación y de testing para asegurar la mayor calidad y verificar el correcto funcionamiento del programa.

6. la acción de la respuesta debe ser inmediata. de otra forma la experiencia del usuario sería muy mala. Para lograr más cuadros por segundo una aplicación debe procesar menos cosas o dibujar menos. Aceptable son 30 FPS. Es recomendable revisar la sección sobre optimizaciones en esta guía y estudiar las referencias brindadas. Se asume que la medición de FPS es con el juego corriendo en modo exclusivo en la computadora. 49 de 73 Centro Ceibal – Uruguay .5. los menúes de la actividad y las pantallas deben ser navegables utilizando solamente las teclas del joystick y las teclas del gamepad. Hay que tener en cuenta. Con menos de 24 FPS ya se comienza a notar el bajo frame rate. la bala debe salir inmediatamente ya que el jugador coordina el tiempo para que así sea y si esto no ocurre así la experiencia es mala. 6. frame rate).0 – Pág. por ejemplo. el tiempo de respuesta baja mucho y el juego no es divertido. siempre que sea posible. que la actividad no debe requerir el uso de mouse. si se pulsa la tecla de disparo. Durante el desarrollo se deben mostrar los FPS en pantalla en todo momento y ver que el número no baje en determinadas situaciones (generalmente cuando aparecen nuevas animaciones o entran nuevos objetos en la escena).5. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. El caso típico es el uso del joystick para seleccionar una opción del menú. Por ejemplo. En un juego este es un aspecto crítico. el mismo debe mapear las teclas de movimiento (las flechas de dirección) al joystick y las teclas de acción (por ejemplo saltar y disparar) a las teclas del gamepad. Si el juego está funcionando a un bajo frame rate. Idealmente un videojuego debe correr a 60 FPS. la tecla (X) para aceptar y la tecla (O) para cancelar y volver hacia atrás como se hace en las consolas de videojuegos portátiles.3 Tiempos de respuesta Cuando el usuario realiza un click con el mouse. El programa debe poder en cada frame (en el tiempo entre frame y frame) correr la lógica del juego y dibujar lo que sea necesario.5. Si la actividad tiene pocas animaciones o poco movimiento este factor es irrelevante. Dicho de otra forma. bajar la resolución y no usar gráficos con alpha son acciones típicas.4 Uso del Gamepad Sobre todo si se trata de un juego. De esta forma la XO puede darse vuelta y se puede jugar como si fuera una consola de videojuegos portátil.6. Para lograr un tiempo de respuesta aceptable la solución es la optimización. aunque en la XO esto no es posible porque el máximo que da la tarjeta de video oscila entre 48 y 52 FPS. el juego debe correr como mínimo a 24 FPS (frames per second.2 Frames por Segundo (FPS) En los casos que se trate de un juego o actividad con animaciones y movimiento. Lo mismo cuando el jugador pulsa una tecla.

Se hace necesario que la revisión del texto la haga un profesional (docente). Hay que estudiar de acuerdo a cuánto texto se muestra en pantalla. que los textos sean bien legibles y claros. el de pregunta lo mismo).5. verificar que ningún texto queda tocando un margen). que estén legibles y que se encuentren centrados o justificados según correspondan (por ejemplo. Otro error muy común al desarrollar es la falta de punto final en las oraciones. La fuente utilizada en Sugar y sugerida por el documento Human Interface Guidelines [9] es DejaVu LGC Sans. Se sugiere revisar los textos reiteradas veces en busca de ambigüedades o contradicciones en las ideas. Aunque los errores de texto siempre son indeseables. 6.6. 50 de 73 Centro Ceibal – Uruguay . Verificar que todos los textos tengan el formato apropiado. El docente puede detectar errores conceptuales o de contexto que son más difícil de detectar para los desarrolladores. que no existen frases repetidas o que no hayan errores de otro tipo que no sean ortográficos o gramaticales. Los textos se tienen que poder leer sin esfuerzo. Asegurarse que el proyecto tenga en cuenta consideraciones de género. 6.5. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. en el caso de actividades educativas la ortografía y gramática cobra un rol mucho más importante porque se encuentra enmarcado en un plan educativo y es fundamental dar el ejemplo. Se recomienda utilizar una fuente clara.5 Legibilidad de los Textos Los textos deben de ser legibles (hay que tener en cuenta que los niños escolares de los primeros años están comenzando a aprender a leer). debido a que por más que los textos sean revisados por el equipo de desarrollo.0 – Pág. Revisar en particular errores que con el tiempo se adquieren de la costumbre de utilizar Internet (por ejemplo en español utilizar el signo de exclamación al final y no al principio. es muy factible que siempre se pase por alto algún detalle. Verificar que el lenguaje sea el apropiado para el uso en ambiente educativo y con niños. Se debe cuidar la redacción para que los textos sean comprensible por el público infantil. etc.7 Contenido Apropiado Verificar que el proyecto no tiene referencias a alcohol.6 Ortografía y Gramática La actividad no puede contener textos con errores ortográficos o gramaticales. drogas.5. sobre todo en videojuegos cuando se usan textos con estilos particulares.

No le hace cosas malas a otros usuarios. − Probar todas las teclas del teclado una a una para asegurarse que no haya quedado activada una tecla de debug. − etc. hay que realizar pruebas que son las típicas durante el desarrollo de software.5. probarla concurrentemente con otras actividades abiertas.5. 51 de 73 Centro Ceibal – Uruguay . Este tipo de errores es sencillo de detectarse. es posible olvidarse de cambiarlo y el programa sale con estos textos. o como textos de placeholder.0 – Pág. 6. según los cambios que ocurren en el sistema. Entre otros: − La actividad se puede usar bien en los modos color (backlight) y blanco y negro (a _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Lo mismo puede suceder con los artistas cuando nombran archivos. − Verificar que no haya ningún texto utilizado en debug.9 Seguridad La actividad no debe violar la seguridad de la computadora en lo que respecta a los siguientes puntos: − − − − − No daña de ninguna manera la computadora. Como norma general para que esto nunca suceda. Entre otras. Pero luego.10 Adaptabilidad La actividad debe comportarse apropiadamente. Por ejemplo: − Apagar el sonido desde el menú de configuración de la actividad y asegurarse que ningún sonido se escuche. Hay con hacer la lista de features que tiene la actividad y probarlas una a una.8 Libre de Errores La actividad debe estar libre de errores. prohibirle a los programadores el uso de texto no apropiado en forma temporal.5. 6. Si bien esto no es posible asegurarlo cien por ciento. Una cosa que sucede durante el desarrollo es que los programadores colocan malas palabras en el código para luego buscarlas. No compromete la privacidad del usuario. No se hace pasar por otro usuario. No causa pérdida de datos del usuario. 6. etc. probar la actividad corriendo muchas horas.Verificar que los textos del juego son apropiados y no contienen malas palabras.

la actividad debe poder guardar los datos de modo de poder continuar desde el punto donde se dejó. puede fluctuar. puede estar con la red inalámbrica apagada. pone el juego en pausa y puede atender. − Para actividades colaborativas: La fuerza de la señal de la red inalámbrica. La actividad debe manejarlo internamente. También la actividad tiene que salvar cualquier configuración que el usuario pueda modificar.la luz del sol). 52 de 73 Centro Ceibal – Uruguay .0 – Pág.12 Pausa Si se trata de un juego de acción o una actividad en la cual interviene la variable de tiempo para realizar alguna acción.11 Salvado Si aplica. etc. hay que realizar las siguientes pruebas: − La primera vez que se instala la actividad. − Pasar un nuevo nivel. 6. si el niño es interrumpido. intentando reconectar a los usuarios que estaba participando o manejando el abandono de usuarios sin que esto provoque errores o que la actividad no se pueda seguir usando. La nueva configuración se debe haber guardado (por ejemplo el volumen). 6. Es muy molesto para el usuario perder el progreso de su juego y no se lo puede obligar a realizar de nuevo lo que ya ha hecho antes. asegurarse que el salvado no existe y se crea correctamente en la situación inicial. asegurarse que las opciones por defecto son las correctas. Se recomienda colocar un botón de pausa o que se llame a la misma pulsando la tecla Escape (la tecla [X] arriba a la izquierda) _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. luego salir y volver a entrar. El juego debería permitir comenzar en el último nivel accedido y no obligar a empezar desde el inicio. De esta forma. tiene que ser posible poner en pausa el juego. Entre otras. y por lo tanto el ancho de banda. − La computadora puede estar en modo laptop (con el teclado y touchpad disponible) o en modo e-book (solamente están disponibles las teclas del gamepad). − La computadora puede momentáneamente no estar con salida a Internet. Otros participantes de la actividad pueden abandonar la misma y se debe tener en cuenta esto. − La primera vez que se instala la actividad.5.5. luego salir y volver a entrar. − Cambiar una configuración en el juego.

53 de 73 Centro Ceibal – Uruguay . En Python hay varias herramientas para incorporar al proyecto las funcionalidades de Sugar (a esto se le denomina “Sugarizar” la actividad). pero en la imagen F11 Rainbow no existe más y es probable que no esté en el futuro. etc. En la imagen utilizada hasta principios de 2001 Rainbow existía.6.0 – Pág. Esta biblioteca de Python provee métodos para crear nuevos objetos en el Diario.14 Integración con el Diario La actividad (si aplica) debe integrarse al Diario.5. 6. 6. Para esto se recomienda desaturar (pasar a blanco y negro) una captura de pantalla y ver que las cosas se distingan bien en blanco y negro.5. eliminar archivos. 6. Restringe.5. por ejemplo. La actividad debería abordar (si aplica) los siguientes puntos en lo que respecta a la accesibilidad (hacer accesible o fácil de manejar el programa). Tiene como objetivo impedir que una actividad mal programada. − No requerir que el usuario pulse más de una tecla a la vez. La lista de issues a verificar es la siguiente (algunas pueden ser opcionales según el _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.16 Comportamiento y Funcionalidades de la Actividad La actividad debe comportarse adecuadamente y debe tener funcionalidades esperadas. Sugar utiliza la biblioteca sugar.15 Compatibilidad con Rainbow Rainbow es el sistema de seguridad que utiliza Sugar. − Poder utilizar la actividad sin requerir la habilidad de distinguir entre colores (una gran parte de la gente tiene algún grado de ceguera al color).datastore [59].13 Accesibilidad Se recomienda leer los lineamientos de la interfaz gráfica respecto a la accesibilidad compilados en [35]. Los siguientes puntos son tomados de [9]. ya que es a través del mismo que los niños acceden a los archivos. Como todo sistema de seguridad tiene su costo. afecte la integridad del sistema. Para el manejo de las entradas en el Diario. o intencionalmente perjudicial. el espacio de almacenamiento donde la actividad puede leer y escribir. buscar entradas. las actividades tienen que ser desarrolladas considerado las restricciones que el sistema de seguridad impone [60]. Para esto aísla la ejecución de una actividad del resto del sistema (como lo hacen los sistemas UNIX). − Poder usar la actividad solamente con el teclado (sin el uso de mouse).5.

− Permitir salir del juego con la tecla Escape mediante confirmación. La actividad se debe comportar adecuadamente al volver. hay que revisar y realizar las siguientes pruebas. 6. El sonido de click es obligatorio y el de rollover es opcional. − Permitir apagar el audio y controlar el volumen de la música y los sonidos. − La actividad debe ponerse en pausa cuando pierde el foco (de modo de no perder el juego o que los sonidos no sigan escuchándose.5.0 – Pág. − Correr en fullscreen si se trata de un videojuego inmersivo. 54 de 73 Centro Ceibal – Uruguay . − Permitir el cierre de la actividad con Alt+F4. de forma tal de cuidar que los mismos no sean archivos de gran tamaño. − Controlar el tamaño del archivo. 6. entre otras cosas). − Que hayan pantallas con el progreso de carga cuando alguna actividad demora. Puede ser que algunos audios o imágenes estén sin comprimir y esto aumente sin necesidad el tamaño del archivo (ver la sección _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.5. − Asegurarse que la música loopea bien. − Hay que asegurarse de que todos los botones tienen sonido.18 Archivo de Distribución Con respecto al archivo final de distribución (el bundle). − Asegurarse que el icono de la actividad se vea bien al instalarla. − Probar que los efectos de sonidos y músicas se escuchan bien en la computadora (los sonidos con graves producen ruidos molestos en el parlante).17 Audio Los temas a verificar relacionados con el audio son los siguientes: − Asegurarse que los audios del juego están con la compresión adecuada. − Que hayan transiciones entre las diferentes pantallas o niveles. − Indicar que hay que hacer con instrucciones claras. − Evitar que se puedan iniciar varias instancias de la actividad. Usabilidad: − Poder seleccionar el nivel en el cual empezar si ya se han destrabado niveles. − Que la actividad se encuentre pulida y con el nivel de calidad esperado.caso): Técnicas: − Permitir cambiar de actividad con las teclas Alt+Tab. Hay que tener en cuenta que los parlantes externos de la computadora XO no justifican el usar archivos de audio de mucha calidad.

− Revisar que la pantalla se pueda navegar con el teclado solamente.5.0 – Pág. − Revisar que todos los botones que no aplican al contexto están deshabilitados y los que aplican se encuentran habilitados. al punto que al día de hoy involucran dispositivos touchscreen y utiliza ejemplos de los últimos juegos. − Revisar que cada transición de pantalla funciona correctamente. pero básicamente tendrá estas pantallas. En este documento se sugiere un flujo de pantallas que se resume en la siguiente imagen. El documento a leer es Game design de la sección Design and User Experience v2. 55 de 73 Centro Ceibal – Uruguay . − Asegurarse que la actividad se instala correctamente al ser accedida desde la actividad Navegar con Internet. El flujo de pantallas puede variar según el tipo de actividad. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. − Revisar si la tecla Escape (X) hace lo que debe en la pantalla: − Salir con confirmación en el menú principal. Se recomienda investigar las normas de usabilidad de Nokia [103]. − Llamar al menú de pausa en el juego. 6. − Revisar la navegabilidad con el mouse (mouseover y click). − Todos los botones tienen estados de click y rollover. En particular porque las mismas apuntan a un público que no es experto con el manejo de tecnologías (como es el caso con los celulares) y aplica para niños chicos con sus XO. Nokia siempre ha estado un paso adelante en la investigación en usabilidad y hace años que viene desarrollando estas guías. − Revisar si la música es la adecuada en la pantalla. − Volver hacia atrás en pantallas como Créditos y Ayuda. − Controlar las animaciones de la pantalla. las cuales si bien están orientas a dispositivos móviles.19 Navegabilidad Luego de creado el diagrama del flujo de pantallas de la actividad. la mayoría de las consideraciones que ahí se mencionan aplican al desarrollo para XO.de optimización en tamaño).0. se revisa en el plan de testing los siguientes puntos: − Todos los botones funcionan correctamente (hacen lo que tienen que hacer).

Fig.5. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 10: Flujo de Pantallas Sugeridas en el Documento de Usabilidad de Nokia [103]. 56 de 73 Centro Ceibal – Uruguay . 6. así como en la pantalla de créditos.20 Logos Asegurarse que se encuentren visibles los logotipos de Plan Ceibal y Rayuela junto con los logos de las empresas involucradas en el menú principal.0 – Pág.

dado que cada uno tiene sus particularidades. El plan de testing que viene a continuación son normas en general. es mejor que correr el videojuego y luego en el momento definir sobre la marcha que se prueba (de esta forma se escaparían muchos detalles). Cualquier cambio que se realice de último momento requiere ejecutar nuevamente el plan de testing. En la primera hoja del plan de testing se pone una carátula con los datos del proyecto y del tester: Proyecto: Desarrollador: Publisher: Plataforma: Lenguaje: Breve descripción: Público Objetivo: Fecha: Tester: La sección 6. comportamiento esperado por el usuario y parámetros de calidad que deben cumplir en común todos los proyectos. Esto se debe a que es una lista de cosas a verificar y si bien es tedioso ir punto por punto probando el funcionamiento. si hay observaciones o si no lo pasa y cual es el problema detectado). A eso se le debe agregar el testing particular de cada proyecto. Un plan de testing obliga a prestar atención a detalles que normalmente no se atenderían. Al realizar el testing del software. Estas normas (ver sección 6. Si bien hay cosas a testear y normas de usabilidad que son comunes a todos los proyectos. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. para cada uno hay que crear un plan de testing. El plan de testing es una planilla con una lista de cosas a verificar y pruebas a realizar. Cada una de estas normas aparecerán en la planilla del plan de testing para ser verificadas. se va anotando en la planilla el resultado (para cada punto se anota si lo pasa. Es de vital importancia que la versión final del videojuego cumpla con el plan de testing. el desarrollador debe realizar un plan de testing el cual es diferente para cada proyecto. Los videojuegos son software complejo con muchas entidades interactuando entre sí y no se debe subestimar cualquier cambio por menor que éste sea.5) deben ser cumplidas por los proyectos que sean desarrollados para Plan Ceibal.6.5 lista las principales reglas de usabilidad y comportamiento que el usuario espera de la actividad y que el software debe cumplir para aprobar la etapa del testing. No se debe asumir que un arreglo de último momento no impacta en otra parte.0 – Pág. Hay normas de usabilidad. 57 de 73 Centro Ceibal – Uruguay . Cada proyecto a ser testeado necesita un plan de testing realizado a medida de la misma.6 Plan de Testing Para conducir el testing.

El frame rate es aceptable. .Un ejemplo de elementos a verificar en el plan de testing. Observaciones Tester Es necesario armar un diagrama con el flujo de pantallas para determinar si cada pantalla funciona correctamente. − La aplicación se ejecuta correctamente luego de abrirla desde la lista de aplicaciones. hora. − La información guardada aparece en el Diario con la fecha. − La aplicación reacciona como se espera ante los comandos del marco de Sugar. es el siguiente: Test − La aplicación se instala correctamente haciendo click sobre el paquete de la actividad utilizando un pendrive desde el Diario. ..El botón “Jugar” arranca el juego. .0 – Pág. .La pantalla carga en tiempo razonable. etc. − El icono de la aplicación aparece correctamente en la lista de aplicaciones. Ejemplo de ficha para cada pantalla de la actividad: Pantalla: Menú Principal: Test Resultado (Si/No/NA) .xo desde el navegador usando Internet para descargarlo. − La aplicación termina correctamente. − La información guardada en el diario es abierta correctamente por la aplicación cuando se hace click sobre el icono..Los textos están sin errores. − La aplicación se instala correctamente accediendo al archivo .Animaciones funcionan bien. . 58 de 73 Centro Ceibal – Uruguay .Los textos no tocan ningún margen. Resultado (Si/No/NA) Si No Observaciones ------------------------Tester Julio Julio Luego para cada pantalla de la actividad o videojuego se debe realizar una ficha con cosas en común a verificar.El botón “Jugar” reproduce sonido de “click”. . La planilla se construye con el texto del test en una columna y luego otras columnas con los siguientes datos: Test --------------------------------------------------etc. ícono y descripción correctas. Para revisar el flujo del programa y controlar que todos los _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. a nivel de actividad.

botones de la actividad funcionan bien. Cada una de estas normas sería una o varias línea de la planilla para verificar.0 – Pág. 59 de 73 Centro Ceibal – Uruguay . y para revisar que funcionan correctamente todas las condiciones que tiene la actividad en lo que respecta a la navegabilidad de las pantallas. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Esta planilla se construye para cada pantalla de la actividad. se deben revisar las normas de usabilidad que se explican a continuación. que el pasaje entre pantallas es el correcto. Para armar estas fichas para cada pantalla de la actividad.

cómo trabajar con el Diario.Cómo se Construye una Actividad A. donde se encuentran los botones para darle nombre. utilizar Pygame. El archivo es un archivo comprimido (si descargamos un archivo .0 – Pág. Otro tutorial es [63].activity/MANIFEST Todos los directorios deben tener los permisos 755 (drwxr-xr-x) y todos los archivos deben tener los permisos 644 (-rw-r--r--). Debe existir una estructura creada para poder empaquetarla y así instalarla fácilmente en la XO.activity/ MiActividad.xo y le cambiamos la extensión a . Como se mencionó anteriormente.Apéndice A .xo).py MiActividad. Esta ventana provee algunas funcionalidades comunes a todas las actividades. Por ejemplo.xo que tiene compresión zip (se puede utilizar 7Zip para armar el archivo .activity/activity MiActividad. se brinda información de cómo crear actividades colaborativas.svg MiActividad.activity/activity/<nombre del icono>. a través de la pestaña “Actividad”.zip.info MiActividad.py MiActividad. lo podemos abrir con cualquier programa descompresor como 7Zip por ejemplo). la estructura básica para una actividad llamada MiActividad es: MiActividad. Todo esto se empaqueta en un archivo . en Sugar las aplicaciones son llamadas actividades y necesitan ser embebidas dentro de una “ventana de actividad”.activity/setup. En el sitio [85] se brindan varios recursos para el desarrollo en Sugar. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. desarrollado por Ceibal Jam de Uruguay. En éste último se sugieren entornos de desarrollo y programas de edición de gráficos open source o libres.activity/activity/activity.xo” (que se denomina bundle). compartir o cerrar la actividad. 60 de 73 Centro Ceibal – Uruguay .1 Armado de la Actividad La actividad se distribuye como un archivo con extensión “.activity/<Programa Principal>. etc. Se recomienda leer el tutorial sobre cómo crear una actividad [61] y el tutorial sobre desarrollo de actividades [62].

Acceder al archivo .xo”. La actividad se descarga y se instala automáticamente.xo” y la actividad se descomprime y se instala en la carpeta de actividades. Para que use los colores del usuario hay que agregar un par de entidades que sugar sustituye y usar esos nombres en vez de colores [64].3 Instalación de Actividades Hay varias formas de instalar una actividad en la computadora XO para verificar que se ha armado correctamente. Entre otras: − Acceder desde la actividad Navegar a la URL conteniendo el arhuivo . como es el instalar actividades y otras como por ejemplo verificar que el archivo de salvado del juego sea el correcto. Se escribe “cd /media” y luego “ls” para ver los directorios que hay. Para realizar varias tareas “auxiliares” durante el desarrollo.xo. para instalar manualmente un archivo . − Ir al Diario y acceder al pendrive. Uno de ellos es el pendrive.xo y ejecutar “sugar-install-bundle nombre_del_archivo.0 – Pág. En [104] se explican diferentes formas de instalar actividades. − Utilizando la terminal. se necesitan conocimientos de manejo de la terminal de Linux. Se escribe “cd /nombre_del_pendrive” y luego “ls” para ver la lista de archivos en él. Por ejemplo. primero hay que acceder al pendrive.2 Icono de la Actividad El icono de la actividad debe ser un archivo formato SVG.A.xo desde ese lugar. ir al directorio en el pendrive donde se encuentra el archivo. Cualquier desarrollador de ambiente Linux estará familiarizado con estos comandos. En [110] se describen los principales comandos Linux para usar en la Terminal y poder así solucionar temas que aparecerán durante el desarrollo. A. 61 de 73 Centro Ceibal – Uruguay . es posible hacer iconos de colores. Si bien los iconos de las actividades de la computadora XO son en blanco y negro. Luego se escribe “sugar-install-bundle nombre_del_archivo.xo desde un pendrive. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.

La imagen contiene todos los archivos y directorios que conforman el sistema operativo. En base a ese número se creó un sistema de seguridad que permite bloquear las XO en caso de robo o extravío e ingresar en la lista negra los números de serie de las máquinas denunciadas. se bloquea. En ese caso el número de serie correspondiente a la XO se ingresará en la lista. − Colocar el pendrive en uno de los puertos USB de la XO y encenderla. − Copiar ambos archivos (blacklist y blacklist. Puede tardar unos minutos.2 Flasheo de la XO El flasheo de la computadora consiste en eliminar todo el contenido de la memoria Flash y reestablecer la imagen original de la computadora. La lista negra está conformada por dos archivos: blacklist y blacklist.1 Desbloqueo de la XO Las computadoras XO distribuidas por Plan Ceibal tienen un sistema anti robo. Para desbloquear la computadora XO hay que realizar los siguientes pasos: − Descargar el archivo blacklistCeibal. por el cual si una computadora no se conecta a la red escolar por un tiempo prolongado. hay que descargar la lista negra (blacklist) que son la lista de máquinas que han sido robadas o extraviadas. además de las actividades que vienen instaladas por defecto en la imagen. por lo que si el archivo se descargó hace más de 6 días. B. Sobre la blacklist: − La XO tiene una forma de identificación a través de un número de serie.sig. − Descomprimir los archivos haciendo click derecho en el archivo descargado. No quitar el pendrive hasta que la máquina haya iniciado normalmente.0 – Pág. Si alguien pierde la computadora XO debe realizar la denuncia y posteriormente ingresar el reclamo a través del 0800 2342. 62 de 73 Centro Ceibal – Uruguay .sig) en un pendrive. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. Tienen un período de validez de 6 días. Para poder desbloquear una computadora XO.Desbloqueo de las XO y Flasheo B. − Por tal motivo la lista negra sólo podrá desbloquear aquellas máquinas que no figuren como hurtadas o extraviadas.zip [65]. y luego en la opción "Extraer aquí". La máquina comenzará el proceso de inicio y se desbloqueará automáticamente. no servirá para desbloquear la máquina.Apendice B .

63 de 73 Centro Ceibal – Uruguay .img [65] y fs.zip [65] que hay que descomprimir (contiene los archivos backlist y blacklist. Luego comenzará a cargar los círculos alrededor de la “X” (esto puede tardar algunos minutos). dejándola como viene instalada por defecto.sig). blacklist blacklist. que son al día de escribir la guía (pueden cambiar): uy802c. Soltar los botones. 3.img fs.zip [65]. No quitar el pendrive del puerto USB.0 – Pág. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 2. Esto indica que la XO quedó lista para su uso. dejarlo así como está). En el mismo deben estar los siguientes archivos: − − − − uy802c. Nota: Si hubieran archivos creados por el usuario es necesario respaldar los mismos en un pendrive porque el flasheo de la computadora es similar a formatear la máquina. también hay que tener el arhivo blacklistCeibal. Encender la XO y presionar al mismo tiempo los 4 botones de juegos que se encuentran sobre el botón de encendido.Hay que descargar los archivos de la imagen. Al terminar este proceso la XO se reinicia sola.sig Conectar el pendrive al puerto USB con la XO apagada y conectada al cargador. No se debe quitar el pendrive. En la pantalla aparecerá para que se ingrese el nombre del usuario. Aparecerá el siguiente mensaje: "Release the game keys to continue". 4. Se copian todos estos archivos a un pendrive. La pantalla quedará completamente cuadriculada y se iniciará el proceso de flasheo automáticamente. Aquí ya se puede retirar el pendrive. 1.zip (no descromprimirlo.

ceibal. 4.1 Sitio Web Cualquier desarrollador puede poner online un sitio web y que las computadoras se conecten a su sitio para descargar el archivo . A continuación se detallan cada una de las alternativas. Los contenidos desarrollados para Ceibal se pueden distribuir de la siguiente manera: 1.edu. la actividad se instalará simplemente haciendo click en la entrada del Diario correspondiente. Tiene la ventaja de que detecta _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.xo”. Las actividades se deben empaquetar en archivos con extensión “. 2. C.1. mediante el repositorio de actividades [18]. Tiene una interfaz muy intuitiva por lo que es utilizado por niños de distintos países para descargar sus actividades.uy).3 Repositorio de actividades de Sugar Labs Otra alternativa particular es la que utiliza la comunidad Sugar. Al hacer esto. Utilizando un dispositivo de almacenamiento externo. Mediante una “Actualización de XO”. el programa es descargado e instalado automáticamente en la computadora.1.0 – Pág. Si desde el browser se accede a una URL que contiene el archivo .Distribución de Actividades Los contenidos desarrollados como actividades o aplicaciones web pueden dejarse disponibles a través de cualquier sitio en Internet. C.Apéndice C . 3.1. 64 de 73 Centro Ceibal – Uruguay . A través de un Sitio web.1 Distribución En esta sección se describen las formas de distribución de un determinado contenido que actualmente están disponibles.2 Portal Ceibal Una alternativa particular para a la publicación contenido en Internet es la utilización del Portal Ceibal (www. C.xo. el mismo se descarga y se instala automáticamente. A través del Portal Ceibal o de Sugar Labs.xo. C. Para poder acceder al mismo es necesaria la aprobación del contenido por parte de los Contenidistas del sitio. de esta manera al descargarse los archivos desde la XO. Este repositorio permite clasificar las actividades por distintas categorías y versiones del entorno Sugar.

1.0 – Pág. − Máximo: 20 MB. C. _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. C. instalar a la actividad en la máquina. C. El contenido del dispositivo se puede copiar al Diario y desde allí. para ofrecerle versiones de actividades compatibles con la del entorno. − Espacio ocupado por el sistema operativo: 420 MB. a modo de referencia se puede utilizar: − Velocidad de bajada promedio: 25 Kb/s por máquina. La utilización de este mecanismo requiere la aprobación de Ceibal y tiene restricciones en cuanto al tamaño que las actualizaciones pueden tener.4 Actualización de XO Ceibal cuenta con un mecanismo de distribución de contenidos. − Conexión en la escuela: La tasa de bajada en las escuelas varia fuertemente según el tipo de conexión a internet con que la misma cuente.3 Datos auxiliares A continuación se detalla información a tener en cuenta a la hora de desarrollar para la XO: − Espacio de la computadora XO: − Espacio máximo de almacenamiento: 1 GB. − Tamaño de actualizaciones: − Promedio: por debajo de 1 MB.xo” también se pueden instalar desde un dispositivo externo (pendrive o tarjeta de memoria SD).2 Dispositivo de almacenamiento El archivo del proyecto “. de manera de proteger la red de posibles saturaciones (ver Datos auxiliares más adelante).automáticamente la versión de entorno Sugar que está utilizando el niño. 65 de 73 Centro Ceibal – Uruguay . mediante actualizaciones al sistema operativo de cada XO. haciendo click en la entrada correspondiente. a través de los servidores en las escuelas.

ceibal.ovt. http://www.org [3] The OLPC Wiki. http://wiki.laptop. http://www.pdf [8] Características de la Cámara.org/go/Video [12] Especificación del formato OGG.com/ [13] Lenguaje de Programación Python.org/go/Human_Interface_Guidelines [10] Sonido en la computadora XO. http://www.org [4] XO: The Children's Machine. http://wiki.libsdl. http://wiki. 66 de 73 Centro Ceibal – Uruguay .Referencias [1] Portal del Plan Ceibal en Uruguay.org/ _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.org/ [14] Biblioteca Pygame.laptop. http://www.sugarlabs.laptop.org/go/Display [6] Especificaciones de Hardware de la computadora XO-1.vorbis. http://pygame.5.org/go/Sound [11] Video en la computadora XO.php?id=74 [9] Human Interface Guidelines – Sugar Labs. http://wiki.0 – Pág.laptop.com/products/sensor.laptop. http://wiki.pdf [7] Especificaciones de Hardware de la computadora XO-1.laptop.laptop.org/images/f/f0/CL1B_Hdwe_Design_Spec.laptop. http://www.python.uy/ [2] Sitio Web de OLPC. http://wiki.org/ [15] Biblioteca Simple DirectMedia Library (SDL). http://wiki. http://www.edu.org/images/7/71/CL1A_Hdwe_Design_Spec. http://wiki.org/go/XO:_The_Children's_Machine [5] Características del Display.

com/catalog/9780763778958/ [29] Testing de Videojuegos.org/go/GCompris [21] Actividad Scratch.python.jblearning. 67 de 73 Centro Ceibal – Uruguay . http://www.0 – Pág.org/wiki/Scrum [28] Fundamentals of Game Development. juego HTML5. http://wiki. http://www.pygtk.laptop.uy/ [27] Metodología de desarrollo Scrum.wikipedia.sugarlabs. http://impactjs. http://wiki.org/ [25] Framework HTML5 Karma.laptop.laptop. http://html5games.org/wiki/Game_testing [30] DCON Display Controller.edu. http://es. http://karma. http://www. http://en. http://www. Heather Maxwell Chandler.net/game/google-pacman/ [23] BioLab Disaster. http://activities.org/biolab/ [24] Impact HTML5 Game Engine.org/dev/peps/pep-0008/ [18] Actividades Sugar. http://activities.sugarlabs. juego HTML5.ceibal.sugarlabs.[16] Biblioteca PyGTK.wikipedia.org/go/DCON _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.org/ [17] Guía de Estilo para el Código Python.org/go/Extending_Python_with_C%2B%2B [20] Actividad Gcompris. https://desarrollo.org/ [26] Sitio de desarrollo de Ceibal.phoboslab.org/es-ES/sugar/addon/4249 [22] Google Pacman. http://wiki.org/es-ES/sugar/ [19] Extender Python con C++.

google.sourceforge.google.wikipedia. http://www. http://www. http://es.com/Game-Programming-Python-Development/dp/1584502584 [41] Focus on SDL.org/ [44] PyBox2D. http://en. http://es.laptop. http://www.org.org/wiki/AC'97 [32] Chip controlador de red inalámbrica.net/ _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.[31] Sistema de Audio AC'97 de Intel.amazon. http://code. http://www.com/p/pybox2d/ [45] Box2DFlashAs3. http://wiki.org/go/Accessibility [36] Lenguaje Javascript. http://wiki.laptop.laptop.0 – Pág.box2d.org/wiki/C%2B%2B [39] Beginning Game Development with Python and Pygame: From Novice to Professional.uy [34] Sugar Labs. http://code.org/go/88W8388 [33] Laboratorio Tecnológico del Uruguay.latu.org/ [35] Normas de Accesibilidad.amazon.wikipedia.com/Beginning-Game-Development-Python-Pygame/dp/1590598725 [40] Game Programming With Python.sugarlabs.org/go/Image_file_formats [38] Lenguaje C++.wikipedia.com/p/pgu/ [43] Box2D. 68 de 73 Centro Ceibal – Uruguay .org/wiki/JavaScript [37] Formatos de Imágen. http://wiki. http://wiki.com/Focus-Premier-Press-Game-Development/dp/1592000304 [42] PGU – Python Game Utilities. http://www. http://box2dflash.amazon.

org/ [58] Mantis Bugtracking System http://www.html [56] Subversion. 69 de 73 Centro Ceibal – Uruguay .html [55] Asteroid Zone J2ME – Técnicas de Optimización.free.mantisbt.html#pygame.org/ [48] Pydev. http://wiki.python. http://subversion.html [50] Microsoft Visual C++.org/go/Sugar.sprite.fr/developers.org/docs/ref/sprite.datastore.org/library/idle. http://wiki.org/pygame/users/Apr-2006/msg00216. http://developer. http://tortoisesvn.org/ [47] Eclipse IDE.com/technologies/tools/xcode.com/en-us/visualc/default. http://www.org/downloads/ [52] Xcode.laptop.tigris.0 – Pág.org/ [59] sugar.aspx [51] Eclipse CPP.apache. http://wiki.laptop.seul.apple.org/ [49] IDLE. http://docs.org/go/Rainbow [61] Creación de una Actividad.org/ [57] Tortoise SVN.RenderUpdates [54] Discución de Dirty Rectangles en la lista Pygame.microsoft.html [53] Dirty Rectangles en Pygame. http://jfdoue.laptop.boost. http://msdn.org/go/Activity_tutorial _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.eclipse. http://www.datastore [60] Sistema de Seguridad Rainbow.[46] Boost C++ libraries. http://archives. http://www.eclipse.datastore. http://pydev.pygame. http://www.

http://www.[62] Tutorial sobre Desarrollo de Actividades. http://wiki.impo.flossmanuals.org/?q=node/334 [68] Manual Básico de uso de XO.proanima.uy/descargas/manual_xo_web%20. http://maddogproduction.org/go/Development_Team/Jhbuild [67] Instalación y uso de Jhbuild.com/ [75] Foro Uruguay Gamer. http://www.com [76] Ceibal Jam. http://ceibaljam. http://www.org. http://wiki.igda.Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos .ceibal.sugarlabs.org/go/Development_Team/Almanac/Making_Icons [65] Imágenes de XO y archivo de lista negra de Plan Ceibal.blogspot.laptop.org [77] Mad Dog Production.uy/projects/infogeneral/wiki/Recursos [66] Jhbuild.uy/ [71] ADVA – Asociación de Desarrolladores de Videojuegos Argentina.net/ActivitiesGuideSugar [63] Crear una Actividad – Ceibal Jam. http://www.edu.abragames.gamasutra.uruguaygamer.com/ _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.sugarlabs. http://www. https://desarrollo. 70 de 73 Centro Ceibal – Uruguay .adva.0 – Pág. http://en.pdf [70] Proanima . http://wiki.com. http://foro.com.org/go/Ceibal_Jam/Aplicaciones [64] Making Sugar Icons.ar/ [72] ABRAGAMES . http://www. http://ceibaljam.Cluster de Empresas de Animación y Videojuegos de Uruguay.org/ [74] Gamasutra – The Art & Business of Making Games.org/ [73] International Game Developers Association.

http://wiki.net/ [91] Python Speed.sugarlabs. http://inventwithpython.laptop.sourceforge. 71 de 73 Centro Ceibal – Uruguay . http://lists. http://lists.laptop.com/ [88] Hardware de las computadoras XO.python.org/go/Pygame _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1.org/moin/PythonSpeed/PerformanceTips [93] Pygame en la XO.org/listinfo/devel [80] Lista de Correo de la comunidad de Desarrolladores Sugar.org/ [84] Especificación del Navegador Web de Sugar.laptop.org/moin/PythonSpeed [92] Python Performance Tips. http://wiki.sugarlabs.0 – Pág.org/listinfo/sugar-devel [81] List de Correo de la comunidad de OLP-Uruguay (Ceibal Jam). http://lists. http://lists.laptop.org/ [83] Otras listas de interés de comunidad Sugar.org/go/Browse [85] Recursos para el desarrollo en Sugar. http://wiki.org/listinfo/olpc-uruguay [82] Otras listas de interés de comunidad OLPC. http://wiki.org/go/Activity_Team/Resources [86] Libros de Python sugeridos en ceibal Jam.sugarlabs. http://ceibaljam. http://lists.org/drupal/?q=python [87] Invent Your Own Computer Game with Python.laptop. http://ceibaljam.org/?q=node/87 [90] PNG Tools.laptop.python.org/go/Hardware [89] Introducción a la Programación para XO – Ceibal Jam.[78] Experiencia de CeibalJam en el desarrollo de juegos para la XO: http://wiki.org/go/Ceibal_Jam/DesarrolloJuegos [79] Lista de Correo de la Comunidad de desarrolladores OLPC. http://wiki.laptop. http://pmt. http://wiki.

org/wiki/index.[94] OLPC Games Wrapper http://wiki.edu.laptop.0 – Pág.laptop.nostarch. http://wiki.uy/UserFiles/P0001/Image/contenidos/pdfs/areatecnica/diferentesm anerasdeinstalaractividades.sugarlabs.htm [99] Emulador QEMU.wikipedia.marcosorfila. http://wiki.ogv [106] Instalación de Firefox y Java en la XO.org/wiki/File:Video_xo.php?title=Explorations [97] Reduca Wiki.org/wiki/Artificial_intelligence_%28video_games%29 [103] Design and User Experiece Library v 2.org/go/Sugar_on_a_Stick [101] AI Depot: FSM.forum. http://wiki.laptop.wikipedia. http://www. http://olpc-france. http://ai-depot.nokia. http://wiki.com/FiniteStateMachines/FSM.com/index. 72 de 73 Centro Ceibal – Uruguay .0.com/site/java-applets-in-the-olpc-xo-laptop/?lang=es [107] Imágenes de OLPC.org/ [108] Virtual Box.qemu.com/wiki2/index. http://download.com/plg.org/Main_Page [100] Sugar on a Stick. http://www.ceibal.org/go/VirtualBox _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. http://www.laptop.pdf [105] Formato de Video OGV.org/go/Pygame_wrapper [95] Developers Manual OLPC.org/go/Developers [96] Muchos Articulos de uso de la XO y Otros.reducativa. http://en.php?title=Proyecto_OLPC_-_Plan_Ceibal [98] Programming Linux Games.jsp [104] Manual de Instalación de Actividades de Plan Ceibal http://www. http://library.html [102] Artificial Intelligence in Videogames http://en.

[109] Motor 3D por Software.com/p/mic3d/ [110] Comandos Linux para usar en la Terminal.laptop.org/go/Terminal_Activity [113] Proyecto Rayuela http://proyectorayuela. http://wiki.google.org. http://code.0 – Pág.uy/ _____________________________________________________________________ Anexo Práctico para la Guía de Producción v1. 73 de 73 Centro Ceibal – Uruguay .