SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
publicando
      juegos
      libres


Miriam Ruiz <miriam@debian.org>
quién soy
        Miriam Ruiz
         ingeniera
         feminista
  desarrolladora de Debian
   editora de Barrapunto
fundadora y coordinadora del
     Debian Games Team
defensora del Software Libre
de qué voy a hablar

  · las licencias de Software Libre
    · la base sobre la desarrollar
       · las creación del juego
· el desarrollo y los errores habituales
    · la publicación y distribución
            · la comunidad
de qué NO voy a hablar
     · cómo se diseña un juego
        · cómo se programa
     · ingeniería del software
     · paradigmas de desarrollo
    · lenguajes de programación
       · sistemas operativos
· organización de equipos de trabajo
         · juegos privativos
desarrollo de un juego libre
       · idea, co ncepto y diseño i nicial
· elección de la arquitectura y las herramie ntas
           · selección de la lice ncia
         · recopilación de compo ne ntes
 · desarrollo del código y eleme ntos artísticos
        · publicación del código fue nte
   · i ntegración e n los difere ntes sistemas
         · dist rib ución de los bi narios
           · comunidad de desarrollo
· ma nte nimie nto, b ugs y desarrollos posteriores
eligiendo la licencia
la licencia
  es impresci ndible para
 poder utilizar, distribuir y
    modificar el software

todo el mundo odia los legalismos, pero
            son necesarios
qué es una licencia

conjunto de términos o co ndicio nes
de uso que otorgan los titulares de los
derechos de autor para poder utilizar,
modificar y dist rib uir el software
   en una forma determinada y de
 conformidad con u nas co ndicio nes
             co nve nidas
libertades esenciales


usar el programa co n cualquier propósito
    estudiar y modificar el programa
copiar, dist rib uir y difu ndir el programa
modificar el programa y publicar los cambios
diferencias entre licencias
                       at rib ución
                         sencillez
             copyleft: GPL, LGPL, MPL/CDDL
              protección contra pate ntes
             protección contra tivoisación
                cláusula de no gara ntía
            limitación de respo nsabilidad
         compatibilidad co n ot ras lice ncias
               selección de la ley a aplicar
          integridad del código fuente original
 protección por copyright del propio texto de la licencia
                señalar las modificaciones
licencias libres
 las más sencillas: BSD, ISC, MIT/X Windows/Expat, Zlib
                   la más popular: GPL
            para bibliotecas de código: LGPL
     otras licencias: Apache 2.0, MPL, CDDL, EPL, ...


        Creative Commo ns: licencias a la carta
         reco nocimie nto (“by” o attribution)
         no comercial (“nc” o non commercial)
    si n ob ra derivada (“nd” o no derivative works)
          compartir igual (“sa” o share alike)
6 “sabores”: by, by-nc, by-nd, by-nc-nd, by-sa, by-nc-sa
eligiendo la licencia


· qué permisos y obligaciones quiero para mi juego
 · elegir las librerías y componentes compatibles
· elegir los componentes artísticos que nos sirvan
· dejar muy claro documentada la licencia y versión
· condicionar los aportes externos a esa licencia
por qué Software Libre
  · porque es la mejor forma de difu ndirlo sin
        invertir muchísimo en publicidad
 · porque hay un montón de eleme ntos lib res
  sobre los que nos podemos apoyar para crearlo
 · porque podemos contar con el apoyo de mucha
    gente de la comu nidad para desarrollarlo
· porque podemos extenderlo a muchos sistemas
   para los que no tendríamos capacidad si no
 · porque el juego sob revivirá e n el tiempo
sobre qué construyo
el sistema operativo
   es el elemento que actúa de intermediario entre el
hardware y el software, y provee los sistemas y librarías
  básicas para que podamos ejecutar programas sobre él


hay numerosos sistemas operativos, tanto para ordenadores
como para videoconsolas, móviles, etc. algunos de ellos son
                   privativos y otros no


hay librerías, frameworks y entornos de ejecución que nos
permiten abst raernos del sistema operativo sobre el
            que se va a ejecutar el programa
la arquitectura
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, ...


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


 compo ne ntes: compatibilidad de la licencia, portabilidad
      de las librerías, estabilidad, mantenimiento, ...
la toolchain
   conjunto de herramie ntas, bi narios y lib rerí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 lib re en la que se pueda
  compilar, se puede compilar para cualquier sistema


  si se necesita una toolchain privativa, solamente se
      podrá portar para algunos sistemas, y estará
      co ndicio nada 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 rest rictiva de las piezas que lo componen


 eleme ntos habitualme nte problemáticos: texturas,
 mapas, modelos, fotos, tipos de letra, sonidos, música,
                       iconos, etc.
la creación
iniciando el proyecto
     el proyecto no es la idea: hay que desarrollarla


   otra opción: unirse a un proyecto ya existe nte, o
             construir a partir de su código


no vamos a conseguir colaboración externa antes de tener
 algo jugable. los grandes planes se quedan en vaporware


hay numerosas forjas donde poder iniciar un proyecto libre:
                 sourceforge, savannah, ...
buscando colaboración
  hacer que colaborar sea fácil: curva de entrada
  aceptable, mantenibilidad del código, documentación


la mayoría de las colaboracio nes van a ser puntuales,
 aportando parches, gráficos, mapas, etc. pero sin un
               compromiso de continuidad


 herramie ntas colaborativas y de comunicación:
 repositorio de código (svn, git, bzr, hg, cvs, ...), wiki,
             listas de correo o foros, etc.
y si me lo estropean

la colaboración de la comunidad mejora la calidad de
          los proyectos (cathedral vs. bazaar)


no puedes evitar que alguien lo modifique por su cuenta
                (el derecho al fork)


 la propia comunidad seleccio na el proyecto mejor
¡¡cuidadín: errores!!
desarrollo incorrecto
       · idea, co ncepto y diseño i nicial
· empezar a programar si n pla ntearse las cosas
    · se coge n muchas cosas de “por ahí”
         · publicación de los binarios
· alguie n escribe solicita ndo el código fue nte
· selección o redacción de una lice ncia propia
       · publicación del código fue nte
             · me olvido del juego
  · i ntegración e n los difere ntes sistemas
        · comunidad de desarrollo aje na
endianess
         unidad mínima de almacenamiento: byte,
      cómo almace nar un número multibyte: 1234:


 big-e ndian (“de mayor a final”): del + a - significativo
                  1-2-3-4 (ej: Motorola)
little-e ndian (“de pequeño a final”): de - a + significativo
                    4-3-2-1 (ej: Intel)
 algunos sistemas pueden trabajar con ambos formatos: ARM,
             PowerPC, DEC Alpha, PA-RISC, MIPS
middle-e ndia n (ni big-e ni little-e): ordenaciones extrañas
como 3-4-1-2 ó 2-1-4-3, o incluso decimal empaquetado
tamaño de palabra
   es el número de bits que son manejados como un
                conjunto por la máquina


el valor numérico típico manipulado por el ordenador es
           habitualmente el tamaño de palabra
        ordenadores modernos: 16, 32 ó 64 bits


 define el máximo valor numérico que la CPU puede usar
                directamente (overflow)
lo que NO se debe hacer
ejemplo 1:
  int i = 0;
  myfile.read(&i, sizeof(int));



ejemplo 2:
  void *pointer;
  int value;
  value = (int)pointer;
empaquetamiento de datos
    cuando se almacena información en la memoria del
 ordenador no se hace linealmente, sino que a menudo se
desperdicia parte de la misma para optimizar el acceso a
                         la misma


la est ructura de los datos e n memoria depende de la
arquitectura, del compilador, de las opciones de compilación
 y, en general, salvo que el lenguaje elegido garantice una
  estructura determinada, está fuera del co nt rol de
                      quien programa.
lo que NO se debe hacer
typedef struct {
  uint32_t moment;
  Player player[ cMaxPlayers ];
  uint8_t grid[ cGridX ][ cGridY ];
} Game;

FILE *file;
file = fopen( "game.dat", "w" );
if ( file == (FILE *) NULL )
  return ERROR;
fwrite( game, 1, sizeof( Game ), file );
fclose( file );
internacionalización (i18n)
 para quienes lo usan, es muy importante que el software
esté en su idioma. en muchos casos incluso imprescindible.


 ha de ser posible realizar t raduccio nes del programa


respetar la forma de trabajar de traductores: formatos y
herramie ntas estándar: GNU gettext PO, XLIFF (XML)
            no inve ntar formatos nuevos


 en sistemas multiusuario, difere ntes usuarios puedan
     usar el mismo programa en difere nte idioma
Codificación del texto
  NO EXISTE EL TEXTO PLANO o texto sin formato


    las codificaciones ASCII, ANSI, etc. no so n
 solucio nes válidas para idiomas diferentes del inglés


U NICODE: proporciona un número único para cada carácter
  o grafema, sin importar la plataforma o el idioma. sin
 U NICODE no es posible soportar muchos idiomas


diferentes codificaciones: UTF-8; UTF-7; UCS-2, UTF-16,
    UCS-4, UTF-32 (cuidado: endianess) y alguna otra
sistema de archivos
    no es posible grabar cualquier archivo en cualquier
            directorio para cualquier usuario/a
  separación de archivos: programa, datos de juego,
               configuración, cachés, logs


  en muchos juegos es necesario que quien juega pueda
     grabar datos: estado de la partida, records,
           configuraciones, edición de mapas


no es válido considerar que todos los archivos del juego
         van a estar en el mismo directorio
la distribución
compilación
 docume ntar las depe nde ncias tanto de compilación
                 como para la ejecución


permitir el e nlazado co n las bibliotecas dinámicas
  que vienen incluídas en las principales distribuciones
       (“duplicated libraries considered harmful”)


elegir el sistema de compilación preferido de los ya
           existentes. no inventar uno nuevo.


cualquiera debe poder compilar el juego en su sistema
publicación
    tarball que contenga de forma ordenada el código
fue nte, especificando de forma clara los datos respecto a
   la propiedad intelectual (copyright), la lice ncia, las
   depe nde ncias y el proceso de compilación. los
  gráficos, mapas, documentación, etc. también pueden
 tener “código fuente”: forma preferida de modificación


   precompilado para ciertas plataformas: Windows, OS X


  trabajo conjunto con quienes desarrollan las diferentes
    distribuciones para ayudarles a mantenerlo en ellas
empaquetamiento
existen numerosos sistemas operativos difere ntes, y
versiones y distribuciones de los mismos. Cada uno de ellos
         tiene sus propias “reglas de juego”


 es imposible hacerlo perfecto en todas las arquitecturas
   posibles. a menudo desarrolladores de las diferentes
    distribuciones pueden ayudarnos, así como la propia
                        comunidad


el mantenimiento de paquetes de distribuciones de Linux
 es tarea de los ma nte nedores, no de los creadores
difusión
  a nunciar el proyecto el páginas web especializadas
               (ej: http://happypenguin.org)


facilitar a usuarios y usuarias la tarea de descargárselo y
                         probarlo


 no le va a gustar a todo el mundo: críticas y quejas


           “release early, release o fte n”
la comunidad
un nuevo paradigma
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”
herramientas comunitarias
          · co rreo elect rónico
        · reposito rio de código
   - sistema de control de versiones -
         (svn, git, bzr, hg, cvs, ...)
                   · wiki
· sistemas automatizados (buildds, qa, ...)
          · pági na web o portal
                    · blog
        · e ncue nt ros en persona
qué buscar en la comunidad
· i n fraest ructura para el desarrollo (repositorios,
sistemas de gestión de proyectos, espacios web,...)
· eleme ntos que podemos utilizar para co nst ruir
          · críticas, muchas críticas
 · apo rtacio nes pu ntuales: traducciones, diseño
    de fases, portabilidad a otras plataformas,
          extensiones de la funcionalidad
 · sopo rte técnico: listas de correo, foros, irc
                       · ideas
    · más colabo rado res/as para el proyecto
el resultado
jugando libremente
a pesar de todos los problemas y dificultades, el hecho es
     que tenemos motores lib res multiplataforma
 excele ntes, librerías y e ntornos de programación
muy b ue nos, y bastantes juegos que merece n la pe na


 las carencias que pueden tener los y las desarrolladoras
originales de los juegos, quedan solucionadas por el apoyo y
  la asistencia de miembros y miembras de la comunidad


           pero siempre se puede mejorar,
        aún nos queda mucho camino por recorrer
preguntar es gratis
            :)


  Miriam Ruiz <miriam@debian.org>

Weitere ähnliche Inhalte

Was ist angesagt?

Creación de videojuegos en entornos de Software Libre (2010)
Creación de videojuegos en entornos de Software Libre (2010)Creación de videojuegos en entornos de Software Libre (2010)
Creación de videojuegos en entornos de Software Libre (2010)Miriam Ruiz
 
Lopez gonzales joseomar_1gb_actividad_softwarelibre...
Lopez gonzales joseomar_1gb_actividad_softwarelibre...Lopez gonzales joseomar_1gb_actividad_softwarelibre...
Lopez gonzales joseomar_1gb_actividad_softwarelibre...Jose Omar Lopez Gonzales
 
Software Libre y GNU/Linux en Udondo gaztetxea
Software Libre y GNU/Linux en Udondo gaztetxeaSoftware Libre y GNU/Linux en Udondo gaztetxea
Software Libre y GNU/Linux en Udondo gaztetxeaJavier Quintano
 
Software linux
Software linuxSoftware linux
Software linuxticdamian
 
Gnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNGnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNJavi
 
Presentación de Software Libre
Presentación de Software LibrePresentación de Software Libre
Presentación de Software LibreAndreu Bassols
 
Presentación sobre Software Libre UCV
Presentación sobre Software Libre UCVPresentación sobre Software Libre UCV
Presentación sobre Software Libre UCVkela20
 
Introduccion al Software Libre
Introduccion al Software LibreIntroduccion al Software Libre
Introduccion al Software LibrePablo Garaizar
 
Evaluacion de distribuciones_linux_para_educacion.ppt_0
Evaluacion de distribuciones_linux_para_educacion.ppt_0Evaluacion de distribuciones_linux_para_educacion.ppt_0
Evaluacion de distribuciones_linux_para_educacion.ppt_0Se Pa
 
Curso basico de linux(guadalinex)
Curso basico de linux(guadalinex)Curso basico de linux(guadalinex)
Curso basico de linux(guadalinex)Gilberto Iraheta
 
Presentación software libre
Presentación   software librePresentación   software libre
Presentación software libreGabriel Pérez
 
Aplicaciones para netbook secundaria
Aplicaciones para netbook secundariaAplicaciones para netbook secundaria
Aplicaciones para netbook secundariaIFDIFD5
 
Trabajo gnu
Trabajo gnuTrabajo gnu
Trabajo gnutxemi123
 
Software libre vs software gratis
Software libre vs software gratisSoftware libre vs software gratis
Software libre vs software gratisNahomyLopezHerrera
 

Was ist angesagt? (20)

Creación de videojuegos en entornos de Software Libre (2010)
Creación de videojuegos en entornos de Software Libre (2010)Creación de videojuegos en entornos de Software Libre (2010)
Creación de videojuegos en entornos de Software Libre (2010)
 
Lopez gonzales joseomar_1gb_actividad_softwarelibre...
Lopez gonzales joseomar_1gb_actividad_softwarelibre...Lopez gonzales joseomar_1gb_actividad_softwarelibre...
Lopez gonzales joseomar_1gb_actividad_softwarelibre...
 
Presentacion
PresentacionPresentacion
Presentacion
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Software Libre y GNU/Linux en Udondo gaztetxea
Software Libre y GNU/Linux en Udondo gaztetxeaSoftware Libre y GNU/Linux en Udondo gaztetxea
Software Libre y GNU/Linux en Udondo gaztetxea
 
Software linux
Software linuxSoftware linux
Software linux
 
Gnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓNGnu-linux PRESENTACIÓN
Gnu-linux PRESENTACIÓN
 
Presentación de Software Libre
Presentación de Software LibrePresentación de Software Libre
Presentación de Software Libre
 
Tipos de software
Tipos de softwareTipos de software
Tipos de software
 
Presentación sobre Software Libre UCV
Presentación sobre Software Libre UCVPresentación sobre Software Libre UCV
Presentación sobre Software Libre UCV
 
Introduccion al Software Libre
Introduccion al Software LibreIntroduccion al Software Libre
Introduccion al Software Libre
 
Evaluacion de distribuciones_linux_para_educacion.ppt_0
Evaluacion de distribuciones_linux_para_educacion.ppt_0Evaluacion de distribuciones_linux_para_educacion.ppt_0
Evaluacion de distribuciones_linux_para_educacion.ppt_0
 
Daniela pre
Daniela preDaniela pre
Daniela pre
 
Curso basico de linux(guadalinex)
Curso basico de linux(guadalinex)Curso basico de linux(guadalinex)
Curso basico de linux(guadalinex)
 
Linux
Linux Linux
Linux
 
Presentación software libre
Presentación   software librePresentación   software libre
Presentación software libre
 
Aplicaciones para netbook secundaria
Aplicaciones para netbook secundariaAplicaciones para netbook secundaria
Aplicaciones para netbook secundaria
 
Trabajo gnu
Trabajo gnuTrabajo gnu
Trabajo gnu
 
Software libre vs software gratis
Software libre vs software gratisSoftware libre vs software gratis
Software libre vs software gratis
 
Linux
LinuxLinux
Linux
 

Andere mochten auch

Actividades Día Internacional de la eliminación de la violencia contra la mujer.
Actividades Día Internacional de la eliminación de la violencia contra la mujer.Actividades Día Internacional de la eliminación de la violencia contra la mujer.
Actividades Día Internacional de la eliminación de la violencia contra la mujer.gmsrosario
 
Día internacional de la mujer en 2015
Día internacional de la mujer en 2015Día internacional de la mujer en 2015
Día internacional de la mujer en 2015castellanocela
 
Dia De Mujer
Dia De MujerDia De Mujer
Dia De Mujerfapena
 
Dia de la mujer
Dia de la mujerDia de la mujer
Dia de la mujersomar234
 
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?Linda Castañeda
 

Andere mochten auch (8)

Actividades Día Internacional de la eliminación de la violencia contra la mujer.
Actividades Día Internacional de la eliminación de la violencia contra la mujer.Actividades Día Internacional de la eliminación de la violencia contra la mujer.
Actividades Día Internacional de la eliminación de la violencia contra la mujer.
 
Actividades día de la mujer
Actividades día de la mujerActividades día de la mujer
Actividades día de la mujer
 
Presentación poemas 3 A
Presentación poemas 3 APresentación poemas 3 A
Presentación poemas 3 A
 
Día internacional de la mujer en 2015
Día internacional de la mujer en 2015Día internacional de la mujer en 2015
Día internacional de la mujer en 2015
 
Dia De Mujer
Dia De MujerDia De Mujer
Dia De Mujer
 
Dia de la mujer
Dia de la mujerDia de la mujer
Dia de la mujer
 
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?
¿Cómo diseñar actividades de aprendizaje enriquecidas con TIC?
 
Dinámicas de Integración
Dinámicas de IntegraciónDinámicas de Integración
Dinámicas de Integración
 

Ähnlich wie Publicando juegos libres (ArsGames 2008)

Dia 2 principio basicos funcionamiento so linux
Dia 2 principio basicos funcionamiento so linuxDia 2 principio basicos funcionamiento so linux
Dia 2 principio basicos funcionamiento so linuxcristian garcía
 
Crackers y software
Crackers y softwareCrackers y software
Crackers y softwarekevin rivera
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoAna Karen
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptxDyllanBastidas
 
Crackers y software.
Crackers y software.Crackers y software.
Crackers y software.kevin rivera
 
Taller1 softwarelibre
Taller1 softwarelibreTaller1 softwarelibre
Taller1 softwarelibreJordi Martin
 
T1 software libre, propietario y licencias
T1  software libre, propietario y licenciasT1  software libre, propietario y licencias
T1 software libre, propietario y licenciasrlopezdavi
 
Informãtica evelyn
Informãtica   evelynInformãtica   evelyn
Informãtica evelynliz2106
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft07223383
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft07223383
 
Clase 5-software[1]
Clase 5-software[1]Clase 5-software[1]
Clase 5-software[1]142918
 
Clase 5-software
Clase 5-softwareClase 5-software
Clase 5-softwaresamantha
 
Clase 5-software[1]
Clase 5-software[1]Clase 5-software[1]
Clase 5-software[1]142918
 
Clase 5-software
Clase 5-softwareClase 5-software
Clase 5-softwareJAPR
 
Software[1]
Software[1]Software[1]
Software[1]erikapoh
 

Ähnlich wie Publicando juegos libres (ArsGames 2008) (20)

Dia 2 principio basicos funcionamiento so linux
Dia 2 principio basicos funcionamiento so linuxDia 2 principio basicos funcionamiento so linux
Dia 2 principio basicos funcionamiento so linux
 
Software
SoftwareSoftware
Software
 
Crackers y software
Crackers y softwareCrackers y software
Crackers y software
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Crackers y software.
Crackers y software.Crackers y software.
Crackers y software.
 
Taller1 softwarelibre
Taller1 softwarelibreTaller1 softwarelibre
Taller1 softwarelibre
 
T1 software libre, propietario y licencias
T1  software libre, propietario y licenciasT1  software libre, propietario y licencias
T1 software libre, propietario y licencias
 
Informãtica evelyn
Informãtica   evelynInformãtica   evelyn
Informãtica evelyn
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft
 
Informãtica
InformãticaInformãtica
Informãtica
 
Presentacion Informatica
Presentacion InformaticaPresentacion Informatica
Presentacion Informatica
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Clase 5-software[1]
Clase 5-software[1]Clase 5-software[1]
Clase 5-software[1]
 
Clase 5-software
Clase 5-softwareClase 5-software
Clase 5-software
 
Clase 5-software[1]
Clase 5-software[1]Clase 5-software[1]
Clase 5-software[1]
 
Clase 5-software
Clase 5-softwareClase 5-software
Clase 5-software
 
Clase 5
Clase 5Clase 5
Clase 5
 
Software[1]
Software[1]Software[1]
Software[1]
 

Mehr von Miriam Ruiz

MBTI (Myers-Briggs Type Indicator) (doc. v3)
MBTI (Myers-Briggs Type Indicator) (doc. v3)MBTI (Myers-Briggs Type Indicator) (doc. v3)
MBTI (Myers-Briggs Type Indicator) (doc. v3)Miriam Ruiz
 
Patrones de Escalas Musicales (Draft)
Patrones de Escalas Musicales (Draft)Patrones de Escalas Musicales (Draft)
Patrones de Escalas Musicales (Draft)Miriam Ruiz
 
Diagramas de Escalas Musicales (draft)
Diagramas de Escalas Musicales (draft)Diagramas de Escalas Musicales (draft)
Diagramas de Escalas Musicales (draft)Miriam Ruiz
 
Diagramas tonales de acordes musicales (draft)
Diagramas tonales de acordes musicales (draft)Diagramas tonales de acordes musicales (draft)
Diagramas tonales de acordes musicales (draft)Miriam Ruiz
 
Mapas Tonales Musicales [Draft]
Mapas Tonales Musicales [Draft]Mapas Tonales Musicales [Draft]
Mapas Tonales Musicales [Draft]Miriam Ruiz
 
Ukelele Chords Cheat Sheet v2
Ukelele Chords Cheat Sheet v2Ukelele Chords Cheat Sheet v2
Ukelele Chords Cheat Sheet v2Miriam Ruiz
 
Ukelele Chords Cheat Sheet
Ukelele Chords Cheat SheetUkelele Chords Cheat Sheet
Ukelele Chords Cheat SheetMiriam Ruiz
 
Mujeres en el Software Libre (Campus Party Colombia, 2020)
Mujeres en el Software Libre (Campus Party Colombia, 2020)Mujeres en el Software Libre (Campus Party Colombia, 2020)
Mujeres en el Software Libre (Campus Party Colombia, 2020)Miriam Ruiz
 
MBTI (Myers-Briggs Type Indicator)
MBTI (Myers-Briggs Type Indicator)MBTI (Myers-Briggs Type Indicator)
MBTI (Myers-Briggs Type Indicator)Miriam Ruiz
 
DiSC (Dominance, Influence, Steadiness, Conscientiousness)
DiSC (Dominance, Influence, Steadiness, Conscientiousness)DiSC (Dominance, Influence, Steadiness, Conscientiousness)
DiSC (Dominance, Influence, Steadiness, Conscientiousness)Miriam Ruiz
 
MBTI (Myers-Briggs Type Indicator) [old]
MBTI (Myers-Briggs Type Indicator) [old]MBTI (Myers-Briggs Type Indicator) [old]
MBTI (Myers-Briggs Type Indicator) [old]Miriam Ruiz
 
Mujeres en el Software Libre: El proyecto Debian Women (2015)
Mujeres en el Software Libre: El proyecto Debian Women (2015)Mujeres en el Software Libre: El proyecto Debian Women (2015)
Mujeres en el Software Libre: El proyecto Debian Women (2015)Miriam Ruiz
 
Planets in our Solar System (2015)
Planets in our Solar System (2015)Planets in our Solar System (2015)
Planets in our Solar System (2015)Miriam Ruiz
 
Understanding Debian Packages (2014)
Understanding Debian Packages (2014)Understanding Debian Packages (2014)
Understanding Debian Packages (2014)Miriam Ruiz
 
El Paradigma de la Cultura Libre (2014)
El Paradigma de la Cultura Libre (2014)El Paradigma de la Cultura Libre (2014)
El Paradigma de la Cultura Libre (2014)Miriam Ruiz
 
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)Miriam Ruiz
 
UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)Miriam Ruiz
 
Curso de C++ (2014)
Curso de C++ (2014)Curso de C++ (2014)
Curso de C++ (2014)Miriam Ruiz
 
Feminismo en la Red (2013)
Feminismo en la Red (2013)Feminismo en la Red (2013)
Feminismo en la Red (2013)Miriam Ruiz
 
El Software Libre: Una visión global (2012)
El Software Libre: Una visión global (2012)El Software Libre: Una visión global (2012)
El Software Libre: Una visión global (2012)Miriam Ruiz
 

Mehr von Miriam Ruiz (20)

MBTI (Myers-Briggs Type Indicator) (doc. v3)
MBTI (Myers-Briggs Type Indicator) (doc. v3)MBTI (Myers-Briggs Type Indicator) (doc. v3)
MBTI (Myers-Briggs Type Indicator) (doc. v3)
 
Patrones de Escalas Musicales (Draft)
Patrones de Escalas Musicales (Draft)Patrones de Escalas Musicales (Draft)
Patrones de Escalas Musicales (Draft)
 
Diagramas de Escalas Musicales (draft)
Diagramas de Escalas Musicales (draft)Diagramas de Escalas Musicales (draft)
Diagramas de Escalas Musicales (draft)
 
Diagramas tonales de acordes musicales (draft)
Diagramas tonales de acordes musicales (draft)Diagramas tonales de acordes musicales (draft)
Diagramas tonales de acordes musicales (draft)
 
Mapas Tonales Musicales [Draft]
Mapas Tonales Musicales [Draft]Mapas Tonales Musicales [Draft]
Mapas Tonales Musicales [Draft]
 
Ukelele Chords Cheat Sheet v2
Ukelele Chords Cheat Sheet v2Ukelele Chords Cheat Sheet v2
Ukelele Chords Cheat Sheet v2
 
Ukelele Chords Cheat Sheet
Ukelele Chords Cheat SheetUkelele Chords Cheat Sheet
Ukelele Chords Cheat Sheet
 
Mujeres en el Software Libre (Campus Party Colombia, 2020)
Mujeres en el Software Libre (Campus Party Colombia, 2020)Mujeres en el Software Libre (Campus Party Colombia, 2020)
Mujeres en el Software Libre (Campus Party Colombia, 2020)
 
MBTI (Myers-Briggs Type Indicator)
MBTI (Myers-Briggs Type Indicator)MBTI (Myers-Briggs Type Indicator)
MBTI (Myers-Briggs Type Indicator)
 
DiSC (Dominance, Influence, Steadiness, Conscientiousness)
DiSC (Dominance, Influence, Steadiness, Conscientiousness)DiSC (Dominance, Influence, Steadiness, Conscientiousness)
DiSC (Dominance, Influence, Steadiness, Conscientiousness)
 
MBTI (Myers-Briggs Type Indicator) [old]
MBTI (Myers-Briggs Type Indicator) [old]MBTI (Myers-Briggs Type Indicator) [old]
MBTI (Myers-Briggs Type Indicator) [old]
 
Mujeres en el Software Libre: El proyecto Debian Women (2015)
Mujeres en el Software Libre: El proyecto Debian Women (2015)Mujeres en el Software Libre: El proyecto Debian Women (2015)
Mujeres en el Software Libre: El proyecto Debian Women (2015)
 
Planets in our Solar System (2015)
Planets in our Solar System (2015)Planets in our Solar System (2015)
Planets in our Solar System (2015)
 
Understanding Debian Packages (2014)
Understanding Debian Packages (2014)Understanding Debian Packages (2014)
Understanding Debian Packages (2014)
 
El Paradigma de la Cultura Libre (2014)
El Paradigma de la Cultura Libre (2014)El Paradigma de la Cultura Libre (2014)
El Paradigma de la Cultura Libre (2014)
 
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)
Mnemonic Acronym and Mnemonic Images for Object Oriented Principles (2014)
 
UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)
 
Curso de C++ (2014)
Curso de C++ (2014)Curso de C++ (2014)
Curso de C++ (2014)
 
Feminismo en la Red (2013)
Feminismo en la Red (2013)Feminismo en la Red (2013)
Feminismo en la Red (2013)
 
El Software Libre: Una visión global (2012)
El Software Libre: Una visión global (2012)El Software Libre: Una visión global (2012)
El Software Libre: Una visión global (2012)
 

Kürzlich hochgeladen

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Kürzlich hochgeladen (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Publicando juegos libres (ArsGames 2008)

  • 1. publicando juegos libres Miriam Ruiz <miriam@debian.org>
  • 2. quién soy Miriam Ruiz ingeniera feminista desarrolladora de Debian editora de Barrapunto fundadora y coordinadora del Debian Games Team defensora del Software Libre
  • 3. de qué voy a hablar · las licencias de Software Libre · la base sobre la desarrollar · las creación del juego · el desarrollo y los errores habituales · la publicación y distribución · la comunidad
  • 4. de qué NO voy a hablar · cómo se diseña un juego · cómo se programa · ingeniería del software · paradigmas de desarrollo · lenguajes de programación · sistemas operativos · organización de equipos de trabajo · juegos privativos
  • 5. desarrollo de un juego libre · idea, co ncepto y diseño i nicial · elección de la arquitectura y las herramie ntas · selección de la lice ncia · recopilación de compo ne ntes · desarrollo del código y eleme ntos artísticos · publicación del código fue nte · i ntegración e n los difere ntes sistemas · dist rib ución de los bi narios · comunidad de desarrollo · ma nte nimie nto, b ugs y desarrollos posteriores
  • 7. la licencia es impresci ndible para poder utilizar, distribuir y modificar el software todo el mundo odia los legalismos, pero son necesarios
  • 8. qué es una licencia conjunto de términos o co ndicio nes de uso que otorgan los titulares de los derechos de autor para poder utilizar, modificar y dist rib uir el software en una forma determinada y de conformidad con u nas co ndicio nes co nve nidas
  • 9. libertades esenciales usar el programa co n cualquier propósito estudiar y modificar el programa copiar, dist rib uir y difu ndir el programa modificar el programa y publicar los cambios
  • 10. diferencias entre licencias at rib ución sencillez copyleft: GPL, LGPL, MPL/CDDL protección contra pate ntes protección contra tivoisación cláusula de no gara ntía limitación de respo nsabilidad compatibilidad co n ot ras lice ncias selección de la ley a aplicar integridad del código fuente original protección por copyright del propio texto de la licencia señalar las modificaciones
  • 11. licencias libres las más sencillas: BSD, ISC, MIT/X Windows/Expat, Zlib la más popular: GPL para bibliotecas de código: LGPL otras licencias: Apache 2.0, MPL, CDDL, EPL, ... Creative Commo ns: licencias a la carta reco nocimie nto (“by” o attribution) no comercial (“nc” o non commercial) si n ob ra derivada (“nd” o no derivative works) compartir igual (“sa” o share alike) 6 “sabores”: by, by-nc, by-nd, by-nc-nd, by-sa, by-nc-sa
  • 12. eligiendo la licencia · qué permisos y obligaciones quiero para mi juego · elegir las librerías y componentes compatibles · elegir los componentes artísticos que nos sirvan · dejar muy claro documentada la licencia y versión · condicionar los aportes externos a esa licencia
  • 13. por qué Software Libre · porque es la mejor forma de difu ndirlo sin invertir muchísimo en publicidad · porque hay un montón de eleme ntos lib res sobre los que nos podemos apoyar para crearlo · porque podemos contar con el apoyo de mucha gente de la comu nidad para desarrollarlo · porque podemos extenderlo a muchos sistemas para los que no tendríamos capacidad si no · porque el juego sob revivirá e n el tiempo
  • 15. el sistema operativo es el elemento que actúa de intermediario entre el hardware y el software, y provee los sistemas y librarías básicas para que podamos ejecutar programas sobre él hay numerosos sistemas operativos, tanto para ordenadores como para videoconsolas, móviles, etc. algunos de ellos son privativos y otros no hay librerías, frameworks y entornos de ejecución que nos permiten abst raernos del sistema operativo sobre el que se va a ejecutar el programa
  • 16. la arquitectura 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, ... e ntorno de desarrollo: modificación del programa, compiladores soportados, herramientas de transformación, edición de contenidos, ... compo ne ntes: compatibilidad de la licencia, portabilidad de las librerías, estabilidad, mantenimiento, ...
  • 17. la toolchain conjunto de herramie ntas, bi narios y lib rerí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 lib re en la que se pueda compilar, se puede compilar para cualquier sistema si se necesita una toolchain privativa, solamente se podrá portar para algunos sistemas, y estará co ndicio nada a la empresa que la fabrique
  • 18. 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 rest rictiva de las piezas que lo componen eleme ntos habitualme nte problemáticos: texturas, mapas, modelos, fotos, tipos de letra, sonidos, música, iconos, etc.
  • 20. iniciando el proyecto el proyecto no es la idea: hay que desarrollarla otra opción: unirse a un proyecto ya existe nte, o construir a partir de su código no vamos a conseguir colaboración externa antes de tener algo jugable. los grandes planes se quedan en vaporware hay numerosas forjas donde poder iniciar un proyecto libre: sourceforge, savannah, ...
  • 21. buscando colaboración hacer que colaborar sea fácil: curva de entrada aceptable, mantenibilidad del código, documentación la mayoría de las colaboracio nes van a ser puntuales, aportando parches, gráficos, mapas, etc. pero sin un compromiso de continuidad herramie ntas colaborativas y de comunicación: repositorio de código (svn, git, bzr, hg, cvs, ...), wiki, listas de correo o foros, etc.
  • 22. y si me lo estropean la colaboración de la comunidad mejora la calidad de los proyectos (cathedral vs. bazaar) no puedes evitar que alguien lo modifique por su cuenta (el derecho al fork) la propia comunidad seleccio na el proyecto mejor
  • 24. desarrollo incorrecto · idea, co ncepto y diseño i nicial · empezar a programar si n pla ntearse las cosas · se coge n muchas cosas de “por ahí” · publicación de los binarios · alguie n escribe solicita ndo el código fue nte · selección o redacción de una lice ncia propia · publicación del código fue nte · me olvido del juego · i ntegración e n los difere ntes sistemas · comunidad de desarrollo aje na
  • 25. endianess unidad mínima de almacenamiento: byte, cómo almace nar un número multibyte: 1234: big-e ndian (“de mayor a final”): del + a - significativo 1-2-3-4 (ej: Motorola) little-e ndian (“de pequeño a final”): de - a + significativo 4-3-2-1 (ej: Intel) algunos sistemas pueden trabajar con ambos formatos: ARM, PowerPC, DEC Alpha, PA-RISC, MIPS middle-e ndia n (ni big-e ni little-e): ordenaciones extrañas como 3-4-1-2 ó 2-1-4-3, o incluso decimal empaquetado
  • 26. tamaño de palabra es el número de bits que son manejados como un conjunto por la máquina el valor numérico típico manipulado por el ordenador es habitualmente el tamaño de palabra ordenadores modernos: 16, 32 ó 64 bits define el máximo valor numérico que la CPU puede usar directamente (overflow)
  • 27. lo que NO se debe hacer ejemplo 1: int i = 0; myfile.read(&i, sizeof(int)); ejemplo 2: void *pointer; int value; value = (int)pointer;
  • 28. empaquetamiento de datos cuando se almacena información en la memoria del ordenador no se hace linealmente, sino que a menudo se desperdicia parte de la misma para optimizar el acceso a la misma la est ructura de los datos e n memoria depende de la arquitectura, del compilador, de las opciones de compilación y, en general, salvo que el lenguaje elegido garantice una estructura determinada, está fuera del co nt rol de quien programa.
  • 29. lo que NO se debe hacer typedef struct { uint32_t moment; Player player[ cMaxPlayers ]; uint8_t grid[ cGridX ][ cGridY ]; } Game; FILE *file; file = fopen( "game.dat", "w" ); if ( file == (FILE *) NULL ) return ERROR; fwrite( game, 1, sizeof( Game ), file ); fclose( file );
  • 30. internacionalización (i18n) para quienes lo usan, es muy importante que el software esté en su idioma. en muchos casos incluso imprescindible. ha de ser posible realizar t raduccio nes del programa respetar la forma de trabajar de traductores: formatos y herramie ntas estándar: GNU gettext PO, XLIFF (XML) no inve ntar formatos nuevos en sistemas multiusuario, difere ntes usuarios puedan usar el mismo programa en difere nte idioma
  • 31. Codificación del texto NO EXISTE EL TEXTO PLANO o texto sin formato las codificaciones ASCII, ANSI, etc. no so n solucio nes válidas para idiomas diferentes del inglés U NICODE: proporciona un número único para cada carácter o grafema, sin importar la plataforma o el idioma. sin U NICODE no es posible soportar muchos idiomas diferentes codificaciones: UTF-8; UTF-7; UCS-2, UTF-16, UCS-4, UTF-32 (cuidado: endianess) y alguna otra
  • 32. sistema de archivos no es posible grabar cualquier archivo en cualquier directorio para cualquier usuario/a separación de archivos: programa, datos de juego, configuración, cachés, logs en muchos juegos es necesario que quien juega pueda grabar datos: estado de la partida, records, configuraciones, edición de mapas no es válido considerar que todos los archivos del juego van a estar en el mismo directorio
  • 34. compilación docume ntar las depe nde ncias tanto de compilación como para la ejecución permitir el e nlazado co n las bibliotecas dinámicas que vienen incluídas en las principales distribuciones (“duplicated libraries considered harmful”) elegir el sistema de compilación preferido de los ya existentes. no inventar uno nuevo. cualquiera debe poder compilar el juego en su sistema
  • 35. publicación tarball que contenga de forma ordenada el código fue nte, especificando de forma clara los datos respecto a la propiedad intelectual (copyright), la lice ncia, las depe nde ncias y el proceso de compilación. los gráficos, mapas, documentación, etc. también pueden tener “código fuente”: forma preferida de modificación precompilado para ciertas plataformas: Windows, OS X trabajo conjunto con quienes desarrollan las diferentes distribuciones para ayudarles a mantenerlo en ellas
  • 36. empaquetamiento existen numerosos sistemas operativos difere ntes, y versiones y distribuciones de los mismos. Cada uno de ellos tiene sus propias “reglas de juego” es imposible hacerlo perfecto en todas las arquitecturas posibles. a menudo desarrolladores de las diferentes distribuciones pueden ayudarnos, así como la propia comunidad el mantenimiento de paquetes de distribuciones de Linux es tarea de los ma nte nedores, no de los creadores
  • 37. difusión a nunciar el proyecto el páginas web especializadas (ej: http://happypenguin.org) facilitar a usuarios y usuarias la tarea de descargárselo y probarlo no le va a gustar a todo el mundo: críticas y quejas “release early, release o fte n”
  • 39. un nuevo paradigma 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”
  • 40. herramientas comunitarias · co rreo elect rónico · reposito rio de código - sistema de control de versiones - (svn, git, bzr, hg, cvs, ...) · wiki · sistemas automatizados (buildds, qa, ...) · pági na web o portal · blog · e ncue nt ros en persona
  • 41. qué buscar en la comunidad · i n fraest ructura para el desarrollo (repositorios, sistemas de gestión de proyectos, espacios web,...) · eleme ntos que podemos utilizar para co nst ruir · críticas, muchas críticas · apo rtacio nes pu ntuales: traducciones, diseño de fases, portabilidad a otras plataformas, extensiones de la funcionalidad · sopo rte técnico: listas de correo, foros, irc · ideas · más colabo rado res/as para el proyecto
  • 43. jugando libremente a pesar de todos los problemas y dificultades, el hecho es que tenemos motores lib res multiplataforma excele ntes, librerías y e ntornos de programación muy b ue nos, y bastantes juegos que merece n la pe na las carencias que pueden tener los y las desarrolladoras originales de los juegos, quedan solucionadas por el apoyo y la asistencia de miembros y miembras de la comunidad pero siempre se puede mejorar, aún nos queda mucho camino por recorrer
  • 44. preguntar es gratis :) Miriam Ruiz <miriam@debian.org>