Pos pasa que hoy tuve el día libre, cosa que ya no ocurre muy seguido
:( y me puse un ratito con el war.
Como recordaran el War ya se conecta al IRC y por fin puse el codigo
que envia al servidor de IRC el aviso de que se ha creado una nueva
partida, y ya es posible entrar a ella. Pero..... para ello hay saber
la IP de la persona que crea la partida. Y no tengo hecho el codigo que
obtiene la IP de la maquina, ese codigo deberia ser parte de la
libreria de comunicaciones, pero no esta :P asi que tengo que hacerlo,
espero tenerlo esta semana.
Esto de trabajar, tener novia y estar haciendo la tesis de maestria que
debi terminar hace meses, no me deja tiempo :(
Ya me estoy poniendo melancolico, asi que me despido :D.
Hay mucha gente nueva en el mail list, supongo que tendran muchas
pregunta acerca del proyecto, a algunos se las he respondido en el IRC.
Tambien puedo responderlas por aqui se les parece mas comodo :)
Pueden descarcar el ejecutable para windows del CVS pero no lo recomiendo porque es Windows con Visual c++ 6.0 me esta dando muchos dolores de cabeza .
Desaparecieron los modulos:
pInicio
pPantallas
pPartida
pMultiplayer
por lo que desaparecen los archivos:
pInicio.h, pInicio.cpp, pPantallas.h, pPantallas.cpp, pPartida.h,
Partida.cpp, pMultiplayer.h, pMultiplayer.cpp
fueron subtituidos por los modulos
pantallaInicio
pantallaMenuPrincipal
pantalaMultiplayerIRC
Estos modulos se encargan de mostrar las pantallas de opciones que
aparecen antes de iniciar las partidas.
Sigo reeescribiendo algunas partes del codigo, por eso no se ven
muchos cambios visuales, pero era necesario porque los modulos
eliminados eran un desastre, los nuevos estan mucho mejor organizados.
Saludos.
ZeruGrinch
Ya la compile para GCC 3.3.3, tube que descargarla de un mirror de china o algo asi, porque por alguna razon la version 3.3.3 no esta en los servidores oficiales de GNU, pero no creo que de problemas.
Aunque no se Me baje el codigo fuente asi que compile GCC 3.3.3 con GCC 3.4.2 y salvo algunos warnings a la hora de compilar no hubo problemas . Originalmente Fedora core 2 trae GCC 3.3.3 de serie, pero no me dejo reinstalar una version anterior de gcc desde RPMs.
En realidad la version mas usada por ahora es la 3.3.3 pero en mi mania por tener siempre lo ultimo de lo ultimo me puse GCC 3.4.2 en mi Fedora Core 2, aunque sospecho que la mayoria de las nuevas distros (las que salgan este año) estaran compiladas casi todas con GCC 3.4.2 Comenzando con Fedora Core 3.
PD. Los Warnings de glFogCoordfEXT son normales. En realidad no se que significan.
Saludos.
El mar, 04-01-2005 a las 20:00, Armando escribió:
Hola:
Como dije, nada mas llegar a casa actualice el CVS e instalé la última versión de SolarSockets (aunque no coincidiera con mi versión de GCC tenía que probar), y al final del todo de la compilación falla dando errores relativos a SolarSockets:
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../libsolarsockets.so: undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../libsolarsockets.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
collect2: ld devolvió el estado de salida 1
make: *** [war3d] Error 1
Tengo GCC 3.3.3 y SuSE 9.1, si pudieras compilar la librería para esta versión... o decirme de donde consigo el GCC que tú usas....
Por cierto, desde que llevo intentando compilar esto, siempre salen también al final los siguientes warnings:
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: Aviso: el tipo del símbolo `glFogCoordfEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: Aviso: el tipo del símbolo `glFogCoordfvEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: Aviso: el tipo del símbolo `glFogCoorddEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: Aviso: el tipo del símbolo `glFogCoorddvEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld: Aviso: el tipo del símbolo `glFogCoordPointerEXT' cambió de 2 a 1 en fogofwar.o
Son para preocuparse? Os salen a vosotros?
-=ArCePi=-
_____________________________________
WAR3D -> http://war3d.sourceforge.net/
Si quieres cancelar tu suscripcion, envia un mensaje a war_3d-unsubscribe@yahoogroups.com
_____________________________________ Enlaces a Yahoo! Grupos
<*> Para visitar tu grupo en la web, ve a:
http://es.groups.yahoo.com/group/war_3d/
<*> Para cancelar tu suscripción en este grupo, envía un mensaje en blanco a:
war_3d-unsubscribe@yahoogroups.com
<*> El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
http://es.docs.yahoo.com/info/utos.html
Hola:
Como dije, nada mas llegar a casa actualice el CVS e instalé la
última versión de SolarSockets (aunque no coincidiera con mi versión de
GCC tenía que probar), y al final del todo de la compilación falla dando
errores relativos a SolarSockets:
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../libsolarsockets.so:
undefined reference to `__gnu_cxx::__exchange_and_add(int volatile*, int)'
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../libsolarsockets.so:
undefined reference to `std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Rep::_S_empty_rep_storage'
collect2: ld devolvió el estado de salida 1
make: *** [war3d] Error 1
Tengo GCC 3.3.3 y SuSE 9.1, si pudieras compilar la librería para esta
versión... o decirme de donde consigo el GCC que tú usas....
Por cierto, desde que llevo intentando compilar esto, siempre salen
también al final los siguientes warnings:
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:
Aviso: el tipo del símbolo `glFogCoordfEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:
Aviso: el tipo del símbolo `glFogCoordfvEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:
Aviso: el tipo del símbolo `glFogCoorddEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:
Aviso: el tipo del símbolo `glFogCoorddvEXT' cambió de 2 a 1 en fogofwar.o
/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld:
Aviso: el tipo del símbolo `glFogCoordPointerEXT' cambió de 2 a 1 en
fogofwar.o
Son para preocuparse? Os salen a vosotros?
-=ArCePi=-
Vaya, en cuanto vuelva a casa, que espero que sea mañana, actualizo el
cvs y me bajo la solarsockets nueva. Ya informaré de noticias nuevas...
-=ArCePi=-
ZeruGiran escribió:
> Hola:
>
> Pues, les cuento que ya tengo mi nueva PC, esa una AMD 64, y le
> instale Fedora Core 3 con todo compilado en modo x86_64.
>
> Gueno pues despues de pelearme por mas de 4 horas con la configuracion
> de la tarjeta de video, al fin quedo lista, y me puse a intentar
> compilar el War.
>
> Lo primero que note es que Fedora ya no usa glut, y ahora trae
> freeglut de serie, asi que instale el RPM de freeglut-devel y no tube
> mas problemas. De hecho ya probe las tres implementaciones de Glut que
> existe: Glut(del equipo de opengl), FreeGlut y OpenGlut y las tres
> funcionan perfectamente. Solo hay que tocar el archivo constantes.h y
> para que use la libreria correcta y ale :D.
>
> Luego de compilar el War peto :S asi que lo meti al debuguer y vi que
> el error estaba en la libreria de SolarSockets. Y le encontre un
> errorsote :S por lo que es necesario substituir la libreria vieja con
> la que ya he subido a la Web. Aca -->
>
> http://solar-opensource.com/solarsockets/download.html
>
> El error no ocurria siempre por lo que solo a veces petaba, y lo
> encontre porque el debuguer del nuevo GCC 3.4.2 tiene muchas mejoras,
> ya trabaja mejor con los threads.
>
> Bueno el caso es que ya esta corregido. Tabien actualize el ToolKit
> para Visual C++ 6.0. ->
>
http://sourceforge.net/project/showfiles.php?group_id=64193&package_id=110985&re\
lease_id=293771
>
<http://sourceforge.net/project/showfiles.php?group_id=64193&package_id=110985&r\
elease_id=293771>
>
>
> El caso es que en algunas maquinas el war no se comportaba bien. Y
> espero que con esta correccion el War se estabilice un poco.
>
> Aun sigo trabajando con la coneccion del War al IRC, he estado
> reescribiendo algo de codigo. :D
>
> Saludos
>
> *CVS Actualizado. Main.rar Actualizado.
>
> CVS->
>
http://war3d.sourceforge.net/forums/index.php?s=0829d42607a1657775cb14a576200feb\
&showtopic=35
>
<http://war3d.sourceforge.net/forums/index.php?s=0829d42607a1657775cb14a576200fe\
b&showtopic=35>*
>
>
>
>
> *ZeruGiran*
>
> *E-Mail:* _zerugiran@..._ <mailto:zerugiran@...>
> *MSN:* _eric@..._ <mailto:eric@...>
> Tel: 04455-18243353 (Telcel)
> Web: _Perfil_
> <http://solarirc.sourceforge.net/members/SM_MemberInfo.php?nick=ZeruGiran>
>
>
>
>
>
War3D compila perfectamente en DevC++, de hecho estoy pensando en dejar de usar Visual C++ como plataforma en Windows.
Lo complicado fue encontrar las librerias de OpenGL, Glut (Use openglut), OpenAl y Vorbis para DevC++ pero despues de instalarlas el War3D compilo sin ningun problema.
Voy a hacer un ToolKit con todas las librerias necesarias. O si alguno me quiere ayudar haciandolo seria mejor . No es mas que buscarlas y ponerlas todas juntas en un Zip.
Ya les digo, posiblemente deje de usar Visual C++, que es un asco y no da mas que puros problemas.
Baje el ultimo SUSE para probar y me di cuenta de que no trae entorno de desarrollo ni siquiera tenia el GCC instalado :S
Asi que asumo que lo bajaste aparte.
El caso es que tambien me instale el nuevo Fedora Core 3, compile el War y me encontre con que petaba en el mismo lugar en el que te peta a ti. Luego hice algunas correcciones a la libreria de SolarSockets y comenzo a funcionar de nuevo.
El problema es que la compile con GCC 3.4.1 para i386 y para GCC 3.4.2 para x86_64. Y tu tienes instalada la version 3.3.x entonces hay dos opciones, 1.- Esperame a que me instale GCC 3.3.x y compile SolarSockets para esa version o 2.- instalate GCC 3.4.2.
Mi plan es compilar la libreria en diferentes version de GCC, pero por ahora solo tengo esas dos.
Otra cosa que vi es que Fedora Core 3 lleva de serie freeglut, yo antes usaba glut pero con freeglut no hubo problema alguno.
Saludos.
El mar, 30-11-2004 a las 13:11, Armando escribió:
Hola:
Algunos me conoceréis de que ando por el canal de IRC ultimamente (en IRC-Hispano) y la mayoría no... el caso es que prometí intentar compilarlo y ver de que va este proyecto. Me recomendaron que lo hiciera desde el CVS y así lo he hecho.
Tras resolver todas las dependencias instalando FreeGlut, OpenAL (desde el CVS también), SolarSockets, Vorbis... conseguí que el programa compilara (con algunos warnings al final relativos a opengl...).
Al ejecutarlo es bastante lento (aunque mejoró con la versión del CVS de OpenAL, pero ahora no suena nada, antes sonaba como cuando se cuelga el ordenador mientras estás reproduciendo un fichero de sonido) en el tema de los menús, aunque no sé si es que hay algo que no veo y por eso me lo parece. Según carga, las letras que dicen que está cargando con una barra de progreso azul encima no las veo, vamos, son negras sobre fondo negro, se ven en algunas partes del dibujo de fondo. Luego al llegar al menú propiamente dicho, lo único que parece funcionar es Práctica, y provoca una Violación de Segmento...
No se si será porque el CVS no está en condiciones de ser usado o porque uso FreeGLUT en lugar de GLUT que es lo que parece que usáis vosotros (cambiarlo me trae bastantes problemas, porque varios programas dependen de esa librería, y es la que usa mi distribución).
Una sugerencia sería que pusiérais en el foro o donde fuera que versiones concretas usáis de cada librería, para evitar problemas a la hora de compilar.
Por si sirve de algo os doy la configuración de mi ordenador:
SuSE Linux 9.1 Professional
XFree 4.3.99
FreeGLUT 2.2.0
OpenAL (descargado hace 10 minutos de su CVS)
LibVorbis 1.0.1
SolarSockets 0.3.2 (con la última que hay en la web no compila, esta es la anterior)
Uso los drivers oficiales de nVidia y mi gráfica es una GeForce4 Ti 4200
Para el sonido uso ALSA.
Un log de lo que me sale al ejecutar el juego:
arcepi@lithium:~/war3d/War3DSource> ./war3d
0.08.06
war3d.sourceforge.net
Algun error antes de comenzar con el log
ZeruMatinicializada.
MODO: -1
Servidor iniciado
[ *** ] Leyendo Archivo de configuracion
[Config]: Resolucion: |640x480|
[Config]: FullScreen: |off|
[Config]: Musica: |on|
[Config]: EfectosDeSonido: |on|
[Config]: Niebla: |on|
[Config]: AntiAlaising: |on|
[Config]: Debug: |on|
[Config]: War2D: |off|
RRR
MODO: 0
Leyendo Archivo de mapa: Esenarios/Mapas/SegundoMapa60x60.mapa
Version: 0.1
Alto: 60
Ancho: 60
Textures: 7
Objetos: 8
Cargando mapa de niveles pInicio Error OPENGL: 0
Cargando texturas
pasto1
pasto2
pastoGrabilla
pastoRocas
arena1
arenaGrabilla
Agua
Cargando mapa de texturas
pInicio Error OPENGL: 0
Cargando objetos
Cargando mapa de objetos
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
pInicio Error OPENGL: 0
No se pudo asignar una animacion por default al objeto de escenario
... [ esto mismo se repite bastantes veces ]
No se pudo asignar una animacion por default al objeto de escenario
Calculando normales del mapa
X
[WARNING][EXTENSIONES] Si War3D se deteine en este punto inesperadamente, edita el archivo "War3D.conf", desativa la noebla, "Niebla: off"
VENDOR : Mesa project: www.mesa3d.org
RENDERER : Mesa GLX Indirect
EXTENSIONS : GL_ARB_depth_texture GL_ARB_imaging GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_transpose_matrix GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_logic_op GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_copy_texture GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_polygon_offset GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_lod_bias GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array GL_APPLE_packed_pixels GL_ATI_texture_mirror_once GL_ATI_texture_env_combine3 GL_IBM_texture_mirrored_repeat GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_NV_blend_square GL_NV_point_sprite GL_NV_texgen_reflection GL_NV_texture_rectangle GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SGIX_shadow_ambient
VERSION : 1.2 (1.4 Mesa 5.0.2)
ANCHO:240
MODO: 101
Abriendo archivo Musica/music1.ogg
Buffer numero: 0
Starting single player game...
MODO: 1
Conectando ...
Cliente IP: 127.0.0.1
Nuevo Jugador[9]
Conectado !!
pInicio Error OPENGL: 0
[[PI]] InetID: 9 x: 5 y: 1.2
BOT Conectado
[[RO]]
Violación de segmento
Gracias por vuestra atención, y seguid adelante.
PD: Si consigo compilarlo tenía pensado escribir una guía de compilación para SuSE 9.1 y siempre podría ayudaros en lo q estuviera a mi alcance :).
Pues, les cuento que ya tengo mi nueva PC, esa una AMD 64, y le instale Fedora Core 3 con todo compilado en modo x86_64.
Gueno pues despues de pelearme por mas de 4 horas con la configuracion de la tarjeta de video, al fin quedo lista, y me puse a intentar compilar el War.
Lo primero que note es que Fedora ya no usa glut, y ahora trae freeglut de serie, asi que instale el RPM de freeglut-devel y no tube mas problemas. De hecho ya probe las tres implementaciones de Glut que existe: Glut(del equipo de opengl), FreeGlut y OpenGlut y las tres funcionan perfectamente. Solo hay que tocar el archivo constantes.h y para que use la libreria correcta y ale .
Luego de compilar el War peto :S asi que lo meti al debuguer y vi que el error estaba en la libreria de SolarSockets. Y le encontre un errorsote :S por lo que es necesario substituir la libreria vieja con la que ya he subido a la Web. Aca -->
El error no ocurria siempre por lo que solo a veces petaba, y lo encontre porque el debuguer del nuevo GCC 3.4.2 tiene muchas mejoras, ya trabaja mejor con los threads.
Como recordaran (algunos ), el War3D se conectara a un server de IRC, y sera ahi donde se organicen las partidas. Aun faltan muchas cosas pero ya comienza a funcionar.
En unos dias mas voy a tener mi nueva PC asi podre dedicar mucho mas tiempo al War. Como antes
Se ve algo feo porque no he puesto atencion en la parte grafitera, pero como a cada Widget se le puede poner la textura deseada (Texturas con transparencias tambien), se pueden hacer cosas interesantes.
Hola:
Algunos me conoceréis de que ando por el canal de IRC ultimamente (en
IRC-Hispano) y la mayoría no... el caso es que prometí intentar
compilarlo y ver de que va este proyecto. Me recomendaron que lo hiciera
desde el CVS y así lo he hecho.
Tras resolver todas las dependencias instalando FreeGlut, OpenAL (desde
el CVS también), SolarSockets, Vorbis... conseguí que el programa
compilara (con algunos warnings al final relativos a opengl...).
Al ejecutarlo es bastante lento (aunque mejoró con la versión del CVS de
OpenAL, pero ahora no suena nada, antes sonaba como cuando se cuelga el
ordenador mientras estás reproduciendo un fichero de sonido) en el tema
de los menús, aunque no sé si es que hay algo que no veo y por eso me lo
parece. Según carga, las letras que dicen que está cargando con una
barra de progreso azul encima no las veo, vamos, son negras sobre fondo
negro, se ven en algunas partes del dibujo de fondo. Luego al llegar al
menú propiamente dicho, lo único que parece funcionar es Práctica, y
provoca una Violación de Segmento...
No se si será porque el CVS no está en condiciones de ser usado o porque
uso FreeGLUT en lugar de GLUT que es lo que parece que usáis vosotros
(cambiarlo me trae bastantes problemas, porque varios programas dependen
de esa librería, y es la que usa mi distribución).
Una sugerencia sería que pusiérais en el foro o donde fuera que
versiones concretas usáis de cada librería, para evitar problemas a la
hora de compilar.
Por si sirve de algo os doy la configuración de mi ordenador:
SuSE Linux 9.1 Professional
XFree 4.3.99
FreeGLUT 2.2.0
OpenAL (descargado hace 10 minutos de su CVS)
LibVorbis 1.0.1
SolarSockets 0.3.2 (con la última que hay en la web no compila, esta es
la anterior)
Uso los drivers oficiales de nVidia y mi gráfica es una GeForce4 Ti 4200
Para el sonido uso ALSA.
Un log de lo que me sale al ejecutar el juego:
arcepi@lithium:~/war3d/War3DSource> ./war3d
0.08.06
war3d.sourceforge.net
Algun error antes de comenzar con el log
ZeruMatinicializada.
MODO: -1
Servidor iniciado
[ *** ] Leyendo Archivo de configuracion
[Config]: Resolucion: |640x480|
[Config]: FullScreen: |off|
[Config]: Musica: |on|
[Config]: EfectosDeSonido: |on|
[Config]: Niebla: |on|
[Config]: AntiAlaising: |on|
[Config]: Debug: |on|
[Config]: War2D: |off|
RRR
MODO: 0
Leyendo Archivo de mapa: Esenarios/Mapas/SegundoMapa60x60.mapa
Version: 0.1
Alto: 60
Ancho: 60
Textures: 7
Objetos: 8
Cargando mapa de niveles pInicio Error OPENGL: 0
Cargando texturas
pasto1
pasto2
pastoGrabilla
pastoRocas
arena1
arenaGrabilla
Agua
Cargando mapa de texturas
pInicio Error OPENGL: 0
Cargando objetos
Cargando mapa de objetos
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
No se pudo asignar una animacion por default al objeto de escenario
pInicio Error OPENGL: 0
No se pudo asignar una animacion por default al objeto de escenario
... [ esto mismo se repite bastantes veces ]
No se pudo asignar una animacion por default al objeto de escenario
Calculando normales del mapa
X
[WARNING][EXTENSIONES] Si War3D se deteine en este punto
inesperadamente, edita el archivo "War3D.conf", desativa la noebla,
"Niebla: off"
VENDOR : Mesa project: www.mesa3d.org
RENDERER : Mesa GLX Indirect
EXTENSIONS : GL_ARB_depth_texture GL_ARB_imaging
GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_shadow
GL_ARB_shadow_ambient GL_ARB_texture_border_clamp
GL_ARB_texture_cube_map GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
GL_ARB_transpose_matrix GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra
GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_logic_op
GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint
GL_EXT_copy_texture GL_EXT_draw_range_elements GL_EXT_fog_coord
GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_polygon_offset
GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_specular_color GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture
GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3 GL_EXT_texture_lod_bias GL_EXT_texture_object
GL_EXT_texture_rectangle GL_EXT_vertex_array GL_APPLE_packed_pixels
GL_ATI_texture_mirror_once GL_ATI_texture_env_combine3
GL_IBM_texture_mirrored_repeat GL_MESA_pack_invert GL_MESA_ycbcr_texture
GL_NV_blend_square GL_NV_point_sprite GL_NV_texgen_reflection
GL_NV_texture_rectangle GL_SGIS_generate_mipmap
GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow
GL_SGIX_shadow_ambient
VERSION : 1.2 (1.4 Mesa 5.0.2)
ANCHO:240
MODO: 101
Abriendo archivo Musica/music1.ogg
Buffer numero: 0
Starting single player game...
MODO: 1
Conectando ...
Cliente IP: 127.0.0.1
Nuevo Jugador[9]
Conectado !!
pInicio Error OPENGL: 0
[[PI]] InetID: 9 x: 5 y: 1.2
BOT Conectado
[[RO]]
Violación de segmento
Gracias por vuestra atención, y seguid adelante.
PD: Si consigo compilarlo tenía pensado escribir una guía de compilación
para SuSE 9.1 y siempre podría ayudaros en lo q estuviera a mi alcance :).
--
ArCePi <arcepi@...>
JID: arcepi@...
www.arcepi.net -|- Linux registered user #302454
Aun no estan terminado pero ya funcionan un poco mas, asi que ya voy a colocarlos (usarlos) en el War porque si no me voy a pasar toda la vida haciendo Widgets y el proyecto no va a avanzar.
Saludos.
Ahora que ya tengo el puto Text box (mas o menos funcional), lo que voy a hacer es conectar el War3D al IRC.
// ZG.
Solar3DWidGetTextBoxBasico * NuevotextBoxBasico;
NuevotextBoxBasico = new Solar3DWidGetTextBoxBasico ("ScrollTest", 0.01, 0.61, 0.7, 0.35);
NuevotextBoxBasico->SetTexto("Text Box Basico: Ultimamente el proyecto entro en un estado de letargo muy prolongado, pero ya esta reviviendo de nuevo. Por ahora estamos trabajando en una libreria de WidGets, es decir controles visuales como botones, labels, comobobox, memos, etc.");
Que tal.. después del letargoen el que estuve, me
dispongo a colaborar otra vez...
Yo compilo con Dev-C y me funciona bastante bien, esto
lo hacía porque no tenía VC, ahora dispongo de una licencia VS 2003, pero el
problema es que no compila, creo que el proyecto es para VC6 y el que viene es
el VC7... así que por lo pronto me quedo con Dev-C...
Las instrucciones generales para echarlo a andar son
las de instalar los dev-paks de Ogg Vorbis, de AL, Glut y demás librerías que
no son nada difíciles de conseguir...
Ahora, pregunta... porque crear un widgets si se puede
usar el código de glui?
Sería bueno organizar y documentar el proyecto, los
objetos y el código se ven un poco desorganizados...
Por mi parte, se que no está en la mente de Zeru, pero
tengo que hacer una implementación de IA para una clase a la que asisto y la
voy a hacer sobre el juego, además de ordenarlo un poco...
Sobre el juego con IA o no... espero que sea más atractivo
para todos el jugar contra la máquina....
Ya voy a hacer el Memo, que es en realidad el que sera mas complicado y mas util en este momento, les recuerdo que lo queremos para poner el chat de las partidas multiplayer.
El lun, 20-09-2004 a las 00:23, ZeruGiran escribió:
Hola:
Ya estoy trabajando con la libreria de WidGets para el war.
Ya tengo algunas cosas hechas, apenas lo basico. El codigo esta en el CVS en la carpeta /SolaWidGets/
Tengo hechos un "Entorno" (SolarWidGetEntorno) sobre el cual se colocan los Widgets y que se encarga de enviarles las llamadas de eventos(eventos del mouse por ejemplo).
Tambien tengo WidGet Contenedor (SolarWidGetPanel), dentro del cual se pueden anidar otros WidGets.
Tambien esta hechon hecho los botones, (SolarWidGetBoton) el cual es un boton presionable, como los botones normales que ya todos conocemos.
Por supuesto tambien tengo hecha la clase SolarWidGetBase de la cual heredan todos los SolarWidGets.
Lo siguiente es hacer un Label, un TextBox, un memBox, un cmboBox, etc. etc.
Estoy substituyendo los botones de las pantallas del War con los nuevos botones. Les enviaria un screenshot pero aun hay muy poco que ver. De hecho el War se ve peor que antes :S, pero eso va a cambiar cuando este terminado el codigo.
Ya voy a hacer el Memo, que es en realidad el que sera mas complicado y
mas util en este momento, les recuerdo que lo queremos para poner el
chat de las partidas multiplayer.
El lun, 20-09-2004 a las 00:23, ZeruGiran escribió:
Hola:
Ya estoy trabajando con la libreria de WidGets para el war.
Ya tengo algunas cosas hechas, apenas lo basico. El codigo esta en el CVS en la carpeta /SolaWidGets/
Tengo hechos un "Entorno" (SolarWidGetEntorno) sobre el cual se colocan los Widgets y que se encarga de enviarles las llamadas de eventos(eventos del mouse por ejemplo).
Tambien tengo WidGet Contenedor (SolarWidGetPanel), dentro del cual se pueden anidar otros WidGets.
Tambien esta hechon hecho los botones, (SolarWidGetBoton) el cual es un boton presionable, como los botones normales que ya todos conocemos.
Por supuesto tambien tengo hecha la clase SolarWidGetBase de la cual heredan todos los SolarWidGets.
Lo siguiente es hacer un Label, un TextBox, un memBox, un cmboBox, etc. etc.
Estoy substituyendo los botones de las pantallas del War con los nuevos
botones. Les enviaria un screenshot pero aun hay muy poco que ver. De hecho el War se ve peor que antes :S, pero eso va a cambiar cuando este terminado el codigo.
Ya voy a hacer el Memo, que es en realidad el que sera mas complicado y mas util en este momento, les recuerdo que lo queremos para poner el chat de las partidas multiplayer.
El lun, 20-09-2004 a las 00:23, ZeruGiran escribió:
Hola:
Ya estoy trabajando con la libreria de WidGets para el war.
Ya tengo algunas cosas hechas, apenas lo basico. El codigo esta en el CVS en la carpeta /SolaWidGets/
Tengo hechos un "Entorno" (SolarWidGetEntorno) sobre el cual se colocan los Widgets y que se encarga de enviarles las llamadas de eventos(eventos del mouse por ejemplo).
Tambien tengo WidGet Contenedor (SolarWidGetPanel), dentro del cual se pueden anidar otros WidGets.
Tambien esta hechon hecho los botones, (SolarWidGetBoton) el cual es un boton presionable, como los botones normales que ya todos conocemos.
Por supuesto tambien tengo hecha la clase SolarWidGetBase de la cual heredan todos los SolarWidGets.
Lo siguiente es hacer un Label, un TextBox, un memBox, un cmboBox, etc. etc.
Estoy substituyendo los botones de las pantallas del War con los nuevos botones. Les enviaria un screenshot pero aun hay muy poco que ver. De hecho el War se ve peor que antes :S, pero eso va a cambiar cuando este terminado el codigo.
Ya estoy trabajando con la libreria de WidGets para el war.
Ya tengo algunas cosas hechas, apenas lo basico. El codigo esta en el CVS en la carpeta /SolaWidGets/
Tengo hechos un "Entorno" (SolarWidGetEntorno) sobre el cual se colocan los Widgets y que se encarga de enviarles las llamadas de eventos(eventos del mouse por ejemplo).
Tambien tengo WidGet Contenedor (SolarWidGetPanel), dentro del cual se pueden anidar otros WidGets.
Tambien esta hechon hecho los botones, (SolarWidGetBoton) el cual es un boton presionable, como los botones normales que ya todos conocemos.
Por supuesto tambien tengo hecha la clase SolarWidGetBase de la cual heredan todos los SolarWidGets.
Lo siguiente es hacer un Label, un TextBox, un memBox, un cmboBox, etc. etc.
Estoy substituyendo los botones de las pantallas del War con los nuevos botones. Les enviaria un screenshot pero aun hay muy poco que ver. De hecho el War se ve peor que antes :S, pero eso va a cambiar cuando este terminado el codigo.
Para la implementación voy a tener que modificar ciertas cosas.
Yep, sientete en libertad de modificar lo consideres necesario.
Por ejemplo, la generación de un número de bufferes y fuentes es grande, en vez de eso voy ha hacer que se generen según se piden.
Suena bien, solo cuida que no se revace cierto numero de fuentes, por alguna razon en Windows XP (No se si tambien en otros windows) el war dejaba de emitir sonidos cuando se revazaba un cierto numero de Fuentes.
Supongo que depende de que placa de sonidos uses y el sistema operativo, ya que en linux podia poner mas de 200 fuentes sin problemas, pero en Win XP el maximo es de 15 (si no mal recuerdo) despues de 15 el war dejaba de producir sonidos.
Por ahora solo voy a implementar la reproduccion del wav(eso lo dejo tal y como esta), y otra que reproduce un ogg con doble buffer.
Lo del doble buffer esta genial.
Ahora mismo no tengo intención de implentarle cosas de parar o pausa. No tengo mucho tiempo ahora mismo(estoy liado con mi proyecto personal), asi que voy a colaborar en eso solo por ahora.
Vale, todos tenemos otras ocupaciones , pero se entiende.
Saludos.
P.D.
¿Ya lograste hacer funcionar el Tortoice? A mi no me da problemas, ¿podiras postear los errores que te da? Tal vez lo podamos solucionar. Esto para que tengas acceso al CVS y sea mas facil trabajar en el codigo. Saludos.
_____________________________________
WAR3D -> http://war3d.sourceforge.net/
Si quieres cancelar tu suscripcion, envia un mensaje a war_3d-unsubscribe@yahoogroups.com
_____________________________________ Enlaces a Yahoo! Grupos
<*> Para visitar tu grupo en la web, ve a:
http://es.groups.yahoo.com/group/war_3d/
<*> Para cancelar tu suscripción en este grupo, envía un mensaje en blanco a:
war_3d-unsubscribe@yahoogroups.com
<*> El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
http://es.docs.yahoo.com/info/utos.html
Para la implementación voy a tener que modificar ciertas cosas.
Por ejemplo, la generación de un número de bufferes y fuentes es
grande, en vez de eso voy ha hacer que se generen según se piden.
Por ahora solo voy a implementar la reproduccion del wav(eso lo dejo
tal y como esta), y otra que reproduce un ogg con doble buffer.
Ahora mismo no tengo intención de implentarle cosas de parar o
pausa. No tengo mucho tiempo ahora mismo(estoy liado con mi proyecto
personal), asi que voy a colaborar en eso solo por ahora.
Ethernet me ha convencido de que en realidad no es tan complicado hacer nuestro propios textBoxa, comboboxs, botones, memos y creo que por ahora nada mas, asi que si no hay mas sugerencias en cuanto a usar una libreria ya hecha para nuestra Gui, creo que voy acomenzar a implementar nuestro WidGets.
Sera un pequeño subproyecto que llamaremos Solar3DWidGets, el codigo fuente estara como siempre en el CVS. Se trata entonces de construir una pequeña libreria para hacer botones, labels, textBoxs, comboboxs, etc. rendereados con OpenGL. Tiene que ser reutilizable, ya que posiblemente la usemos en otros proyectos.
Ubo algunas sugerencias, pero creo que no eran multiplataforma, asi que no creo que sean apropiadas. La mas decente era PUI yPLib pero como ya comente esta avandonada .
Sugerencias y comentarios, por aqui por el MailList.
Busca en google algo llamado heaven7 para ver raytracing en tiempo real en tu
maquina. Eso si, todo codeado en asm. Hyay mucho mas ejemplos si buscas en
google
> De:: "Miguel A. Torres" <mikemex_ask@...>
> Para: war_3d@yahoogroups.com
> Asunto:: Re: [war_3d] Re: [war_3d] Re: Re: [war 3d] Re: Re: [war 3d] Re:
[war 3d] Pequeña mejor a en seno coseno y mas comentarios
> BCC: 09/09/2004
> También es retrógrada pensar que no hace falta optimizar, pues las
> máquinas ya son "demasiado rápidas". Eso es completamente falso
> y se ha
> demostrado muchas veces. "Entre más tienes, más quieres".
>
> Yo me inicié en estos negocios con una máquina Pentium 66, de 8 mb
> creo, con la cuál podía abrir corel photopait 5 y hacer mil maravillas
> (anda, y no recuerdo que se alentara ni tantito). Despues tuve una
> Pentium 166 MMX y me corría el Quake 2 por software (con una tarjeta de
> esas cutres de 1 MB). Teóricamente, con mi computadora actual de 1.1
> GHz, ya debería poder hacer raytracing en tiempo real. Pero no...
>
> Saludos.
>
> --- qualopec@... escribió:
> >
> >
> > _Personalemente_ me parece que codear en ASM es un atraso gradisimo
> y
> > mucho mas cuando las maquinas que vienen (ya han venido :P) son VLIW.
> > Una de dos, o sabes muy bien como funciona la maquina (unidades d
> > ejecucion, tamaño del pipeline, politicas de saltos, algoritmos de
> > planificacion....) y programas en asm o dejas al compilador que haga
> > ese trabajo. Incluso los dsp que trabajan en tiempo real se codean
> en
> > C y eso que son maquinas mucho mas especificas que un procesador de
> > proposito general como los que tenemos en casa.
> >
> > No obstante no he dicho q eso no optimice, optimizara seguro, pero
> me
> > refiero si merece la pena en cuanto a esfuerzo/resultados y si no
> > habria que mirar antes cosas de algoritmos (que no depende para nada
> > de la maquina) en vez de mirar detalles de codificacion. Que quede
> > clara mi postura por dios, no estoy en contra de optimizar el war3d.
> >
> > un saludo
> >
> > > De:: "JOSE GERARDO PALMA DURAN, ESCUELA TECNICA SUPERIOR
> DE
> > INFORMATICA" <jgpd16@...>
> > > Para: war_3d@yahoogroups.com
> > > Asunto:: [war_3d] Re: Re: [war 3d] Re: Re: [war 3d] Re: [war
> 3d]
> > Pequeña mejor a en seno coseno y mas comentarios
> > > BCC: 07/09/2004
> >
> > > Lo que dije "chupa maquina", son los castings de float
> a int,
> > > no es coña es
> > > una brutalidad, puede ser un cuello de botella para la aplicacion,
> > el
> > > compilador internamente llama a una funcion llama
> > > _ftol().
> > > Lo que yo hago es hacer esto
> > >
> > > _asm
> > > {
> > > fld f
> > > fistp i
> > > }
> > >
> > > donde f es el flotante e i es el entero.
> > >
> > > Por cierto lo de mi libreria matematica en un test que he hecho
> sin
> > usar
> > >
> > > extensiones MMX o SIMD(todavia no las he metido), es un 1200%
> mas
> > rapida
> > > que
> > > una en c compilada con visual studio 2003,(en cuestiones de
> > optimizacion
> > >
> > > solo lo supera el VectorPC, que usa SIMD...), así que bueno tu
> > mismo si
> > >
> > > dices que eso no va a optimizar.
> > >
> > > Lo del sonido ya lo tratare de adaptar a lo actual para que no
> haya
> > que
> > >
> > > modificar nada. Lo del callback lo he usado en algunas demos
> mias y
> > me
> > >
> > > funciono...
> > >
> > > Otro tema es reservar memoria con un gestor de memoria propio,
> y
> > otra cosa
> > >
> > > es tambien alinear la memoria al tamaño de una palabra, asi
> > evitaremos
> > >
> > > tonterias.
> > >
> > > Tampoco he visto si usamos 2.4 o 2.4f por ejemplo, (con 2.4f
> es mas
> > rapido,
> > >
> > > evitas casting de double a float,(double 64 bits, float 32)).
> > Tampoco me
> > > he
> > > fijado es cosas de divisiones, pero probablemente se pueda mejorar,
> > como
> > >
> > > sabemos es mas rapido lo siguiente
> > >
> > > float x = 1.0f/valor;
> > > for(int i=0;i<algo;++i)
> > > inverso[i] *=x;
> > >
> > > que
> > >
> > > for(int i=0;i<algo;++i)
> > > inverso[i]/=valor;
> > >
> > >
> > > En todo el codigo en asm que he usado no he puesto ninguna
> > instruccion
> > > que
> > > solo sea de intel o de amd, ya que no he usado extensiones tipo
> > 3dnow,
> > > o
> > > SEE3, asi que debe funcionar en TODOS los ordenadores que sean
> > compatibles
> > >
> > > con intel desde el 486 para arriba.
> > > Hay alguna otras optimizaciones en asm, pero bueno paro por el
> > momento.
> > >
> > >
> > >
> > >
> > > _____________________________________
> > > WAR3D -> <A HREF="<A HREF="http://war3d.sourceforge.net/"
> TARGET="_blank">http://war3d.sourceforge.net/</A>"
> > TARGET="_blank"><A HREF="http://war3d.sourceforge.net/</A>"
> TARGET="_blank">http://war3d.sourceforge.net/</A></A>
> > >
> > > Si quieres cancelar tu suscripcion, envia un mensaje a
> > war_3d-unsubscribe@yahoogroups.com
> > > _____________________________________
> > > Enlaces a Yahoo! Grupos
> > >
> > >
> > > war_3d-unsubscribe@yahoogroups.com
> > >
> > > <A HREF="<A HREF="http://es.docs.yahoo.com/info/utos.html"
> TARGET="_blank">http://es.docs.yahoo.com/info/utos.html</A>"
> > TARGET="_blank"><A HREF="http://es.docs.yahoo.com/info/utos.html</A>"
> TARGET="_blank">http://es.docs.yahoo.com/info/utos.html</A></A>
> >
> >
>
>
> _____________________________________
> WAR3D -> <A HREF="http://war3d.sourceforge.net/"
TARGET="_blank">http://war3d.sourceforge.net/</A>
>
> Si quieres cancelar tu suscripcion, envia un mensaje a
war_3d-unsubscribe@yahoogroups.com
> _____________________________________
> Enlaces a Yahoo! Grupos
>
>
> war_3d-unsubscribe@yahoogroups.com
>
> <A HREF="http://es.docs.yahoo.com/info/utos.html"
TARGET="_blank">http://es.docs.yahoo.com/info/utos.html</A>
jgpd16 wrote:
> Bueno me he descargado el codigo con el cvs(como anonimo el tortoise
> de los huevos no me rula, y el ssh no me vale, ademas hay algo
> parecido en win al export?¿),
siempre tienes cygwin, y usar el CVS de cygwin, yo tengo ese y turtoise,
y un cliente grafico de cvs que es un poco tontorron (al final tengo que
usar *siempre* la opcion "tools->linea de comandos" y hacer lo mismo que
haria desde linea de comandos)
con cygwin tienes export
otra opcion son las MSYS, que vienen con el minisistema gnu ese de gcc
que se llama ...mierda, ahora no recuerdo el nombre. Y tal.
quizas en dos dias el cvs se pasa de moda y todos nos pasamos a
subversion, monotone o una cosa mejor que inventen (incluso
suficientemente buena para torpes como yo)
Ya se que deberia estudiar, pero cuando empiezo ha hacer cosas que
me gustan paso de lo que no me gusta,(aunque se me de bien :P).
Ya he modificado mi programa de reproduccion de sonido para uqe use
pthread y permite lo siguiente:
1º Cargar una lista de sonidos para toda la aplicacion(WAV)
2º Cargar sonidos independientes(WAV)
3º Cargar ficheros de musica.(OGG)
La carga de ficheros de sonido wav muy largos tiene como principal
problema que no se tiene tanto control sobre ellos.
Las caracteristicas son.
Para 1º Reproduce sonidos de una lista que cargamos al programa
mediante un fichero de configuracion de sonidos, de un determinado
formato. Problema que presenta hemos de saber todos los sonidos
basicos. Beneficios, para sonidos de por ejemplo el menu, o de picar
con el raton, es mucho más rápido, ya que lo unico que hace es crear
una fuente.(La propia clase autogestiona las fuentes libres y las
libera si estan libres,esto no es obligatorio, pero me parece buena
idea).
Para 2º Carga sonidos desde un fichero WAV, puedo hacer que los lea
desde memoria, la clase genera un buffer y una fuente nueva, tras
terminar la muestra destruye ambos buffer y fuente.(Si lo hacemos
desde memoria aumenta velocidad a la hora de reproducir el sonido,
así por ejemplo al arrancar la aplicacion o pantalla cargamos
sonidos que vayamos a usar y solo lo pasariamos a la funcion en vez
de tener que abrir y cerar el fichero, asi que decidme si vamos a
usar eso, para implementarlo en la clase).
Para 3º (No esta terminado, pero creo que me estoy luciendo :P).
Permite reproducir canciones ogg mediante la tecnica de doble
buffer, las canciones puede tener loop(por ahora esta por defecto,
pero se puede cambiar sin problema). Se puede parar, pausar,
continuar, iniciar sonando o sin sonar cada cancion de forma
independiente(para todas las canciones tambien lo voy a hacer, así
como para un grupo de canciones :D). Mañana no creo que haga nada
(tengo un examen el viernes), así que probablemente(si no me surge
alguna borrachera eventual), para el sabado este terminado mi
programa, tras lo cual empezare a modificar el del war.
PREGUNTA IMPORTANTE: ¿vamos a implementar un gestor de memoria para
el juego?, lo pregunto ya que uso memoria alineada para evitar
lecturas innecesarias en memoria, y como en linux no esta la funcion
_aligned_malloc, la tengo que implentar(no es problema, es
facilito), si vamos a usar un gestor de memoria para el juego,
prefiero usar new y delete ya que supuestamente si se usa un gestor
los sobreescribiremos, así que si me lo decir será de gran ayuda.
Bueno me he descargado el codigo con el cvs(como anonimo el tortoise
de los huevos no me rula, y el ssh no me vale, ademas hay algo
parecido en win al export?¿), le he hechado un vistado al sonido y
he pensado como adaptar lo mio al juego, y para el refresco de los
bufferes se crearia una hebra para cada ogg, que seria la encargada
de cargar los bufferes(sencillito), ahora en la clase tengo puesto
dos tipos prinicipales de musica la que se repite y no se repite,
¿por qué?, es sencillo, como encolamos los bufferes si especificamos
LOOP al reproducir, al terminar el ultimo buffer se quedaria este
reproduciendo, asi que se comprueba el estado(la clase tiene una
propia maquina de estados) que se encarga si se ha especificado
loop, que al terminar, vuelve al principio y empieza de nuevo.
Ella sola se encarga de poner las fuentes y los bufferes, ademas
para musica lo logico es que no tenga posicion, aunque tambien se le
puede especificar con un tipo que hice llamado localizacion(lo hice
pensando por si un personaje o algo se movia o nos interesaba, por
ejemplo si lleva un walkman o algo por el estilo poder actualizar la
musica o sonido a su posicion correcta).
Por experiencia personal, recomiendo para sonidos pequeños wav, como
pasos, disparor, gritos, ya que alut facilita la tarea, para musica
se usaria lo que tengo hecho con las modificaciones del multihebrado
(de hecho me gusta mas así:)).
Para terminar el ogg reservado , hay dos formas, liberando el
fichero ogg, sin liberarlo, la primera es para cuando no se va a
cargar mas y la segunda la hice principalmente para el loop.
Bueno me voy a poner a trabajar en esto(dadme algunos dias que estoy
de examenes). Cuando lo tenga, si he conseguido que rule el ssh
tratare se subirlo, sino le mandare el codigo a zeru para que lo
ponga él. Venga que ya vereis como queda de PM.
Respecto a optimizar, zeru ha dado la mejor opinion que se podia
dar, optimizar pero al final(ya lo dice un libro que es una obra
maestra game coding complete).(por cierto gcc podra ser muy bueno,
pero te recuerdo que se trata de que tire bien en todos los sitios
posibles, y no todos los compiladores optimizan tanto, así que si
quieres algo que valga para todo, se prodria tratar de hacer una
libreria en nasm..., pero al final, primero que rule el juego).
Tambien he estado pensando en meterle algun efecto chulo, como una
aura o algo, a las unidades mas "bestias"(que bueno es el stencil
buffer).
Tambien estaria bien tratar de organizar la malla para que la pinte
en un vertex array usando triangles_strip(eso si mejoraria un huevo
el pintado), o sino se puede en los modelos debido a la animacion
con huesos, al menos el mapa y edificios sin animacion. He leido un
algoritmo hoy para eso, aunque la verdad no me enterao mucho(maldito
ingles).
Por cierto respecto al nombre llamadme Raistlin Majere(joder que
friki!!!!!!) Eso es todo.
Con respecto a usar ASM en el codigo del War no me parece muy buena idea, porque el War esta pensado para poder ser compilado en el mayor numero de SOs y aquitecturas que sea posible. Es por ello que no usamos DirectX, ni usamos alguna otra libreria que no sea multiplataforma.
Comenzar a meter codigo en ensamblador al proyecto complicaria su mantenimiento, teniendo que reescribir codigo para las distintas plataformas. Ademas me parece que por ejemplo gcc usa internamente fsincos para calcular los senos y cosenos, es decir los compiladores de C++ (al menos gcc) son lo suficientemente inteligentes para optimizar codigo.
<cita>
GCC 3.5 Release Series Changes, New Features, and Fixes:
The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10, log1p, log2, logb and tan mathematical builtins (and their float and long double variants) are now implemented as inline x87 intrinsics when using -ffast-math.
The x87's fsincos instruction is now used automatically with -ffast-math when calculating both the sin and cos of the same argument.
</cita>
Ademas, como ya dijo ethernet (qualopec), hay otras cosas que vale mas la pena optimizar. Y como ya dijo Tei, el cuello de botella esta en otro punto, si queremos optimizar algo deberia comenzar por la parte de OpenGL.
Aun asi pienso que la optimizacion deberia dejarse al final. ¿De que nos sirve Medio War3D optimizado? Seria mejor tener un War3D completo, aunque no este optimizado. Despues podremos ponernos a optimizarlo.
En cuanto a lo del Servidor de sonidos. Eso si merece la pena nuestra atencion, he querido reescribirlo desde hace mucho. El codigo de el reproductor de jgpd16 (Raistmaj) (No se como llamarte, porque no firmaste tu mail, nadie lo hace ) seria de gran ayuda.
Saludos. Piro a dormir, me quede con algunas ideas en cuanto a lo del Servidor de sonidos, pero ya tengo sueño . Mañana continuo este mail .
ZaruGiran
P.D. Raistmaj ya tiene privilegios de escritura en el CVS.