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

Temas - LC0

#21
General Programadores / Add-ons De Ogre Precompilados
14 de Mayo de 2006, 06:11:50 PM
 Hola a todos,

Pues resulta que quería preguntar si hay para descarga en algún sitio los addons de Ogre precompilados para Windows, en concreto el dotsceneoctree. O, al menos, soporte por algún sitio para poder ser compilados vía MinGW.

El caso es que he preguntado en el IRC y he buscado en el Wiki/foros, pero nadie parece saber nada al respecto y yo parezco no encontrar nada.

El tema es que el addon que necesito (el dotsceneoctree, como dije antes :)) viene únicamente preparado para los Visual Studio. Sí tiene los scripts de las autotools para Linux,  por ello, en un principio no debería haber problema para ser compilado a través de MSYS, pero se ve que no. Al principio, ocurría que no tenía instalado libtool, problema fácilmente resoluble ya que hay un paquete para instalarlo del tirón en Windows, pero al hacerlo, surgieron más y más trabas...

Lo compilaría en Linux, pero es que por cuestiones de la vida tengo que empezar a desarrollar este pequeño proyecto en Windows.

De antemano, muchas gracias.

PD: Espero poder mostrar un screenshot "prematuro" pronto.
#22
 No se si catalogar esto como una cuestión de programación o de parapsicología, pero bueno, ahí va:

A principios de año estuve terminando de realizar mi PFC bajo una Kubuntu, en su versión para amd64, usando C++, Flex, Bison, y la biblioteca wxWidgets, fundamentalmente (también alguna que otra extensión GNU a las bibliotecas estándar).

Ahora tengo una Fedora Core 4 para x86, que es la que mejor va en mi portátil (amén de ser en la única donde he podido instalar los drivers para la ATI bien), y, por cuestiones de la vida, necesito otra vez el proyecto para presentarlo en unas jornadas.

Tras meter todas las bibliotecas necesarias, recompilo, y todo parece funcionar a la perfección. Pero nada más lejos de la realidad.

El bicho en cuestión es un intérprete de diagramas de flujo, que los compila a código de una máquina virtual interna, y los ejecuta y depura. El problema está en que, en la Kubuntu, todos los diagramas que vienen incorporados como ejemplos funcionan a la perfección, pero en la Fedora, la compilación de algunos hace que la aplicación lance un "segmentation fault".

Descartando potenciales sospechosos:

-No tiene que ver nada con el paso de un sistema de 64 bits a uno de 32: La aplicación la he testeado en otra Kubuntu de la misma versión que tenía antes en el portátil (Breezy) para x86, y no da este problema. Además, he tenido especial cuidado de no usar tipos de datos que abarquen 8 bytes (el wxWidgets trae tipos como wxInt32, wxInt8, etc.)

-Tampoco tiene que ver con diferencias entre versiones instaladas. Viendo los changelogs oportunos, nada indica que sea el caso.

Intenté compilar el binario enlazando estáticamente las librerias, pero me fué imposible por varios problemas que no son el caso (además, si el bicho está liberado como GPL, todo el mundo debería poder compilarlo sin efectos raros :D).

Así que, nada, tocó depurar. No usé el gdb porque contiene código "raro" (niños, jamás depureis código generado por Bison/Flex xDD), así que tocó usar el típico método de los mensajes estilo "hasta aquí llego".

Ahora viene lo gracioso. Insertando e insertando estas líneas, acabé llegando donde podría estar localizado el problema. Pero, la colocación de una de estas ha servido de solución. Es decir, un std::cout ha hecho que la aplicación deje de salirse abruptamente :ph34r:.

En concreto, el cacho código es este:


       //...
else if(Pos >= 0 && NodeMemoryPos.at(Pos) < 0)
{
 NodeMemoryPos.at(Pos) =  vm.getMemorySize();
 n->translate(vm);
               std::cout << "N DE HIJOS: " << n->getNumChildren() << std::endl; //<--Mi héroe particular
 if(n->getNumChildren() == 2)
 {
  Instr.Func = jnz_ax;
  vm.putMemoryCell(Instr);
  InstrPos = vm.getMemorySize() - 1;
 }
              //...
      }
      //...


Se me han venido a la cabeza varias teorías de por qué podría estar ocurriendo esto, pero las encuentro tan absurdas que prefiero callármelas (ya sabeis, es mejor estar callado y parecer tonto que abrir la boca y demostrarlo xD).

¿A alguien le ha pasado algo por el estilo? ¿Alguien sabría decir que podría estar ocurriendo?

De antemano, muchísimas gracias, y sobretodo, por haber leido hasta aquí :).

EDIT: Perdón por la identación, que parece que se ve un tanto amorfa...
#23
Off-topic / Música Estilo "noche De Fiesta" Libre
29 de Marzo de 2006, 11:03:37 AM
 Bueno, para mi pequeño proyectillo del Pyweek, necesitaría música libre de ese estilo, a lo Broadway o a lo "Noche de Fiesta", pero googleando y buscando en musicalibre.es y jamendo.org no he tenido mucha suerte (es comprensible xD).
¿Alguien sabría donde hay?
De antemano, mil gracias.
#24
Off-topic / Viva La Honestidad
15 de Marzo de 2006, 01:36:37 PM
 Después de lo del "Get The Facts!!", no me esperaba que los de Microsoft acabaran confesando:

http://es.gizmodo.com/2006/02/24/windows_v...ue_windows.html

(uoh)  
#25
General / Movil+kota En A3
09 de Marzo de 2006, 03:56:41 PM
 Pues resulta que, mientras estaba almorzando, me puse a ver los Simpson. Y, en esas interminables tandas de anuncios, pusieron un anuncio de la distribuidora de pijadillas para móvil propia de A3, vendiendo el juego.
Ya ha salido hasta en periódicos, lo sé. Pero aún así, ¡enhorabuena! ;)
#26
Industria y mercado / Curiosa Oferta De Trabajo
01 de Febrero de 2006, 12:16:53 PM
 He visto en portada una curiosa oferta de empleo que me ha llamado la atención :D.

Citar
NECESITAMOS 4 INGENIEROS DE SISTEMAS EXPERTOS EN DISEÑO DE SOFTWARE O PROGRAMACION DE VIDEO JUEGOS MODERNOS PROFESIONALES.

¿Ingenieros de "Programación de Videojuegos Modernos Profesionales"? No se yo, pero me parece a mi que esa titulación no existe xDDD.

Citar
CONOSCA MUY EXELENTE EL LENGUAJES DE SCRIPT.

¿Lo cualo? Imagino que querrá decir "tenga conocimientos en lenguajes de script". Pero... Que digo yo que es imposible conocer y tener experiencia a la vez en TODOS los lenguajes habidos y por haber, ¿no? Vamos, si hubiera un número fijo y pequeño de lenguajes, pues mira, pero...

Citar
CONOCIMIENTOS AVANZADOS DE PROGRAMACIÓN 3D, WIN32
Se ponen en la oferta  el tipo de conocimientos que se requieren en forma de "lista". El caso es que el API de Win32 lo pedían más abajo:
Citar
CONOCIMIENTOS DE LAS APIS: WIN32, MFC, GDI+, ETC.
Es como si relacionara la programación 3D con Win32... Esperemos que no.

Citar
TODO 100% LEGAL.
Uyuyuyyyy... que mal rollo me ha dado esa frase :D.

Citar
UNETE Y PROGRAMA PARA EL PS3, PC Y XBOX 360.
¿Y no te piden tener conocimientos de programación para las anteriores PS y la anterior XBOX?

Citar
SE EXIGE PROFESIONALISMO Y UNA EXPERIENCIA LABORAL, MINIMA DE 5 AÑOS, EN EL DISEÑO DE SOFTWARE PROFESIONAL.
APARTE DE TODO, TAMBIEN SE EXIGE QUE PROGRAME EN 3D COMO EN 2D Y CONOSCA C++ MUY BIEN.
Eso es dominio del lenguaje de Cervantes, y lo demás son tonterías xDDD.

¿Y me lo parece a mí o esta gente piden a un guru sobrehumano ?:D

Y otra cosa, ¿sabrá el hombre que ha enviado esto lo que es la netiqueta ? :D  

En fin, resumiendo, que me parece a mi que esta gente no sabe la responsabilidad a desempeñar en la empresa por parte de los candidatos.

Un saludo.
#27
 Al hilo de que ha salido una nueva versión de CrystalSpace, me he dado cuenta de la existencia del Crystal Entity Layer (CEL).

Siempre que me había puesto a navegar por la página veía el enlace y no me llamaba la suficiente atención para pincharlo, pero parece ser que debería haberlo hecho antes: Es una capa de abstracción de CS para hacer más cómoda la programación de juegos (o lo que sea) usando este engine.

Me gustaría saber si alguien lo ha usado y sus impresiones, ya que con CS tengo una relación de amor/odio :D (si de verdad facilitara su uso, pues, como diría Disco Stu, "heyyyy!!!!")

De momento, he echado un pequeño ojo a la documentación y no tiene mala pinta.

Hasta otra.
#28
Off-topic / Penoso
09 de Octubre de 2005, 03:31:21 PM
 Ganas de vomitar me han entrado al ver el último anuncio que han hecho esta gente de "Las Dos Torres".
Por si alguien no lo ha llegado a sufrir, se ven imágenes de la película mientras suena la música de "La Pasión de los Palomos" o como se llame, y al final Gollum diciendo "es que es tan guapo...".

Lo más gracioso es que si yo o cualquiera montáramos una agencia de publicidad, y anunciáramos "Salsa Rosa" o "Corazón de Tomate" y cosas de esas poniendo la canción de "Welcome to the Jungle", nos tirarían el prototipo a la cara y nos echarían a patadas .

Me quedé sin habla cuando lo ví. Y todavía me dura la consternación, así que demasiadas palabras me han salido ya...
#29
 Hola.

No se si alguien se acordará del último post que puse por aqui: Hablaba de una especie de biblioteca cutre orientada a juegos para el envío de datos a través de la red, y trataba de implementarla usando SDL_Net.

Mi objetivo inicial era usar una biblioteca de sockets totalmente multiplataforma sin tener que recurrir a los sockets BSD, ya que, si se diera la casualidad de que a alguien le diera por usarla, mayormente la querría para trabajar sobre Windows).
Como se ve que la opción de la SDL_Net no ha sido posible (me estaban saliendo unos problemas rarísimos que no había por donde cogerlos), me puse a indagar y a buscar otras biblioteca para esto. Con todas las que probé, el fracaso fue rotundo.

Asi que decidí volver a los sockets BSD, ya que, por lo visto, estoy condenado a volver a ellos. Probé el mini-protocolo para que un jugador se una a un servidor con un amigo que también tiene Linux y funcionó perfectamente.

Esta biblioteca envía y recibe internamente char*'s mediante udp. Mi pregunta es... ¿podré portarla a Windows a la perfección cambiando simplemente las cabeceras por winsock.h y llamando al WSAStartup, o me toparé con algún bache añadido e inesperado? ¿Alguien ha tenido la experiencia de hacer algo parecido a esto? (es decir, hacer algo con los sockets bsd bajo Linux y luego portarlo a Windows)

Gracias de antemano again :).
#30
Programación en red / Sdl_net Y Servidor-cliente En Local
24 de Septiembre de 2005, 04:52:13 PM
 Hola.

Tendré que reescribir esto desde cero, ya que antes se me cerró el navegador misteriosamente, pero bueno, ahí va  (nooo) :

Estoy metido en un pequeño proyecto de una biblioteca de red para juegos, básicamente en tiempo real (vamos, UDP), implementándola a partir de la biblioteca SDL_net.
El caso es que antes estaba haciéndola con los sockets BSD, pero decidí cambiar ya que portar estos a Windows no es tan sencillo como en un principio me parecía.

A la hora de hacer la prueba fatal (ejecutar el servidor, luego el cliente y, tras mandarle este último un mensaje, el servidor imprime "Recibido, líder rojo"). Esta prueba la he reducido a que el servidor espere que un jugador se conecte, y que, cuando ocurra, este envie una petición para unirse al juego y el servidor se ponga contento al descubrir que no está solo en el universo, y aceptarle en la partida.

Con los sockets BSD no había ningún problema al hacer esto (ya digo, tanto cliente como servidor bajo el mismo ordenador), pero con SDL_net, el cliente se aborta abruptamente con un flamante "SDL Parachute Deployed". Si hago que el puerto del socket del servidor sea diferente al del cliente, elimino este fallo; pero claro, obviamente, el mensaje no llega a recibirse.

Mi pregunta es: ¿Estoy haciendo algo mal o realmente tendré que comprarme un portátil, instalarme una máquina virtual como Quemu, o depender de algún amigo para realizar las pruebas, para ejecutar al cliente y al servidor en diferentes máquinas?

Os pongo los trozos de código relevantes.

Este de aquí es el servidor:

int main(int argc, char** argv)
{

 GDServerr Serverr;
 Serverr.startServer();
 while(1)
Server.adminIncomingConnections();

 return 0;
}


El miembro adminIncomingConnections:

void GDServer::adminIncomingConnections()
{
UDPpacket p;
if(SDLNet_UDP_Recv(SocketConnections,&p))
{
 std::cout << "Mensaje de conexión recibido: " << (int)p.data[0] <<  std::endl;
 if(CurrentClients<MaxClients)
 {
  CurrentClients++;
  Sockets.push_back(SDLNet_UDP_Open(p.address.port));
  SDLNet_UDP_AddSocket(SocketSet,Sockets[Sockets.size()-1]);
 }
}
}


El cliente:

int main(int argc, char** argv)
{

 GDClient client;
 if(!client.connect("127.0.0.1"))
cout << "Fallo en la comunicación con el servidor" << endl;
 
 return 0;
}


Y el método connect:


//Connection to a server
bool GDClient::connect(const char* dir,int timeout,int port) /*throw(GDError)*/
{
AdminSocket=SDLNet_UDP_Open((Uint16)port);

IPaddress Ip;
SDLNet_ResolveHost(&Ip,const_cast<char*>(dir),(Uint16)port);

int channel=SDLNet_UDP_Bind(AdminSocket,-1,&Ip);
if(channel==-1)
 std::cerr <<"GDClient::Connect(): No se pudo crear canal. "<< SDLNet_GetError() << std::endl;
UDPpacket* packet=SDLNet_AllocPacket(sizeof(Uint8));
packet->data[0] = GD_NETMSG_CONNECT;
if(!SDLNet_UDP_Send(AdminSocket,channel,packet))
 std::cerr <<"GDClient::Connect() : No se pudo enviar mensaje. "<< SDLNet_GetError() << std::endl;


Uint32 t1=SDL_GetTicks();
while(SDL_GetTicks() - t1 <= (Uint32)timeout)
{
 if(SDLNet_UDP_Recv(AdminSocket,packet))
 {
  SDLNet_FreePacket(packet);
  return true;
 }
}

SDLNet_FreePacket(packet);
return false;

}


Muchísimas gracias de antemano :).
#31
 Saludos a todos.
Me ha dado por empezar a investigar un poco  en el asunto de los scripts en Python de Blender.
Así que he decidido crear uno de prueba, donde se coge una malla de la escena y se guarda en un formato muy muy muy simple: un fichero de texto con las coordenadas de los vértices de cada cara.

De este modo, he creado también un pequeñísimo programa que, con la ayuda de sdl y opengl, visualiza los objetos generados en este formato.

El problema es que parece que los vértices de las caras no son los adecuados, con lo que se observa que la forma del objeto es la adecuada, pero, internamente, el cúmulo de vértices es extrañísimo:

(El objeto que se observa en la imagen es la cabeza de Mono "estándar" de Blender :) ).

Os posteo aquí el script y el visualizador:


from Blender import *
import sys

def grabar():
obj = NMesh.GetRaw("Suzanne")
f=open("bicho2.3dt","w")
for i in obj.faces:
 print len(i.v)
 for j in range(len(i.v)):
  f.write(str(i.v[j].no[0]) + '\n')
  f.write(str(i.v[j].no[1]) + '\n')
  f.write(str(i.v[j].no[2]) + '\n')      
  f.write(str(i.v[j].co[0]) + '\n')
  f.write(str(i.v[j].co[1]) + '\n')
  f.write(str(i.v[j].co[2]) + '\n')
     
       

f.close()


grabar()




int main(int argc, char *argv[])
{
cout <<"Initializing SDL." << endl;

if(SDL_Init(SDL_INIT_EVERYTHING)< 0)
{
 cerr <<"Could not initialize SDL:" << SDL_GetError() << endl;
 SDL_Quit();
}

SDL_GL_SetAttribute(SDL_GL_RED_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,8);

SDL_Surface* Video=SDL_SetVideoMode(800,600,32,SDL_OPENGL |SDL_HWSURFACE| SDL_HWPALETTE/*|SDL_GL_DOUBLEBUFFER*/);
if(Video==NULL)
{
 cerr << "Error en modo de video:" << SDL_GetError() << endl;
}

double x=0, y=0;

glEnable(GL_SMOOTH);
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
   gluPerspective( 45.0f, 640.0f / 480.0f, 0.1f, 100.0f);

int e=0;
bool fin=false;
SDL_Event evento;
double d=1;

ifstream fich("bicho2.3dt");
vector<Coord> objeto;
double coordx, coordy,coordz;
while(fich >> coordx >> coordy >> coordz) //Colorear cada cara con un tono grisáceo: MUY LENTO, pero, como esto es solo una prueba...
{
 objeto.push_back(Coord(coordx,coordy,coordz,rand()%255));
 srand(SDL_GetTicks());
 SDL_Delay(1);
}

while(!fin)
{
 
 SDL_PollEvent(&evento);
 if(evento.type==SDL_KEYDOWN)
  if(evento.key.keysym.sym==SDLK_LEFT) x-=1.5;
  else if(evento.key.keysym.sym==SDLK_RIGHT) x+=1.5;
  else if(evento.key.keysym.sym==SDLK_UP) y+=1.5;    
  else if(evento.key.keysym.sym==SDLK_DOWN) y-=1.5;    
  else if(evento.key.keysym.sym==SDLK_ESCAPE) fin=true;
 
 
 if(SDL_MUSTLOCK(Video)) SDL_LockSurface(Video);

 Uint32 color_pixel=SDL_MapRGB(Video->format,255,0,255);
 
 glClear(GL_COLOR_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 glPushMatrix();
 glTranslatef(0.5,0.5,y);
 glRotatef(x,0.0,1.0,0.0);
 vector<Coord>::iterator i=objeto.begin();


 while(i<objeto.end())
 {
  glDisable(GL_CULL_FACE);
  glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);  
  glBegin(GL_TRIANGLES);  
   glColor3ub(i->color,i->color,i->color);
   glNormal3f(i->x,i->y,i->z);
   i++;
   glVertex3f(i->x,i->y,i->z);
   i++;
   glNormal3f(i->x,i->y,i->z);
   i++;
   glVertex3f(i->x,i->y,i->z);
   i++;
   glNormal3f(i->x,i->y,i->z);
   i++;
   glVertex3f(i->x,i->y,i->z);
   i++;
  glEnd();  
 }

 glPopMatrix();
 
 SDL_GL_SwapBuffers();  
 if(SDL_MUSTLOCK(Video)) SDL_UnlockSurface(Video);

 
}

SDL_Quit();
return 0;
}


A ver si podeis ayudarme, porque esto, que es tan sencillo, me trae de cabeza. De antemano, muchas gracias.

PD: Perdón por la identación: Los ficheros originales están bien identados, pero al pasarlo aquí, he hecho (y me ha hecho :D) cosas raras, y no tengo demasiadas ganas de retocarlo todo ahora.
#32
General / Gameinstitute.com
31 de Julio de 2005, 03:57:00 PM
 Muy buenas.
Estaba mirando los cursillos y seminarios que se imparten en GameInstitute (aunque en inglés, permite hacer cursos a distancia sobre programación de videojuegos) y, a simple vista, parecen estar muy bien, añadiendo la comodidad de estudiar en tu propia casa y siguiendo tu planning, paralelamente a tu actividad profesional no-virtual :D.
Mi pregunta es que si alguien ha tenido experiencias con esto, y si, efectivamente, va más allá del típico tutorial que puedes bajarte de internet totalmente gratuito.
Es de pago, pero obtienes un título que puedes añadir al currículum (ya sabeis, por aquello de la "titulitis" :D). ¿Merece la pena pagar?¿No es una estafa, en el sentido de que los servicios que te proporcionen sean de pésima calidad?
Gracias de antemano y saludos.
#33
General / Posible Solución
24 de Julio de 2005, 02:41:46 PM
 Hola.
Yo tuve que configurar ese módem en el ordenador de un familiar. Hice todo lo posible, me lei 500 howtos, etc. Pero nada de nada.
A final, parece que la solución es, efectivamente, esa, echar mano de pppoe, en lugar de pppoa, como suele ser lo habitual (Timofónica llevando la contraria, como siempre).
No he podido probarlo porque este familiar está de viaje, pero mírate este link, que parece que es la solución a todos tus males (y a los mios :D).
Lo malo es que está en mallorquín, pero vamos, es entendible.
Ya contarás.





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.