Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Pequeña Sugerencia

Iniciado por [EX3], 29 de Septiembre de 2005, 01:26:39 AM

« anterior - próximo »

[EX3]

 Retomando lo dicho en http://www.stratos-ad.com/forums/index.php...=8&t=5330&st=15
Cita de: "[EX3"]
Cita de: "TheAzazel"EX3, una preguntilla... y se sincero, no te preocupes.
No se si habras contemplado el uso de CRM32Pro... si es asi, me gustaria que me dijeras porque la descartas.
Es que estoy en modo de buscar cualquier mejora posible jeje y si algun otro piensa algo..que lo diga, por muy critico que sea...lo unico que hare sera intentar mejorar.
Pues mira, si, si pasara a C++ podria tirar tambien de tu libreria, no habia caido :) Sobre mejoras u opinion alguna tendria que mirar una lista de las caracteristicas que tiene tu libreria por que si no a ciegas va a ser un poco dificil jeje, imagino que en su web habra dicha informacion, no? Voy a mirar.

Salu2...
Acabo de leer las caracteristicas de tu libreria y la veo completa, aunque hecho en falta algo que me seria muy util (y lo esta siendo en la dx_lib32) para desarrollar un juego como el TLSA y seria la posibilidad de dibujar sprites/texturas/mapas con perspectiva, algo tal y como hace DRAW_AdvMap() en la dx_lib32 2.0:



Supongo que tendrias que tirar de OpenGL para hacer algo asi, ya que realmente en la dx_lib32 es una textura montada sobre un quad al que le modifico la posicion de los vertices y SDL a secas solo trabaja con 2D puro y duro.

EDIT: Veo que si vas a meter OpenGL por medio a traves de glSDL en proximas versiones :)

Luego otra cosa que me ha llamado la antencion:
Citar- Es posible utilizarlos en otros entornos como Visual Basic, Delphi o incluso Java ya que se trata
de una DLL, pero no ha sido probado.
Empleas la convencion de llamadas __stdcall? Por que si no es asi en VB dificilmente podras hacer correr tu libreria:
QUOTE ("MSDN 6.0 - Visual Basic")
Usar procedimientos de otros orígenes
Si intenta llamar a un procedimiento de DLL que no forma parte del sistema operativo, debe determinar la declaración correcta para el mismo. En el tema "Declarar un procedimiento de DLL" se explica en detalle la sintaxis de la instrucción Declare.

Nota   Si utiliza Visual C++ (u otra herramienta similar) para crear archivos DLL a los que llamará Visual Basic, emplee la convención de llamadas __stdcall. No utilice la convención de llamadas predeterminada (_cdecl).[/quote]
Animo con la libreria ;)

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

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

Pogacha

 Otras sugerencias:
Que tire de una DLL no me gusto nunca. A mi dame una .lib


[EX3]

Cita de: "Pogacha"Otras sugerencias:
Que tire de una DLL no me gusto nunca. A mi dame una .lib
Que peculiaridad tienen las *.lib, se incluyen con el ejecutable a la hora de compilar?

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

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

_Grey


[EX3]

 Interesante. Y una *.lib viene compilada o es codigo fuente? Es lo que tiene programar en VB que no conoces nada mas aparte de los *.frm, *.bas y *.cls xDDD

Imagino que habra compilado como DLL para intentar dar soporte a otros lenguajes a parte de C++ pero aun asi podria haber hecho una distro con libs, aunque tambien de la otra forma permite actualizar la libreria en si sin tener que recompilar el programa que la use. Supongo mas bien que sera por esta ultima razon, al menos deduzco esto por lo leido en su web.

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

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

_Grey

 Si, el codigo viene compilado, pero con algo de informacion extra para que se pueda linkar correctamente con tus fuentes.

Saludos.

TheAzazel

 Bien! asi me gusta que me lanceis criticas!!!

@EX3: eso del sprite con perspectiva....implicaria utilizar 3D y tanto SDL como CRM32Pro trabajan en 2D. Pero si hay una forma de utilizar los sprites con perspectivas...creas unos sprites como quieras y los salvas en un BMP/PNG y listo :P.
Por otro lado, la utilizacion de glSDL sera para acelerar via OpenGL todos los procesos 2D y ademas, ganando una de las mejores features... alpha blending por hardware!!!. Tengo pensado agregar a glSDL efectos 3D... pero eso ya es otra pelicula(como en conan jaja).
Y bueno, sobre SDL siempre puedes iniciar OpenGL y ponerte con las 3D, pero las funciones de bliteo de SDL no podras utilizarlas para dibujar nada(si para copiar surfaces<->texturas).
Sinceramente, si te decides por C/C++, ponte como minimo con SDL, no te defraudara.
Y lo de la DLL....Meckkk!!! utilizo stdcall en lugar de cdecl!! mirare a ver que se puede hacer... pero como lo deje por defecto pues...
Las apreciaciones sobre la DLL son correctas, asi con solo cambiar la DLL la utilizaras sin necesidad de recompilar nada.


@Pogacha: pues eso esta hecho, puedo hacer un paquete con las lib estaticas, a mi me da igual que utiliceis una DLL unica para todos los ejecutables y no tengais, por norma general, que recompilar. O que linkeis estaticamente contra las libs estaticas y vuestro exe sea mas gordito jeje.



Alguna cosilla mas???  :)  

[EX3]

 
Cita de: "TheAzazel"eso del sprite con perspectiva....implicaria utilizar 3D y tanto SDL como CRM32Pro trabajan en 2D. Pero si hay una forma de utilizar los sprites con perspectivas...creas unos sprites como quieras y los salvas en un BMP/PNG y listo :P.
La idea era solucionar un problema de muchos, el tener que hacer sprites, tiles o mapas en perspectiva isometrica o caballera (prince of persia por ejemplo) y una funcion asi eliminaria el problema. No veas lo comodo que es utilizar cualquier grafico normal y corriente y poder proyectarlo en pantalla en la perspectiva deseada :), pero vamos, el programador eres tu y tu veras si te apetece currarte una funcion asi, ahi queda la idea ;)

Cita de: "TheAzazel"Por otro lado, la utilizacion de glSDL sera para acelerar via OpenGL todos los procesos 2D y ademas, ganando una de las mejores features... alpha blending por hardware!!!
Lo que le falta a Fenix... si soportara 24bits de color, claro.

Cita de: "TheAzazel"Y bueno, sobre SDL siempre puedes iniciar OpenGL y ponerte con las 3D, pero las funciones de bliteo de SDL no podras utilizarlas para dibujar nada(si para copiar surfaces<->texturas).
Mmm, esto quiere decir que si usas OpenGL junto a SDL tienes SDL solo para inicializar la ventana (como he podido leer en otros post) y para gestionar las superficies en memoria? aparte de los otros modulos como el de sonido & cia, claro, pero eso ya esta fuera del apartado grafico.

Cita de: "TheAzazel"Sinceramente, si te decides por C/C++, ponte como minimo con SDL, no te defraudara.
Lo tendre en cuenta, muchos me lo han recomendado.

Cita de: "TheAzazel"Y lo de la DLL....Meckkk!!! utilizo stdcall en lugar de cdecl!! mirare a ver que se puede hacer... pero como lo deje por defecto pues...
Pues ya sabes, si te animas y tienes ganas currate un *.bas con las definiciones de las funciones, constantes y estructuras para los programadores aferrimos a VB. El simple hecho de no ser ActiveX (eliminando asi la parte tediosa de instalar y registrar el componente en la maquina donde se vaya a ejecutar el programa) y de estar escrita en C++ (que hara que las funciones vayan seguramente mas rapidas que si fuesen escritas en una DLL ActiveX escrita en VB como la dx_lib32) ganaria muchos puntos frente a otros proyectos como mi libreria, eso de seguro.

Cita de: "TheAzazel"Alguna cosilla mas???  :)
Es una chorrada pero añadir unas funciones para mostrar de forma comoda y sencilla una consola de texto aparte de la ventana de renderizado de SDL seria util para hacer depuraciones a la vez que ejecutas el programa mostrando informacion del log por ejemplo. Puestos a pedir cosas... xDD

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

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

sés

 
Cita de: "TheAzazel"@Pogacha: pues eso esta hecho, puedo hacer un paquete con las lib estaticas, a mi me da igual que utiliceis una DLL unica para todos los ejecutables y no tengais, por norma general, que recompilar. O que linkeis estaticamente contra las libs estaticas y vuestro exe sea mas gordito jeje.
Esto último no tiene porqué ser cierto. Bueno, sí, el EXE será más gordito, pero el conjunto NO.

Si usas la DLL cargas con TODA la librería al completo. Pero si utilizas un librería estática, solo se incluyen los módulos que utilices.

Imagina que tienes dos módulos: sound.c y video.c y con esto creas miapi.lib
Si creo un programa que solo usa cosas de video y enlazo con miapi.lib solo incluirá en el EXE el módulo video.c

A ver si nos olvidamos de la magia de las DLLs. Una DLL está bien si se usa correctamente, pero reconozcamos que, en el 90% de los casos, no es así.

Ejemplo claro: JRE de Sun, X'D La monda.
¿De qué sirve tanta máquina virtual y tanta leche si cada puñetero programa que instalas trae su propio JRE?

Otro: SDL.
¿De qué sirve que SDL venga en una DLL si cada juego la incluye? ¿Qué se supone que nos estamos ahorrando?


Sí, las tengo manía. Mucha B)
Soy indeciso... ¿o no?

Pogacha

 Eso opino yo ...

Pense que TheAzazel la dejaba como Dll para de algún modo dejar marca de que el juego se hizo con esa libreria ... pero en realidad esto de tambien dar la libreria estatica es bueno y seguro que levanta clientes.

Saludos

TheAzazel

Cita de: "Pogacha"Eso opino yo ...

Pense que TheAzazel la dejaba como Dll para de algún modo dejar marca de que el juego se hizo con esa libreria ... pero en realidad esto de tambien dar la libreria estatica es bueno y seguro que levanta clientes.

Saludos
No, no era por dejar "huella"....
Simplemente fue porque la idea general al realizar la lib fue que fuera posible sustituirla por otra nueva(para reparar por ejemplo bugs) y no tener la necesidad de recompilar la aplicacion. Es la misma filosofia del EditorDPF... "cambia tus graficos/sonidos sin tener que recompilar nada".


Y bueno, no entremos en el tema de las DLLs... es como todo en esta vida, bien utilizado tiene sentido...mal utilizado es un asco. Para un usuario final quizas le da igual la DLL porque va a tener instalado por ejemplo solo tu juego y ya esta... pero por ejemplo para mi es muy comodo tener una sola DLL en el path y todas las aplicaciones que tengo sobre ella funcionan siendo bastante pequenas y tirando de un mismo sitio... que descubro un error? pues reparo la DLL, sustituyo una unica copia, no tengo que recompilar nada y todos los programas funcionaran.

Conclusion, las DLLs pueden llegar a ser muy utiles pero tambien pueden ser un engorro. Como no me cuesta nada distribuir tambien la lib estatica, es algo que hare en breve.

Por lo tanto, gracias por esta sugerencia en la que no habia caido y habia dado por hecho que a todo el mundo le es mas comodo una DLL.

Creeis entonces que es mejor que el EditorDPF vaya linkado estaticamente con la lib en lugar de la DLL? porque me da que si :P

Pogacha


sés

 Yo creo que para alguien que use la librería, en determinadas circunstancias puede venirle bien que sae una DLL para sustituirla por una nueva versión sin recompilar. Pero todos sabemos que muchas veces hay cambios que te obligan a recompilar.
A mí me ha pasado con FMOD, cuando bajé una nueva versión y ¡oh, sorpresa!, no funciona. Tuve que recompilar igualmente.

Y si es una aplicación que la usa... bueno. Si tengo una aplicación, alguien se la baja y, posteriormente, yo la modifico (mejoro o corrijo), el usuario tendrá que bajársela. Como que le da igual que tenga una DLL o no.

Para la librería en si, yo daría las dos opciones. Aunque personalmente la DLL me sobra :P
Pero para programas que la usen, mejor dar todo junto. Nadie debería tener que preocuparse con que versión de la DLL funciona un programa.

Y creo que todos hemos tenido que pelearnos con algún programa (en Linux creo que es más típico), que cada versión que sacan necesita cierta versión de ciertas librerías. Al final terminamos con 20 versiones de una librería solo porque tenemos otros 20 programas que cada uno usa una versión diferente de la misma.

O sea... que sigo sin verle demasiada utilidad.
Soy indeciso... ¿o no?

TheAzazel

 Alguna otra sugerencia?

enga enga...hablar ahora o callar para siempre jeje

zupervaca

 una sugerencia aunque no se si te seria dificil cambiarlo, he estado mirando las imagenes del editor dpf y la primera muestra un sprite del warcraft, en esta imagen veo que los bloques de los sprites tienen que ser siempre del mismo tamaño, estaria bien que incluyeras la posibilidad de hacer los bloques a cualquier tamaño y les indicaras a cada bloque una coordenada de desplazamiento cada vez que se dibuja, esto hace un ahorro de memoria en la ram o en la memoria de video y ademas acelera el juego en ordenadores lentos ya que se pinta una imagen mas pequeña, si no me entiendes bien te lo vuelvo a explicar, ultimamente nadie me entiende ;)

saludos

editado: ademas me imagino que accederas a los bloques mediante el modulo y la division, al hacer los bloques diferentes todos, tendrias que guardar las coordenadas de la imagen origen en un array que tendria el mismo indice que la imagen, asi son valores directos y te ahorras unos cuantos ciclos de cpu

editado 2: prueba a meterte con c-sharp para hacer un editor dpf con el, ya veras como te sale mucho mas pontente por la facilidad que da este lenguaje






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.