Hallo zusammen,
ich möchte euch gerne mein Lightning Network Projekt PenguinShooter vorstellen, an dem ich in den Jahren 2018 und 2019 gearbeitet habe. Bereits im Jahr 2019 habe ich es erstmals auf Twitter veröffentlicht.
Seit diesem Februar läuft mein neuer Lightning Node stabil, sodass ich mich jetzt endlich traue euch das Projekt vorzustellen.
Über PenguinShooter
Es handelt sich um eine Computerspiel-Demo, die eine Verbindung zum Lightning Network herstellt und zeigen soll, wie Ingame-Payments über Lightning funktionieren können.
Die Invoices (QR Codes oder Text) werden dabei im Spiel platziert und können von einer beliebigen Lightning Wallet bezahlt werden um eine Ingame Aktion auszuführen, wie z.B. Monster zu spawnen.
Funktionsweise
- Das Spielt baut eine Verbindung zu einem Lightning Node auf. Standardmäßig ist dies mein Lightning Node, man kann ihn mithilfe der LND Macaroon Files aber auch mit seinem eigenen LND Node verbinden.
- Das Spiel schickt einen Request an die Node, wenn im Spiel gewisse Aktionen auftreten (z.b. man will einen Pinguin spawnen).
- Der Node schickt eine Lightning Invoice zurück.
- Diese Invoice wird nun im Spiel platziert, als QR-Code und als Text.
- Man zahlt die Invoice mit jeder beliebigen Lightning Wallet.
- Die Lightning Node bestätigt die erhaltene Zahlung.
- Im Spiel passiert nun eine Aktion. Der Pinguin spawnt im Spiel.
Meine Motivation
Nachdem ich im Jahr 2018 das erste Mal mit dem Lightning Network in Kontakt kam, habe ich auf Twitter ein Tool gefunden, welches Lightning Payments in die Unity Game Engine integriert. Ich war begeistert von der Einfachheit. Im Quellcode kann man beispielsweise schreiben:
if(lightning_invoice_paid):
{
do_anything_you_want();
}
Das ist bahnbrechend, da so ziemlich alles mit einer Lightning-Zahlung ausgelöst werden kann. Nun habe ich einfach losprogrammiert und nach 6 Monaten war PenguinShooter fertig.
Ich bin normalerweise kein Freund von Ingame-Payments, da sie oft nerven und die Spiele stören können. Aber sie sind nun einmal ein fester Teil unserer Spielkultur geworden. Integrierte Lightning Payments ermöglichen sie jedoch viel schneller, günstiger und non-custodial.
Was kann man im Spiel machen
Ich bin kein Spieleentwickler, daher handelt es sich um eine Demo. Es ist ein einfaches RPG, in dem man herumlaufen, Monster besiegen und leveln kann. Man kann im Laufe des Spiels verschiedene Skills erlernen und sich mithilfe von Waffen (in Form von Obst) und Tränken Vorteile verschaffen. Um all diese Aktionen herbeizuführen, müssen Ingame-Payments getätigt werden.
Für weitere Details verweise ich auf meinen Medium Post, da der Beitrag sonst zu lang wird.
Disclaimer zu realen Kosten des Spiels
Da es bei diesem Spiel um Lightning Payments geht, ist nunmal auch das Spiel voll von Ingame Payments, wodurch in der Standard-Einstellung, „Kosten für den User entstehen“. Die Kosten sind gering und fließen direkt an meine Node. Falls aber jemand nichts bezahlen will, kann er das Spiel gerne mit seinem eigenen LND Node verbinden und sich dann quasi selbst bezahlen.
Ich bin sonst auch bereit die sats zu erstatten, wenn das jemand möchte und z.B. keine eigene Node hat.
Disclaimer zu Closed Source Software
Das Spiel wurde mit der Unity Game Engine erstellt. Neben dem geschriebenen Quellcode gibt es auch kompilierte Teile, die ich in der Engine erstellt habe. Ich weiß jedoch nicht, wie ich diese Teile so auf GitHub hochladen kann, dass sie zusammen mit dem Quellcode heruntergeladen und ausgeführt werden können.
Da der Quellcode ohne den Engine Teil nicht ausführbar ist, habe ich den Quellcode nicht mit veröffentlicht, sondern nur das kompilierte Spiel. Ich kann daher nicht beweisen, dass das Spiel keine Malware enthält. Das Spiel wird eventuell eine Warnung ausspucken, da es ja eine Internetverbindung zu meinem Computer herstellt. Wenn das jemand abschreckt, bitte ich um Feedback. Bei genügend Interesse, nehme ich mir dann dafür nochmal Zeit.
Links zum Spiel, Medium Artikel und Youtube Videos
- Das Spiel: GitHub - Donno1994/PenguinShooter: Repository for PenguinShooter
- Medium Artikel mit mehr Details: https://medium.com/@BR_Robin/a-bitcoin-lightning-network-powered-rpg-penguinshooter-6d36cc34de0c
- Youtube Video wie ein Nutzer es spielt: https://www.youtube.com/watch?v=kKXjiowmbSQ
- Mein YouTube Kanal, mit ein paar Videos zu dem Spiel.
Bonus Section: Zuschauer beeinflussen Live-Stream durch Lightning
Kurz nach dem Release in 2019 hat jemand PenguinShooter auf Twitch gespielt. Als er im Spiel gestorben war und die Lightning Invoice hätte bezahlen müssen, um zu respawnen, ist etwas Erstaunliches passiert. Er wurde respawnt, obwohl er gar nichts gemacht hat. Ein Zuschauer hat nämlich einfach seinen QR-Code gescannt, die Invoice bezahlt und damit die Aktion ausgelöst.
Das brachte mich auf eine neue Idee: Features für Live-Streams integrieren.
Es gibt ein weiteres Projekt, PenguinShooterWeb, das Streamer nebenbei laufen lassen können und das einen Webserver startet. Die Zuschauer erhalten einen WebLink, über den sie ebenfalls Invoices erstellen können.
Sie können dem Streamer Upgrades kaufen, wie z.B.
- Den Stern von Super Mario, damit man unbesiegbar wird
- Tränke und Waffen
- ihn Wiederbeleben
Sie können den Streamer ärgern, wie z.B.
- ihn einfrieren
- ihn blind machen (wie diese Qualle bei Mario Kart)
- die Steuerung der linken und rechten Taste tauschen, sodass er beim Laufen Fehler macht.
- Monster werden unsichtbar
Sie können neutrale Aktionen ausführen, wie z.B.
- die Tageszeit ändern
- die Musik ändern (Auswahl aus Linkin Park, Michael Jackson und Beethoven)
- eine Discokugel mit Lichteffekten spawnen
Stellt euch vor, jemand kämpft auf Twitch oder Youtube gegen Monster und ein Zuschauer zahlt die Invoice, „blind machen“. Ich denke, so etwas kann super lustig werden. Der Streamer, welcher PenguinShooterWeb mit seinem Node laufen lässt, bekommt übrigens auch die sats.
Auf Youtube könnt ihr sehen, wie das etwa abläuft. Schaut ab 1 Stunde 58 Minuten und 50 Sekunden rein und stellt euch mit etwas Fantasie vor, was möglich wäre, wenn Spiele wie Fortnite so etwas integrieren würden.
Hier zeige ich, wie man als Zuschauer Einfluss auf das Spiel nimmt.
PenguinShooterWeb ist noch nicht auf meinen neuen Node abgestimmt, aber das muss er auch nicht, sofern ich das Spiel nicht streame.
Wer es ausprobieren möchte, verbindet bitte PenguinShooter und PenguinShooterWeb mit seinem Node und es sollte funktionieren.
Falls das Projekt Anklang findet, ist es vielleicht möglich, es gemeinsam mit der Community auf Twitch oder Youtube zu spielen. Technisch Möglich ist es schon sein 2019.
Link zu PenguinShooterWeb: GitHub - Donno1994/PenguinShooterWeb: Web Interface to generate invoices for PenguinShooter
Schlussworte
So! Ich hoffe, ihr versteht nun, worum es bei diesem Projekt geht. Ich glaube nicht, dass ich damit ernsthaft Geld verdienen werde, aber ich wollte es euch trotzdem vorstellen, da ich denke, dass es hier einige interessieren könnte. Teilt gerne eure Gedanken mit mir, ob euch so etwas interessiert oder nicht. An diejenigen, die es ausprobieren, schreibt mir bitte eure Erfahrungen (vor allem, wenn etwas nicht funktioniert).
Falls ihr Fragen habt, stehe ich gerne zur Verfügung.
Liebe Grüße,
Robin