PDA

Ver la versión completa : [F200] Control para juegos FPS



Theck
30/11/2007, 12:05
Hola a todos,

Bueno, al final, después de pelearme mucho con mi entorno de desarrollo (lo que tiene no saber que haces realmente [wei]) he conseguido acabar una primerísima versión de algo que me rondaba por la cabeza desde que la F200 salió a la luz.

La idea era aprovechar la táctil de la f200 a "modo de ratón" para poder jugar a juegos de tiros en primera persona. Para ello mi inspiración, como muchos habréis imaginado, era el metroid de DS que aprovechaba la táctil para este propósito.

Lo primero que pensé es que claro, aquí si pones el lápiz te tapas a ti mismo, así que se me ocurrió que se podía designar una "zona caliente" donde la táctil entraría en acción.

Esta zona es 1/4 parte de la pantalla de la consola y la he situado abajo a la derecha, de modo que tape el mínimo pero que no sea tan diminuta que no sea fácil de usar.

Básicamente lo que hace esta zona es que hace que nuestro personaje "mire" donde clicamos. Si arrastramos es como si movieramos el mouse, va cambiando de posición progresivamente, y si hacemos clic directamente en un sitio va allí de golpe.
Además, para poder girar he designado un par de zonas de los laterales para que si estamos allí siga pivotando sobre uno mismo ya que sino no podíamos girar.


Para hacerlo realidad empecé con el voxel del forero Ñuño Martínez , pero como no me aclaraba y recordé que tenía por aquí el yeti3D de aquellas primeras pruebas miré a ver si con él si que podía.

Y pude, así que aquí os traigo una primera versión del concepto para testear, no tanto lo bien que responde, si no hasta que punto es factible jugar de este modo.

Desgraciadamente no he podido programar todo lo que quería y el ansia me ha podido pero para la próxima versión me gustaría cambiar el comportamiento del stick de la GP2X para que haga "strafe" (movimiento en lateral) y así poder emular del todo a los shooters de PC.

Ahora mismo se usa:
Direcciones para avanzar, retroceder y pivotar.
"L" para disparar
Táctil para mirar
Start para salir
"Y" para saltar (por ponerlo en algún sitio, esto aun no lo he mirado)

Bueno, lo dicho, lo importante es la idea más que la aplicación concreta que he hecho ya que está hecho rápido y corriendo para que funcionara.

Pienso que si es más o menos cómodo puede abrir una nueva vía de desarrollo con este tema.

Además, podíamos añadir el "usar" haciendo clic directamente sobre los botones y cosillas así ^^.



Tema código, ahora está hecho "a saco" y debería poner defines y demás para quitar los valores fijos y tal, pero os pongo un poco la coña.

pTactil = ReadTouchScreen();
if(pTactil->Pressed)
{
tX = pTactil->x;
tY = pTactil->y;
}
...
if(tX>=240 && tX<320 && tY>=180 && tY<240)
{
yeti.tactil.x = (tX-240)*4;
yeti.tactil.y = (tY-180)*4;
}
Primero leemos la táctil y solo guardamos la X y la Y si se está presionando sobre la pantalla.
Lo siguiente es lo dicho antes, el if se puede leer como "si estamos haciendo clic sobre la zona designada como <zona caliente>, entonces le decimos al motor que su x e y son lo que leamos x 4". De esta forma se hace un paralelismo con la pantalla real.

Luego dentro lo que hago es comparar la x con la anterior lectura y si ha cambiado pivoto hacia la dirección que toca. Para el ángulo (en Y) he tenido que hacer un apaño a ojo porque no tenía claro en que estaba, porque en grados no era [wei]


EDIT: No me deja subir los archivos, me da error de permisos así que lo subo a otro lao y os dejo vínculo :P

Binario (incluye gpe y exe) (http://www.machinedancezone.net/development/ot/fps2xt.rar)
Fuente (no me hago responsable de mi desorden xD) (http://www.machinedancezone.net/development/ot/Source.rar)

Rivroner
30/11/2007, 12:21
Enhorabuena t&#237;o, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)

chipan
30/11/2007, 12:24
Enhorabuena tío, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)
Y que de paso quiten la obligacion de tener que hacer click con el stick; que jode bastante no poder jugar en la F200

BUHOnero
30/11/2007, 12:24
mmm.... puedes compilarlo para Windows&#191;? ;) me gustar&#237;a probarlo en el portatil :brindis: que no tengo gp2xf200!!

Theck
30/11/2007, 12:26
Est&#225; el .exe y la SDL.dll para poder ejecutarlo al momento dentro del rar del binario ;)


Aprovecho para comentar mis primeras pruebas con el tema. Habr&#237;a que cambiar un poco el c&#243;digo para poder separar de abajo a la derecha la zona caliente ya que parece que la t&#225;ctil con esos &#250;ltimos p&#237;xeles no se lleva muy bien y la parte para pivotar a la derecha no responde tan bien como la de la izquierda.

Tambi&#233;n he visto que por el apa&#241;o del &#225;ngulo en Y, que es a ojo no corresponde del todo el centro del dibujo de la zona caliente con el &#225;ngulo 0, pero eso es porque no se como lo hace el yeti exactamente, a ver si lo corrijo xDDD

Theck
03/12/2007, 20:03
Un :arriba: a esto, ¿alguien lo ha podido probar en la F200?

headoverheels
04/12/2007, 09:47
Enhorabuena tío, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)
Eso es bastante fácil ya que la versión actual del Quake2x soporta ratones USB por lo que el código ya está hecho. Si lo compilas con la última versión de la SDL que soporta táctil, te detecta que no hay ratón USB y puedes usar la táctil para moverte (lo he probado y funciona :) ) Sólo habría que hacer una pequeña modificación para que si juegas con la tactil no dispare cuando detecte la pulsación del botón del ratón.
Otra cosa, ¿por qué decis que no se puede jugar en la F200? para seleccionar las opciones del menú solo hay que pulsar el botón B

tartalo
04/12/2007, 12:30
&#191;Y no sera un poco co&#241;azo tener todo el rato el lapiz y media mano en la pantalla?

No se, pero yo creo que quitara visibilidad en la pantalla aunque todo es probar.
Ademas una mano en el pad, otra con el lapiz... &#191;Y los botones?

Theck
04/12/2007, 18:18
Os pongo una captura para los que no lo hayan ejecutado. La "zona caliente" es el rectángulo de abajo a la derecha que es la que responde a la táctil.

Si ahora intentáis visualizar como coger el lápiz veréis que la parte que tapas de la pantalla es bastante pequeña y por lo tanto no jode la visibilidad casi.

A ver si puedo hacer una foto esta noche o un vídeo jugando y lo veréis en vivo xD

^MiSaTo^
04/12/2007, 18:55
ánimo con esto Theck, yo quiero ver ese vídeo ya que no tengo ni GP2X F200 ni Windows xDDDD

KOLALOKA
04/12/2007, 19:24
Si los FPS usan este control me pillo de cabeza la F200, es lo &#250;nico que me atra&#237;a para poder jugar con ella (ya tengo dos F100).

Animo y suerte.

SAludos

juanvvc
04/12/2007, 19:32
&#191;Y c&#243;mo resuelven el asunto los zurdos? :D El otro d&#237;a me encontr&#233; en no se qu&#233; juego que permit&#237;a cambiar los controles para coger el mando al rev&#233;s, cosa que no se puede hacer en la Gp2x porque tendr&#237;a que poderse ver tambi&#233;n la pantalla al rev&#233;s. Pero ahora no es muy problem&#225;tico porque curiosamente un D-pad suele ser bastante ambidiestro: se maneja con parecida habilidad con la derecha que con la izquierda. Pero este sistema, a menos que permita darle la vuelta a la pantalla, cambiar la zona caliente a la izquierda y los botones usarlos como direcci&#243;n o alguna cosa parecida, no podr&#225; ser aprovechado por los zurdos porque los punteros solo se usan c&#243;modamente con una mano.

tartalo
04/12/2007, 20:00
Haaaaaa.... Ahora entiendo. Yo creia que habria que andar con el puntero apuntando por toda la pantalla.

Como lo planteas tiene mejor pinta.

Animo theck!!!

Theck
05/12/2007, 11:00
Dile a GPH que saque la F201 Leftorium edition xD

Hombre, lo que comentas de usar los botones de direcci&#243;n ser&#237;a lo suyo aunque no se hasta que punto es c&#243;modo, pero vamos, mover la zona caliente es trivial ya que lo &#250;nico que haces es definir una zona y calcular que X y que Y corresponder&#237;an si usamos toda la pantalla.


Perd&#243;n pero aun no hay v&#237;deo, se me olvid&#243; que ayer hab&#237;a concierto de Apocalyptica. De hecho tuve que volver a casa a por la entrada xDDD

Theck
06/12/2007, 13:55
Ahora si, esta mañana, al son del mítico humor amarillo (no pensaba que se fuera a escuchar tanto xD) hemos grabado el vídeo y aquí os lo presentamos.

http://www.youtube.com/watch?v=7GCQSOE0O9Y

Nota: Sobre lo cómodo comentar lo que no se ve en el vídeo. Yo la mano derecha la pongo de forma que el dedo meñique queda debajo de la consola, no es una posición incómoda aunque pueda parecerlo y de esta forma se queda bastante estable.

^MiSaTo^
06/12/2007, 13:58
Ahora si, esta mañana, al son del mítico humor amarillo (no pensaba que se fuera a escuchar tanto xD) hemos grabado el vídeo y aquí os lo presentamos.

Nota: Sobre lo cómodo comentar lo que no se ve en el vídeo. Yo la mano derecha la pongo de forma que el dedo meñique queda debajo de la consola, no es una posición incómoda aunque pueda parecerlo y de esta forma se queda bastante estable.

jope está super bien!!!!

Lo único... yo le pondría la opción de que hubiera una mirilla en la pantalla o algo así.
Pero vamos eso es mi opinión porque a mi me gustan las mirillas xDD
O bueno si no una mirilla, que se vea el final del arma a lo Doom/Wolf3D/Quake...

Theck
06/12/2007, 14:01
Si, es una cosa que ya me han dicho varios pero repito que mi idea era demostrar que se puede hacer un control "estandar" para programar juegos en vista subjetiva o algo parecido (alguien ha dicho minimapa para juegos de estrategia? xD) no hacer un juego de verdad.

Ahora mismo tengo otros proyectos que me impiden meterme en algo as&#237; aunque siempre se puede aprovechar la demo esta del yeti3D, que adem&#225;s viene con editor de niveles y hacerlo m&#225;s jugable :D

EDIT: De hecho, os pido a los que teng&#225;is F200 que prob&#233;is el programa porque lo que m&#225;s me interesa es saber los arreglos de usabilidad que habr&#237;a que hacerle al concepto.

^MiSaTo^
06/12/2007, 14:04
Si, es una cosa que ya me han dicho varios pero repito que mi idea era demostrar que se puede hacer un control "estandar" para programar juegos en vista subjetiva o algo parecido (alguien ha dicho minimapa para juegos de estrategia? xD) no hacer un juego de verdad.

Ahora mismo tengo otros proyectos que me impiden meterme en algo así aunque siempre se puede aprovechar la demo esta del yeti3D, que además viene con editor de niveles y hacerlo más jugable :D

EDIT: De hecho, os pido a los que tengáis F200 que probéis el programa porque lo que más me interesa es saber los arreglos de usabilidad que habría que hacerle al concepto.

También tienes razón, lo tuyo es solo lo del control.
Lo de poner el área de "movimiento" en una esquina me parece una idea genial. No me imaginaba como era hasta que no lo he visto.

KOLALOKA
06/12/2007, 14:10
Ke juego es ese ke tiene una pinta estupenda.

Saludos.

Theck
06/12/2007, 14:18
El motor yeti3D viene ya con una demo de lo que puede hacer el motor. B&#225;sicamente es un cargador de niveles (que como he dicho ya, hay editor de estos inclu&#237;do) los controles b&#225;sicos (moverse, disparar y saltar) y un enemigo con una IA sencilla (los franquenstein esos).

seifer3x
06/12/2007, 14:52
WOW!
Impresionado estoy ,de veras.
La verdad es que es una de las ideas que se me vino a la cabeza al pensar en el uso de la tactil,pero no se me ocurrio la solucion que has dado y pense que seria muy lioso y quitaria mucha visibilidad.
Tras ver el video veo que es viable,incluso util y divertido.Mi enhorabuena!.
Como pega... haznos feliz a los zurdos del mundo... jeje
que se pudiera elegir entre esa configuracion o al contrario,moverse con los botones,disparar con el gatillo r y el cuadrado para la tactil en la otra esquina.
Pero por lo demas muy buena idea.:brindis:

tartalo
06/12/2007, 16:45
Pues si, tiene muy buena pinta.

Haaaaa k bonita es la F200!!!! A ver si cae estas navidades con la paga extra.

miguel_figo
06/12/2007, 18:28
pero asi los surdos que tenga poca destresa con la mano izquierda no podran utilizarla. deberian poner una opcion de cambiar el recuadro a la izquierda

Rivroner
25/01/2008, 04:06
&#191;C&#243;mo va esto Theck? Este proyecto es de lo m&#225;s interesante que hay en estos momentos, puedes pegar el pelotazo si lo perfeccionas y si alguien lo compila para el Quake por ejemplo :)

Theck
25/01/2008, 11:05
La cosa es que en si, el proyecto ya estaba acabado. Mi intenci&#243;n nunca ha sido hacer un juego entero, tengo otros proyectos que ya me consumen casi todo el tiempo del que dispongo para estas cosas.

Este test de concepto era una cosa que en un par o tres de d&#237;as pod&#237;a estar hecho y eso s&#237; me lo pod&#237;a permitir, as&#237; que pens&#233; que si se demostraba que era posible un control basado en esta idea, quiz&#225; alguien si se animar&#237;a a empezar un proyecto contando con ello.

Ahora que ha salido esa nueva versi&#243;n quiz&#225; me animo un d&#237;a a portar lo hecho aqu&#237; a ese c&#243;digo a ver si la mejora de rendimiento tambi&#233;n hace que aun vaya mejor el tema del control, que a fecha de hoy no respond&#237;a lo bien que deber&#237;a (m&#225;s que nada porque estaba hecho a lo burro).


A ver si alguien te oye con lo del quake xD

Rivroner
25/01/2008, 14:09
Ya, si no te pido que hagas un juego :D, s&#243;lo que lo metas en el c&#243;digo del Quake :D

Lo que voy a hacer es publicitarlo en gp32x, que igual alguien se anima :D

Con tu permiso claro ;)

Si eso pon el &#250;ltimo c&#243;digo fuente y ejecutable (por si no lo has puesto digo) y as&#237; lo cuelgo por all&#237; :)

Muchas gracias por el curro colega :)

Multi
07/04/2008, 17:47
Perd&#243;n por el reflote, pero... He probado tu juego Theck, y me ocurre un problema.

Es normal que la pantalla gire sin parar a&#250;n teniendo el stylus en el cuadrito ese de abajo a la izquierda?

Theck
08/04/2008, 16:45
Si, es normal y est&#225; buscado. Lo que hace el c&#243;digo es poner la vista en el punto que tu marcas, de modo que si le das arriba mirar&#225; hacia arriba, si lo pones a la derecha, hacia la mitad mirar&#225; un poco a la derecha, pero... como girar&#237;as?

Falta comentar que como habr&#225;s le&#237;do por este tema me falt&#243; reprogramar la cruceta para que hiciera strafe al dar a los laterales.

La manera fue esa, que la &#250;ltima porci&#243;n de la zona caliente hiciera girar hasta que sac&#225;ramos el stylus de ella.
En la derecha tambi&#233;n pasa, lo que por las limitaciones de la t&#225;ctil no llega a pillar nunca que est&#225;s a la derecha del todo (quer&#237;a programar el poder mover la pantallita un poco m&#225;s separada del margen).

Ñuño Martínez
08/04/2008, 19:37
Para hacerlo realidad empecé con el voxel del forero Ñuño Martínez , pero como no me aclaraba y recordé que tenía por aquí el yeti3D de aquellas primeras pruebas miré a ver si con él si que podía. Jopé, me has hecho feliz, macho. Lamento que no te haya servido, pero gracias por pensar en mi. :) A ver si ahora que por fin tengo un cuchitril puedo trabajarmelo más.

En cuanto a la demo: sigue currando porque tiene buena pinta.