.png)
Dieses Projekt ist eigentlich noch nicht spruchreif und es ist auch noch ein langer Weg bis zum Ziel. Ich möchte mit diesem Artikel dennoch gerne den Start und die Idee festhalten.
Ich werde auch im weiteren Verlauf die Entwicklung in dieser Form dokumentieren. Das bietet Dir einen kleinen Einblick hinter die Kulissen und hilft mir das Ganze etwas zu ordnen.
Das Projekt lautet...
SteemBattle
SteemBattle soll sinnvoll an Steem Monsters andocken und eine bereichernde Ergänzung darstellen.
Mit SteemBattle kannst Du Deine Freunde und Feinde (hast Du natürlich nicht!) herausfordern oder bestehende Herausforderungen annehmen und Steem gewinnen!
Hierfür definierst Du einfach das Deck, mit dem Du antreten möchtest und den Betrag, um welchen gekämpft wird, in Steem. Wer ausreichend Mut hat, nimmt Deine Herausforderung an und der Gewinner erhält den kompletten Betrag.
Die Steem Monsters Turniere waren für die kommende Woche angekündigt und verschieben sich nun erneut bis Mitte Oktober. Es wird auch vorab erst das "1v1 Battle System" geben und das "Tournament System" kommt etwas zeitversetzt. Es bleiben mir also noch ca. 4 Wochen Zeit um dieses Projekt zu realisieren. Das ist prinzipiell möglich. Gegebenenfalls ermöglicht den Zugang zur Kampf-API bereits etwas früher. Mal sehen.
Die Annahme: Es wird immer gekämpft!
Hat man die offiziell von Steem Monsters angebotenen Slots erstmal gefüllt, heißt es auf das Ergebnis bzw. den nächsten Tag warten. Das ist öde! Wer diese Zeit sinnvoll überbrücken möchte, nutzt SteemBattle. Der Kick: Es wird um Steem gekämpft!
Fun Fact: SteemBattle sollte ursprünglich SteemFight heißen, jedoch waren sowohl der Steemit Name, als auch die wichtigsten Domains bereits vergeben. Das ist aber nicht weiter schlimm, denn der Name ist nur nebensächlich und SteemBattle rockt! Natürlich habe ich soeben den Namen gesichert. Die Domain SteemBattle.com ist noch frei, die kann ich aber auch noch später sichern (oder zur Not den Namen ändern).
Ein wesentlicher Ausgangspunkt für SteemBattle ist der #decktalk mit Tim (). Über die Idee spreche ich mit Tim jedoch schon etwas länger. Ich würde gerne jetzt sofort die Möglichkeit haben, Tim direkt herausfordern zu können inkl. einem kleinen Anreiz (Steem). Genau das wird SteemBattle leisten. Wenn dieses Projekt bereits den Nutzen erfüllt, nur uns beiden Spaß zu bringen, gilt dieses Projekt als Erfolg. Das ist schon mal eine gute Grundlage.
SteemBattle möchte ich gerne gemeinsam mit Tim umsetzen, die Zusammenarbeit beim TradingBot hat echt Spaß gemacht. Ich verfüge nur ein billiges 1und1 Hostingpaket, welches sich hierfür nicht eignet. Tim hat im Rahmen des TradingBots bereits einen Server gemietet (8 USD/Monat), welcher hierfür zum Einsatz kommt.
Um etwaige Differenzen zu vermeiden bzw. gleiche Voraussetzungen zu schaffen, stellen Tim und ich unsere Steem Monsters Karten bzw. unsere Max-Decks für die Kämpfe zur Verfügung. Somit ist SteemBattle fair.
Der eigene Anspruch ist, alles so einfach wie nur möglich und jedes Element selbsterklärend zu halten. Dieser Anspruch kann natürlich nur bei der entsprechenden Zielgruppe erfüllt werden. Wer das Deck täglich nutzt, um Turniere zu rocken und Steem damit zu farmen, ist hier genau richtig! Die Webseite muss performant und mobil-first umgesetzt werden.
Nice: Wir können die Kämpfe selbstständig auf die Steem Blockchain schreiben. Wir werden also eigenständig faire und transparent nachvollziehbare Kämpfe anbieten.
"So, anyone that has the "node extension" the cards chosen, and the hash of the block will deterimine the same winner 100% of the time" -
"The battles will be done completely deterministically and in a provably fair manner so that anyone can calculate the battle results for themselves and verify that they match the results calculated by steemmonsters.com or any other future UI that supports battling." -
Im Wesentlichen besteht SteemBattle aus diesen Bausteinen:
- Herausforderungen können eingetragen werden
- Herausforderungen können angenommen werden
- Herausforderungen werden gelistet
Die Startseite ist primär eine Übersicht der bereits eingetragenen Herausforderungen. Mittels Klick auf "Fight!" kann eine Herausforderung angenommen werden.
Hier ein Screenshot mit einem Auszug der Startseite:
Wenn Du auf den Link "Fight!" klickst, wirst Du zum nachfolgend aufgeführten Formular (existierende Herausforderung annehmen) geleitet. In diesem Beispiel bin ich der Herausforderer und es geht um 100 Steem. Hierfür habe ich bereits vorab mein Deck definiert und 50 Steem hinterlegt. Um den Kampf anzunehmen, musst Du also nur noch ein Deck definieren und ebenso 50 Steem hinterlegen.
Hier ein Screenshot mit einem Auszug des Formulars (existierende Herausforderung annehmen):
An dieser Stelle ist noch unklar, ob mit oder ohne "Login/Registrierung" gearbeitet wird. SteemConnect bietet hier zwar eine wunderbare und einfach umzusetzende Möglichkeit an, jedoch versuche ich noch darum herum zu kommen.
Wenn Du von der Startseite aus kommend auf "Create a new battle" klickst, gelangst Du zum Formular "Create". Hier kannst Du eine neue Herausforderung erstellen. Hierfür definierst Du einfach die gewünschte Anzahl an Steem und Dein Deck. Nach Absenden des Formulars wirst Du zu SteemConnect weitergeleitet, um die Steem zu hinterlegen. Die Überweisung geht an . Anschließend ist Deine Herausforderung auf der Startseite gelistet und kann angenommen werden.
Sende Deinem Freund oder Feind doch einfach eine PM, um über die von Dir eingetragene Herausforderung zu informieren! :)
Hier ein Screenshot mit einem Auszug des Formulars (neue Herausforderung erstellen):
Für Webentwickler: Ich arbeite hierbei mit Bootstrap, da ich hier bereits schon Routine habe. Bootstrap habe ich bereits häufig verbaut. Es ist hochgradig performant und optimal für den mobil-first Ansatz.
Ich streichle bei SteemBattle HTML/CSS und kicke die Vermarktung, krault auf Stundenbasis JavaScript/PHP und Tim schaukelt Python und damit alles Blockchain-Seitige.
Da es bei diesem Projekt nicht um maximalen Profit geht, werden die Einnahmen von SteemBattle zu 100% umgelegt. Im weiteren Verlauf werden 5% Gebühren der Preisgelder erhoben. Es werden also z.B. pro 100 Steem vom Account neue Herausforderungen erstellt, die dann von Dir angenommen werden können. Bei SteemBattle stehen Spaß und die eigene Nutzung im Mittelpunkt.
Da beim Einstellen einer neuen Herausforderung 50% des Preisgeldes bei hinterlegt werden muss, ist ein großer Vertrauensvorschuss in
nötig. Hierfür wird aber eine wunderbare Lösung angeboten:
"As for the prizes, we will likely create some type of escrow service for third-parties who want to run tournaments for blockchain-based prizes. This way they can send Steem, SBD, Cards or Card Packs, and will automatically pay them out to the specified winners at the conclusion of the tournament" - source:
(click here)
Außerdem muss es ggf. die Möglichkeit geben, Herausforderungen wieder zu stornieren. Alternativ kann man einen Counter herunter zählen lassen, und dann die Steem bei "nicht Erfolg" automatisch wieder zurück senden. Damit wäre das Thema "Login" vom Tisch. Ggf. muss man auf jeden Fall stornieren können.
Denkfehler: Mir ist noch ein unschöner Denkfehler aufgefallen, für welchen ich ad hoc noch keine Lösung habe. Wenn wir das Deck via Memo an senden, kann ein Angreifer vorab die Wallet checken, um zu sehen, welches Deck sich hinter der Herausforderung verbirgt und somit ein optimales Deck bauen. Das ist eine Schwachstelle.
Wenn man das Deck "versteckt" (z.b. in der DB, denn auf der Blockchain könnte man ja nichts verstecken), kann man uns vorwerfen, einen unfairen Vorteil zu haben, wenn wir teilnehmen (und das wollen wir auf jeden Fall!), denn wir könnten ja vorab in das Deck blicken und dann optimal angreifen. Das ist mir eben erst gekommen, hierfür müssen wir noch eine Lösung erarbeiten.
Alle Links zum aktuellen Entwurf:
- http://bot.crossbot.de/steembattle/
- http://bot.crossbot.de/steembattle/create
- http://bot.crossbot.de/steembattle/accept
- http://bot.crossbot.de/steembattle/faq
Du möchtest Dich an diesem Projekt beteiligen? Sehr gerne, sag einfach bescheid.
Viele Grüße
Oli