Dieser Artikel ist der 8. Tag von Dwango Adventskalender. Gestern sagte @ mokumoku: "Die Geschichte, eine Webseite auf serverseitigem Swift zu betreiben. " war. Eigentlich schreibe ich Swift auch bei der Arbeit (auf der Client-Seite) und Swift ist eine meiner Lieblingssprachen. Ich habe Swift noch nicht serverseitig geschrieben, daher habe ich beschlossen, den Artikel zu lesen und auszuprobieren. Die heutige Geschichte handelt von Slack, Bot und Python, was nichts mit Swift zu tun hat.
Als ich eines Tages unser Produkt Niko Niko Video sah, stieß ich auf Funny Video. Als ich einen interessanten Kommentator sah, der ein Spiel mit Bomben machte, spielte und kommentierte, fühlte ich mich so. "Ah, ich spiele ein Spiel, in dem ich auch Bomben lege und gegen Feinde kämpfe ~~" Aber zu dieser Zeit bedauere ich, dass ich es ohne einen Spielautomaten nicht schaffen konnte.
Die Einführung wurde verlängert, aber dies ist die Geschichte, wie ich das Spiel dazu gebracht habe, Bomben auf plattformunabhängigen Multi-Plattformen zu platzieren.
Ich schrieb in Als ich Shogi auf Slack implementiert habe, bevor Slack eine sehr gute Plattform ist. Slack ist eine sehr gute Plattform, mit der Sie Spiele wie das letzte Mal erstellen können, sowie Bot als neue Oberfläche für Ihre Nachrichten, wie Sie in den letzten ChatOps sehen können. Ich finde die Plattform, die es Bot ermöglicht, als Schnittstelle zu anderen Diensten zu fungieren, Bot, der als künstliche Intelligenz wie Siri fungiert, und Teammitgliedern und Community-Mitgliedern, miteinander zu kommunizieren, sehr wunderbar. Unter ihnen hat Slack eine großartige Benutzeroberfläche und die einfache Erstellung von Bot (und eine etwas eigenartige API), und ich möchte jetzt etwas Neues auf die Nachrichtenplattform stellen! Ich denke, dass es das beste Produkt für diejenigen ist, die denken.
Auch dieses Mal haben wir Slack als Plattform für die Implementierung des Spiels übernommen.
Natürlich ist Slack keine Spiel-Engine, daher können Sie keine Pixel zeichnen oder beliebige Bilder oder Polygone rendern. In Shogi, das ich zuletzt gemacht habe habe ich eine komplizierte Tafel auf leicht verständliche Weise angezeigt, indem ich meine eigenen Piktogramme registriert habe.
Werfen wir einen Blick auf den Bildschirm, den wir dieses Mal implementieren möchten. Dieses Bild ist eine Szene aus dem vorherigen Video.
Es ist eine allgemeine zweidimensionale Karte. Es scheint, dass ein Kartenchip durch ein Piktogramm dargestellt werden kann. Außerdem sind die erforderlichen Chips Wände, Blöcke, Bomben usw., und es scheint, dass alle nur mit Unicode-Standardpiktogrammen ausgedrückt werden können. Es scheint, dass Sie kein eigenes Piktogramm registrieren müssen. Hier ist eine Karte, die durch Anordnen von Piktogrammen erstellt wurde. Ja, es fühlt sich gut an. Dies wird gerendert, indem Text wie dieser an Slack gesendet wird.
Wenn sich der Status des Spiels ändert, muss der Bildschirm neu gezeichnet werden. Dies kann mithilfe der [chat.update API] von Slack (https://api.slack.com/methods/chat.update) behoben werden. Es ist auch in Slack als Spielplattform geschrieben, einer Bibel zum Erstellen von Spielen mit Slack. Wenn Sie die API jedoch zu oft aufrufen, werden Sie vom API-Limit erfasst. Bitte beachten Sie, dass es enden wird.
Wie ein typisches Programm nimmt das Spiel Eingaben entgegen, verarbeitet sie gemäß der Spiellogik und gibt sie dann wiederholt aus. Ich habe den Ausgabeteil auf Slack bereits erwähnt, aber was soll ich mit der Eingabe tun? Sie können in allgemeinen Spielen Eingaben vom Controller oder in PC-Spielen direkt von der Tastatur erhalten, dies ist jedoch bei Slack nicht möglich. Hierfür gibt es mehrere Möglichkeiten.
Für Spiele, die eine Echtzeitleistung wie diese erfordern, ist die Methode zur Verwendung von 2 Reaktionen oder die Methode zum Akzeptieren von Eingaben außerhalb der Slack-Plattform von 3 geeignet. Dieses Mal möchte ich alles auf Slack abschließen, also werde ich die Methode anwenden, die Reaktion von 2 zu verwenden.
Dieses Spiel kann mit 5 Tasten der A-Taste realisiert werden, um sich nach oben, unten, links und rechts zu bewegen und eine Bombe zu platzieren. Durch Platzieren einer Reaktionsschaltfläche auf der Karte, die der Bot selbst eingeben kann, wird dem Benutzer angezeigt, dass er mithilfe der Reaktion eingegeben werden kann.
Mithilfe der [RTM (Real Time Messaging) API] von Slack (https://api.slack.com/rtm) können Sie eine Reaktion hinzufügen (https://api.slack.com/events/reaction_added). Sie erhalten eine Nachricht zum Löschen (https://api.slack.com/events/reaction_removed). Dies bedeutet, dass die Taste gedrückt wurde. Wenn Sie eine dieser Nachrichten erhalten, können Sie eine benutzerfreundliche Benutzeroberfläche für Slack bereitstellen, indem Sie den Benutzer eingeben, der die Reaktion hinzugefügt (oder gelöscht) hat, und sie in der Spielelogik wiedergeben.
Bisher haben wir gesehen, wie man ein Online-Actionspiel auf Slack erstellt, das in Ausgabe und Eingabe aufgeteilt ist. Hier ist das Spiel, das tatsächlich mit der hier vorgestellten Methode implementiert wurde. https://github.com/setokinto/slack-bomber
Diejenigen, die es tatsächlich verwenden möchten, können es einfach mit Docker ausprobieren.
Auf einem PC mit installiertem Docker
docker run --env API_TOKEN="<Your Slack Bot Token>" setokinto/slack-bomber
Bitte ersetzen Sie API_TOKEN vor der Ausführung durch das tatsächlich von Slack erhaltene Bot-Token.
Auf dem Kanal, auf dem sich der Bot befindet
@ bot-name begin with @ username
(Benutzername ist der Benutzername, den Sie zusammenfügen möchten)
Beginnen mit.
Ich möchte, dass Sie mit verschiedenen Slack-Teams zusammenarbeiten.
Im Laufe des Spiels wird es so aussehen
Wenn Sie ein Online-Spiel mit Slack erstellen, übernimmt Slack den gesamten Netzwerkteil, sodass Sie sich auf die Spiellogik konzentrieren und diese sehr einfach entwickeln können. Die Herstellungsmethode ist fast die gleiche wie bei einem allgemeinen Spiel, aber Sie müssen nur darauf achten, dass die Zeichenleistung extrem niedrig ist. In einem typischen Spiel ist es normal, den Bildschirm 30 oder 60 Mal pro Sekunde zu aktualisieren, aber das ist mit Slack nicht möglich. Dieses Mal wird der Bildschirm ungefähr alle 0,6 Sekunden oder 0,7 Sekunden aktualisiert. Denn wie ich im Grafikabschnitt geschrieben habe, gibt es ein API-Limit. Nur dieser Teil muss sorgfältig codiert und entworfen werden.
Aufgrund der niedrigen fps treten häufig Betriebsfehler auf. Wenn es einmal wie POOR MAN explodiert, endet es vor Beginn des Kampfes, wenn das Spiel endet. Deshalb haben wir ein Lebenssystem eingeführt.
Wenn Sie diesen Artikel gelesen haben und ein Online-Spiel auf Slack erstellen möchten, sollten Sie über die Funktionen von Slack und die Funktionen nachdenken, die nur Slack bietet.
Slack ist eine großartige Plattform zum Chatten und Spielen. Da die API für die Öffentlichkeit weit verbreitet ist, ist eine Entwicklung möglich, und ich sehe eine große Zukunft in der Zukunft, wenn verschiedene Funktionen und Dienste in die Software integriert werden, die von allen als Nachrichten bezeichneten Personen verwendet wird. Viele andere Nachrichtendienste stellen auch ihre APIs zur Verfügung. Die Bot-Plattform wird voraussichtlich auch 2017 heiß sein, also lasst uns eine Menge Dinge machen. Unter den verschiedenen Diensten ist Slack besonders offen für Ingenieure und verfügt über eine umfangreiche API. Die API ist etwas eigenartig, hat aber genügend Funktionen. Warum also nicht versuchen, mit Slack als Plattform etwas zu erstellen, das Ihnen gefällt?
Recommended Posts