Status Update #19 - Vom Problem bis zur Umsetzung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Status Update #19 - Vom Problem bis zur Umsetzung




      Vom Problem bis zur Umsetzung #1: Bauen auf ungekauften Grundstücken

      Es kommt häufiger vor, dass ein Spieler sich meldet und meint sein Grundstück wurde ihm 'geklaut'.
      Gerade erst am Tag davor hatte er noch auf seinem Grundstück gebaut und am Tag danach ist jemand anderes der Besitzer!!? :cursing:
      In so gut wie jedem Fall der letzten Jahre liegt dies dann entweder daran, dass der Spieler lange inaktiv war oder er das Grundstück niemals gekauft hatte.
      Gegen die Inaktivität kann man nicht viel tun - so funktioniert das Spielkonzept eben.

      Ein Grundstück nicht gekauft zu haben ist aber oft einfach nur ärgerlich. Natürlich gibt es ab und zu Spieler, die 'auf gut Glück' bauen und das Grundstück erst später kaufen, weil sie nicht genügend Kadis haben - meistens ist es aber einfach nur ein Versehen, dass der Spieler das Grundstück nicht gekauft hat.

      Vor ein paar Tagen hat @Britta1971 dann einen Fall ins Forum geschrieben, bei dem dies wohl wieder das Problem war.
      @airfighter007 hat es dann geprüft und:




      "Also wieder mal gedacht" war dann der Satz an dem ich hängen geblieben bin. Ja warum passiert das eigentlich mal wieder? Das muss doch eigentlich nicht sein?!
      Das musste also irgendwie besser werden. Die Idee war grundlegend ja nicht kompliziert. Die Warn-Meldung, die bereits jetzt schon kommt wenn man eine Kiste auf einem Grundstück setzt reichte einfach nicht. Irgendwie muss diese Warnung präsenter werden:



      Nach einiger Überlegung und Feedback aus dem Team wie z.B. noch der Vorschlag von @_Ignaz_ das jeweilige Grundstück zu markieren war die Idee dann auch soweit fertig.




      Geplante Idee:
      • Warn-Meldung in rot wenn man auf einem Ungekauften Grundstück baut.
      • Warn-Meldung aber nicht im Chat weil es zu "spamming" ist, sondern in der ActionBar, die wir auch für den KShop schon nutzen.
      • Markierung des Grundstücks, welches nicht gekauft ist.
      Dazu dann noch ein paar Dinge für die Verwaltung:
      • Nicht für jeden gebauten Block direkt die Grundstücksmarkierung noch mal senden, da wird man einfach zu sehr mit Partikeln vollgespammt.
      • Der Server bedankt sich auch wenn er nicht zu viele Partikel senden muss.
      • Die Prüfung ob der Spieler gerade 'falsch baut' sollte möglichst wenig Berechnung benötigen.

      Der Code bleibt aber sehr überschaubar für diese Funktion. Die grundlegende erste Implementation um das System dann zu testen sieht so aus.


      Das Ergebnis im Spiel
      (wird im nächsten Update aufgespielt)












      Vom Problem bis zur Umsetzung #2: Replay-Funktion für FakeStuff

      Warum ist denn die Cactus-Jumpmap noch immer nicht eröffnet? :cursing: :cursing: :cursing:


      Und hier dann auch gleich die Erklärung dazu und wie es danach weiter ging. Angefangen hat es alles damit, dass wir für die Gewinne in den Arenen unbedingt etwas gegen Cheater brauchen.
      Gleichzeitig sollen aber natürlich auch die Rocketboots usw. noch gut funktionieren. Diese Dinge zu Kombinieren ist gerne mal etwas komplizierter.

      Also ging es los mit der Grundlegenden Frage - diesmal im Adminchat über Telegram:









      Der erste Schritt ist natürlich erst mal nach Plugins zu suchen, die dies vielleicht schon können?
      Ein paar Euro für ein gutes Plugin ausgeben ist viel weniger Aufwand als es selber zu schreiben.
      Aber leider gab es hier nichts, was auf Kadcon einsetzbar gewesen wäre. :(

      Nach ein paar Tagen andern Plugins zu testen war das Resultat also: Selber machen.
      Am Forum-Beitrag kann man dann sehen dass die Replay-Funktion an sich nicht viel Zeit gebraucht hat: FakeStuff Replay - Ideen?
      Technisch ist sie auch nicht aufwändig. Es muss nur die Spieler-Position regelmäßig gespeichert werden. Alles andere (Ducken, Elytra-Flug, Items-Wechseln usw.) ist für die Jumpmaps erst einmal unwichtig.

      Schwieriger ist dann die Verwaltung von Replays:
      • Wie verbindet man die Highscores und die Replays?
      • Wie kann man gezielt bestimmte Replays finden?
      • Wie kann man die Spieler auf Replays zugreifen lassen?
      • Wie kann man verhindern, dass die Replay-Funktion zu viel CPU-Leistung zieht?
      • Wie schafft man es, dass die Spieler die Replays als "Demo" starten können um die Highscore der anderen Person zu knacken?
      • Ab wann löscht man Replays? Über welche Funktion löscht man Replays?
      • Was soll in Replays alles drin sein? Items? Skin? Waffen-Wechsel? Effekte? Geschossene Pfeile?
      • Wie pausiert man ein Replay? Wie spult man es zurück?

      An den Fragen kann man hoffentlich erahnen, wie genau man hier denken muss. Eine falsche Entscheidung am Anfang kann leicht dazu führen, dass man zu einem späteren Zeitpunkt sehr viel wieder umbauen muss. Ohne hier nun ins Detail zu gehen (falls jemand zur Umsetzung/Code Fragen hat beantworte ich diese gerne) hat es auch einige Zeit gedauert bis es dann soweit war. Am 11. Januar - fast genau einen Monat nachdem die Idee entstanden ist wurde die erste Version aufgespielt.



      In dieses Feature kann man natürlich noch viele weitere Wochen oder Monate stecken aber irgendwo muss man auch einen Schlussstrich ziehen. Es gibt genügend andere Aufgaben, die auch erledigt werden müssen und auch wichtiger sind.

      Nicht umgesetzt sind dann zum Beispiel:
      • Pause-Funktion für Replays
      • Zurückspulen von Replays
      • Anzeige von Waffen-Änderung, Geschossene Pfeile usw.
      • Anzeige ob der Spieler einen Trank nutzt.
      • Diverse Befehle für die bessere Kontrolle von Replays. Beispielhaft:
        • Starten von Sekunde X
        • Replay privat starten (nur die Person die es startet kann es sehen sonst keiner)
      • Replay auch weiterlaufen lassen nachdem man sich weg/hin teleportiert hat
      • ...

      Es sind alles nützliche Funktionen und jede Einzelne brächte wohl nicht länger als einen Tag. Zeit bleibt leider Mangelware. ;(

      Letztendlich kann es nun aber endlich bei den Jumpmaps weiter gehen und die Gewinne bei /w cactus werden in den nächsten Tagen eingebaut. (y)


      Kade


      Bilder
      • cactus.jpg

        206 kB, 1.000×549, 777 mal angesehen
      • rep3.png

        77,6 kB, 602×198, 773 mal angesehen
      • rep2.png

        249,48 kB, 602×1.075, 775 mal angesehen
      • rep1.png

        13,4 kB, 441×134, 769 mal angesehen
      • gskaufimpl.png

        67,7 kB, 1.135×802, 771 mal angesehen
      • gskauf3.png

        11,15 kB, 784×174, 765 mal angesehen
      • gskauf2.png

        8,68 kB, 711×168, 764 mal angesehen
      • gskauf1.png

        32,52 kB, 829×122, 771 mal angesehen
      Dateien
      • plzbuy2.mp4

        (3,08 MB, 1.925 mal heruntergeladen, zuletzt: )
      • Untitled.mp4

        (2,58 MB, 61.804 mal heruntergeladen, zuletzt: )
      blog.kadcon.de
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      @JNS

      Grundsätzlich würde ich schon sagen, dass es so in etwa passt.
      Es kommt immer stark darauf an worum es geht. Je nachdem wo ich glaube ein besseres Feedback bekommen zu können frage ich dort nach.
      Das können die Spieler, Team, Programmierer aber auch z.B. einfach Freunde sein die nichts mit MC zu tun haben.

      - Im Team beraten / Community befragen nach Ideen

      Dabei geht es am Anfang meistens um mögliche Wege, wie die Idee vielleicht kaputt gemacht werden könnte. Intern Frage ich daher fast immer "angenommen es wird so und so eingebaut - wen könnte das stören, wer nutzt das häufig und wird damit auf die Füße getreten?". Die Ideen dort sind meistens etwas direkter formuliert weil meistens klar ist, dass diese gerne mal 'heftigen' Vorschläge am Ende noch so angepasst werden, dass es gut zu Kadcon passt.

      Wenn ich die Community befrage ist es meistens für weitere Einsatzmöglichkeiten oder bereits eine 'nettere Version' der Idee, weil ich hier nicht erwarten kann, dass die Spieler verstehen, dass es am Ende dann noch besser auf das Spielgeschehen zugeschnitten wird. Wäre es nicht die 'nettere Version' resultiert das meißt in Kommentaren die nur noch darüber gehen dass man das doch so nicht machen kann und man ja das Spiel kaputt macht....die Idee selber kommt dann nicht weiter.


      - Nach schon verfügbaren Plugins suchen

      Leider meist nur noch um einen Überblick zu bekommen wie es normalerweise gelöst wird. Beispielhaft bei der Replay-Funktion ist mir kein Plugin bekannt dass so vorgeht.
      Das liegt aber eben auch daran wie Kadcon funktioniert. Hier gibt es so viele Dinge die miteinander funktionieren müssen, dass es oft Anpassungen/Nachbesserungen an Plugins geben muss. Bei jeweils extra Servern pro Minigame hätte man die Probleme viel seltener.

      Es ist aber auch allgemein ein Problem, dass die Qualität von Plugins eben nicht all zu gut ist. Das ist aber auch zu erwarten, da so gut wie jedes Plugin von einer Person ist, die mit Minecraft Programmieren lernt oder es als Hobby nebenbei macht.


      - Selbst Fragen bezüglich Dingen worauf man achten muss stellen
      - (Planung des Aufbaus des Plugins)?
      - Erste Umsetzung

      Die erste Umsetzung - so schnell wie möglich - ist sogar gerne mal vor der Planung und der Überlegung. Dies hilft sehr dabei sich ein besseres Bild machen zu können.
      Bei Replay habe ich einfach erstmal nur die Aufnahme/Abspielen eingebaut so schnell es geht. Als dies dann lieft und das Topic im Ideen-Forum da war habe ich erst angefangen mir zu überlegen wie man es korrekt Umsetzen könnte.
      Dabei ging es z.B. lange darum, wie man die Pause/Zurückspulen-Funktion unterstützen kann. Gerne mal selber überlegen wie man das umsetzen kann und hier vorschlagen! 8) Es gibt da viele Möglichkeiten und alle haben Vor- und Nachteile.

      Bei KShop war es dann etwas anders. Dort wusste ich schon sehr genau wie es grundlegend funktionieren kann (ChestShop) und was mich daran auch stört. Die meisten extra Dinge musste ich nicht testen, weil ich bereits wusste wie sie funktionieren von anderen Tests (Trader in der Lobby, Asynchrone Handelsjobs, Performanceoptimierung...).
      Weiterhin war klar, dass die Struktur des Plugins nach einem ganz klaren Muster sein muss um Duping usw. auszuschließen durch das Plugin selber. Hier habe ich mir in der Anfangsphase fast kein Feedback geholt. Erst als es dann um die Nutzung/Informationsanzeige/Chatanzeige usw. ging habe ich sehr häufig im Team/Community nachgefragt.



      Kademlia schrieb:

      - fast genau einen Monat nachdem die Idee entstanden ist wurde die erste Version aufgespielt.


      Da sind natürlich die Weihnachtsferien mit drin in denen ich auch nicht wirklich da war. Aktiv dran gearbeitet habe ich vielleicht 1-1,5 Wochen aber das unterschlägt eben die Zeit, in der man andere Dinge macht aber dennoch darüber nachdenkt und bessere Lösungen auf Probleme findet. In dieser Zeit habe ich z.B. die für mich 'beste Lösung' für die Pause/Zurückspulen-Funktion im Gespräch mit meinem Bruder (auch Programmierer) raus gefunden. Diese hat es aber nicht auf den Server geschafft. Sie ist zwar definiert aber nicht Implementiert :|

      Kade

      blog.kadcon.de
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.

      Kademlia schrieb:

      Dabei ging es z.B. lange darum, wie man die Pause/Zurückspulen-Funktion unterstützen kann. Gerne mal selber überlegen wie man das umsetzen kann und hier vorschlagen!

      Wäre es möglich hier die selbe Steuerung wie beim setzen von Fakestuff Modellen zu verwenden? Also Vorwärts und Rückwärts mit dem Mausrad, und Q & E(?) oder welche Tasten auch immer das sind die Genauigkeit einstellen.


      Kademlia schrieb:

      Dabei geht es am Anfang meistens um mögliche Wege, wie die Idee vielleicht kaputt gemacht werden könnte. Intern Frage ich daher fast immer "angenommen es wird so und so eingebaut - wen könnte das stören, wer nutzt das häufig und wird damit auf die Füße getreten?".
      Na dann mecker ich mal drauf los ;) .
      Die von dir angesprochene Idee einen Hinweis einzublenden und Partikel and den GS-Grenzen zu zeigen, wenn man auch einem ungekauften GS (ab)baut wird mir wahrscheinlich sehr schnall und sehr stark auf die Nüsse gehen, da ich meist in der GS-Welt und nicht in der Farmwelt Sand farme. Deshalb wäre es ganz nützlich, wenn es die Möglichkeit gibt diese Warnung auszuschalten, entweder nur für die aktuelle Session oder permanent. Dabei könnte man so eine doppelte abfrage machen wie beim aktivieren von VIP-Paketen. In etwa so /land warning ignore/land warning ignorge ok. Wer so ausdrücklich die Warung ausstellt brauchst sich auch nicht beschweren, wenn dann doch mal ein versehentlich nicht gekauftes GS resettet oder von jemand anderem gekauft wird.
      Hinweis für Allergiker:
      Meine Beiträge könen Spuren von Sarkasmus, Ironie, Haselnüssen, schwarzem Humor und anderen Hülsenfrüchten enthalten.

      njulian schrieb:

      Die von dir angesprochene Idee einen Hinweis einzublenden und Partikel and den GS-Grenzen zu zeigen, wenn man auch einem ungekauften GS (ab)baut wird mir wahrscheinlich sehr schnall und sehr stark auf die Nüsse gehen, da ich meist in der GS-Welt und nicht in der Farmwelt Sand farme.

      Diese Meldung gibt es nur beim Setzen von Blöcken, abbauen geht ganz normal wie jetzt auch ohne Warnung, da wirst du also kein Problem haben ;)

      air

      Kademlia schrieb:

      Geplante Idee:
      Warn-Meldung in rot wenn man auf einem Ungekauften Grundstück baut.
      Warn-Meldung aber nicht im Chat weil es zu "spamming" ist, sondern in der ActionBar, die wir auch für den KShop schon nutzen.
      Markierung des Grundstücks, welches nicht gekauft ist.


      Diese Meldung bekommt man nebenbei auch wenn man bei der Bank ein Schild auf der Druckplatte platziert. Bei anderen Blöcken bzw. selbst wenn ich das Schild anstatt auf der Druckplatte auf dem Boden platziere kommt diese Meldung nicht.
      > Kadcon Achievement Hunter & Kadcon Achievement Hunter II <

      if you lose your way tonight - that's how you know the magic's right