El libro parece ser que es parte de un curso, no he podido saber de cuál, de qué partes se compone ni del orden. Tengo pendiente otro libro que reconocí como parte de la saga, pero tampoco sé mucho más. Quizás algún lector lo sepa, o encuentre la respuesta más tarde.
Habla de la interacción de los jugadores entre otras cosas, los cuales divide en tres tipos; usuario a videojuego, viceversa y videojuego a videojuego. Incluye bastante código de ejemplo, paso por paso bien explicado y con la librería Ogrex (en otra entrada os comento qué es ese bicho). La verdad es que me parece bastante buen libro, de lectura muy recomendada.
Os dejo un "ligero" resumen para que os hagáis una idea de lo que nos cuenta. Son 114 páginas y dividiré el resumen en dos o tres entradas para no hacerlo demasiado largo.
Usuario a videojuego
En este apartado comenta no sólo el teclado y el ratón, sino que da un pequeño repaso por la historia con los joystick, el mando de la nes, las características añadidas. E incluso controladores específicos como son los volantes, alfombras de baile y otros.
La información que proporcionan es recibida por un driver en la unidad central, y para poder hacer el juego independiente de la plataforma, se abstrae usando una API o librería.
En esos momentos se puede ver la principal diferencia entre PC y consola. La consola tiene un número limitado de dispositivos, normalmente el dispositivo va con su propio controlador pero lo usan pocos juegos ya que el controlador suele ser propietario. Sin embargo, el pc no tiene que preocuparse ya que tiene una alta compatibilidad, pero nos deberemos de preocupar por dar alternativas si al dispositivo le falta algún botón, cosa que en las consolas no pasa ya que todos los mandos son iguales.
Una vez escogido una librería (más detalles en el libro), hay dos formas principales de leer los datos, pasiva/buffered o activa/unbuffered (interrupción/encuesta).
- Por interrupción: el dispositivo detecta un cambio de estado y es el encargado de mandar la información. Se queda guardado en un buffer y el juego va leyendo. La ventaja es que si el juego no quiere saber nada del usuario, la información no le llegará. En cambio, hay cierto retraso entre la acción y la lectura.
- Por encuesta: la unidad central pregunta constantemente al dispositivo. Esto se realiza mediante eventos, el dispositivo manda un evento a cada suceso. El tiempo de respuesta es muy rápido, pero no tenemos forma de saber el estado del dispositivo a no ser que nosotros mismos guardemos un buffer y la mantengamos actualizada.
Una vez se tiene la información, toca interpretar los datos, una misma acción puede hacerse de distintas formas y además, tenemos que comprobar que cumplan los requisitos (por ejemplo, que se pulsen todas las combinaciones en un determinado orden). Hay que tener en cuenta que los dispositivos pueden cambiar de un país a otro, como el teclado.
Cheat codes
Uno de los casos más curiosos de secuencias de comandos se encuentra en los conocidos cheat codes, que nos permiten desbloquear trucos y opciones especiales mediante la pulsación de largas secuencias de elementos. Los cheat codes son parte de las herramien- tas que los programadores utilizan a lo largo del desarrollo del juego para poder acceder más fácilmente a determinadas zonas y poder experimentar el efecto de modificaciones puntuales.
De esta parte, lo más difícil es la selección de objetos y para ello se suelen usar máscaras de selección. En 3D es peor que en 2D, pues el método anterior no se puede usar directamente, por lo que usa un Ray Casting. La mayoría de los motores gráficos lo incluyen asi que nos ahorra trabajo.
En la siguiente parte continúo con la parte gráfica y de sonido ;)