[pyar] Librería de UI para juegos 2D en Python

claudio canepa ccanepacc en gmail.com
Jue Oct 27 00:43:48 ART 2011


2011/10/26 Alejandro Santos <listas en alejolp.com>

> 2011/10/26 Matigro <matigro en gmail.com>:
> >
> > Falta Cocos2D y Pilas en esas sugerencias :)
> >
>
> Sip, faltan varios, x ej también falta PyCEGUI.
>
> ¿Tienen soporte nativo de interfaz grafica? ¿Puedo hacer una ventana
> con campos de texto y botones?
>
> Algo asi:
>
> http://clanlib.org/wiki/File:PerlinNoiseExample.png (ClanLib)
> http://www.3dmeetstv.com/files/CEGUI_setSize.PNG (CEGUI)
>
> BTW, muy interesante el sitio LosersJuegos[1], no lo conocía.
>
> [1] http://www.losersjuegos.com.ar/principal
>
> --
> Alejandro Santos
>
>

Por las muestras que pegaste acá, yo diria que en cada backend vas a
encontrar librerias que hacen lo que vos queres (con la posible excepcion
del TreeControl que se vé en la segunda muestra).

Entonces tendrias que fijarte en otras cosas para decidir que usar.

Lo combinaciones que me parecerian interesantes serian, en no particular
orden:

pygame
======

Pero no pygame pelado.
Acá un factor que tenes que testear temprano es si podes obtener un
scrolling suave al tamaño deseado.

En vez de ir por pygame pelado, probaria gummworld2 [0], que incluye la gui
pgu [1], soporte para tilemaps y scrolling. Hicieron un par de juegos para
pyweek usando la lib y se veia prometedor.

pgu fue / es la gui mas popular en pygame, evita mucho boilerplate, tiene
funcionalidad de autolayout, soporta incluso unos controles basados en html
bastante interesante.
Usar y customizar en style me parecio razonablemente facil, hacer custom
controls puede ser mas complicado.

Tres ventajas importantes de pygame son, (que no necesariamente aplican a tu
app):

  - el mas compatible de verdad (mas plataformas, menos problemas de
drivers)
  - el acceso a pixel mas fluido
  - la biblioteca en si es la mas facil de entender

Algunas cons (pygame):
  - no usa capacidades hardware de video acelerado, con lo cual algunas
operaciones son relativamente lentas. En particular scrolling o zoom con un
fondo texturado y unos cuantos actores y efectos visibles puede ser dificil
o imposible (en full screen o tamaños cercanos, con una tasa de refresco
razonable)

 - los objetos y funcionalidad que provee son de relativamente bajo nivel,
asi que tenes que agregar otra libreria como gumworld2 o escribirte tu
propio middleware


cocos [2]
====

(disclaimer: soy maintainer de cocos)

No trae una gui incorporada, pero la gui kytten[5][6] es un drop-in si le
agregas un modulo que adapta kytten a cocos.

Tiene soporte incluido para tilemaps, scroll, muestras de como hacer
seleccion por mouse, colision muy basica, efectos de transicion entre
escenas, particulas y otras cosas que no son de bajo nivel

Hay un editor de tilemaps hecho afuera de cocos, cocograph[4] que está
bastante bueno. Incidentalmente, usa la gui kytten.

algunas ventajas:
 - usa openGL a traves de pyglet, asi que soporta aceleracion de hardware.
Scrolling y zoom aqui no serian problema.
 -  Ahorra mucha programacion de nivel intermedio

algunas cons:
 - el soporte openGL varia bastante entre maquinas
 - si queres hacer efectos de bajo nivel tenes que aprender openGL

pilas
===

No conozco lo suficiente para comentar, pero en pycamp le habian agregado
funcionalidad interesante, asi que es flexible al menos.
Ojalá que Hugo Ruscitti se prenda a hacer algun comentario.

--
claudio

[0] http://code.google.com/p/gummworld2/
[1] http://code.google.com/p/pgu/
[2] http://cocos2d.org
[3] http://code.google.com/p/los-cocos/
[4] http://devdev-python.googlecode.com/files/Cocograph-0.2.0.zip
[5] (original) http://code.google.com/p/kytten/
[6] (fork con docs) https://github.com/kitanata/Kytten#readme
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111027/993e35bb/attachment.html>


More information about the pyar mailing list