Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Metiendome En El Tráfico

Iniciado por ProD, 29 de Marzo de 2005, 12:13:30 PM

« anterior - próximo »

ProD

 Hola buenas a todos!, desde hace un tiempo llevo desarrollando un simulador de conducción y bueno
la verdad que está quedando bastante chulo. Lo que me trae esta vez al foro es un problemilla que tengo
con el tráfico manejado por la IA. Digamos que ya tengo mis coches por ahí rulando, siguiendo sus trayectorias, respetando las señales... pero ahora el problema lo tengo al integrar el coche conducido por el usuario!. Más o menos lo tengo medio resuelto pero quería que alguien me aconsejara o me diera alguna idea de como hacer que los coches de IA respeten al coche "humano". Tal y como tengo montado el sistema soy capaz de saber que coches pasan cerca del coche manejado por el usuario y decirles que paren cuando estén a una cierta distancia de dicho coche, pero claro el problema de esto es que si un coche IA pasa al lado del nuestro también se para y eso no es admisible! he probado con intersecciones ray-box, es decir, lanzando un rayo desde el coche IA en la dirección de su eje Z (uso Direct3D) para ver si intersecciona con el bbox del coche manejado por el usuario.. pero no funciona muy bien (¿quizá no le esté dando la dirección correcta al rayo?) así que a ver si alguien me guía un poco. Saludos y muchas gracias.
as ideas son capitales que sólo ganan intereses entre las manos del talento

gdl

 Hola ProD,

Te lanzo unas ideas a ver si alguna te sirve: :P

- Hacer que el coche IA no varíe su comportamiento hasta que se choque o esté muy cerca o en rumbo de colisión.

- ¿Probaste algo de dead reckoning? Me refiero, puedes adelantar la posición de los coches y, si en el futuro, se chocan entonces los paras.

- SI los coches IA tienen rutas determinadas, puedes saber cuándo estarán en qué punto y si el coche del jugador está cerca de uno de esos puntos, tomar medidas.

- No parar los coches de IA sino que reaccionen de otra forma. Por ejemplo, poniendo el mismo lado que el que enseña el coche del jugador en esa dirección. (Es lo que se usa en los barcos, tienen una bombilla roja en babor y una verde en estribor. Si crees que te la vas a pegar con otro barco en la noche, sólo tienes que poner tu bombilla del mismo color que la que veas en esa dirección)

- Siempre puedes hacer "trampa" haciendo que un coche desaparezca cuando no se ve o aparezca cuando tampoco se ve. ;)

- Ya que paras el coche de IA puedes apretarle las tuercas al jugador haciendo que toque el cláxon. (Eso daría mucho realismo tal y como están hoy en día las ciudades). (twist)

Ya no se me ocurre más... si me volviese la inspiración, te lo cuento aquí.

CoLSoN2

 
Cita de: "ProD"he probado con intersecciones ray-box, es decir, lanzando un rayo desde el coche IA en la dirección de su eje Z (uso Direct3D) para ver si intersecciona con el bbox del coche manejado por el usuario.. pero no funciona muy bien (¿quizá no le esté dando la dirección correcta al rayo?)
Pues algo debes hacer mal ahí, porque si lanzas un rayo en la dirección que apunta el coche:
1) recibirás colisiones si está cerca por delante o por detrás (lo que quieres)
2) no recibirás colisiones si está cerca de lado (lo que no quieres)

Luego ¿cuál es el problema?
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

ProD

 Gracias chicos!! ya lo tengo resuelto... estaba haciendo bien el raytracing, simplemente es que no tenia bien posicionado el bbox del objeto al que quiero que le de el rayo! gdl, la verdad que algunas de tus ideas ya me habian pasado por la cabeza... incluso he probado a meterle una fuerza al coche cuando éste choca con otro xDD la verdad que quedaba chulo.. pero de momento no lo voy a poner... no quiero fomentar el desastre en el simulador!. Gracias de nuevo y saludos
as ideas son capitales que sólo ganan intereses entre las manos del talento






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.