Doomba


Mon salon, allé en enfer.

Mon convertisseur Noesis a maintenant un script Roomba. Il surveille le Roomba et stocke les données de suivi, ce qui vous permet de visualiser ces données de différentes manières, y compris, bien sûr, en les transformant en une carte aléatoire pour DOOM.

Ce serait formidable d'avoir le temps de le faire d'ici le 25e anniversaire de DOOM, mais c'est arrivé et passé, et j'attendais toujours l'achat du Roomba 980 sur eBay. L'idée m'est venue vers novembre, lorsque ma femme et moi avons étudié différents aspirateurs robotiques. J'ai trouvé que dans les nouvelles versions de Roomba SLAM est implémenté de manière assez qualitative, alors je me suis demandé quelles données pouvaient en être obtenues et ce qui pouvait être fait avec.

Bientôt, j'ai réalisé que j'avais une opportunité pratique de servir le Seigneur des Ténèbres, après avoir généré une légion d'algorithmes méchants et les avoir appliqués dans l'une des meilleures œuvres créées en son nom. En même temps, je pourrai libérer un jeu de mots diabolique destiné à vaincre l'humanité. Ainsi, le fruit de mes travaux est prêt. Voici une créature nommée DOOMBA - une demi-chèvre, un demi-script avec un support binaire natif pour les parties les plus chères du code, que je sacrifierai à la place de mon premier-né en cette merveilleuse veille de Noël.


Flux de travail DOOMBA

Retourner en enfer n'a jamais été aussi facile!


Pour utiliser DOOMBA et le reste de la nouvelle fonctionnalité Roomba, vous devez télécharger la dernière Noesis . Allez dans optionalplugins \ python et copiez le fichier tool_roomba.py dans plugins \ python. Dans le menu Outils du convertisseur Noesis, vous verrez un nouvel élément «Roomba Tracker». Activez-le pour ouvrir l'interface du Roomba Tracker.


Interface du Roomba Tracker

L'interface vous permet de scanner automatiquement le LAN pour les robots Roomba (vous devez activer la diffusion UDP) et affiche les instructions pour recevoir un mot de passe de Roomba. Après avoir reçu IP Roomba et configuré les informations d'identification, vous pouvez commencer le suivi. Lorsque vous commencez le suivi, il vous sera demandé d'enregistrer le fichier .noeroomba. Si vous décidez de l'enregistrer, une fois le suivi terminé, ce fichier contiendra toutes les données utiles.

J'ai testé uniquement avec le Roomba 980, donc je ne peux garantir la compatibilité avec aucun autre appareil Roomba. Cependant, même si vous ne disposez pas d'un appareil compatible, vous pouvez utiliser le fichier .noeroomba du répertoire Noesis des scènes et jouer avec DOOMBA et d'autres fonctionnalités liées à Roomba.

Après avoir généré le fichier .noeroomba (ou en prenant le fichier fini), accédez-y en consultant les fichiers Noesis. Vous aurez de nouveaux éléments de menu contextuel avec un clic droit avec un choix de type de fichier:


Nouveaux éléments du menu contextuel de Roomba

L'option de fusion NoeRoomba est utile pour combiner plusieurs fichiers .noeroomba. Parfois, lors du suivi, la connexion est perdue, ou elle doit être arrêtée, car Roomba est rechargé entre les sessions. Cela signifie que vous pouvez choisir de générer plusieurs fichiers .noeroomba, puis les combiner ensemble.

La sélection de l'élément DOOMBA lancera l'interface principale DOOMBA pour générer DOOM PWAD à partir du fichier .noeroomba sélectionné:



Si vous laissez la valeur «Seed» 0, le niveau sera généré indépendamment. Sinon, si vous sélectionnez la valeur qui vous convient, vous pouvez l'enregistrer et la réutiliser, ainsi que définir d'autres options. Toutes les options ci-dessus se réfèrent à l'emplacement des ennemis / objets. Le script lui-même est écrit pour simplifier la création de nouveaux types d'objets, ainsi que pour ajouter la prise en charge d'autres jeux basés sur DOOM en modifiant l'ID de CHOSE. Cependant, si vous n'aimez pas trop expérimenter, vous pouvez simplement ajuster les valeurs disponibles à partir de l'interface. Vous pouvez également modifier les listes de textures de sol / plafond / mur, et si vous chargez DOOM IWAD dans Noesis, vous verrez que tous les noms de texture sont soigneusement répertoriés dans la visionneuse de données.

Dans le coin inférieur droit, de nombreuses autres options affectent le processus de génération et de simplification de la géométrie. Les options de la section Avancées, si elles sont mal configurées, peuvent tout gâcher très sérieusement, car je ne les ai pas particulièrement testées et je n'ai pas vérifié la validité des valeurs côté moteur. Cependant, d'autres options peuvent également sérieusement nuire, donc si vous n'êtes pas sûr, ne modifiez pas les valeurs par défaut. Gardez également à l'esprit que l'interface ne protège pas contre les restrictions DOOM standard dans le domaine du visplane, des objets, etc.

En bonus, j'ai ajouté l'outil Image à NoeRoomba, qui n'est activé que lorsque la variable ENABLE_TEST_FUNCTIONS dans tool_roomba.py est définie sur True. Il vous permet de générer des fichiers .noeroomba à partir de fichiers d'image ordinaires, offrant un moyen simple et efficace de convertir une image en une carte DOOM aléatoire. Je ne peux pas promettre que mes mauvais algorithmes conçus pour les cartes Roomba ne planteront pas si vous leur fournissez toutes sortes de données aléatoires, mais dans le cas des images que j'ai sélectionnées, le système a plutôt bien fait:


MORTAL KOMBAAAT!

J'espère que vous apprécierez cet outil. Il m'a définitivement apporté beaucoup de plaisir! Quelqu'un peut dire que cela n'a pas de sens, mais dans mon cœur, il y a une croyance que le Seigneur des Ténèbres effacera ces personnes de la surface de la Terre et les emprisonnera dans un univers de feu infernal éternel, et les légendes seront composées de leurs souffrances.

Cela a déjà été mentionné dans les notes du script, mais je le répète, la bibliothèque dorita980 était utile pour les parties liées au protocole Roomba. Je l'utiliserais directement, mais Node.js est un désastre complet. Je voudrais également remercier Rafael Quine pour l'ancien code nodebuilder, qui est inclus dans cette version dans le cadre de la fonctionnalité DOOMBA. C'était l'un des rares constructeurs de nœuds que j'ai trouvé qui n'était pas corrompu par la GPL.

Source: https://habr.com/ru/post/fr434284/


All Articles