Planetwar - Neues Browserspiel

in #neulingschallenge7 years ago

Guten Tag,

Um an der #neulingschallenge out-of-competition teilzunehmen will ich auf #deutsch die ersten Anfänge meines neuen Browsergames Planetwar vorstellen. Ihr könnte mir gerne Feedback oder Verbesserungsvorschläge senden. Für konstruktive Kritik bin ich immer offen.


Vorgeschichte

Um einen alten Pc wieder zum laufen zu bringen, habe ich vor ein paar Jahren Knoppix darauf installiert. Kurz nach der erfolgreichen Installation ist mir aufgefallen, dass es auf Knoppix vorinstallierte Spiele gab. Darunter war auch das Spiel Konquest das mir damals so gut gefallen hat, dass ich ständig irgendwelche Freunde gezwungen hab es mit mir zu spielen.

Das Spiel war an sich unglaublich cool, jedoch hatte es meiner Ansicht nach ein paar Probleme, weswegen ich aufgehört habe es zu spielen.
  • Das Spiel war ein offline Spiel, man konnte also nur mit Freunden, die neben einem am gleichen Pc saßen, spielen
  • Man konnte nicht Zeitgleichen mit dem Gegner einen Zug machen ➔ Das Spiel wurde in die Länge gezogen und man musste während des Zuges des anderen Spielers wegschauen oder die Augen schließen
  • Das Spiel gibt es nur auf Linux, daher konnte ich es nicht auf meinem Haupt Pc Spielen

  • Wie bereits gesagt haben mich diese Faktoren dazu bewegt das eigentlich coole Spiel nicht mehr zu Spielen.

    Funktion des alten Spiels


    Das originale Spiel, also Konquest, besteht im wesentlichen aus einer 2D Fläche, die eine Galaxie (oder zumindest einen Quadranten) darstellt. Am Anfang besitzt jeder einen Planeten und Ziel des Spiels ist es mehrere Planeten einzunehmen und ein Galaktisches Imperium aufzubauen.
    Man konnte von den eigenen Planeten andere Planeten (entweder unbesetzt oder vom Gegner) Angreifen. Jeder Planet stellt jede Runde eine gewisse Anzahl an Schiffen her. Diese Zahl kann man auch unter Produktion sehen. Außerdem waren die Schiffe verschiedener Planeten unterschiedlich stark. Dazu gab es noch ein paar Tools. Man konnte z.B. schauen wie lange Raumschiffe benötigen um zum nächsten Planeten zu kommen oder man konnte Nachsehen wie viele Schiffe der Gegner / man selber besitzt.
    Alles in einem eigentlich ein echt cooles Spiel. Das mich auch sehr für mein Spiel inspiriert hat.

    Und Jetzt??


    Ungefähr zu der Zeit, zu der ich das originale Konquest gespielt habe, habe ich angefangen HTML zu lernen. Vor zwei Jahren kam dann CSS dazu. Nun bin ich bei PHP und Javascript angekommen (wobei ich bei Javascript noch nich ganz durchblicke :D).

    Falls ich für dich gerade über Böhmische Dörfer rede:
    CSS und HTML sind Auszeichnungsprachen, mit denen man das Aussehen von Websites festlegen kann. PHP ist eine Serverseitige Programmiersprache, dass heist, du als User kannst nicht sehen welcher Teil einer Website mit PHP generiert wurde. Daher wird PHP z.B. für Anmeldevorgänge benutzt. Javascript hingegen kannst du sehen. Javascript ist Userseitig und eignet sich daher z.B. gut dafür in einem Anmeldeformular zu überprüfen, ob du Sonderzeichen benutzt und auch sonst alles stimmt, noch bevor du es absendest.

    Ich habe nun nach einer neuen Herausforderung gesucht, die Spaß macht und in die ich mich hineinarbeiten kann. Ich kam auf die Idee ein einfaches Spiel zu programmieren, wusste aber immer noch nicht wie es aufgebaut sein soll.
    Ich kam dann auf die Idee Konquest barrierefrei zu programmieren. Das heißt, dass ich es so programmieren wollte, dass es jeder mit jedem Betriebsystem spielen kann, solange er eine gute Internetverbindung besitzt. Diese Spiel nenne ich Planetwar.

    Planetwar


    Jetzt wo ihr die Vorgeschichte kennt, will ich auf die Umsetzung und meine Ansprüche eingehen.

    Ansprüche

    1. Das gesamte Spiel soll onlinebasiert sein. Jeder soll die Möglichkeit haben das Spiel zu spielen, egal welches Betriebsystem er benutzt.
    2. Die Benutzer sollen gezielt mit Freunden Spielen können. Beim erstellen einer neuen Runde, wird automatisch eine 6 stellige Zahl generiert, die als Passwort fungiert. Spieler die Verloren haben oder Spieler die zuschauen möchten können einen Spectator Modus (Zuschauermodus) benutzen, um dem Spiel weiter zu folgen.
    3. Das Spiel soll übersichtlich sein. Damit der Spieler auch bei einer 5 Spieler Runde noch die Übersicht behält, stehen ihm Zahlreiche Tools zur Verfügung. Er kann sehen wohin er wann Schiffe gesendet hat und wann sie ankommen, der Spieler kann die Anzahl der Gegnerischen Schiffe sehen, er kann die zuletzt getätigten Angriffe anschauen und er kann sehen, wer wie viele Planeten besitzt und wie viele Schiffe diese Planeten insgesamt herstellen.
    4. Um den Konkurrenzgedanken zu stärken, soll es Bestenlisten und Ränge geben.

    Wie starte ich ein Spiel?

    Zuerst muss man sich Registrieren. Um zur Not zu beweisen, dass der Account dir gehört (z.B. Passwort vergessen) musst du auch eine E-Mail Adresse angeben. Diese musst du jedoch nicht bestätigen.
    Nach der Registrierung kann man sich mit dem ausgewählten Benutzernamen und Passwort anmelden.



    Nach dem Login kann man eine Runde erstellen.
    • Die Breite der Map sagt, wie viele Kästchen die Map groß sein soll.
      Die Map ist immer Quadratisch also gibt es insgesamt (Eingabe+1) 2 Felder
    • Bis zu 5 Spieler können einer Runde beitreten.
      Gibt man als Spieleranzahl 1 ein, spielt man gegen eine Ki
    • Zukünftig kann man unter Gamemode verschiedene Spielarten auswählen.
      Darunter soll z.B. die Ki auch zu finden sein.
      Classic entspricht dem normalen Spielmodus der nachher auch noch erklärt wird.
    • Man kann einstellen wie viele Raumschiffe die Startplaneten am Anfang besitzen.
    • Am Ende kann man noch die Produktionsrate für die Hauptplaneten einstellen.
      Die Produktionsraten anderer Planet passen sich automatisch daran an

    Aber wie funktioniert das Spiel denn jetzt

    Okay auf diesen Punkt gehe ich echt etwas spät ein... Aber die Geduld zahlt sich aus.
    So sieht z.B. eine Karte nach ein paar Runden aus:

    Die Zahlen in der Oberen Reihe z.B. 4/2 gehören zu einem Koordinatensystem. Planet 4/2 liegt in der 5. Spalte, in der 3. Zeile.
    Die Zweite Zahl steht für die Anzahl der Stationierten Schiffe. Sicher fragst du dich jetzt, warum sich so viele Schiffe im Nichts befinden.. Um Armeen vor dem Gegner zu verstecken kann man sie ins Vakuum schicken. Sind sie dort stationiert kann der Gegner sie nicht mehr sehen. Er kann nur die Gesamtzahl deiner Schiffe in der Statistik auslesen und sich so errechnen, wie viele Schiffe du versteckt hast. Wo weiß er aber nicht. Als Abwehrstrategie kann man wie Blau im Bild oben an ganz viele Positionen ein Schiff schicken, verschwindet dieses, weißt du dass der Gegner dprt soeben Schiffe stationiert hat.
    Die 3. Zahl steht für die Produktion. Koordinaten an denen Kein Planet liegt besitzen keine Produktion. Unbsesetzte Planeten stellen nur die gerundete Hälfte ihrer theoretischen Produktion her.
    Planeten unterschiedlicher Spieler sind außerdem mit der Farbe des Spieler hinterlegt. Der Skin des Planeten spielt keine Rolle und soll nur der Abwechslung dienen.

    Will man einen Gegnerischen Planet angreifen, klickt man auf den Startplanet und dann auf den Zielplaneten. Ein Dialog öffnet sich und fragt, wie viele Schiffe man senden will. Man tippt die gewünschte Anzahl ein und die Schiffe sind gesendet.
    Damit Schiffe nicht direkt ankommen ist das Spiel rundenbasiert. Schiffe brauchen um 1 Kästchen zurückzulegen 1 Runde. Am Anfang dauert eine Runde 30sec die Runden werden jedoch immer Länger.
    Kommen die Schiffe nun beim gewünschten Planet an, zerstört eins deiner Schiffe ein gegnerisches Schiff.

    Spielziel und Taktik

    Ziel des Spiels ist es den/die Gegner zu besiegen.
    Am Anfang ist es daher eine gute Taktik unbesetzte Planeten mit möglichst viel Produktion einzunehmen. So stellt man dann immer mehr Schiffe her. Irgendwann kann man dann anfangen den Gegner anzugreifen. Eine gute Taktik ist, wie oben schon erwähnt Schiffe in der Nähe des gegnerischen Hauptplaneten im Vakuum verstecken. Zieht der Gegener Schiffe von seinem Hauptplaneten ab, kannst du dann direkt angreifen.
    Verloren hat man, wenn man nur noch <10 Schiffe besitzt oder wenn man 5min lang keinen Zug mehr durchgeführt hat.
    Wenn man verloren hat kann man im vorhin schon erwähnten Spectatormodus den verbliebenen Spielern zuschauen.

    Statistik

    Ich habe bereits oben schon die Statistiktools angesprochen. Hier meine Umsetzung:

    An dieser Kurve kann man sehen wann wer wie viele Schiffe besaß. Mit der Zeit wird sie immer komplexer.
    In diesem Log können die Spieler sehen wann wer wen angegriffen hat.
    Ich habe die Erfahrung gemacht dass er oft nicht beachtet wird, obwohl er sehr wichtig ist.
    Zuletzt noch ein Tool dass einem Anzeigt, wer wie viele Schiffe besitzt:


    Das Ganze Spiel sieht dann so aus:




    Link zum Spiel


    Bitte beachte, dass das Spiel noch in der Beta ist. Benutze für deinen Account keine Passwörter, die du auch auf anderen Webseiten angegeben hast!!! Zurzeit funktioniert die KI leider nicht, du kannst also nur mit einem Freund spielen. Falls irgendwelche Fehler auftreten, bitte schreibe sie mir.
    Ansonsten viel Spaß beim Spielen: Planetwar

    Ist Planetwar eine Billige Kopie von Konquest?


    Um ehrlich zu sein bin ich mir in diesem Punkt nicht sicher und werde noch den Programmierer von Konquest anschreiben, wie er das sieht. Aber eigentlich habe ich schon große Änderungen vorgenommen... Ihr könnt ja auch mal kommentieren, was ihr denkt...
Sort:  

Congratulations @chimchu! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard Ranking update - A better rich list comparator
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Congratulations @chimchu! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Congratulations @chimchu! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.26
TRX 0.25
JST 0.040
BTC 92903.81
ETH 3331.70
USDT 1.00
SBD 3.29