Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - Pepius

#16
Buenas otra vez,

Haciendo pruebas con mi motor, hace tiempo ya que observo unos pequeños saltos en la animación bastante molestos. Analizando el problema he observado que esos saltos coinciden con un salto de 60 fps a 30 fps. Según he investigado esto es causado por la sincronización vertical, que provoca que los fps sean uno de esos dos valores.

Por probar, desactivé la sincronización vertical mediante wglSwapIntervalEXT. El juego pasa a ir a 700 fps (cosa irrelevante, pues no se nota diferencia respecto a los 60) y, efectivamente, los saltos desaparecén.

Estoy seguro que desactivar la sincronización vertical no tiene que ser la solución, alguna idea por ahi o alguien que haya tenido el mismo problema?

Gracias, un saludo!
#17
...

Me pregunto si aun estoy a tiempo de usar GTK.  |:|

:D
#18
Justo me habiais pillado mirando tutoriales de QT, ahora me acabais de convencer :D.

Me parece que es lo que voy a elegir porque es bastante sencillo e intuitivo, con todo el tema del QT Creator, y los signals/slots que me parece la repera. Me he mirado como comentais el QGLWidget y es muy sencillote, de similar uso a GLUT, y me vendrá de perlas. Además, el tema ModelView no parece nada complicado y ya tengo en mente más o menos como organizar las estructuras de datos, así que, a no ser que pasara algo raro, me quedo con QT!

Mi idea inicial es hacer algo muy light, que me permita posicionar entidades y editar atributos y poco más, para así tener una herramienta con la que acelerar la creación de la primera demo (que llevo hechas a mano algunas partes ya y es un infierno) y además tantear el terreno. A posteriori ya haré algo más currado.

Sea como sea iré comentando cosas por aqui. Muchas gracias por vuestras respuestas y un saludo!
#19
Hola fjfnaranjo!

El tema es que no busco una interfaz para el juego en si, sino hacer un editor. Esto implica que voy a necesitar modelos de árbol y similares, y me parece un curro tremendo :D

Realmente es una opción y no la descarto (¿más opciones? ¡maldita sea!), pero creo que no es lo que estoy buscando.

Porcierto, pongo aqui un bocetillo que hice con el Gimp y GTK de más o menos por donde quisiera que fuera el editor:

http://i.imgur.com/Qyhu3.jpg

Un saludo!
#20
Hola,

Llevo cerca de un año desarrollando mi propio engine 2D. He llegado a un punto en el que está bastante maduro, funcionando bajo OpenGL, con soporte para scripting con Python, físicas (Box2D), sistemas de partículas, etc, además de una arquitectura extensible (basada en componentes).

El motor en si, recibe como entrada una escena definida en un formato de etiquetas (algo parecido a xml o html, bastante básico). Funciona a la perfección pero es un fuerte cuello de botella en el desarrollo de un juego el tener que editar a mano posiciones, atributos, etc. Hace tiempo ya que pienso en hacer un editor de escenas, donde el usuario pueda crear entidades y posicionarlas sobre el espacio 2D, editar sus atributos, añadir/eliminar componentes, etc, y creo que ha llegado el momento.

Mi pregunta es: Alguna recomendación? Es requerimento que el toolkit tenga soporte para una zona de dibujo de OpenGL y que pueda capturar eventos como clicks del raton y shortcuts para manipular los elementos del espacio 2D, amén de poder navegar por menus, editar atributos, etc.

Programo con C++ y tengo mi experiencia con ello, pero el mundo de las GUIs es totalmente ajeno a mi, y no se si decantarme por QT, GTK, o cualquier otro toolkit. El engine no es multiplataforma, funciona sólo sobre Windows, como dato.

Como podeis ver, voy bastante perdido en este tema, pero solo necesitaría unas cuantas directrices de por donde empezar a documentarme. Por supuesto, cualquier consejo, comentario o información es bienvenido.

Muchas gracias!

P.D: El proyecto es open-source, podeis visitar la página de google code al respecto: http://code.google.com/p/alegria-engine/
En la página principal hay un par de videos de pruebas, teneis todo el código hasta el momento y la wiki está en proceso (guia de usuario wip aqui http://code.google.com/p/alegria-engine/wiki/UserGuide). Si consigo tirar adelante el editor pronto tendreis más noticias mias!
#21
Suerte! Seguro que os va genial :D
#22
Proyectos / Re: 394: Videojuego de naves con SDL
13 de Noviembre de 2009, 10:25:58 AM
Ya me he puesto en contacto con currilingo y el tema grafista está ya cerrado. De todas formas seguiré/seguiremos poniendo cosas por aqui :)

Un saludo.
#23
Proyectos / Re: Cubyshot
25 de Octubre de 2009, 05:37:58 PM
Que pasada, genial!
#24
Proyectos / Re: 394: Videojuego de naves con SDL
25 de Octubre de 2009, 04:15:22 PM
Seryu, se agradece, pero como he dicho prefiero que el contenido sea 100% creado para el juego. De todas formas me va a servir mucho como inspiración/guia. Gracias!

Pongo otro video por aqui, probando cosas.

http://www.youtube.com/watch?v=BlSyTsQHltE

Un saludo.
#25
Proyectos / Re: 394: Videojuego de naves con SDL
17 de Octubre de 2009, 12:08:40 PM
No, aun no he preguntado por alli, supongo que dentro de unos dias postearé :)

Gracias!
#26
Proyectos / Re: 394: Videojuego de naves con SDL
17 de Octubre de 2009, 12:36:47 AM
Gracias por los comentarios :)

Matriax, si, he cogido juegos como Ikaruga, TouHou y WarBlade como referencia, buen ojo :D Respecto a lo que comentas, pues la verdad es que el código está ahi, y cuando sea liberado podrá ser utilizado. Es decir que si al final me curro unos buenos editores el resultado será más o menos lo que comentas, porque la estructura de datos ahora permite editar y crear de todo, niveles, enemigos, balas... Y en caso de que no hiciera unos editores decentes... bueno, el código está ahi para quien lo quiera :)

Hechelion, eso es lo que estoy haciendo por ahora, estoy usando los sprites esos que se ven en el video (hechos con el Gimp en una tarde), y por ahora dan el pego. Lo de pillar contenido free paso porque no quiero nada en mi juego que no sea exclusivo de el, manias que tiene uno. De todas formas, es lo que comentas, tal y como estan hechas las cosas, se pueden crear niveles y enemigos, etc... con sus imagenes correspondientes tan solo editando ficheros como el que muestro en el primer post, sin tener necesidad te tocar código ni, por tanto, compilar.

Un saludo!
#27
Proyectos / 394: Videojuego de naves con SDL
16 de Octubre de 2009, 10:27:53 PM
Buenas  :)

Voy directo al grano. Como dice el título, estoy realizando desde hace unos meses ya un videojuego de naves 2D mediante C++ y SDL. Me atrevería a decir que está en un estado medianamente avanzado, almenos lo que viene a ser la estructura básica. Aqui os dejo un video de una de las ultimas compilaciones que hice:

http://www.youtube.com/watch?v=uruoNW25kP0

El juego esta construido a partir de tres elementos básicos: Enemigos, Balas, Partículas. Así pues los datos de cada uno de ellos se carga de un archivo externo, que está en un formato de etiquetas. Ejemplo de enemigo:

<Enemy>
<ID> 0 </ID>
<Image>
<Path> enem1.png </Path>
<Columns> 1 </Columns>
<Total_Frames> 1 </Total_Frames>
</Image>
<Health> 50 </Health>
<Score> 100 </Score>
<Start> 0 0 </Start>
<Reset> -1 </Reset>
<Track>
<Action>
        <Time> 30 </Time>
        <Move>
            <Vel> 0 1 </Vel>
            <Mult> 4 </Mult>
        </Move>
<Shot>
<Pos> 0 0 </Pos>
<Vel> 0 1 </Vel>
<Mult> 8 </Mult>
<Bullet_ID> 3 </Bullet_ID>
</Shot>
</Action>
<Action>
<Time> 50 </Time>
<Move>
            <Vel> 0 1 </Vel>
            <Mult> 1 </Mult>
        </Move>
<ShotDome>
<#> 15 </#>
<StartAngle> 95 </StartAngle>
<EndAngle> -85 </EndAngle>
<Offset> 0 </Offset>
<Distance> 2 </Distance>
<Mult> 2 </Mult>
<Bullet_ID> 1 </Bullet_ID>
</ShotDome>
</Action>
<Action>
<Time> 80 </Time>
<ShotDome>
<#> 15 </#>
<StartAngle> -90 </StartAngle>
<EndAngle> 90 </EndAngle>
<Offset> 1 </Offset>
<Distance> 2 </Distance>
<Mult> 3 </Mult>
<Bullet_ID> 1 </Bullet_ID>
</ShotDome>
</Action>
</Track>
<Death>
<ParticleDome>
<#> 16 </#>
<StartAngle> 0 </StartAngle>
<EndAngle> 359 </EndAngle>
<Distance> 2 </Distance>
<Mult> 3 </Mult>
<LifeTime> 30 </LifeTime>
<Particle_ID> 1 </Particle_ID>
</ParticleDome>
</Death>
</Enemy>


Esto esta hecho asi para que la edición manual no sea engorrosa y sea medianamente intuitiva, pero la idea es hacer editores al respecto.

El tema es que mis habilidades gráficas no son muy allá, y quizas me gustaría pedir la colaboración de un grafista, lo que no se es si es correcta pedirla en este mismo post, de todas formas voy a dar info.

El proyecto lo empecé en abril del año pasado y ha sufrido muchas transformaciones conforme aprendia. El juego será liberado cuando esté terminado, por lo tanto, no habrá remuneración de ningún tipo. ¿Que por que lo hago? Por gusto y por aprender, claro.

Lo que necesitaria es alguien que me ayude con los gráficos. Esto es: enemigos, balas, explosiones, menus, etc... He tenido bastantes experiencias malas con las colaboraciones por internet y, pese a que como podeis ver es un proyecto humilde, le tengo mucho cariño al proyecto, si a alguien le gustaria participar en el desarrollo deberia mostrar algún tipo de "credencial", o mostrar alguna sprite para el juego o algo. Se que suena pedante y nada mas lejos de mi intención, pero todos sabemos como suelen acabar los grupos amateurs de desarrollo por internet (no todos, pero vamos...).

Pero vamos, independientemente de lo de la colaboración, pues aprovecharé para ir poniendo cosillas por aqui.

Gracias!
#28
Guau, muchas gracias por el punto 2, definitivamente. Va como la seda. Gracias de verdad :)
#29
Gracias por la respuesta Pogacha, se agradece de verdad tu tiempo  ^_^'

Si, me he dado cuenta despues, es que aun no tenia claro como funcionaban las listas y al estar tan obsesionado con el maldito error, he perdido todas las formas a la hora de programar.  El punto 1) está comprobado. Muchas gracias por el punto 2), paso a aplicarlo inmediatamente.

He solucionado el problema dando un pequeño rodeo, pero aun no me queda claro porque no puedo hacer segun que cosas con punteros. Sigo programando, iré poniendo cosas por aqui.

Muchas gracias otra vez.
#30
No lo entiendo, me aparece el mismo error por otro lado. Debo de tener algún problema de concepto o algo, porque no puede ser que me de tantas veces contra la misma pared. Copio codigo:

#include <SDL.h>
#include "Entities.h"

#include <fstream>
#include <list>
using std::list;

list <EnemyData*> EnemyDataList;
list <Enemy> EnemyList;

EnemyData* ID2ED(int ID){
    list<EnemyData*>::iterator it;
    it = EnemyDataList.begin();

    while((*it)->ID!=ID && it!=EnemyDataList.end()){
        //std::cout << it->ID << std::endl;
        ++it;
    }

    if((*it)->ID==ID){
        return *it;
    }
    else
        return NULL;
}
/*
int ID2ED(int ID){
    int i;
    for(i=0;i<n_ED;i++){
        if(EnemyDataList[i].ID==ID){
            return i;
        }
    }
    if(i==n_ED){
        return NULL;
    }
}
*/
void load_enemy_data(char *path){
    EnemyData *edata=new EnemyData;
char image_path[30];
int col,rx,ry,total;
int i;
std::ifstream infile(path);

if (!infile) {
        std::cout << "Problema al obrir l'arxiu " << path <<"."<<std::endl;
        //return 0;
    }

infile >> edata->ID;
infile >> image_path;
infile >> col >> rx >> ry >> total;
infile >> edata->health;
infile >> edata->score;
infile >> edata->powerup_id;
infile >> edata->startx;
infile >> edata->starty;
infile >> edata->velocity;
infile >> edata->total_waypoints;

for(i=0;i< edata->total_waypoints;i++){
infile >> edata->waypoints[i].x >> edata->waypoints[i].y;
}
infile >> edata->total_shots;
for(i=0;i< edata->total_shots;i++){
infile >> edata->shots[i].time >> edata->shots[i].dx >> edata->shots[i].dy >> edata->shots[i].lifetime;
}
infile >> edata->bullet_id;
edata->sset = new SpriteSet(image_path, col, rx, ry, total);
EnemyDataList.push_back(edata);

infile.close();
std::cout << "Enemic amb ID: \"" << edata->ID << "\" carregat."<<std::endl;
//return 1;
}

int main(){
    EnemyData *edata;
    load_enemy_data("DataTest");
    edata = ID2ED(3);
    std::cout << "edata: " << edata->health << std::endl; //Si quito esta linea, no me da error.
    std::cout << EnemyList.empty()<< std::endl;

    EnemyDataList.clear();
    EnemyList.clear();
    return 0;
}


load_enemy_data carga de un archivo de texto los elementos de la estructura, y despues el puntero a esa estructura lo agrega a la EnemyDataList, que es una lista de *EnemyData (punteros).

ID2ED, recibe un entero, recorre la lista de *EnemyData buscando una estructura con el campo ID igual al entero que ha recibido, y devuelve un puntero a esa misma estructura. Cuando intento acceder a esa estructura mediante el puntero que ha devuelto ID2ED es cuando me da el error.

Ains... un saludo y gracias, otra vez.





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.