Soporte preliminar de Steam en PixTudio

Started by panreyes, October 31, 2016, 08:27:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

#15
Quote from: SplinterGU on November 03, 2016, 02:00:36 PM
monolitico para todo? no permite modulos?
A ver: PixTudio es modular, pero los módulos van dentro del ejecutable.
No se pueden cargar módulos externos de .dll/.so/.dylib cuando se compila en modo monolítico. Lo pensé en su momento y me pareció complicar el diseño sin ver la ventaja evidente.

Dicho lo cual, debería ser posible compilar PixTudio con una arquitectura donde los módulos estén como librerías dinámicas externas. Hay que escribir los CMakeLists.txt adecuados y siempre me ha dado pereza.

Drumpi

Ok, me lo creo, pero que conste que tengo en mi disco duro las compilaciones de Pixel del 10 de Enero, del 26 de Enero, del 17 de Febrero y del 30 de Marzo (por decir algunas fechas :D) con un puñado de .dlls y de .sos según la plataforma compilada :D
Ya, ya sé que me tengo que actualizar ^^U Don't panic que me ha surgido un proyecto para PC y Android con el que voy a experimentar ;)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: josebita on November 03, 2016, 02:28:26 PM
Quote from: SplinterGU on November 03, 2016, 02:00:36 PM
monolitico para todo? no permite modulos?
A ver: PixTudio es modular, pero los módulos van dentro del ejecutable.
No se pueden cargar módulos externos de .dll/.so/.dylib cuando se compila en modo monolítico. Lo pensé en su momento y me pareció complicar el diseño sin ver la ventaja evidente.

Dicho lo cual, debería ser posible compilar PixTudio con una arquitectura donde los módulos estén como librerías dinámicas externas. Hay que escribir los CMakeLists.txt adecuados y siempre me ha dado pereza.

se entiende, gracias por la respuesta.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on November 04, 2016, 01:58:00 AM
Quote from: josebita on November 03, 2016, 02:28:26 PM
Quote from: SplinterGU on November 03, 2016, 02:00:36 PM
monolitico para todo? no permite modulos?
A ver: PixTudio es modular, pero los módulos van dentro del ejecutable.
No se pueden cargar módulos externos de .dll/.so/.dylib cuando se compila en modo monolítico. Lo pensé en su momento y me pareció complicar el diseño sin ver la ventaja evidente.

Dicho lo cual, debería ser posible compilar PixTudio con una arquitectura donde los módulos estén como librerías dinámicas externas. Hay que escribir los CMakeLists.txt adecuados y siempre me ha dado pereza.

se entiende, gracias por la respuesta.
;)

josebita

Hemos hecho algunas cosas más:
  * El nombre de usuario de Steam se guarda en una variable global.
  * El id de la aplicación se guarda también en una variable global (aunque no sé si sirve para mucho, la aplicación ya lo debería saber...).
  * Función para desbloquear logros.
  * Función para bloquear logros (por si queréis castigar a los jugadores).
  * Función para comprobar si el jugador ha conseguido un logro en particular.
  * Función para obtener el gráfico asociado a un logro en particular en su estado actual (si el usuario no ha conseguido el logro aparecerá "desactivado" y si lo ha conseguido aparecerá "activado").
  * Función para obtener un gráfico con el avatar de Steam del jugador.

La idea es ir ampliando poco a poco, pero va progresando.

alicesimu

Esta muy bien este progreso,
pero en un futuro un poco lejano podria hacerme una cuenta de desarrolladora steam...es un poco caro economicamente.

de google play ya la tengo y puedo trabajar en ella.

aun asi animos!

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.

alicesimu

El steam es para Windows cierto?

Animo con el desarrollo!

panreyes

Quote from: alicesimu on November 24, 2016, 11:51:42 PM
El steam es para Windows cierto?

Animo con el desarrollo!
Para Windows, Linux y MacOS. Confirmado que ya funciona correctamente en Windows y Linux :)

alicesimu

Mola, mi novia usa diariamente Steam, le gustara mucho!

josebita

El código que hay ahora mismo funciona para macOS, también.

josebita

He añadido soporte para más funciones de steam relacionadas con los amigos (de steam) de cada cual:
INT STEAM_FRIEND_COUNT()  -> Obtiene el número total de amigos que uno tiene en Steam
STRING STEAM_FRIEND_NAME(INT friend_id) -> Obtiene el nombre de un amigo de Steam en particular
STRING STEAM_FRIEND_NICKNAME(INT friend_id) -> Obtiene el apodo que se le ha dado a un amigo en Steam
INT STEAM_FRIEND_AVATAR(INT friend_id, INT tamaño) -> Obtiene un gráfico con el avatar del amigo, con el tamaño pedido de entre los tres posibles.

Aún no he documentado las funciones, pero podéis ver cómo se usan aquí:
https://bitbucket.org/josebagar/pixtudio/src/c8487d0dc71801ef0168bd93f40c90099a40dc18/examples/20_mod_steam.prg?at=bigmap&fileviewer=file-view-default

Pongo también un screenshot de qué pinta tiene el código ejecutándose en mi ordenador (el avatar grande con la interrogación es el propio, el resto es de mis amigos de Steam):