Mi sala de estar, se fue al infierno.Mi convertidor Noesis ahora tiene un script Roomba. Supervisa el Roomba y almacena datos de seguimiento, lo que le permite visualizar estos datos de muchas maneras diferentes, que incluyen, por supuesto, convertirlos en una tarjeta aleatoria para DOOM.
Sería genial tener tiempo para hacerlo antes del 25 aniversario de DOOM, pero sucedió y pasó, y todavía estaba esperando la compra de Roomba 980 en eBay. La idea se me ocurrió alrededor de noviembre, cuando mi esposa y yo estudiamos diferentes aspiradoras robóticas. Descubrí que en las nuevas versiones de Roomba
SLAM se implementa de forma bastante cualitativa, por lo que me preguntaba qué datos se pueden obtener de él y qué se puede hacer con ellos.
Pronto me di cuenta de que tenía una oportunidad conveniente para servir al Señor Oscuro, habiendo generado una legión de algoritmos malvados y aplicándolos en una de las mejores obras creadas en su nombre. Al mismo tiempo, podré lanzar un juego de palabras diabólico destinado a derrotar a la humanidad. Entonces, el fruto de mi trabajo está listo. He aquí una criatura llamada DOOMBA: mitad cabra, mitad guión con soporte binario nativo para las partes más caras del código, que sacrificaré en lugar de mi primogénito en esta maravillosa Nochebuena.
Flujo de trabajo de DOOMBA¡Regresar al infierno nunca ha sido tan fácil!
Para utilizar DOOMBA y el resto de la nueva funcionalidad de Roomba, debe descargar la última
versión de Noesis . Vaya a opcionalplugins \ python y copie el archivo tool_roomba.py en plugins \ python. En el menú Herramientas del convertidor Noesis, verá un nuevo elemento "Roomba Tracker". Actívelo para abrir la interfaz de Roomba Tracker.
Interfaz de rastreador de RoombaLa interfaz le permite escanear automáticamente la LAN en busca de robots Roomba (debe habilitar la transmisión UDP) y muestra instrucciones para recibir una contraseña de Roomba. Después de recibir IP Roomba y configurar las credenciales, puede comenzar el seguimiento. Cuando comience el seguimiento, se le pedirá que guarde el archivo .noeroomba. Si decide guardarlo, luego de completar el seguimiento, este archivo contendrá todos los datos útiles.
Probé solo con Roomba 980, por lo que no puedo garantizar la compatibilidad con ningún otro dispositivo Roomba. Sin embargo, incluso si no tiene un dispositivo compatible, puede usar el archivo .noeroomba del directorio Noesis de escenas y jugar con DOOMBA y otras funciones relacionadas con Roomba.
Después de generar el archivo .noeroomba (o tomar el archivo terminado), vaya a él para ver los archivos de Noesis. Tendrá nuevos elementos del menú contextual con el botón derecho con una opción de tipo de archivo:
Nuevos elementos del menú contextual de RoombaLa opción NoeRoomba Merger es útil para combinar múltiples archivos .noeroomba. A veces, cuando se realiza el seguimiento, la conexión se pierde o debe detenerse, porque Roomba se recarga entre sesiones. Esto significa que puede elegir generar varios archivos .noeroomba y luego combinarlos.
Al seleccionar el elemento DOOMBA, se abrirá la interfaz principal de DOOMBA para generar DOOM PWAD a partir del archivo .noeroomba seleccionado:
Si deja el valor "Semilla" 0, el nivel se generará de forma independiente. De lo contrario, si selecciona el valor que más le convenga, puede guardarlo y usarlo nuevamente, junto con la configuración de otras opciones. Todas las opciones anteriores se refieren a la ubicación de enemigos / objetos. El script en sí está escrito para simplificar la creación de nuevos tipos de objetos, así como para agregar soporte para otros juegos basados en DOOM al cambiar la ID de la COSA. Sin embargo, si no le gusta tanto experimentar, simplemente puede ajustar los valores disponibles desde la interfaz. También puede cambiar las listas de texturas de piso / techo / pared, y si carga DOOM IWAD en Noesis, verá que todos los nombres de texturas se enumeran perfectamente en el Visor de datos.
En la esquina inferior derecha hay muchas otras opciones que afectan el proceso de generar y simplificar la geometría. Las opciones en la sección Avanzado, si se configuran incorrectamente, pueden estropear todo muy seriamente, porque no las probé particularmente y no verifiqué la validez de los valores en el lado del motor. Sin embargo, otras opciones también pueden dañar seriamente, por lo que si no está seguro, no cambie los valores predeterminados. También tenga en cuenta que la interfaz no protege contra las restricciones estándar de DOOM en el campo de visplane, objetos, etc.
Como beneficio adicional, agregué la herramienta Imagen a NoeRoomba, que solo está habilitada cuando la variable ENABLE_TEST_FUNCTIONS en tool_roomba.py está establecida en True. Le permite generar archivos .noeroomba a partir de archivos de imagen normales, proporcionando una manera simple y eficiente de convertir una imagen en una tarjeta DOOM aleatoria. No puedo prometer que mis algoritmos malvados diseñados para las tarjetas Roomba no se bloqueen si los alimentas con todo tipo de datos aleatorios, pero en el caso de las imágenes que seleccioné, el sistema se las arregló bastante bien:
¡KOMBAAAT MORTAL!Espero que disfrutes esta herramienta. Definitivamente me trajo mucho placer! Alguien puede decir que no tiene sentido, pero en mi corazón existe la creencia de que el Señor Oscuro borrará a esas personas de la faz de la Tierra y las encarcelará en un universo de fuego eterno eterno, y las leyendas estarán compuestas de sus sufrimientos.
Esto ya se ha mencionado en las notas del script, pero lo diré nuevamente que la biblioteca
dorita980 fue útil para partes relacionadas con el protocolo Roomba. Lo usaría directamente, pero Node.js es un completo desastre. También me gustaría agradecer a Rafael Quine por el antiguo código de construcción de nodos, que se incluye en esta versión como parte de la funcionalidad de DOOMBA. Fue uno de los pocos constructores de nodos que encontré que no estaba dañado por la GPL.