creación de videojuegos en entornos de software libre (2010)

Post on 22-Jun-2015

321 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

   

Creación devideojuegos en

entornos deSoftware Libre

Miriam Ruiz <miriam@debian.org>Santander, 23 de marzo de 2010

II Foro Cesine sobre Ocio Digital y Videojuegos

Índice

Introducción al Software Libre

Ejemplos de Aplicaciones Libres

Copyleft: All Rights Reversed

Desarrollo de Software

Ejemplos de Componentes Libres

   

Interrumpidme libremente

No me como a

nadie por preguntar

Introducción al Software Libre

   

¿Qué es Software?

Según la IEEE, es la suma total de los programas, procedimientos, reglas,

documentación y datos asociados que forman parte de las operaciones de un sistema.

Incluye más los programas en sus distintas formas (código fuente y código ejecutable o

binario) y su documentación.

Software es todo lo intangible

   

¿Qué son las Licencias?

Conjunto de términos o condiciones bajo las que se permite utilizar, modificar, distribuir y/o

comunicar públicamente el software, en una forma determinada, por parte de quienes poseen

los derechos de autoría del mismo.

Por defecto, sin una licencia explícita que autorice el uso, modificación, difusión o

comunicación pública, no tenemos ningún derecho ni permiso para usar de ningún modo

la aplicación

   

¿Qué es el Software Libre?

Libertad 0: Usar el programa y los resultados de su ejecución con cualquier propósitoLibertad 1: Estudiar el programa, aprender y poder aplicar el conocimiento obtenido

Libertad 2: Copiar, distribuir y difundir el programa, en su totalidad o en parte

Libertad 3: Modificar y mejorar el programa y publicar los cambios realizados

   

¿Por qué hacer un juego Libre?

● Porque es la mejor forma de difundirlo sin invertir muchísimo en publicidad

● Porque hay un montón de elementos libres sobre los que nos podemos apoyar para crearlo

● Porque podemos contar con el apoyo de mucha gente de la comunidad para desarrollarlo

● Porque podemos extenderlo a muchos sistemas para los que no tendríamos capacidad si no

● Porque el juego sobrevivirá en el tiempo

   

¿Qué software NO es Libre?

El software no libre (software propietario, software privativo, software privado) se refiere a

cualquier programa informático en el que se tienen limitadas las posibilidades de uso, modificación o redistribución (con o sin

modificaciones), o que su código fuente no está disponible o el acceso a éste se encuentra

restringido.

Dos conceptos diferentes

Libre

Gratis

Libertad

Dinero

   

¿Qué software NO es Libre?

● Software privativo o propietario: Otorga el derecho de uso del programa binario a cambio de una cantidad de dinero y en determinadas condiciones.

● Shareware: Permite probar el programa antes de comprarlo.

● Freeware: Se puede usar de forma gratuíta en determinadas condiciones.

● Código fuente disponible para su inspección pero no para su uso, modificación y distribución libres.

   

Software Libre != Software Gratuito

   

Tres aspectos del Software Libre

Licencia

Metodologíade desarrollo

Comunidad

Copyleft: All Rights Reversed

   

¿Qué es el Copyleft?

● Eliminar las restricciones de distribución o modificación impuestas por el copyright

● Condición de que el trabajo derivado se mantenga con el mismo régimen de derechos de autoría que el original

● Permite proteger una gran diversidad de obras, tales como programas informáticos, arte, cultura y ciencia, es decir prácticamente casi cualquier tipo de producción creativa

   

Distribución sin Copyleft

Libre Libre Libre

Privativo Privativo Privativo

Autor/a

   

Distribución con Copyleft

Libre Libre Libre

Privativo Privativo Privativo

Autor/a X X

   

Tipos de Copyleft

   

Licencias: La elección sencilla

● Protección con copyleft fuerte: GPL v3● Protección con copyleft débil: LGPL v3● Sin copyleft, pero queremos que tenga

protección contra patentes: Apache 2.0● Si queremos una licencia sencilla sin copyleft,

contra patentes, DRM, etc: MIT o BSD-2

   

Licencias: La elección menos sencilla

● Para trabajos que no sean de software, considerar las licencias Creative Commons (CC-by ó CC-by-sa 3.0)

● Si queremos protección con copyleft fuerte para aplicaciones en red, aún a costa de limitar su uso comercial: AGPL v3

● Si queremos copyleft débil y que explícitamente sea incompatible con GPL: CPL, EPL, MPL 1.1, CDDL,...

● Si tenemos dependencias que limiten nuestras opciones, hay que tenerlas en cuenta.

● Algunas licencias son muy populares en sectores concretos

   

Licencias Creative Commons

Cláusulas disponibles:● Reconocimiento ("by", o Attribution)● No Comercial ("nc", o Non commercial)● Sin Obra Derivada ("nd" o No Derivate Works)● Compartir Igual ("sa" o Share Alike)

6 licencias principales para escoger:● by, by-nc● by-nd, by-nc-nd● by-sa, by-nc-sa

Realmente libres (DFSG):● CC0 (dominio público)● CC-by 3.0● CC-by-sa 3.0

Proceso de desarrollo

   

Desarrollo de un juego Libre

● Idea, concepto y diseño inicial● Elección de la arquitectura y las herramientas● Selección de la licencia● Recopilación de componentes● Desarrollo del código y elementos artísticos● Publicación del código fuente● Integración en los diferentes sistemas● Distribución de los binarios● Comunidad de desarrollo● Mantenimiento, bugs y desarrollos posteriores

   

El Sistema Operativo

● Elemento que actúa de intermediario entre el hardware y el software, y provee los sistemas y librarías básicas

● Hay numerosos sistemas operativos, tanto para ordenadores como para videoconsolas, móviles, etc. Algunos son privativos y otros no

● Existen diversas librerías, frameworks y entornos de ejecución que nos permiten abstraernos del sistema operativo sobre el que se va a ejecutar el programa

   

El Sistema Base

● Tecnologías de las que vamos a depender: C/C++, Posix, Java, Python, OpenGL, SDL, Flash, Perl, Crystal Space, Ogre, .Net, DirectX, VB, Delphi, XULRunner, ...

● Entorno de desarrollo: modificación del programa, compiladores soportados, herramientas de transformación, edición de contenidos, ...

● Componentes: compatibilidad de la licencia, portabilidad de las librerías, estabilidad, mantenimiento, ...

   

La toolchain

● Herramientas, binarios y librerías necesarias para realizar la compilación

● Dependiendo de las herramientas de desarrollo elegidas se podrá usar en unos sistemas operativos u otros

● Si existe una toolchain libre en la que se pueda compilar, se puede compilar potencialmente para cualquier sistema

● Si se necesita una toolchain privativa, solo se podrá portar a algunos sistemas, y estará condicionada a la empresa que la fabrique

   

La parte artística

● No se puede coger cualquier cosa que encontremos por ahí: copyright, licencia, condiciones

● Será tan libre, distribuíble, portable, etc. como lo sea la parte más restrictiva de las piezas que lo componen

● Elementos habitualmente problemáticos: texturas, mapas, modelos, fotos, tipos de letra, sonidos, música, iconos, etc.

   

El proceso productivo

   

El “bazar” vs. La “catedral”

Modelo dedesarrollo

Tipo“catedral”

Modelo dedesarrollo

Tipo“bazar”

   

El “bazar” vs. La “catedral”

● El esquema de desarrollo estilo “catedral”, en el que se establece una jerarquía de decisiones, se está viendo cada vez más desfasada por un modelo que aporta mejores resultados en muchos casos: el modelo “bazar”

● Los nuevos medios tecnológicos están transformando la sociedad, de tal forma que cada vez van desapareciendo más los conceptos de producer y consumer, y va surgiendo uno nuevo: “prosumer”

   

Cooperación competitiva

El Software Libre configura un paradigma de desarrollo entre pares sin la necesidad de una autoridad coordinadora, que se aprovecha de los mecanismos de evolución natural para mejorar

la calidad, y en el que la permanencia en las posiciones de control del producto están regidas por la meritocracia y la participación activa,

eliminando automáticamente a quienes no innovan

   

Nacimiento de un proyecto Libre

Modelo dedesarrollotipo bazar

Fase detransición

Fase inicialtipo catedral

   

Crecimiento de un proyecto Libre

Mecanismosformales departicipacióny resoluciónde conflictos

Formalización

Grupopequeñocon una

estructurainformal

Ejemplos de Componentes Libres

   

Simple DirectMedia Layer (SDL)

● Bibliotecas en C que proporcionan funciones básicas para realizar dibujado 2D, sonido y música y carga y gestión de imágenes

● Wrappers a otros lenguajes de programación como C++, Ada, C#, Basic, Erlang, Lua, Java, Python, etc.

● Multiplataforma, soportando oficialmente Windows, GNU/linux, MacOS y QNX, además de otras como Dreamcast, GP32, GP2X, ...

● Licencia LGPL

   

Capas de SDL

   

PyGame

● Módulos del lenguaje Python que permiten la creación de videojuegos en 2D

● Es esencialmente un interfaz de las bibliotecas SDL, orientado al manejo de sprites.

● Permite prototipar y desarrollar rápidamente● También puede utilizarse para crear otros

programas multimedia o interfaces gráficas de usuario.

   

Open Graphics Library (OpenGL)

● Es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D

● Hay implementaciones eficientes de OpenGL para Mac OS, Microsoft Windows, GNU/Linux, varias plataformas Unix y PlayStation 3

● Existen implementaciones software que permiten ejecutar aplicaciones OpenGL sin soporte de aceleración hardware

● iPhone soporta la variante OpenGL ES

   

Pipeline de OpenGL

   

OpenGL vs. DirectX

● Tiene llamadas más rápidas que DirectX y acceso directo a nuevas características de las GPU mediante extensiones

● Acceso a las nuevas características en todas las plataformas. DirectX solo las permite en las últimas versiones de Windows. La única forma de disponer de las últimas características en XP es con OpenGL

● OpenGL es multiplataforma● OpenGL es un estándar abierto y sin coste

   

Crystal Space

● Framework para aplicaciones 3D escrito en C++● Puede ser usado para cualquier tipo de

visualización 3D● Es muy portable y se ejecuta en Microsoft

Windows, Linux, UNIX, y Mac OS X● Crystal Space es software de código abierto,

licenciado bajo LGPL.● Existen bindings para Python y Java, entre

otros.

   

Crystal Space

   

Otros motores 3D Libres

● Otros motores Libres 3D en tiempo real:– OGRE– Irrlicht Engine– Soya 3D– Horde3D– Panda3D– Axiom– Delta3D– G3D Engine– JmonkeyEngine– Lightfeather– NeL– OpenSceneGraph– OpenSG– PySoy– Xith3D

   

Isométrico: FIFE Engine

   

MMORPG: Planeshift

   

Edición en el juego: Cube 2

   

Novelas visuales: Ren'Py

   

Programación fácil: Löve

   

Otros recursos

● Gráficos: Clker.com (http://www.clker.com/), OpenClipArt (http://openclipart.org/), Image *After (http://gpl.imageafter.com/), BurningWell (http://www.burningwell.org/), Vecteezy (http://www.vecteezy.com/)

● Modelos 3D: BlendSwap (http://www.blendswap.com/)● Fuentes de texto: OpenFontLibrary (http://openfontlibrary.org/)● Sonidos: Free Sound Samples from the OLPC project (

http://wiki.laptop.org/go/Sound_samples), PDSounds (http://www.pdsounds.org/), Sound Bible (http://soundbible.com/), OpenOffice.org gallery (http://www.freedesktop.org/wiki/OpenOffice)

● Música: Jamendo (http://www.jamendo.com/), Wikipedia (http://en.wikipedia.org/wiki/Wikipedia:Sound/list), The Mutopia Project (http://www.mutopiaproject.org/), ccMixter (http://ccmixter.org/), simuze (http://www.simuze.nl/)

● Miscelánea: Wiki on FreeGameDev, Free Art Search (http://search.freegamedev.net/), Free Game Resources in Löve Club (http://love2d.org/forum/viewtopic.php?f=3&t=12), OpenGameArt (http://opengameart.org/), otros juegos Libres

   

Crystal Space

● Framework para aplicaciones 3D escrito en C++● Puede ser usado para cualquier tipo de

visualización 3D● Es muy portable y se ejecuta en Microsoft

Windows, Linux, UNIX, y Mac OS X● Crystal Space es software de código abierto,

licenciado bajo LGPL.● Existen bindings para Python y Java, entre

otros.

Ejemplos de Aplicaciones Libres

   

GIMP

   

Blender

   

Wings3D

   

Audacity

   

Cinelerra

   

Eclipse IDE

   

Code::Blocks

   

Creación devideojuegos en

entornos deSoftware Libre

Miriam Ruiz <miriam@debian.org>Santander, 23 de marzo de 2010

II Foro Cesine sobre Ocio Digital y Videojuegos

   

Licencia

Copyright © 2010, Miriam Ruiz

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 (CC-by-

sa 3.0) license. You can use, copy, modify, merge, remix, distribute, display, perform, sublicense and/or sale it freely under the

conditions defined in that license.

See http://creativecommons.org/licenses/by-sa/3.0/

top related