Cities: Skylines est un jeu de simulation de ville avec suffisamment de complexité pour y créer des éléments logiques universels. En utilisant des éléments logiques universels, vous pouvez construire n'importe quel circuit, y compris les machines complètes de Turing. Autrement dit, comme dans Minecraft, nous pouvons créer un ordinateur à l'intérieur de Cities: Skylines. Cependant, il serait très difficile de créer un ordinateur complet sur la base de ces éléments, je vais donc démontrer un additionneur 4 bits à la place. Tout se fait dans la version vanille du jeu; aucun mod ou add-on n'est requis.
Ce jeu, comme tout autre simulateur de construction de ville, nécessite que le joueur fournisse l'électricité et l'eau à la ville. Les centrales électriques produisent de l'électricité, pour cela, elles ont besoin d'eau propre et d'égouts. Les châteaux d'eau fournissent de l'eau propre, les tuyaux d'égout vous permettent de vous débarrasser des égouts et les deux types de bâtiments nécessitent de l'électricité. Cette dualité entre égouts et châteaux d'eau vous permet de créer des éléments ET et OU.
Participants clés, de gauche à droite: une centrale électrique à combustible liquide, un château d'eau, un tuyau d'égout. Derrière est une éolienne.Ce qui suit montre comment construire l'élément AND. Les deux entrées sont des lignes électriques menant au château d'eau (en haut) et au tuyau d'égout (en bas). La sortie est une ligne électrique connectée à une centrale électrique. Bien que les entrées soient nulles dans la capture d'écran, la centrale génère toujours de l'électricité - même une fois l'alimentation en eau et les eaux usées terminées, il faut un certain temps pour s'arrêter. Les bâtiments sont éloignés, car sinon l'électricité pourrait circuler librement entre eux.
L'élément ET sur une carte régulière montrant les couches d'électricité et d'eau.Pour l'exhaustivité fonctionnelle, nous avons besoin d'un composant supplémentaire: un onduleur ou un élément NOT. Pour le créer, nous utiliserons la simulation de la dynamique des fluides du jeu. Une mauvaise utilisation des barrages, des canaux ou une charge trop lourde sur les égouts peut entraîner l'inondation des bâtiments. Une centrale électrique inondée ne produit pas d'électricité. Cela suffit pour créer l'élément NOT illustré ci-dessous.
Ci-dessus: la couche électrique de l'élément NOT; ci-dessous: le système d'égouts s'est éteint et rallumé.Un additionneur 1 bit peut être construit selon le schéma de 9 éléments différents, illustré ci-dessous. Quatre de ces additionneurs peuvent être chaînés ensemble pour créer un additionneur 4 bits. J'ai placé les portes dans la grille pour montrer comment elles s'intégreraient sur la carte.
Le schéma d'un additionneur 1 bit avec un report.Pour simplifier ma vie, j'ai décidé d'allumer de l'argent sans fin et de jouer sur la carte créée dans l'éditeur de carte. Vous pouvez importer des images PNG dans l'éditeur, qui sont utilisées pour charger la carte de hauteur. J'ai créé une carte avec des blocs de terre sur laquelle vous pouvez placer des éléments logiques comme sur une
carte de circuit imprimé ! Voici à quoi ressemble la carte. Les images montrent quatre additionneurs 1 bit se répétant dans une grille 2x2.
Les lignes brisées sont visibles sur l'image car le jeu ne fonctionne pas très bien sur les arêtes vives.Construire un circuit est un processus très monotone, et j'ai dû recommencer encore et encore à cause de mes erreurs de calcul. L'un des problèmes que j'ai rencontrés est l'intersection des fils. Heureusement, les lignes électriques avec une différence d'altitude significative peuvent se croiser sans contact.
Additionneur 1 bit. J'ai connecté quatre de ces éléments ensemble.Enfin, je dois construire une ville à proximité, créant un volume de drains suffisant pour inonder simultanément jusqu'à huit moulins à vent (oui, notre ordinateur fonctionne comme un caca). Mais je n'appellerais pas cette décision respectueuse de l'environnement: chaque élément logique utilise une centrale à combustible liquide, donc le niveau de pollution est assez élevé. Le débogage a été difficile: il s'est parfois avéré que la foudre avait provoqué la panne des lignes électriques. Elle est comme les rayons cosmiques, mais agit plus longtemps.
Un réseau de lignes électriques menant à l'une des entrées 4 bits.J'ai enregistré une vidéo pour montrer que l'ajout fonctionne vraiment. Dans le premier, je mets un signal à l'entrée en le connectant à une centrale qui est toujours allumée (comme alimenter un circuit intégré). Sur la gauche, j'ai défini la valeur sur 1001 (= 9), au milieu de 1110 (= 14). Après avoir défini les valeurs des entrées, j'ai accéléré le jeu et la sortie sur les cinq fils de droite a pris la valeur d'une unité. Après un long moment, la valeur finale a été fixée à 10111 (= 23). Et ça marche vraiment!
Dans la deuxième vidéo, je me suis concentré sur l'un des additionneurs. Vous pouvez voir comment l'état des composants change au fil du temps jusqu'à ce que la valeur de sortie finale soit établie (0 - somme, 1 - transfert).
Le projet a quelques défauts. Cela fera un ordinateur
très lent - un ajout de 4 bits prend environ 15 mois en temps de jeu et environ 20 minutes en temps réel. Il y a des problèmes de taille. En raison de la façon dont l'alimentation est mise en œuvre dans le jeu, les composants de l'élément logique doivent être suffisamment espacés; sinon, le courant passera entre eux. L'additionneur 4 bits a repris la plupart des 9 tuiles disponibles dans un jeu normal, mais je ne l'ai pas beaucoup optimisé. Jusqu'à 25 tuiles peuvent être utilisées avec des mods. Si vous avez des idées sur la façon de mettre en œuvre des calculs plus efficaces, écrivez-les dans les commentaires de l'article d'origine!