Introduction: Video Juego En Un PAC Usando RFB

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:

Para mas informacion, visita: Automatizanos.com

Step 1: ​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.

Step 2: ​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 ESP8266es 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

Step 3: ​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 unarchivo 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.

Step 4: ​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

Para mas informacion, visita: Automatizanos.com

Comments

About This Instructable

53views

1favorite

License:

Bio: Proyectos, articulos, y opiniones tecnologicas para el hogar y la industria
More by Automatizanos:MUSICA DE VIDEOJUEGOS INTERPRETADA POR ARDUINOMedicion de temperatura con RTD PT100, transmisor 4-20 mA y ArduinoArduino Internet de las cosas: Usando NiceRf LoRa1276
Add instructable to: