Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





VBFighter - [ AYUDA ]

Iniciado por avalontm, 18 de Septiembre de 2013, 04:32:27 AM

« anterior - próximo »

avalontm

Estaba dudoso sobre abrir este post, ya que solo les quiero pedir si me pueden hacer el favor de descargar el proyecto y solo comentar a cuantos FPS les corre el juego (y poniendo la información básica de su pc), para así saber que tanto necesito modificar para hacerlo mas optimo. (la idea es tener un juego por asi decir HD)

no esta terminado del todo pero es la idea del juego.



DESCARGAR

Por si no se ejecuta



VER VIDEO

seleccionar a cualquiera de los 2 monitos chicos de preferencia (1 jugador)


saludos!

Hechelion

Intenté probarlo pero no se ejecuta, no tira ningún aviso de error ni alcanza a abrir nada, simplemente no se ejecuta.

Creo que sería buena idea que colgaras el fuente del proyecto para ver si necesita alguna referencia en especial que no tenga (que la librería gráfica la tengo instalada, pero no sé si pidas algo más) o para buscar por que no se ejecuta en mi PC.

Lo segundo, es saber si es buena idea hacer esta prueba en una versión tan temprana del proyecto. ¿O ya te has centrado en la optimización?

PD: no recuerdo si manejar los PAK pide algún OCX o DLL extra y de ser así, tal vez ahí tenga el problema.

avalontm

#2
pues solo uso las librerias "dx_lib32 2.2.1" y "microsoft xml 3.0" (que en este el windows lo tiene incorporado)


se que es algo pronto para saber si puede correr en diferentes pcs, pero no quiero dejar pasar desde el  principio. los códigos basura que no dudo que tenga en el proyecto. ya que las unicas maquinas que tengo son cuadcore 4gb ram, y sixcore 12 gb ram

cosa que no puedo saber que tan fluido puede correr. (sera muy temprana su desarrollo pero esto es el concepto principal)


PD: tu libreria de "clsANIM" lo uso en todos mis proyectos muy buena y felicidades :3

Hechelion

Las dxlib las tengo y las uso, así que no son el problema, la msxml3.dll la revisé y la tengo, aunque normalmente cuando falta alguna dependencia te avisa con un mensaje y a mi no me salé ninguno.

Tendrías que esperar que alguien más lo pruebe o subir el código fuente y gracias por lo de la clase, da un enorme gusto saber que el trabajo de uno le sirvió a alguien más.

[EX3]

#4
Cita de: avalontm en 18 de Septiembre de 2013, 07:24:44 PM
pues solo uso las librerias "dx_lib32 2.2.1"
La versión del enlace ¿es la misma versión que la del repositorio de GitHub que subí o es una versión modificada por ti? Si hiciste modificaciones es fácil, que aun compilando con la opción de compatibilidad entre versiones, de problemas de compatibilidad con la versión original del repositorio. Si hacéis esto tener cuidado e incluir la nueva versión en el instalador de vuestro proyecto, y cambiando tanto el nombre de la DLL, para evitar sobreescribir la DLL original si el usuario final la tiene instalada, así como del titulo y numero de versión que muestra el componente a la hora de buscarse en la lista de dependencias, para que otros programadores puedan diferenciar una versión de otra a la hora de añadirlas a sus proyectos.

Cita de: Hechelion en 18 de Septiembre de 2013, 05:58:06 PM
PD: no recuerdo si manejar los PAK pide algún OCX o DLL extra y de ser así, tal vez ahí tenga el problema.
No, el codigo esta implementado totalmente dentro de dx_lib32, no requiere librerías externas.

avalontm, sobre velocidad y rendimiento, salvo que lo estés haciendo rematadamente mal y descuidando buenas practicas a la hora de programar, yo no me preocuparía a estas alturas del proyecto de temas de optimización. Ten en cuenta que ahora mismo supuéstamente no tendrás ni una 10% de lo que sera el programa final, por lo que medir rendimiento ahora mismo es tontería. Ahora quizás te rinda bien con un escenario vació y sin lógica de juego apenas, pero luego te puede ir mal cuando tengas un escenario cargado de elementos y mucha lógica de juego funcionando. La optimización siempre se suele dejar para el final, si se empieza con la optimización al principio lo único que consigues es desatender el desarrollo en si del proyecto.

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

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

julen26

Cita de: Hechelion en 18 de Septiembre de 2013, 05:58:06 PM
Intenté probarlo pero no se ejecuta, no tira ningún aviso de error ni alcanza a abrir nada, simplemente no se ejecuta.
Me pasa lo mismo, no se me abre y me da el mítico sonido de campana avisando de algún error.

avalontm

mala suerte ha de ser la resolucion :c

[EX3]

Cita de: avalontm en 19 de Septiembre de 2013, 07:38:37 PM
mala suerte ha de ser la resolucion :c
¿Que resolución estas usando?

Por otro lado, seria aconsejable que siempre usaras bloques de control de error en tu código, y en este caso en la inicialización de la clase gráfica, comprobando que todo se inicia correctamente, y en este caso, usando la función DEVICE_ExistsDisplayMode() para asegurarte de que la resolución que quieres usar es soportada en la maquina de destino. De todas formas, mi consejo seria que hicieras lo que hacia yo en la ultima versión del TLSA.Engine en VB6.0, pinta toda la escena en un render target y después pinta la textura del render target a la resolución que hayas utilizado (escalandolo de forma que mantenga las proporciones correctas, claro). De esta manera podrás trabajar a una resolución fija la escena pero podrás usar la resolución final que desees, ademas de poder aplicar efectos y transformaciones a toda la escena de forma sencilla (yo lo usaba por ejemplo para hacer espejados, rotaciones de camara, efectos combinados con distintos alphablendings para simular distorsiones, etc... es una forma rapida y sencilla de poder hacer postproceso con dx_lib32).

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

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

Hechelion

Cita de: avalontm en 19 de Septiembre de 2013, 07:38:37 PM
mala suerte ha de ser la resolucion :c

Tal como dijo Exe, ¿que resolución estás usando?.
Mi notebook trabaja a 1920x1080 y la librería en modo ventana la he corrido a un montón de resoluciones diferentes sin problema, además, en mi experiencia cuando la librería falla (por ejemplo llamar una resolución no compatible en modo full screen ) la aplicación igual abre, pero solo muestra una ventana gris, cosa que no me pasa, por lo cual asumo que hay un error en algún otro lugar.


Aprovechando el tema de Ex3. ¿Pintar sobre el render target no consumía mucho recurso?

[EX3]

Cita de: Hechelion en 19 de Septiembre de 2013, 10:31:56 PM
Aprovechando el tema de Ex3. ¿Pintar sobre el render target no consumía mucho recurso?
Y asi se suponia, pero se ve que en las ultimas versiones hice algun cambio en la implementacion que hizo que fuera más fluido. Como decia, esto lo usaba en la ultima version de mi motor para tener la escena en una textura a la que poder aplicar distintas transformaciones y efectos y rendia decentemente (claro esta que yo trabajaba a 800x600 y un Render Target de 1024x1024, no se que tal rendira el asunto a resoluciones mayores).

Sobre lo del error, puede deberse también a que no este correctamente registrada la librería. Según como haya programado el código puede saltar el error #429 o simplemente hacer un falso inicio seguido de una alerta sonora, esto es lo que me suele pasar en la mayoría de los desarrollos que tenia.

Para saber si es problema de que este o no registrada la librería, es tan sencillo como usar un control de errores al instanciar las clases de dx_lib32 y ver si arroja el error 429 (u otro código que saltaba en circunstancias similares y que ya no recuerdo) o simplemente que salte el error que sea, si es en ese punto, es que o no esta instalada la librería o no esta registrada.

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

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

avalontm

Hola hoy estuve un poco entretenido con esto

VER VIDEO


quisas no sea mucho, pero para mi si :3


saludos!

Thorrex

Cita de: avalontm en 20 de Septiembre de 2013, 04:14:06 AM
Hola hoy estuve un poco entretenido con esto

VER VIDEO


quisas no sea mucho, pero para mi si :3


saludos!
Hey, Avalon!
Me alegra mucho ver que seguís desarrollando! Y también me alegra mucho que sigas usando mi pequeño motorcito de tiles con perspectiva dinámica al centro, como se ve en una parte del video.

Te mando un saludo, y mucha suerte con tus proyectos.
¡Y muy feliz año nuevo!

PD: Perdón por revivir este tema :/

avalontm

estoy atascado con la funcion de los tiles




si alguien se toma un poco de su tiempo en ayudarme (ya que carezco mucho de funciones "avanzadas")

con esa ultima funcion en los tiles podre comenzar en crear mis mapas :3

Hechelion

#13
Por el otro post imagino que necesitas una ayuda más puntual, por lo cual sería bueno que colocaras como tienes implementado tu sistema de colisión actual, si no, hay que hacer suposiciones que a lo mejor no te van a ayudar mucho.

Así que el ejemplo que voy a colocar ahora es eso, un ejemplo partiendo de una suposición, tomalo con pinzas y si no te sirve o no te da ideas, trata de colocar algo del código.

Como hablas de un mapa de tiles en un array, asumo que tienes una matriz donde consultas si se puede transitar por un tile determinado.

0-0-0-0-0-0-0-0-0-0
0-0-0-0-X-1-1-1-X-0
0-0-0-X-1-1-1-1-1-1
1-1-1-1-1-1-1-1-1-1
1-1-1-1-1-1-1-1-1-1

Donde
0 = tile que se puede transitar,
1 = tile donde NO se puede transitar (piso).
X = rampas.

Si tienes eso, y quieres implementar un sistema de rampas sencillas, una solución es que identifiques los tiles de rampas dependiendo si son de subida o de bajada, por ejemplo

0 = tile que se puede transitar,
1 = tile donde NO se puede transitar.
2 = rampas subida
3 = rampa bajada

0-0-0-0-0-0-0-0-0-0
0-0-0-0-2-1-1-1-3-0
0-0-0-2-1-1-1-1-1-1
1-1-1-1-1-1-1-1-1-1
1-1-1-1-1-1-1-1-1-1

Para determinar la posición, necesitas un switch que evalue que tipo de tile es, y luego con una ecuación de la recta determinar si un punto está o no está en colisión.


Function Colision_Mapa(pos_X, pos_Y)
dim Tile_X as integer
dim Tile_Y as integer

Tile_X = int(pos_X/anchoTile)
Tile_Y = int(pos_Y/anchoTile)

Select Case mapa(Tile_X, Tile_Y)
Case 0: return 0
Case 1: return 1
Case 2
if pos_Y < ((Tile_Y + 1) * anchoTile -(posX - (Tile_X * anchiTile))) then
return 0
else
return 1
end if
case 3
if pos_Y < ((Tile_Y) * anchoTile + (posX - (Tile_X * anchiTile))) then
return 0
else
return 1
end if
case else: return -1 'Si el valor es diferente al esperado devolvemos un negativo como error
end Case
End Function


Donde mapa es la matriz donde almacenas cada tipo de tile.
y pos_X, pos_Y es la posición del pixel que deseas comparar, como coordenada absoluta del mapa (o sea, que el punto 0,0 está es la esquina superior izquierda del MAPA (no de la pantalla))

Espero que te sea de ayuda, sin embargo recuerda que acá estoy asumiendo que tiene tiles cuadrados y donde antes el tile era todo o nada, o sea, el tile era piso o no lo era, si tu situación es más compleja entonces necesitas una solución más compleja.

Saludos.

avalontm

muchas graciasd es exactamente como esta echo el mapa


en cuanto pueda implementare la idea les aviso , de verdad michas gracias por tu ayuda






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.