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

60
 Creación de videojuegos en entornos de Software Libre Miriam Ruiz <[email protected]> Santander, 23 de marzo de 2010 II Foro Cesine sobre Ocio Digital y Videojuegos

Upload: miriam-ruiz

Post on 22-Jun-2015

319 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Creación de videojuegos en entornos de Software Libre (2010)

   

Creación devideojuegos en

entornos deSoftware Libre

Miriam Ruiz <[email protected]>Santander, 23 de marzo de 2010

II Foro Cesine sobre Ocio Digital y Videojuegos

Page 2: Creación de videojuegos en entornos de Software Libre (2010)

Índice

Introducción al Software Libre

Ejemplos de Aplicaciones Libres

Copyleft: All Rights Reversed

Desarrollo de Software

Ejemplos de Componentes Libres

Page 3: Creación de videojuegos en entornos de Software Libre (2010)

   

Interrumpidme libremente

No me como a

nadie por preguntar

Page 4: Creación de videojuegos en entornos de Software Libre (2010)

Introducción al Software Libre

Page 5: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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

Page 6: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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

Page 7: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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

Page 8: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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

Page 9: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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.

Page 10: Creación de videojuegos en entornos de Software Libre (2010)

Dos conceptos diferentes

Libre

Gratis

Libertad

Dinero

Page 11: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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.

Page 12: Creación de videojuegos en entornos de Software Libre (2010)

   

Software Libre != Software Gratuito

Page 13: Creación de videojuegos en entornos de Software Libre (2010)

   

Tres aspectos del Software Libre

Licencia

Metodologíade desarrollo

Comunidad

Page 14: Creación de videojuegos en entornos de Software Libre (2010)

Copyleft: All Rights Reversed

Page 15: Creación de videojuegos en entornos de Software Libre (2010)

   

¿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

Page 16: Creación de videojuegos en entornos de Software Libre (2010)

   

Distribución sin Copyleft

Libre Libre Libre

Privativo Privativo Privativo

Autor/a

Page 17: Creación de videojuegos en entornos de Software Libre (2010)

   

Distribución con Copyleft

Libre Libre Libre

Privativo Privativo Privativo

Autor/a X X

Page 18: Creación de videojuegos en entornos de Software Libre (2010)

   

Tipos de Copyleft

Page 19: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 20: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 21: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 22: Creación de videojuegos en entornos de Software Libre (2010)

Proceso de desarrollo

Page 23: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 24: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 25: Creación de videojuegos en entornos de Software Libre (2010)

   

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, ...

Page 26: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 27: Creación de videojuegos en entornos de Software Libre (2010)

   

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.

Page 28: Creación de videojuegos en entornos de Software Libre (2010)

   

El proceso productivo

Page 29: Creación de videojuegos en entornos de Software Libre (2010)

   

El “bazar” vs. La “catedral”

Modelo dedesarrollo

Tipo“catedral”

Modelo dedesarrollo

Tipo“bazar”

Page 30: Creación de videojuegos en entornos de Software Libre (2010)

   

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”

Page 31: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 32: Creación de videojuegos en entornos de Software Libre (2010)

   

Nacimiento de un proyecto Libre

Modelo dedesarrollotipo bazar

Fase detransición

Fase inicialtipo catedral

Page 33: Creación de videojuegos en entornos de Software Libre (2010)

   

Crecimiento de un proyecto Libre

Mecanismosformales departicipacióny resoluciónde conflictos

Formalización

Grupopequeñocon una

estructurainformal

Page 34: Creación de videojuegos en entornos de Software Libre (2010)

Ejemplos de Componentes Libres

Page 35: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 36: Creación de videojuegos en entornos de Software Libre (2010)

   

Capas de SDL

Page 37: Creación de videojuegos en entornos de Software Libre (2010)

   

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.

Page 38: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 39: Creación de videojuegos en entornos de Software Libre (2010)

   

Pipeline de OpenGL

Page 40: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 41: Creación de videojuegos en entornos de Software Libre (2010)

   

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.

Page 42: Creación de videojuegos en entornos de Software Libre (2010)

   

Crystal Space

Page 43: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 44: Creación de videojuegos en entornos de Software Libre (2010)

   

Isométrico: FIFE Engine

Page 45: Creación de videojuegos en entornos de Software Libre (2010)

   

MMORPG: Planeshift

Page 46: Creación de videojuegos en entornos de Software Libre (2010)

   

Edición en el juego: Cube 2

Page 47: Creación de videojuegos en entornos de Software Libre (2010)

   

Novelas visuales: Ren'Py

Page 48: Creación de videojuegos en entornos de Software Libre (2010)

   

Programación fácil: Löve

Page 49: Creación de videojuegos en entornos de Software Libre (2010)

   

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

Page 50: Creación de videojuegos en entornos de Software Libre (2010)

   

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.

Page 51: Creación de videojuegos en entornos de Software Libre (2010)

Ejemplos de Aplicaciones Libres

Page 52: Creación de videojuegos en entornos de Software Libre (2010)

   

GIMP

Page 53: Creación de videojuegos en entornos de Software Libre (2010)

   

Blender

Page 54: Creación de videojuegos en entornos de Software Libre (2010)

   

Wings3D

Page 55: Creación de videojuegos en entornos de Software Libre (2010)

   

Audacity

Page 56: Creación de videojuegos en entornos de Software Libre (2010)

   

Cinelerra

Page 57: Creación de videojuegos en entornos de Software Libre (2010)

   

Eclipse IDE

Page 58: Creación de videojuegos en entornos de Software Libre (2010)

   

Code::Blocks

Page 59: Creación de videojuegos en entornos de Software Libre (2010)

   

Creación devideojuegos en

entornos deSoftware Libre

Miriam Ruiz <[email protected]>Santander, 23 de marzo de 2010

II Foro Cesine sobre Ocio Digital y Videojuegos

Page 60: Creación de videojuegos en entornos de Software Libre (2010)

   

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/