Foros - Stratos

Proyectos => CRM32Pro => Mensaje iniciado por: TheAzazel en 01 de Julio de 2006, 02:36:45 PM

Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 01 de Julio de 2006, 02:36:45 PM
Muy buenas!
parece que cada nueva version cuesta mas y mas sacarla a la luz jeje, pues bien, al fin he conseguido la v4.90 con bastantes mejoras y como no, errores corregidos.
Tambien una nueva version del SpacePong y del EditorDPF.

Como es habitual, pongo aqui todos los cambios. Ya sabeis, cualquier duda o problema, no dudeis en poneros en contacto conmigo.

Me interesaria sobre todo si pudieras probar el ejemplo llamado "LogicRenderRates" que con los cursores se cambia en tiempo real el logic rate y con F1 podeis activar y desactivar el "smooth movement" a ver que os parece :). Para EX3, Vicente y Lex, esto es lo que hablamos un poquitin en la ultima quedada, la verdad que la mejora es impresionante, pero ya me direis vosotros...

CRM32Pro SDK v4.90
Citar· CSprite:
     - New unified internal system.
     - Removed Update() member.
     - Added SetAnimFactor() member to set the animation speed factor.
     - Added MoveTo() member to move the sprite using a very smooth way.
   · ITimeSystem:
     - Added Fixed Logic Rate concept. All main code have been rewritten to be very accurate.
     - Smoothest operation with or without double buffer screen.
     - It will drop render frames to fullfil with logic rate.
     - You can set a logic rate lower than render rate.
     - GetTime() and GetSeconds() work always even if you have not called to CRM32Pro.Update().
   · IStuffDPF:
     - New DPF v4.0 format. It has been rewritten to be more secure and reliable.
     - Automatic DPF protection to avoid external modification.
     - Possibility of protect your DPF contents with heavy encryption scheme using a password from 8 to 56 characters.
     - Two access method: fast mode to use in normal operation and lowlevel mode to fix a corrupted DPF.      
     - Old DPF v3.0 are automatically converted to new v4.0.
     - Due to its nature, opening DPFs is quite intensive (four times more than previous version) so keep
       this in mind. If this issue is problematic, we will implement a pre-cached system to improve dramatically
       the opening performance.
   · CFont:
     - Fixed a bug in the coordinates system. Thanks to Ivo Wubbels to report it!
     - Fixed a minor bug in the importing code. Thanks to Ivo Wubbels to report it!
     - Some members have been renamed:
       + TextWidth(char *text) has been renamed to StringWidth(char *str).
       + TextCursorAt(char *text,int px) has been renamed to SetCursorAt(char *str,int px).
       + XCenteredString(SDL_Surface *Surface, int x,  char *text, SDL_Rect* clip=NULL) has been renamed to
         PutStringXCenter(SDL_Surface *Surface, int x,  char *str, SDL_Rect* clip=NULL);
       + YCenteredString(SDL_Surface *Surface, int y,  char *text, SDL_Rect* clip=NULL) has been renamed to
         PutStringYCenter(SDL_Surface *Surface, int y,  char *str, SDL_Rect* clip=NULL);  
   · ICursor:
     - Fixed render problems with doublebuffer modes.
     - Smooth cursor movement independent of logic rate.
     - Fixed some bugs with autorestores.
   · CRM32Pro main interface:
     - Added a callback function to blit your graphics fulfilling the Rendering Frame Rate.
     - Added new bMTFriendly flag to Config struct to give the execution flow to OS each internal update.
   · Library size on Win32(mingw32) and Linux was reduced.
   · Added new example: SpriteTest.
   · Extended and improved library documentation.
   · Updated to SDL 1.2.10 CVS (dated on 21-May-2006) with loads of bugs fixed and improvements.
   · Fixed an critical graphic performance issue. Thanks to Tobias Schweers to report it!

EditorDPF v3.70
Citar· It allows to protect or unprotect your DPF contents.
 · Fixed a little bug with font importing code.
 · Fixed a few bugs on deleting and adding blocks.
 · Support new DPF v4.0.  
 · Linked with CRM32Pro v4.90.

SpacePong v1.50
Citar· Improved padders control.
· Smooth sprites movement thanks to new code of CRM32Pro SDK.
· Improved AI.
· Better ball and padder movement.
· Better padder with ball interaction.
· Improved code structure.
· Using CRM32Pro SDK v4.90

Sobre el SpacePong..aun tiene un par de errores que algunos ya habeis visto (thread anterior), los corregire para la final y definitiva 2.0 pero aun falta un tiempo para que me vuelva a poner con ello jeje.

Saludos!
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 01 de Julio de 2006, 03:16:29 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: zupervaca en 01 de Julio de 2006, 04:14:51 PM
Si quereis evitar el uso de dlls externas cambiar esto en las propiedades del proyecto:
(http://img409.imageshack.us/img409/7830/dibujo1jp.jpg) (http://imageshack.us)
Lo marcado en rojo incluye el runtime necesario en el propio exe, la parte positiva que no le hace falta la dll externa, la negativa que te aumentara 100KB mas o menos el tamaño del ejecutable.
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 01 de Julio de 2006, 06:01:13 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 01 de Julio de 2006, 07:48:04 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 01 de Julio de 2006, 09:55:43 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Vicente en 01 de Julio de 2006, 11:23:15 PM
Lex, que no sepas que es lo de v3 viniendo a las quedadas tiene delito! Si lo explico con el jueguecito ese de estrategia que nos enseñó en la última ;) Eso es que el dpf es de una versión vieja y para el nuevo lo que hace es actualizarlo, grabarlo nuevo y al viejo lo renombra con el v3 (o eso creo que era vamos ;)).

Voy a probar lo del raton. Buen curro como siempre! Un saludo!

Vicente
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: _Grey en 02 de Julio de 2006, 12:23:08 AM
Vale... no sigo el desarrollo de la libreria y tal... pero sobre el error de Lex... no es el tipico de cuando le falta algun .lib para enlazar!?

Saludos.
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 02 de Julio de 2006, 01:21:06 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Vicente en 02 de Julio de 2006, 01:32:57 PM
Pues claro que te lo vuelve a crear. El renombra tu fichero de formato viejo a _v3 y crea uno con formato nuevo usando tu nombre original. Si te cargas el nuevo y renombras el viejo, pues lógicamente vuelve a hacer lo mismo :p

Un saludo!

Vicente
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 02 de Julio de 2006, 01:47:39 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 03 de Julio de 2006, 01:39:28 AM
Buenas! que vine de vacas pero estuve el finde fuera tambien :P

veamos, Vicente esta en lo cierto con los V3 y V4... y sobre la nomenclatura del anterior formato..probe varias, pero al final la que mas me convencio fue añadir el _v3 al nombre, si veo que causa movis puedo cambiarlo y utilizar otra.. pero bueno, yo creo que asi se entiende(si tengo otra queja, lo cambio jeje).

Efectivamente, no se porque, el BasicCode.exe esta compilado en modo debug.. ahora mismo lo cambio y pongo en modo release... pero lo que mas me inquieta es eso que dices...

Si no he leido mal, con la nueva version no te compila en VC6 cuando antes si?? uhmm...esto si que es mazo de raro... lo unico que se me ocurre es que por lo que sea, estes usando la libreria estatica de importacion (crm32pro.lib) de la version anterior en vez de la nueva y por ello, no encuentra esas funciones (como te paso lo de los .h....) pero me extraña bastante porque las que no encuentra... creo que no ha cambiado nada!!!
Confirma esto que te digo y si te sigue fallando dimelo, que tengo en un portatil el VC6 listo para probar... ya que esto deberia compilar en todos los VC hasta la fecha...

Habeis probado alguno el ejemplo LogicRenderRates.exe???

Saludos
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 03 de Julio de 2006, 01:45:51 AM
Cita de: "zupervaca"Si quereis evitar el uso de dlls externas cambiar esto en las propiedades del proyecto:
(http://img409.imageshack.us/img409/7830/dibujo1jp.jpg) (http://imageshack.us)
Lo marcado en rojo incluye el runtime necesario en el propio exe, la parte positiva que no le hace falta la dll externa, la negativa que te aumentara 100KB mas o menos el tamaño del ejecutable.

Esa opcion la probe hace mucho tiempo y no funcionaba... (hablo de años..., lo mismo no lo hice bien). La mejor opcion para dejarse de dlls es utilizar la version compilada con Mingw32/GNU GCC 3.4.5 que ya lo incluye todo y encima el compilador es libre :)
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 03 de Julio de 2006, 02:01:11 AM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 03 de Julio de 2006, 03:16:25 PM
Tampoco se de donde puede venir eso... :S, mirare a ver...

lo extrano es... la anterior funciona, y esta no... y estan compiladas igual con el VC2003... yo lo flipo!

Y esos problemillas con el DevCpp/mingw32? eso si te funciona no?

Saludos
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 03 de Julio de 2006, 09:19:01 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 04 de Julio de 2006, 11:24:28 AM
Lo tengo Lex!

recuerdas que anoche te dije que creia haber dado con el porque? pues voila! antes de dormir hice una pequena prueba y funciono y esta manana (en el curro jeje) he comprobado el porque y tiene toda la logica del mundo.

La v4.81 utilizaba SDL 1.2.9 que definia asi estos tipos:

Uint8 -> unsigned char
Uint16 -> unsigned short
Uint32 -> unsigned int

y con ello, todo iba perfecto.

Sin embargo, la 4.90 utiliza SDL 1.2.10 que han cambiado la definicion de estos tipos:

Uint8 -> unsigned __int8
Uint16 -> unsigned __int16
Uint32 -> unsigned __int32

Obviamente, ambos tipos cumplen con su requesito(asegurar un entero sin signo del tamano deseado) pero, parece que esta ultima definicion provoca que el name mangling de las funciones (vamos, las decoraciones aunque suene fatal jeje) cambien! y cambien hasta tal punto que el VC6 no lo entiende y por eso no funciona.

Luego, no solo esas tres funciones que te daban la lata no se pueden importar desde VC6...si no todas aquellas(que son varias) que utilizan cualquiera de esos tipos.

La solucion, es muy efectiva, corrige esos problemas de importacion en VC6 y asegura la compatibilidad binaria de la DLL y es simplemente renombrar todos los Uint8 por unsigned char y sucesivos....

Para esta noche, compilare todas las versiones de este modo y lo subire a la web, asi que luego te avisare y asi podras usar la nueva version desde el VC6 que como muchos otros, siguen usando... a mi me sigue gustando porque es muy ligero :)

Pues nada, muchas gracias por reportarme ese error aunque me has quitado un par de horas de descanso ejjejeje

Saludos!
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 04 de Julio de 2006, 12:52:13 PM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 07 de Julio de 2006, 12:31:14 AM
Lex, tengo lista desde hace un par de dias la lib pero entre que estoy implementando una cosilla de ultima hora y que es un coñazo actualizar todos los archivos, no he subido nada hasta que no termine esta cosilla.

Si quieres ir probando, te paso la version vale?
Saludos
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Lex en 07 de Julio de 2006, 03:48:34 AM
...
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: Vicente en 07 de Julio de 2006, 12:05:41 PM
Hola!

ya he probado el ejemplo del LogicRenderRates. La leche, ya ves si se nota el tener la interpolación o no. En los objetos que se mueven despacio quizás no mucho, pero en el bicho que se mueve más rápido se nota mucho mucho.

Un saludo!

Vicente
Título: CRM32Pro v4.90 - Por fin!!
Publicado por: TheAzazel en 07 de Julio de 2006, 12:55:31 PM
Claro, los que se mueven poco a poco pues pueden ir a un pixel o 2 por segundo y no dan mucho el cante... pero cuando eso es exagerado(un movimiento rapido), lo veras en un punto y luego a otro alejado... y que ha pasado con los intermedios??? se los come! y bueno, si el render rate es elevado y da para moverlo digamos 1 pixel por cada uno de ellos o menos... con este sistema se consigue un movimiento mucho mas fluido :)

a ver si alguien (o yo) termina un juego para ver esto en accion... seguro que se nota bastante!

saludos