Video juego en un PAC usando RFB

Error message

  • Notice: Undefined index: taxonomy_term in similarterms_taxonomy_node_get_terms() (line 518 of /home/venydivi/public_html/automatizanos/sites/all/modules/similarterms/similarterms.module).
  • Notice: Undefined offset: 0 in similarterms_list() (line 221 of /home/venydivi/public_html/automatizanos/sites/all/modules/similarterms/similarterms.module).
  • Notice: Undefined offset: 1 in similarterms_list() (line 222 of /home/venydivi/public_html/automatizanos/sites/all/modules/similarterms/similarterms.module).
administrador's picture
Imagen video juego clasico implementado en PAC usando

PROTOCOLO RFB

El protocolo RFB o "Remote Frame Buffer" por sus siglas en Ingles, fue creado por por el Laboratorio de Investigacion de Olivetti (ORL) para manejo remoto de monitores. La idea era que el protocolo fuera lo mas simple posible para que cualquier cliente ligero, sin muchas prestaciones pudiera interpretarlo. Entre sus funciones mas simples se tiene las de dibujar rectangulos, especificando basicamente 5 parametros posicion x, posicion y, ancho , alto y color. De esta forma una imagen, se puede descomponer en rectangulos, enviar unicamente los 5 parametros de cada rectangulo, y no tener que transmitir pixel, por pixel la imagen del escritorio del servidor RFB al cliente ligero, ahorrando ancho de banda.

* This article is also available in English clicking here

SERVIDOR RFB

La principal utilidad en la actualidad de un servidor RFB es tomar la imagen actual del escritorio (ventanas, menus, iconos,aplicaciones) y enviarla al cliente remoto, asi como capturar las acciones del cliente remoto (movimientos del raton, pulsacion de teclas) y enviarlas al escritorio. Sin embargo, puesto que el protocolo es independiente de cualquier sistema operativo se puede utilizar este para generar contenido en el cliente que no necesariamente existe de forma grafica en el servidor. Un ejemplo clasico de ello es un servidor de juegos, en donde en el servidor no hay pantalla, ni tarjeta grafica, ni controles, ni teclado, solamente procesamiento y un canal de comunicaciones, es en el lado del cliente (jugador) donde se encuentra la tarjeta grafica y monitor asi como teclado y controles.

IMPLEMENTACION EN PAC

Para desarrollar un servidor de aplicacion RFB es necesario contar con algun tipo de conexion de red, y algun medio para realizar programas que puedan enviar y recibir paquetes de red. Existen ejemplos de aplicaciones RFB en este caso un contador que puede ser compilado en cualquier computador con un compilador de C, hasta casos un poco mas extremos en donde un modulo ESP8266 es usado como servidor RFB.

Un PAC (en esta ocasion el SNAP UP1 ADS de Opto22 ) posee estas caracteristicas, Si no se posee un PAC fisico, se puede recurrir al simulador gratuito PAC Sim

PAC OPTO22 SNAP UP1 ADS usado para ejecutar la aplicacion de videojuego mediante RFB

PROGRAMACION OPTOSCRIPT Y FLOWCHART

La programacion se realizo mediante la suite gratuita PAC Control para Windows. No existe aun una herramienta oficial para programar un PAC Opto22 mediante Linux, sin embargo, dado que la estrategia realizada de control que se envia al PAC es un archivo de texto cuyo contenido esta codificado en FORTH no deberia ser muy dificil desarrollar una alternativa. El esquema de programacion es mediante "flowcharts" o diagramas de flujo. Se pueden crear varios de estos diagramas y ser ejecutados "en paralelo", de esta forma se puede facilmente separar la logica del juego de la implementacion del protocolo RFB. Una de las grandes ventajas de los PAC versus PLC ( aunque las diferencias cada vez son menores ) esta en la capacidad de utilizar primitivas basicas de red, que pueden servir para construir protocolos que no vienen implementados de fabrica como el RFB, en este caso las primitivas para crear sockets tanto en modo cliente como en modo servidor.

La logica del juego, ubicacion de las paletas, movimiento de la bola, deteccion de colisiones, puntajes, son realizados por un "chart" o una tarea independiente, de forma tal que el juego podria ser accedido por otros medios y o protocolos como mediante entradas digitales, o usando un SCADA mediante modbus, etc. El juego es para un solo jugador remoto y existe un pequeño algoritmo "inteligente" que hace las veces de computadora oponente.

En la implementacion del protocolo RFB se utilizaron muchos "atajos", muchas respuestas y peticiones del cliente son ignoradas, se configuro una paleta de colores simple, ademas se uso un tipo de codificacion de rectangulos que no permite graficos muy avanzados.

Programacion del videojuego mediante PAC PROJECT usando Optoscript

CONCLUSIONES

* Es posbile implementar en un PAC Opto22 el protocolo RFB. Un posible uso para ello seria desarrollar aplicaciones menos "divertidas" como SCADA o HMI de acceso remoto mediante VNC, como una alternativa diferente para aplicaciones de Internet De Las Cosas.
* El juego solo permite la conexion de un unico cliente, sin embargo existe la posibilidad de ampliarlo para que dos o mas jugadores se puedan conectar remotamente.
* Los juegos basados en rectangulos y de pantallas que en general no de desplazan ni cambian mucho (p.e Pong, Tetris, Breakout ) son los mas facilmente implementables en RFB
* La estrategia funciona tanto el en PAC fisico como en el simulador PAC Sim

DOCUMENTACION

(Ver en la parte inferior - Archivos adjuntos)

* Articulo en PDF
* Documentacion del protocolo RFB
* Programa de videojuego en PAC PROJECT

VIDEO

Video demostrativo de conexion a un PAC fisico mediante VNC y tambien una prueba realizada con el simulador