Entwicklung von Spielen für eine Arduino-basierte Konsole mit Unity

Bild
Hallo Geek Times!
Heute werde ich Ihnen eine nicht sehr interessante Geschichte darüber erzählen, wie ich eine einfache Arduino-basierte Spielekonsole erstellt und in meiner Lieblingsspiel-Engine - Unity - ein einfaches Spiel dafür erstellt habe.

Spiele


Seit fast vier Jahren entwickle ich Spiele auf der beliebten Spiel-Engine Unity (ehemals Unity3D). In dieser Zeit gelang es mir, mehrere kleine Spiele für mobile Geräte sowie ein umfangreiches Mehrbenutzerprojekt zu erstellen.
Dieser Bereich ist für mich sehr interessant und macht mir große Freude, darin zu arbeiten.

Geräte


Aber manchmal besteht der Wunsch, etwas Neues auszuprobieren, und eines Tages habe ich beschlossen, Arduino auszuprobieren.
Es wurde für mich sehr interessant, meine eigenen Geräte zu erstellen und zu programmieren. Warum Arduino? Im Internet und sogar in den gleichen Hub- und Geek-Zeiten gibt es viele Posts darüber, warum es sich lohnt, Arduino zu nehmen. Ich stelle jedoch fest, dass für mich die Benutzerfreundlichkeit der entscheidende Faktor bei der Auswahl von Arduino ist.

Wie kombiniert man das?


Als ich im Internet war, stieß ich auf eine Aufzeichnung darüber, wie einer der Benutzer seine einfache Arduino-basierte Spielekonsole zusammenstellte, sie mit einem kleinen 84x48-Pixel-LCD-Display ausstattete und ein paar einfache Spiele darauf schrieb: Pong und Arkanoid.
Diese Entwicklung war für mich sehr interessant und ich entschied mich, meine Version der Spielekonsole auf Basis des atmega328-Mikrocontrollers zu erstellen.

Konsole selbst


Zunächst entwarf und fertigte ich eine LUT-Ohm-Leiterplatte für eine tragbare Konsole. Dies war ein Fehler - zunächst musste das Programm auf einem Debug-Board getestet werden, beispielsweise auf arduino uno, da ich nicht vorausgesehen hatte, dass Programme schnell und bequem auf den Controller hochgeladen werden können. Und ich habe auch einen Fehler in der Schaltung selbst gemacht, es könnte mit Drähten repariert werden, aber es ist immer noch eine Schande.
Nachdem ich festgestellt hatte, dass ich falsch lag, verband ich die Tasten über das Board mit Arduino Uno und verband den Bildschirm direkt.
Folgendes ist passiert:

Bild
Bild

Nun zu den Spielen


Um Spiele zu erstellen, habe ich mich für die Unity-Spiel-Engine entschieden. Ich habe keinen Compiler von Mono C # in ein Programm für Arduino geschrieben, aber ich habe beschlossen, eine Reihe von Skripten zu schreiben, mit denen Sie problemlos Spiele erstellen können.
Ich habe alle Skripte in 3 Gruppen unterteilt - Aktionen, Bedingungen und Kombinierer.
Ich denke, dass der Zweck der Aktionen und Bedingungen nicht erklärt werden muss, aber für das, was ich einen Kombinierer brauche, werde ich erklären. Der Kombinierer überprüft, ob die Bedingung erfüllt ist, und führt dann die Aktion aus.
Aus Skripten bzw. deren Vorhandensein und Kombinationen erstellt der Algorithmus ein Programm für Arduino.

Bild

Und was für ein Spiel?


Ich beschloss, mit etwas Einfachem zu beginnen. Und was ist das einfache Spiel, das du kennst? Das stimmt - Pong. Aber ich habe mich entschieden, nicht ganz Pong zu spielen, sondern Pong für einen - es gibt einen Schläger, einen Ball und eine Wand anstelle des zweiten Schlägers.
Ich habe es aus einem schriftlichen Konstruktor zusammengestellt, kompiliert und auf den Controller hochgeladen. Funktioniert!

Jetzt bringen wir alles in Ordnung


Als das Spiel begann und ich genug davon spielte, entschied ich, dass es sich lohnt, das Board neu zu gestalten, ihm ein schönes Aussehen zu verleihen, smd-Komponenten zu verwenden und alle unnötigen Dinge zu entfernen. Ich überarbeitete die Schaltung und machte eine Tafel.
Das ist was passiert ist

Bild
Bild

Quellcode


Der Quellcode ist sehr einfach.
Was Unity macht - Im Editor sammelt der Benutzer das Spiel aus UI-Objekten, hängt Aktionsskripte, Bedingungen und Kombinierer an diese.
Was der Compiler tut (Skript parser.cs) - Er durchläuft alle Objekte, überprüft ihre Skripte und fügt dem Text der Datei build.ino Codeteile hinzu, die für die Ausführung der Analoga dieser Skripte im Mikrocontroller verantwortlich sind.

Link zu den Quellen - drive.google.com/open?id=0B5INc3_98cSJMEMxZmlWUTh1Ukk Die
Kompilierung wird zu Beginn des Spiels durchgeführt. und es wird im Ordner Assets / build / text / builded.ino gespeichert.
Diese Skizze sollte auch auf den Controller hochgeladen werden.

In Gewahrsam


Ich möchte sagen, dass es sehr interessant war.
Ich hatte die Möglichkeit, zwei meiner Aktivitäten zu kombinieren - Spieleentwicklung und Geräteerstellung.
Ich hoffe das hat dich auch interessiert und jetzt machst du auch dein eigenes cooles Gerät =)

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


All Articles