Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿api Adecuada Para Empezar Juego 2d?

Iniciado por carlos585, 13 de Octubre de 2005, 10:02:17 PM

« anterior - próximo »

carlos585

 Buenas,

soy nuevo en el foro y me gustaria preguntaros unas cosillas sobre jugos 2D.
LLevo programando en C++ 4 años, sobre todo con la API Qt de trolltech. El otro dia empecé un juego clásico 2D (serpiente) usando sprites animados. Uso la clase QCanvas (y relacionadas QCanvasView, QCanvasSprite, etc) de Qt 3.3.4 para win. Detuve el desarrollo del juego cuando me di cuenta que no era la API adecuada para desarrollar el juego al nivel que deseaba (de 60 a 120 sprites de 32x32 pixeles con 16 bit de profundida de color animados en pantalla). No me parece una barbaridad el numero de sprites (aunque no tengo experiencia programando juegos, no se si es demasiado o normal) y QCanvas se ralentiza bastante (a pesar de haber probado distintos tamaños de canvas y sprites y usado la funcion retune). En definitiva, creo que una API multipropósito como QT no está a la altura para algo específico como crear un juego con algo de complejidad en pantalla.

He estado mirando en google APIs de desarrollo y he encontrado miles...Muchas montadas encima de SDL...
Quería preguntaros cual, o cuales son para vosotros las librerias graficas adecuadas para un juego 2D clasico (sprites,deteccion de colisiones, alpha blending, etc) en C++. Me gustaría retomar el juego de nuevo.

Eché un vistazo a la lib Kyra, que tal es?

Gracias por adelantado.
Un saludo.

[EX3]

 
CitarEn definitiva, creo que una API multipropósito como QT no está a la altura para algo específico como crear un juego con algo de complejidad en pantalla.
Bueno, el juego de la serpiente no se puede decir que sea un juego de amplia complejidad de desarrollo ni que requiera muchos recursos. No se en concreto como sera QT, pero cualquier API, incluso el propio GDI de Windows, te sobra para hacer un juego asi. Luego otro detalle que me ha llamado la antencion:
Citarde 60 a 120 sprites de 32x32 pixeles con 16 bit de profundida de color animados en pantalla
120 sprites para hacer el juego de la serpiente? Con uno o dos te basta para representar la serpiente en pantalla y el fondo depende de lo quieras poner, una imagen o un tileado, un simple grafico mas. Para crear la serpiente solo necesitarias dibujar en pantalla tantas copias del sprite como partes se compone la serpiente, no necesitas un sprite independiente para cada nodo.

Yo, aun programando en VB, por lo que conozco te recomiendo sin duda SDL como API para desarrollar tus juegos, ya sean cosas tan basicas como el juego de la serpiente o cosas mas complejas, todo depende de tu maestria programando, no del API en si.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

TheAzazel

 Sin ir mas lejos...prueba estas de gente de stratos...

-LooverLib, en C++, utiliza DirectX
-dx_lib32, en Visual Basic, utiliza DirectX
-CRM32Pro, en C++, utiliza SDL

siento ser repetitivo pero hay que hacer eco de nuestros motores no? :P

espero que te sirva alguno... total, yo los veo mas completos que Kyra

carlos585

 Gracias por las respuestas.
EX3, no es el juego de la serpiente normal, las serpientes pueden disparar, hay sprites de explosiones con los proyectiles, hay enemigos que se mueven por la pantalla disparando proyectiles a su vez. Tiene muchas mas cosas que el juego clasico que ya de sobra conocemos y sabemos como implementarlo. Si tienes alguna duda te puedo pasar mi codigo. Ya dije que es una especie de juego de habilidad mezclado con arcade, basado por supuesto en la idea original, nada mas.

Pogacha

Cita de: "TheAzazel"Sin ir mas lejos...prueba estas de gente de stratos...

-LooverLib, en C++, utiliza DirectX
-dx_lib32, en Visual Basic, utiliza DirectX
-CRM32Pro, en C++, utiliza SDL

siento ser repetitivo pero hay que hacer eco de nuestros motores no? :P

espero que te sirva alguno... total, yo los veo mas completos que Kyra
Yo tambien recomiendo lo mismo, ademas aqui tendras soporte tecnico de 1ra!

Saludos.

carlos585

 He echado un vistazo a Looverlib y no he encontrado nada referente a colisiones entre entidades...Las tienes que gestionar tu mismo? si es asi, que aproximacion se usa?

Gracias.

[EX3]

 
Cita de: "TheAzazel"Sin ir mas lejos...prueba estas de gente de stratos...

-LooverLib, en C++, utiliza DirectX
-dx_lib32, en Visual Basic, utiliza DirectX
-CRM32Pro, en C++, utiliza SDL

siento ser repetitivo pero hay que hacer eco de nuestros motores no? :P

espero que te sirva alguno... total, yo los veo mas completos que Kyra
Jajajaja, si señor, viva el spam compartido (ole)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Loover

 Hola carlos585, las colisiones están implementadas en la versión 1.1 que aún no he subido  ;)

La verdad es que no actualizo la web desde hace 4 meses o más, pero si te interesa puedo hacer un esfuerzo y terminar la versión 1.1 que tiene:

- Colisiones (area, rectangulo, círculo, rectangulos orientados, etc)
- Input usando SDL

Sería una forma de motivarme :D

Un saludo.

PD: Echale un vistazo bueno a las otras dos librerias. Hazte una idea buena de lo que necesitas y en base a eso decide.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

TheAzazel

Cita de: "Pogacha"
Cita de: "TheAzazel"Sin ir mas lejos...prueba estas de gente de stratos...

-LooverLib, en C++, utiliza DirectX
-dx_lib32, en Visual Basic, utiliza DirectX
-CRM32Pro, en C++, utiliza SDL

siento ser repetitivo pero hay que hacer eco de nuestros motores no? :P

espero que te sirva alguno... total, yo los veo mas completos que Kyra
Yo tambien recomiendo lo mismo, ademas aqui tendras soporte tecnico de 1ra!

Saludos.
A ver si nos aplicamos el cuento...semanalmente habra un par de post de este estilo... y la respuesta, puede standard jajaja :)

Por hay algunos recomiendan DevLib, HGE, Kyra y cia pero...que tienen nuestras librerias que envidiar a ellas? pues creo que bien poco la verdad!

Otro capitulo es el que no quiere programar mucho, en ese caso..los blitz esos raros que no puedo dar ninguna opinion porque no los conozco, pero si valen para hacer juegos, pues son igual de validos!

Y veis? lo mismo asi Loover se motiva y remata la v1.1 jeje, enga animo!!!

[EX3]

 
Cita de: "TheAzazel"Sin ir mas lejos...prueba estas de gente de stratos...

-LooverLib, en C++, utiliza DirectX
-dx_lib32, en Visual Basic, utiliza DirectX
-CRM32Pro, en C++, utiliza SDL

siento ser repetitivo pero hay que hacer eco de nuestros motores no? :P

espero que te sirva alguno... total, yo los veo mas completos que Kyra
The_Azazel y Loover (y Haddd si me lees), hechar un vistazo a la seccion de links de esta pagina (aun en construccion) -enlace-

Salu2...

P.D.: The_Azazel, ya que queda algo feo el "No hay imagen disponible" en la imagen de enlace, si te animas currate un logo para tu proyecto, que no encontre material alguno en tu sitio web con el que montar yo uno ;)
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

ethernet

 A ver si nos enseñas ese juego cuando lo termines.


Un apunte. En PocketPC las librerías que hay para programar videojuegos son, cuanto menos, paupérrimas, lamentables, dan poquísima funcionalidad... o único un poco decente que conozco es un "port" de DDraw y es de pago. Alguno conoceis una librería interesante para ppc? nadie se anima a hacer un port mini de su lib 2D a ppc ?


[EX3]

 
Cita de: "ethernet"Un apunte. En PocketPC las librerías que hay para programar videojuegos son, cuanto menos, paupérrimas, lamentables, dan poquísima funcionalidad... o único un poco decente que conozco es un "port" de DDraw y es de pago. Alguno conoceis una librería interesante para ppc? nadie se anima a hacer un port mini de su lib 2D a ppc ?
Oviamente yo lo tengo jodido para portarlo fuera de Windows  :rolleyes: pero es algo que a largo plazo pienso solucionar para todos mis desarrollos (osea, en la otra vida cuando me decida a tocar C++ y abandonar mi bien amado y comodo VB :P). Por lo que veo siguiendo el desarrollo de ports del proyecto Fenix, hecha un vistazo a SDL por que ultimamente veo correr Fenix en cualquier lado (y Fenix se apoya en SDL por lo tanto...). Me parece que habia una version para la plataforma que pides, pero no estoy seguro.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Loover

 Gracias por lo de la sección links [EX3], yo también te tenía de hace tiempo. Subiré también a TheAzazel y el motor Haddd. Y puliré un poco esa sección poniendo algo más de información.

Por otra parte, en cuanto pueda subo la versión 1.1 de LooverLib que ya está terminada y solo faltan los ejemplos. Esta ya tendrá colisiones y todos los ejemplos usarán teclado y ratón pues el Input también está implementado.

Mi sueño sigue siendo sacar todo el render en una dll y portarla a dx8.1, ogl, etc. Y de ahí a mac / linux. Pero puf, que trabajazo :) Y con lo liao que estoy ahora...

Ciao!
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

TheAzazel

 Looverlib,EX3,Hadd...

estoy disenando una nueva web (aunque voy lento...lo hago a ratos jeje) pero os pongo en los enlaces, asi nos linkamos todos :P.

EX3, de momento tengo un logo un poco basurilla(lo hice yo..), lo mismo alguien me echa un cable y me hace alguno y tal, pero si no, te pasare el mio y fuera.
No sabia que fenix estuviera sobre SDL... voy a echar un vistazo a ver...

saludos

Haddd

 Gracias por linkarnos...Haremos lo mismo, se lo comentaré a Strat... :lol:  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.