Spieleengine I

vorhergehende Artikel in: Komponenten Rants
09.08.2013

Dieser Artikel beginnt eine unregelmäßige Serie von Gedanken und Ideen rund um die Entwicklung von Spielmechanismen.

Spieleidee

Bitte entschuldigt, liebe Leser, wenn Euch die Ideen hier bereits bekannt vorkommen. Ich spiele nicht allzu häufig und so kann es durchaus vorkommen, daß Ihr die hier geschilderten Ideen und Ansätze bereits aus anderen Spielen kennt.

Grundlegende Ausrichtung

Alles begann mit der Idee, ein eigenes Spielsystem zu erfinden, mit dem sich Spiele in der Tradition von Privateer umsetzen lassen würden. Das bedeutet, daß ein Wirtschaftssimulation ebenso ein Teil der Speilmechanik sein müsste, wie auch Kampf. Ja - es würde etwas werden, was mancher als Kriegsspiel bezeichnet. Aber letztlich ist auch Schach ein Spiel, bei dem es darum geht, den Gegner auszuschalten und wenigstens ist die hier skizzierte Idee kein First Person Shooter. Letztlich geht es aber darum, daß die Mechanik funktioniert - ich habe vor, im Winter zu versuchen, eine Pendeluhr aus Holz zu bauen und das mache ich auch nicht, weil ich wissen will, wie spät es ist.

Wirtschaftssimulation

Hierbei geht es um die Simulation von Märkten: Der Spieler, der mit dem Transport von Waren sein Geld verdient, soll kein statisches Preisgefüge vor sich sehen, das es ihm erlaubt, eine einmal gefundene rentable Route mit beliebig vielen Schiffen zu überschwemmen und so sagenhaft reich zu werden. Es soll vielmehr so sein, daß sich der Preis nach dem Angebot richtet. Weiterhin muß gewährleistet sein, daß ein reichhaltiges Angebot den Markt vergrößert, so daß - in vernünftigen Grenzen - das Angebot die Nachfrage reguliert. Es soll also eine positive Rückkopplung zwischen Angebot und Nachfrage existieren - oder in anderen Worten: Ist das Warenangebot reichhaltig, siedeln sich mehr Konsumenten an - die Nachfrage steigt; sind die Waren knapp, ziehen Konsumenten fort und die Nachfrage sinkt. Ein anderer wichtiger Aspekt ist, daß die Anzahl unterschiedlicher Warenkategorien groß sein soll- also nicht die 5 bis 10 verschiedenen Warenkategorien, auf die manche Spiele unwiederruflich festgelegt sind. Warenkategorien können sich auch überholen: wenn Hyperfunk erfunden wird - wer will dann schon noch Radios kaufen? Beziehungsweise kann natürlich auch der Preis der dann überholten Waren drastisch fallen - wegen fehlender Nachfrage...

Kampfsystem

Das Kampfsystem gliedert sich in die einander beeinflussenden Bereiche Ressourcenverwaltung und Schadensberechnung: Man benötigt Ressourcen, um Schaden anrichten zu können und angerichteter Schaden beeinflusst die Ressourcenerzeugung. Dazu die folgenden Ideen (ein + oder ein Minus heißt, daß die genannte Ressource erzeugt oder verbraucht wird, ein p bedeutet, daß dies eine Eigenschaft ist):

Bedienbar
  • -Personal
  • -Energie
Plattform (ist Bedienbar)
  • +Platz
  • plargestpossible
Schiff (ist Plattform)
  • pSchichtregelung
Modul(ist Plattform)
    Aggregat (ist Bedienbar)
    • -Platz
    • psmallestNeeded
    Generator (ist Aggregat)
    • +Energie
    • -Lager
    Energiespeicher(ist Aggregat)
      Mannschaftsquartiere(ist Aggregat)
      • +Personal
      • -Lebenserhaltung
      Waffen(ist Aggregat)
      • +Schaden
      • -Lager
      Lebenserhaltung(ist Aggregat)
      • +Lebenserhaltung
      • -Lager
      Antrieb(ist Aggregat)
      • +Beschleunigung
      Schild(ist Aggregat)
      • +Schutz
      Lagerraum(ist Aggregat)
      • +Lager

      Schiffe sind frei konstruierbar - für eine bestimmte Größe der Schiffszelle muß ein gewisser Technologielevel erreicht werden. Aber eine verfügbare Schiffszelle kann man völlig frei einrichten. Abheben wird ein Schiff aber nur dann, wenn die Bilanzen der Ressourcen Energie, Personal, Lager und Platz positiv sind.

      Schadensmodell

      Treffer richten Schaden an. Wenn eine durch die Art des Schildes definierte minimale Energie im Treffer enthalten ist (kleines bisschen wie der ETW0), dann richtet der Treffer auch Schaden an. Wieviel Schadenswirkung dann durchkommt, wird ebenfalls durch die Art des Schildes und die der angreifenden Waffe bestimmt. Bei Schadensereignis werden folgende Ressourcen verbraucht: Personal (Tote und Verwundete) und Platz (zerstörte Sektionen).

      Effizienz

      Jeder Ressourcenerzeuger in einem Schiff hat eine gewisse Effizienz. Frisch von der Werft wird dies meist 100% sein (Ausnahmen sind zum Beispiel möglich, wenn man sich bei der Personalstärke für ein 2-Schicht-System entschieden hat). Die Effizienz berechnet sich aus dem Basiswert für das jeweilige Bedienbare Objekt und der Verfügbarkeit von Personal, Energie und Platz (oder was sonst für Ressourcen benötigt werden). JE geringer die Effizienz, desto geringer die Ressourcenerzeugung.

      Sonderfall Lebenserhaltung

      Dieser Bereich ist daher ein Sonderfall, da ohne Sonderbehandlung ein Schiff vor der unweigerlichen Zerstörung steht, sobald es einen Treffer erhalten hat: Treffer: Platz und PErsonal sinken -> Eff LE sinkt -> Personal sinkt -> Eff LE sinkt ... Ein Teufelskreis! Daher: Wegen LE-Effizienz absinkende Personalstärke darf sich nicht auf Ressourcenerzeuger auswirken, von denen die LE abhängig ist. Das lässt sich vielleicht so erklären, daß ein Kapitän bei ungenügender Lebenserhaltung lieber ein Geschütz stillegt und dessen Bedienmannschaft helfen schickt.

      Sonderfall Lagerraum

      Dieser Bereich ist daher ein Sonderfall, da ohne Sonderbehandlung ein Schiff vor der unweigerlichen Zerstörung steht, sobald es einen Treffer erhalten hat: Treffer: Platz und Personal sinken -> Eff Lagerraum sinkt -> Energie sinkt -> Eff Lagerraum sinkt ... Ein Teufelskreis! Daher: Wegen Lagerraum-Effizienz absinkende Energieerzeugung darf sich nicht auf Ressourcenerzeuger auswirken, von denen der Lagerraum abhängig ist. Das lässt sich vielleicht so erklären, daß ein Kapitän bei ungenügendem Lagerraum lieber einen Container Tiefkühlkost verderben läßt, als die Eindämmungsfelder für den Kernbrennstoff zu destabilisieren!

      Artikel, die hierher verlinken

      Spieleengine II

      16.01.2014

      Dieser Artikel setzt die unregelmäßige Serie von Gedanken und Ideen rund um die Entwicklung von Spielmechanismen fort. Seit dem ersten Artikel ist längere Zeit vergangen, seither haben sich so viele Gedanken aufgestaut, daß sie wieder einmal geordnet werden müssen...

      Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


      Vor 5 Jahren hier im Blog

      • Certstream, InfluxDB, Grafana und Netflix

        16.04.2019

        Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

        Weiterlesen...

      Neueste Artikel

      • Die sQLshell ist nun cloudnative!

        Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

        Weiterlesen...
      • LinkCollections 2024 III

        Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

        Weiterlesen...
      • Funktionen mit mehreren Rückgabewerten in Java

        Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

        Weiterlesen...

      Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

      Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

      Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

      PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.