PenguinShooter - Ein Spiel mit Lightning Ingame-Payments

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

  1. 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.
  2. Das Spiel schickt einen Request an die Node, wenn im Spiel gewisse Aktionen auftreten (z.b. man will einen Pinguin spawnen).
  3. Der Node schickt eine Lightning Invoice zurück.
  4. Diese Invoice wird nun im Spiel platziert, als QR-Code und als Text.
  5. Man zahlt die Invoice mit jeder beliebigen Lightning Wallet.
  6. Die Lightning Node bestätigt die erhaltene Zahlung.
  7. 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

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.

  1. Den Stern von Super Mario, damit man unbesiegbar wird
  2. Tränke und Waffen
  3. ihn Wiederbeleben

Sie können den Streamer ärgern, wie z.B.

  1. ihn einfrieren
  2. ihn blind machen (wie diese Qualle bei Mario Kart)
  3. die Steuerung der linken und rechten Taste tauschen, sodass er beim Laufen Fehler macht.
  4. Monster werden unsichtbar

Sie können neutrale Aktionen ausführen, wie z.B.

  1. die Tageszeit ändern
  2. die Musik ändern (Auswahl aus Linkin Park, Michael Jackson und Beethoven)
  3. 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

2 „Gefällt mir“

Danke für deine Infos zu Lightning in Videospielen.

Ich sehe den großen Vorteil jedoch nicht in der Bezahlung für den Entwickler, sondern in der Bezahlung für die Spieler. Also um einen Anreiz um immer weiter zu spielen, wobei das Spiel dann durch z.B. Werbung oder Spenden bezahlt werden müsste.

1 „Gefällt mir“

Hi, Danke für dein Feedback :slight_smile:

Glaubst du, dass das Konzept „den Spieler an den Einnahmen beteiligen“ ein gängigeres Konzept sein wird, als dass Spieler einfach selbst für die Spiele bezahlen?

Im Bitcoin Bereich hat man jetzt doch öfters durch Firmen wie Zebedee, von „Play2Earn“ gehört, aber denkst du, das wird der Hauptzweck von Lightning in Videospielen sein?

Es gibt doch massenhaft Spiele, welche Ingame-Content für echtes Geld verkaufen.
In der Regel spielt man ein Spiel ja schon, weil man Lust hat es zu spielen und nicht um vergütet zu werden. Und dafür sind Menschen ja auch bereit Geld zu zahlen.
Da könnte doch eine Zahlung durch Lightning für Spieler einfacher und den Entwickler kostengünstiger sein (keine 3rd-Party-Gebühren).

Hast du damals von BitcoinBountyHunt von donnerlabs gehört? Die haben etwa das gemacht, was du dir vorstellst. Auf YouTube gibt es da noch Videos.

Also ich glaube, dass der Zahlungsverkehr in beide Richtungen gehen kann/wird.

Neue Indie Games können davon profitieren, dass es neue Spieler anlockt, wenn sie ein paar Euro dazu verdienen können während sie Spaß haben. Ob das ein langfristiges Modell ist wird sich zeigen, für Werbung ist es sicher interessant.

Ich kann mir auch gut ein Modell vorstellen, wo man quasi fürs kompetitive Spielen Bitcoin zahlt und dann der Gewinner das Preisgeld bekommt und der Entwickler eine kleine Gebühr davon. (Also zB ein Ego Shooter, wo man 2000 sats pro Runde zahlt und nach jeder gewonnen Runde dann 3900 sats ausgezahlt bekommt.

Große Studios können davon profitieren, dass es einfach gemacht wird kleine Beträge für kleinen extra Content zu zahlen.

1 „Gefällt mir“

Ja das kann ich mir auch vorstellen.

Ich denke auch, dass bei größeren E-Sports Events so etwas kommen könnte. Etwa, wenn Sponsoren während eines Turniers die Invoice des Turnierbetreibers zahlt, die Werbung dann irgendwo im laufenden Spiel platziert wird und die Spieler dann daran beteiligt werden.
Wie schon oben erwähnt wurde das Konzept im Spiel BitcoinBountyHunt schonmal verfolgt. Ich glaube nur leider, dass die nichts mehr entwickeln.

1 „Gefällt mir“