mmofacts.com

Ticks oder Echtzeit was ist besser ?

gepostet vor 15 Jahre, 11 Monate von gary1195
Hallo,
was ist eurer Meinung nach am besten Ticks oder Echtzeit was sind die vor- und nachteile
gepostet vor 15 Jahre, 11 Monate von DrakeL
Ich hatte bisher immer eine Mischung gemacht. Rohstoffe in Ticks, damit Rundungsprobleme bei sekundlichem aktualisieren nicht auftreten und Gebäudebau, Forschung etc. in Echtzeit.
Daher Vorteile bei Ticks:
- Weniger Probleme mit Rundungsfehler bei Rohstoffberechnungen
- Bei anderen Dingen muss man nicht immer pünktlich online sein, sondern hat immer einen Zeitraum eines Ticks (wenn es zum Beispiel keine Auftragsliste für Gebäudebau gibt)
Vorteil bei Echtzeit:
- Angriffs-/Flugzeiten lassen sich differenzierter verschnellen durch Forschungen etc. da hier dann jede Sekunde eine Verbesserung darstellt
Mehr fällt mir gerade nicht ein, aber ich finde Tickspiele eher gemütlicher und angenehmer, vor allem wenn so Dinge wie Auftragslisten fehlen.
gepostet vor 15 Jahre, 11 Monate von KEEN
Original von DrakeL
Daher Vorteile bei Ticks:
- Weniger Probleme mit Rundungsfehler bei Rohstoffberechnungen

Rundungsfehler kann man problemlos vermeiden indem man den Timestamp der letzen Produktion nur um floor($produzierte_menge)*$zeit_pro_einheit erhöht.
Meiner Einschätzung nach habe Ticks folgende Vorteile:
- Leichtere Programmierung
- Einfachste Variante für gemeinsame Angriffe
Nachteile der Ticks:
- Performance-Spitzen zu den Tickzeiten
- (Bau)Zeiten im Spiel können nur ein Vielfaches eines Ticks betragen
- Unnötiges warten (z.B. 100 Res pro Tick, es fehlen aber nur 5 Res)
- Trägeres Spielgefühl und weniger Intuitiv
-> Ticks sind eine Technik von gestern
gepostet vor 15 Jahre, 11 Monate von Valerion
-> Ticks sind eine Technik von gestern

Das würde ich so nicht sagen. Vor allem wegen Verteidigen/Angreifen(zusammen), z.b. stündliche Ticks, dann hat man immer noch genug Zeit und kommt nicht nur wegen ein paar mins zu spät(Bei Ticks weiß man, wann man deff schicken muss, du kannst es dir z.b. so einteilen, dass du immer 5-10 min vor Tick on bist). Außerdem ist es gemütlicher, weil nur bei den Ticks wirklich was passiert.
gepostet vor 15 Jahre, 11 Monate von DrakeL
Original von Valerionz.b. so einteilen, dass du immer 5-10 min vor Tick on bist)...

Was in der Regel darauf hinaus läuft, dass die Angreifer erst 1-2 Minuten vor Tickwechsel Schiffe wegschicken. Daher sollte man das einplanen.
gepostet vor 15 Jahre, 11 Monate von altertoby
Also ich habe die Erfahrung gemacht, dass Ticks beim Ressourcen hochrechnen einfach nur nerven, und nichtmal wirklich einfacher zu Proggen sind (besonders die schon genannten Performance-Spitzen).
Einfach speichern, wann das letzte Ressourcen-Update war und die Produktion seitdem. Dann bei jedem Zugriff auf die Ressourcen (bauen, Angriffe, ...) das aktuelle Guthaben ausrechnen.
Beim Flottenverschicken bzw. Angriffen habe ich verschiedene Erfahrungen gemacht:
Bei einem kleinen BG, war es so dass die Flotten jede volle Minute "gezogen" sind. Die Pros haben sich dann gegenseitig versucht zu überbieten wer es schafft "59" seine Schiffe über einen längeren Zeitraum zu verschicken und so dem Gegner keine Reaktionszeit mehr zu lassen. Naja wie die Noobs gekuckt haben nachdem sie ihre Flotte verloren haben dürft ihr euch denken.
Es ist eher unintuitiv.
Das Zusammenangreifen kann man auch sehr gut mit genauer Berechnung lösen! (z.B ein Fenster von 10 min einbauen indem neue Flotten mit in den Kampf gerechnet werden...kommt aber immer auf das Konzept an).
Echtzeit hat eig. keine mir bekannten Nachteile (evt. minimal erhöhter Prog-Aufwand)
gepostet vor 15 Jahre, 11 Monate von DrakeL
Bei den Ressourcen kapier ich noch nicht wie Ihr die Sekunden genaue Berechnung machen wollt.
Beispiel: Ich habe einen Ertrag von 100 Einheiten / Stunde. Macht bei 5 Minuten (100 / 60 * 5) 8,33 Einheiten. Wenn man dies jetzt abrundet bekommt der Benutzer 8 Einheiten und verliert 0,33 gegenüber jemandem der keine Rundung erfährt, da er die Seite nur einmal pro Stunde aktualisiert.
Ich regle das so, dass ich zum Beispiel die Rohstoffe in 5 Minuten Ticks berechne. Daher ich schaue bei jedem Zugriff auf die Ressourcen nach, wie viele 5 Minuten Ticks abgelaufen sind seit der letzten Berechnung. Auf diese Weise kann ich mir das Runden soweit ersparen (Ertrag ist dann immer Einheiten pro 5 Minuten).
Ich denke auch nicht, dass sich dies negativ auf die Performance auswirkt, ganz im Gegenteil. Wenn ich nicht alle 5 Minuten von JEDEM Spieler die Rohstoffe berechne, sondern ganz einfach maximal alle 5 Minuten die die ich gerade brauche für Anzeige/Berechnung etc. dann muss ich viel weniger Rohstoffberechnungen durchführen, als wenn ich die aktuellen Werte bei JEDEM Seitenaufruf für den Benutzer errechne.
gepostet vor 15 Jahre, 11 Monate von altertoby
Ganz einfach ich nehme keine Ints sondern doubles
Dem User wird trotzdem nur seine "8" angezeigt, aber intern steht eben 8,33 drinne.
Gut irgendwo ist da auch ne Rundung, aber das ist wohl zu vernachlässigen
Außerdem mach ich es so (gehen wir mal von dem Stand nach der Anmeldung aus):
User meldet sich an --> Produktion wird initalisiert (Stand: "Jetzt"); angenommen er hat eine Startproduktion von 100 Einheiten / Stunde
User kuckt sich 5 min erstmal das Game an.
Dabei bekommt er oben die aktuelle Ressanzahl angezeigt, die nach folgender Formel berechnet wird: letzter Updatezeitpunkt - "Jetzt", das in Sek. * Produktion pro Sekunde. Das abgerundete Ergebniss sieht der User, wird aber nirgends gespeichert.
Gespeichert wird es nur wenn sich die Ressourcen durch einen Gebäudebau ect verändern. Dadurch ist das Aktualisieren der Ressourcen sehr selten, da könnte man schon fast auc mit Ints rechnen und den Rundungsfehler einfach vernachlässigen
gepostet vor 15 Jahre, 11 Monate von DrakeL
Ich vernachlässige keine Rundungsfehler sondern sorge lieber dafür, dass Sie nicht passieren.
Und die einzige Möglichkeiten die mir eingefallen sind, war entweder die Produktion so hoch machen, dass ich auch bei Einheiten / Sekunde immer ganzzahlige Werte bekomme oder einfach die Ticks nicht Sekunden genau zu machen (nichts anderes ist ja Echtzeit in der Regel, 1 Tick / Sekunde) sondern 5 Minuten Weise oder ähnliche Schritte.
PS: Auch oder gerade Floats haben immer geringfügige Rundungsfehler.
gepostet vor 15 Jahre, 11 Monate von HSINC
Original von DrakeL
Ich vernachlässige keine Rundungsfehler sondern sorge lieber dafür, dass Sie nicht passieren.

dann sei dir der hinweis gegeben, das, wenn der rundungsfehler nur klein genug ist, es keinem auffällt und man auch keine vorteile rausziehen kann.
ganz zu schweigen davon das php selber intern teilweise immense rundungsprobleme hat (ich geh einfach mal davon aus das du php benutzt) und somit das speicherproblem ab einer gewissen anzahl nachkommastellen in den hintergrund rückt.
alternativ kannst du natuerlich die nachkommastellen auch als ganzahligen bruch in einem varchar speichern und sie dann mit eval wieder umwandeln
gepostet vor 15 Jahre, 11 Monate von DrakeL
Wenn ich nur mit Ganzzahlen arbeite geht es doch. Wenn ich die Rohstoffproduktion in Einheiten pro Tick angebe, dann kann es keine Kommazahlen geben.
Dann kann ich sagen der Spieler produziert 10 Einheiten / Tick, also bekommt zum Beispiel bei 5 Minuten / Tick nach 15 Minuten 30 Einheiten. Bei der nächsten Gebäudestufe würde er 12 Einheiten pro Tick bekommen, bei 15 Minuten also 36 Einheiten.
Auf Sekundenbasis müsste man dann Einheiten / Sekunde machen um bei Ganzzahlen bleiben zu können, was einfach sehr große Zahlen ergibt (Minimum 1 Einheit / Sekunde, also 3600 Einheiten / Stunde).
gepostet vor 15 Jahre, 11 Monate von altertoby
Ja und für den User ändert sich aller 5 min erst die Rohstoffanzeige...
Mal nen Vor-Nachteil-Vergleich:
Deine Methode:
Keine Änderung außer bei den Tickzeiten, dafür keine Probleme mitm Runden
"Echtzeit"-Methode:
Änderung sobald man die Ressourcen auch wirklich hat, dafür evt. Probleme in der 15-16 Stellen beim Runden

Ich denke da darf sich dann auch nen User beschweren, wenn dein Cronjob insgesamt ne Sekunde braucht und der User als letztes dran ist
gepostet vor 15 Jahre, 11 Monate von DrakeL
Original von altertoby
Ich denke da darf sich dann auch nen User beschweren, wenn dein Cronjob insgesamt ne Sekunde braucht und der User als letztes dran ist

ich nutze keine CronJobs dafür. Ich mache die Berechnung wie ihr wenn ich das richtig mitbekommen hab. Immer wenn die Rohstoffe benötigt werden, schau ich ob mindestens 1 Tick seit der letzten Berechnung abgelaufen ist. Wenn ja berechne ich die Rohstoffe des einen Spielers.
Ich finde es absolut nicht schlimm wenn nur max alle 5 Minuten Rohstoffe ausgeschüttet werden. Es dürfe aber dadurch wesentlich schonender für die Performance sein, da ich nicht bei jedem Seitenaufbau die Rohstoffe verteile, sondern maximal alle 5 Minuten.
PS: 5 Minuten wenn man dies als Zeit / Tick so definiert hat. Ist mir gerade aufgefallen, dass man hier ohne Probleme 1 Sekunde / Tick definieren kann und somit die Geschwindigkeit des Spieles auf diese Weise beliebig anpassen kann und so auch schnell auf Echtzeitspiel umschalten kann. Das werde ich dann so machen.
gepostet vor 15 Jahre, 11 Monate von exe
Original von DrakeL
Bei den Ressourcen kapier ich noch nicht wie Ihr die Sekunden genaue Berechnung machen wollt.
Beispiel: Ich habe einen Ertrag von 100 Einheiten / Stunde. Macht bei 5 Minuten (100 / 60 * 5) 8,33 Einheiten. Wenn man dies jetzt abrundet bekommt der Benutzer 8 Einheiten und verliert 0,33 gegenüber jemandem der keine Rundung erfährt, da er die Seite nur einmal pro Stunde aktualisiert..

Das ist ein Denkfehler, der User verliert nichts. Du speicherst die 8 Einheiten nicht in der Datenbank sondern zeigst sie dem User nur an. Klickt er zwei Sekunden nochmal kommt bei der Rechnung vielleicht 9,05 raus und er kriegt seine 9 angezeigt. Gespeichert wird der Wert nur wenn du sowieso eine Änderung an der Datenbank durchführst. Nur dort könnte der User theoretisch etwas verlieren. Das ist allerdings maximal die Produktion einer Sekunde bzw. eine Rohstoffeinheit. Dieses Verlieren könntest du noch dadurch minimieren, dass du den Rohstoffwert intern als Double speicherst. Dadurch ist der Rohstoffverlust nur akademisch.
Edit sagt: beim Ticksystem hast du die Rundungsungenauigkeiten übrigens genauso, solange du die Produktion der Rohstoffe nicht exakt auf die Ticks anpasst. Die sekundengenaue Berechnung ist auch nur ein Ticksystem mit einer 1-sekündigen Granularität...
gepostet vor 15 Jahre, 11 Monate von DrakeL
hab ich nicht genau das gesagt?
gepostet vor 15 Jahre, 11 Monate von BjoernLilleike
Tatsächlich war doch niemand für einen reinen Spieltick, der alle Spielaktionen in eine Mini-Runde zwingt.
DrakeL verwendet doch lediglich eine andere Aktualisierungsfrequenz für Ressourcen, nicht aber für Spieleraktionen wie Gebäudebau oder ähnliches.
Wirklich interessant wäre also eher eine Diskussion darüber, wie die Synchronisation der Aktionen unterschiedlicher Spieler besser erreicht wird.
gepostet vor 15 Jahre, 11 Monate von exe
Ich habe dich so verstanden, dass du von einer Speicherung der neuen Rohstoffstände bei Aktualisierung der Seite ausgehst. In dem Szenario würde der Spieler der häufig klickt tatsächlich wenig aber stetig Rohstoffe verlieren. Allerdings ist das nicht der Fall, da man die Rohstoffstände nur dann abspeichern muss, wenn sie sich ändern (Gebäudebau, Plünderung) oder wenn sich die Produktionsmenge ändert (neue Minen z.B.). Da das vergleichsweise seltene Ereignisse sind, sind die Möglichkeiten von Ungenauigkeiten relativ rar und lassen sich durch die Verwendung von Double noch gegen 0 reduzieren. Wenn ich dich da falsch verstanden habe will ich nichts gesagt haben
Zur Synchronisation von Aktionen gibts in diversen Spielen ja schon einige Ansätze. Mein persönlicher Favorit ist, am Beispiel von Angriffs-/Verteidigungsaktionen, eine Aufmarschphase. D.h. der Kampf beginnt erst nach X Sekunden/Minuten nachdem die ersten Truppen beim Ziel eingetroffen sind. Sowas lässt sich auch gut in ein Spielkonzept integrieren da ein Aufmarsch von Truppen durchaus als logisch vermittelt werden kann. Eine eher unschöne Lösung finde ich sowas wie das AKS bei OGame. Also eine manuelle Synchronisierung durch den Spieler. Der Nachteil daran ist zum einen, dass es als technische Krücke erkennbar wird da es keine konzeptionelle Grundlage dafür gibt. Zum anderen bietet so ein System auch nette Exploitmöglichkeiten die nicht unbedingt gewünscht sind (das Anhalten von Truppenverbänden kurz vor dem Ziel z.B.). Ticks fallen meiner Meinung nach, von klassisch rundenbasierten RPG mal abgesehen, auch in die Kategorie "technische Krücke". Konzeptionell gibt es keine Rechtfertigung dafür, dass meine Fantastilliarden km/h schnellen Schlachtschiffe sich ruckelnd fortbewegen. Damit hat man sich eben wieder ein Element Marke "muss aus technischen Gründen drinne sein aber macht davon abgesehen eigentlich wenig Sinn" ins Spiel eingebaut, und solche Eindrücke sollte man beim Spieler nach Möglichkeit vermeiden.
gepostet vor 15 Jahre, 11 Monate von Fornax
Ich geb gleich zu: Ich habe die Diskussion nicht gelesen, dafür fehlt mir grad die Zeit.
ganz kurz und kanpp: Wir haben beides. Rohstoffe alle 15 Minuten, ansonsten Echtzeit (Gebäude, Kämpfe, etc...)
gepostet vor 15 Jahre, 11 Monate von KEEN
Original von exe
Original von DrakeL
Bei den Ressourcen kapier ich noch nicht wie Ihr die Sekunden genaue Berechnung machen wollt.

Das ist ein Denkfehler, der User verliert nichts. Du speicherst die 8 Einheiten nicht in der Datenbank sondern zeigst sie dem User nur an. Klickt er zwei Sekunden nochmal kommt bei der Rechnung vielleicht 9,05 raus und er kriegt seine 9 angezeigt. Gespeichert wird der Wert nur wenn du sowieso eine Änderung an der Datenbank durchführst. Nur dort könnte der User theoretisch etwas verlieren. Das ist allerdings maximal die Produktion einer Sekunde bzw. eine Rohstoffeinheit. Dieses Verlieren könntest du noch dadurch minimieren, dass du den Rohstoffwert intern als Double speicherst. Dadurch ist der Rohstoffverlust nur akademisch.
Egal ob man die Rohstoffe bei jedem Klick (inperformant) oder nur Änderung in die DB schreibt, Rundungsfehler sind fast vollständig vermeidbar. Floats für den Lagerstand braucht es nicht.
Wir haben bei der Rohstoffproduktion pro Ressource drei Parameter:
  • Timestamp der letzten Produktion
  • Produktion pro Stunde
  • Lagerstand

Angenommen ich produziere 100 Res/Stunde und es sind 5 Minuten vergangen:
60*5/3600*100 = 8,3333...
Für eine Einheit braucht man 36s. Also Wird der Timestamp um 8*36s erhöht und der Lagerstand wird um 8 Res erhöht. Die 0,3333 Res sind nicht verloren gegangen, da der Timestamp nur um 288s statt 300s (5 Minuten) erhöht wurde.
Original von Fornax

Ich geb gleich zu: Ich habe die Diskussion nicht gelesen, dafür fehlt mir grad die Zeit.
ganz kurz und kanpp: Wir haben beides. Rohstoffe alle 15 Minuten, ansonsten Echtzeit (Gebäude, Kämpfe, etc...)
15 Minuten Ticks finde ich wie oben erwähnt nicht so gut. Welche Gründe hattest du damals für diese Entscheidung? Einfache Umsetzung oder etwas anders?
gepostet vor 15 Jahre, 11 Monate von Drezil
naja ... ich gebe mal zu bedenken:
"Echtzeit" ist nichts anderes als "Sekundentiks", die nur onDemand laufen.
Viel lustiger wird die Ressberechnung erst, wenn man Produktionsraten und negative Produktion berücksichtigt ..
Nicht verstanden? Beispiel:
Ich brauche 500 ress pro h, produziere nur 300 und hab 200 im lager.
Nach 1h hab ich 0 ress im Lager und der Verbrauch muss um 40% auf 300/h dynamisch gesenkt werden. Natürlich muss er dann auch automatisch wieder auf 100%, wenn ne Resslieferung eintrifft etc. aber das nur mal so als Gedankenangang.
gepostet vor 15 Jahre, 11 Monate von Valerion
15 Minuten Ticks finde ich wie oben erwähnt nicht so gut. Welche Gründe hattest du damals für diese Entscheidung? Einfache Umsetzung oder etwas anders?

Ich würde nicht sagen, dass der Arbeiter jede Sekunde(Od. was auch immer in Echtzeit^^)seine Ressourcen abliefert. Da ist es doch viel realisischer wenn er alle x minuten herkommt um die Ressourcen abzuliefern(Außer die Rohstoffe werden gebeamt)
gepostet vor 15 Jahre, 11 Monate von BjoernLilleike
Das, Valerion, ist ja nun wirklich eine höchst dämliche Erklärung. Denn wie viel unwahrscheinlicher ist es denn, dass alle Arbeiter der verschiedenen Rohstoffe zufällig immer genug zum gleichen Zeitpunkt ihre Waren abliefern.
Tatsächlich ist der ganze Prozess der Warenproduktion in beiden Fällen abstrahiert. Spiele mit realistischer Warenproduktion simulieren die Aggregation mehrerer Waren zu einem Paket und den anschließenden Transportweg - in der Regel in Echtzeit.
Beispiele dafür aus dem Clientspielbereich wären Anno, Tropico oder Stringhold.
Im Browserspielbereich geht Travianer ein kleines Stück in die Richtung, da aber natürlich auf eine Spielfigur focussiert und nicht als Godgame.
gepostet vor 15 Jahre, 11 Monate von Nagila Hawa
Ich finde Ticks am Besten. Wenn es geht 24h. In einem Echtzeitstrategiespiel hat man immer Nachteile, wenn man gerade nicht online ist. Der Erfolg hängt mir da zu sehr von den möglichen Onlinezeiten ab und ein Spiel soll mir keinen Streß machen. Auch sowas wie "Aktionspunkte aufsparen" oder ähnliches hilft nicht wirklich. Verbrät man alle 5 Minuten seine Rohstoffe, hat man weniger auf Lager, wenn der Feind kommt. Mal abgesehen davon, daß man während der Abwesenheit ohnehin relativ schutzlos ist. In vielen Browsergames passieren die größten Schlachten Nachts um 4 oder so, wo die Meisten Schlafen. Warum wohl...
Bei täglichen Spielzügen kann man ruhig 8 Stunden arbeiten gehen und 8 Stunden schlafen. Man hat ja 24h Zeit. Tägliche Ticks sind daher viel fairer und für Jedermann zu spielen.
Echtzeit kann man in Rollenspielen gut einbauen. Dann ist der Charakter eben unerreichbar, während der Spieler offline ist. Einen Staat, eine Armee oder sonstiges dagegen kann man nicht einfach "unerreichbar" machen.
gepostet vor 15 Jahre, 11 Monate von exe
Original von Nagila Hawa
Bei täglichen Spielzügen kann man ruhig 8 Stunden arbeiten gehen und 8 Stunden schlafen. Man hat ja 24h Zeit. Tägliche Ticks sind daher viel fairer und für Jedermann zu spielen.

Es ist nicht fair das jemand, der sich einmal für 5 Minuten pro Tag einloggt den gleichen Erfolg bekommt wie jemand der 4 Stunden täglich aktiv ist. Natürlich ist Onlinezeit ein Vorteil, wer mehr gibt bekommt mehr, was ist daran falsch?
gepostet vor 15 Jahre, 11 Monate von BjoernLilleike
Das wäre dann nicht Tickbasiert sondern Rundenbasiert, mit den genannten Vorteilen und dem gravierenden Nachteil, dass Ergebnisse von Aktionen nie sofort sichtbar sind sondern immer nur zur nächsten Runde.
Dadurch fühlt sich so ein Spiel extrem zäh an und insbesondere als Kampf-Strategiespiel will das meiner Einschätzung nach wirklich kaum jemand mehr spielen.
gepostet vor 15 Jahre, 11 Monate von BjoernLilleike
p.s. Wie sich der Vorteil intensiver Onlineaktivität spielerisch gut eingrenzen lässt ist für mich das größte ungelöste Designproblem für Strategie-MMOs.
Natürlich muss Aktivität belohnt werden. Aber hohe Aktivität darf weniger aktive Spieler nicht an die Wand spielen, sonst bleibt das breite Publikum außen vor.
Die Rückkehr zu rundenbasierten Spielen ist dabei aber nicht die Lösung.
gepostet vor 15 Jahre, 11 Monate von exe
Als (ehemaliger) WoW-Spieler hat mir eine Sache besonders gut gefallen: ich kann mich jederzeit aus dem Spiel abmelden und mein Charakter verschwindet in dem Moment aus der Spielwelt. Ausserdem gibt es Hoheitsgebiete der eigenen Fraktion in der man, auch auf PvP (Player vs Player) Realms nicht automatisch von Spielern der gegnerischen Fraktion angegriffen werden kann. Das hat mich zu folgender (grober) Idee geleitet:
Das Spiel hat Fraktionen, jeder Spieler gehört einer der Fraktionen an. Jede Fraktion besitzt ein Hoheitsgebiet. Innerhalb dieses Gebiets kann ein Angehöriger der Fraktion nicht von einem Spieler einer anderen Fraktion angegriffen werden ohne selbst aktiv zu werden. Natürlich muss es einen Anreiz geben aus dem Hoheitsgebiet herauszugehen. Das könnten z.B. größere Rohstoffvorkommen in den umkämpften Gebieten sein. Das führt aber auch konzeptionelle Probleme mit sich. Ein starker Spieler könnte seine Armee beispielsweise im Hoheitsgebiet bunkern und das Gebiet nur kurz verlassen, wenn er einen Angriff fliegen will. In WoW gibts dafür das PvP Flagging. Wenn ich einen gegnerischen Spieler Angreife werde ich PvP geflagt und damit auch angreifbar. Das PvP Flag geht erst weg wenn ich 5 Minuten lang keine Kämpfe mehr geführt habe. In einem Browserspiel könnte man diesen Zeitraum etwas ausweiten. Wer mit seiner Armee dann das Hoheitsgebiet verlässt muss dann eben damit rechnen, dass er für x Stunden oder Tage verfolgt werden kann.
Gut, wie man das konzeptionell genau ausbreitet ist dann eine Frage des konkreten Spieldesigns. Die Grundidee dahinter ist schlicht jene, einem Spieler der nicht die Zeit besitzt sich in endlose Kämpfe zu verwickeln eine Art Rückzugsraum zu bieten, in dem er relativ sicher ist und nicht in Abwesenheit ausgelöscht wird. Ein Spieler der dieses Wagnis eingeht wird dementsprechend schneller wachsen können, wer es nicht tut wird zwar nicht unbedingt die Top100 besetzen aber trotzdem ohne Komplettzerstörung spielen können.
In WoW wird z.B. Abwesenheit auch bis zu einem gewissen Grad auch belohnt. In der Zeit in der ich offline bin sammel ich Erholungspunkte, gehe ich wieder online bekomme ich für die Zeit in der ich Erholungspunkte habe doppelte Erfahrung. In Browserspielen könnte man stattdessen z.B. die Rohstoffproduktion erhöhen.
Nur mal so als Idee in den Raum geworfen.
gepostet vor 15 Jahre, 11 Monate von lauscher
Ich habe es bei mir im Spiel so gelöst, dass der Spieler selbst bestimmen kann, wann er seine Zeit vorspulen möchte.
Die Zeit, die in "Echt" abläuft, bekommt er auf einem Zeitkonto gutgeschrieben, dass er nach Belieben abspulen kann. Hat natürlich auch einige Nachteile - es ist nicht wirklich realistisch (man könnte z.B. eine Marktplatztransaktion starten, dann das Zeitkonto verstreichen lassen, und hätte quasi direkt das Endprodukt im Lager rumliegen).
Der Vorteil davon ist allerdings, dass man sich nur selten einzuloggen braucht - auch wenn man nur einmal pro Woche ins Spiel schaut, hat man keinen gravierenden Nachteil. Ich verpasse vielleicht 1-2 Spitzenangebote für irgendwelche Rohstoffe, aber ich kann die Woche im Prinzip so nachspielen wie ich möchte - nur dass der Markt eben z.B. veränderte Preise anzeigt.
Ich bevorzuge persönlich aber ehrlich gesagt Echtzeit, wobei ja auch das letztlich nur ein möglichst kleiner Tick-Zeitraum ist, ob man die Daten in Tick-Form oder bei Bedarf aktualisiert mal außer Acht gelassen.
gepostet vor 15 Jahre, 11 Monate von Nagila Hawa
Und dann? Während er offline ist, also die Zeit gerade nicht vorspielt, ist er unangreifbar? Oder wird er dann zu dem virtuellen Zeitpunkt angegriffen, zu dem der Andere ihn in der echten Zeit angegriffen hat, nur mit den eventuell bereits neu gebauten oder verlegtem Militär? Kann ich beim Verstreichen lassen des Zeitkontos auch selber angreifen? Greif ich den Gegner dann in dem Zustand an, den er zu dem Zeitpunkt gehabt hätte? Wird seine Zeit dann wieder "zurückgespult"?
(PS.: Damit will ich nicht die Idee an sich schlecht machen, sondern nur sagen, daß Echtzeit meiner Meinung nach zu viele Probleme hat, die noch nicht gelöst wurden und auch dieser Vorschlag hilft, aber keine perfekte Lösung bietet.)
Für mich ist der Hauptgrund, warum jeder ein echtzeitbasiertes Browserstrategiespiel entwickeln und spielen will der, daß man tägliche Spielzüge als veraltet ansieht.
Es ist nicht fair das jemand, der sich einmal für 5 Minuten pro Tag einloggt den gleichen Erfolg bekommt wie jemand der 4 Stunden täglich aktiv ist. Natürlich ist Onlinezeit ein Vorteil, wer mehr gibt bekommt mehr, was ist daran falsch?

Darin liegt doch nicht das Problem. Mmorpgs sind doch das perfekte Beispiel dafür, daß man praktisch für jede Sekunde Onlinezeit belohnt wird. Allerdings wird man da auch nicht bestraft, weil man mal offline ist. Stell dir vor du loggst ein und liest die Nachricht: "Tschuldigung, während du arbeiten oder schlafen warst, hast du zahrleiche Kämpfe und dabei folgende Gegenstände verloren. Außerdem ist dein Char wieder auf Level 1."
Zudem frage ich mich, ob du schonmal gute Browserstrategie mit täglichen Spielzügen gespielt hast. Man KANN mit 5min am Tag klar kommen, aber um oben mitzuspielen braucht man doch oft "ein wenig" mehr Zeit. So sollte es sein.
Das wäre dann nicht Tickbasiert sondern Rundenbasiert, mit den genannten Vorteilen und dem gravierenden Nachteil, dass Ergebnisse von Aktionen nie sofort sichtbar sind sondern immer nur zur nächsten Runde. Dadurch fühlt sich so ein Spiel extrem zäh an und insbesondere als Kampf-Strategiespiel will das meiner Einschätzung nach wirklich kaum jemand mehr spielen.

Ergebnisse sind auch in einem Echtzeitspiel nicht sofort sichtbar. Ob die Bauzeit/Flugzeit/WasAuchImmer nun 49h 08min 32s oder 3 tägliche Runden, 1h 08min 32s, vor Rundenendedauert, ist doch völlig egal. Es gibt auch einen Unterschied zwischen actionlastigen "Kampfspielen" und Globalstrategie in persistenten Welten. Action wie in Command & Conquer ist schön und gut, aber stell dir mal vor, du gehst eine Weile offline und dein Gegner spielt weiter...
@exe: Für mich sind derartige Einschränkungen schlimmer als die Nachteile, die Spiele mit sich bringen, die auf täglichen Spielzügen basieren. Was ja eigentlich nur die genannte Trägheit ist, oder die Tatsache, daß es "nicht mehr modern" sei. In einem Strategiespiel sollte jeder, jederzeit und überall angreifbar sein.
gepostet vor 15 Jahre, 11 Monate von exe
Original von Nagila Hawa
Es ist nicht fair das jemand, der sich einmal für 5 Minuten pro Tag einloggt den gleichen Erfolg bekommt wie jemand der 4 Stunden täglich aktiv ist. Natürlich ist Onlinezeit ein Vorteil, wer mehr gibt bekommt mehr, was ist daran falsch?

Darin liegt doch nicht das Problem. Mmorpgs sind doch das perfekte Beispiel dafür, daß man praktisch für jede Sekunde Onlinezeit belohnt wird. Allerdings wird man da auch nicht bestraft, weil man mal offline ist. Stell dir vor du loggst ein und liest die Nachricht: "Tschuldigung, während du arbeiten oder schlafen warst, hast du zahrleiche Kämpfe und dabei folgende Gegenstände verloren. Außerdem ist dein Char wieder auf Level 1."
Ich habe nicht gesagt, dass ich jemanden dafür bestrafen will das er offline war. Ich sagte das ich jemanden belohnen würde der online war.
@exe: Für mich sind derartige Einschränkungen schlimmer als die Nachteile, die Spiele mit sich bringen, die auf täglichen Spielzügen basieren. Was ja eigentlich nur die genannte Trägheit ist, oder die Tatsache, daß es "nicht mehr modern" sei. In einem Strategiespiel sollte jeder, jederzeit und überall angreifbar sein.

Das hängt eben davon ab wie gut so eine "Einschränkung" in ein Spielkonzept passt. Also ob sowas in dem konkreten Spiel als technisch motivierter Fremdkörper erscheint oder als sinniger Teil des Spielkonzepts welcher für manche, weniger aktive, Spieler eine Erleichterung bietet. Das lässt sich pauschal nicht sagen sondern hängt von dem Spielkonzept ab.
gepostet vor 15 Jahre, 10 Monate von lauscher
Original von Nagila Hawa
Und dann? Während er offline ist, also die Zeit gerade nicht vorspielt, ist er unangreifbar? Oder wird er dann zu dem virtuellen Zeitpunkt angegriffen, zu dem der Andere ihn in der echten Zeit angegriffen hat, nur mit den eventuell bereits neu gebauten oder verlegtem Militär? Kann ich beim Verstreichen lassen des Zeitkontos auch selber angreifen? Greif ich den Gegner dann in dem Zustand an, den er zu dem Zeitpunkt gehabt hätte? Wird seine Zeit dann wieder "zurückgespult"?
(PS.: Damit will ich nicht die Idee an sich schlecht machen, sondern nur sagen, daß Echtzeit meiner Meinung nach zu viele Probleme hat, die noch nicht gelöst wurden und auch dieser Vorschlag hilft, aber keine perfekte Lösung bietet.)
Für mich ist der Hauptgrund, warum jeder ein echtzeitbasiertes Browserstrategiespiel entwickeln und spielen will der, daß man tägliche Spielzüge als veraltet ansieht.

Man kann in meinem Spiel niemanden angreifen oder in irgendeiner Form schädigen, es geht absolut friedlich zu.
Aber da hast du natürlich recht, das wäre dann in dem Fall ein Problem.
gepostet vor 15 Jahre, 10 Monate von tector
Meiner Meinung nach sollte man die Frage daran messen welche Zielgruppe man anpeilt:
Echtzeit und kurze Ticks für Hardcorespieler
Lange Ticks (zb. 24h) für spieler die bloß 1x täglich klicken
Die Diskussion wie man Vorteile von sehr aktiven Spielern gegenüber wenigen aktiven Spielern bei Echtzeitspielen ausgleicht ist müßig.
Ich trenne da einfach die Zielgruppen
Spieler die sich nicht zwischen Ticks und Echtzeit entscheiden können oder wollen - ich nenn sie mal Durchschnittsspieler - spielen eh beide Typen an Browsergames parallel ...
24h Ticks sind meiner Meinung nach am fairsten wenn man allen Spielern gleiche Chancen geben will.
@lauscher: die Idee mit dem Zeitkontigent und dem Vorspulen hatte ich auch schon... allerdings aufgrund mir persönlich zu hohem Aufwands verworfen.
gepostet vor 15 Jahre, 10 Monate von Nagila Hawa
Jo, bei einem Wirtschafts/Aufbauspiel oder Spiel mit Schwerpunkt auf diese Bereiche, auch mit Kämpfen eher als sportliche Nebensache, ist Echtzeit wirklich kein Problem.
Ich habe nicht gesagt, dass ich jemanden dafür bestrafen will das er offline war. Ich sagte das ich jemanden belohnen würde der online war.

Dann ist es ja kein Problem, aber bei vielen Kriegsspielen verliert man eben was, wenn man offline angegriffen wird und dadurch nicht reagieren kann.
Das hängt eben davon ab wie gut so eine "Einschränkung" in ein Spielkonzept passt. Also ob sowas in dem konkreten Spiel als technisch motivierter Fremdkörper erscheint oder als sinniger Teil des Spielkonzepts welcher für manche, weniger aktive, Spieler eine Erleichterung bietet. Das lässt sich pauschal nicht sagen sondern hängt von dem Spielkonzept ab.

Das mag sein, aber Echtzeit schränkt dadurch die Möglichkeiten ein, weil man das Gesamtkonzept daran anpassen muß. Ich kenne bisher kein Spiel, bei dem das perfekt funktioniert. Vielleicht kann das dein Spiel ja, ich habe wegen meiner Voreingenommenheit lange kein Echtzeitstrategiespiel mehr ernsthaft ausprobiert.
gepostet vor 15 Jahre, 10 Monate von Chojin
hallo zusammen,
Original von KEEN

15 Minuten Ticks finde ich wie oben erwähnt nicht so gut. Welche Gründe hattest du damals für diese Entscheidung? Einfache Umsetzung oder etwas anders?
ich glaube die 15minuten ticks sind historische vorlage von vielen guten spielen wie z.b. droidwars und sind deshalb viel verbreitet und in vielen fan und nachfolgeprojekten zu finden.
Original von BjoernLilleike

Das, Valerion, ist ja nun wirklich eine höchst dämliche Erklärung. Denn wie viel unwahrscheinlicher ist es denn, dass alle Arbeiter der verschiedenen Rohstoffe zufällig immer genug zum gleichen Zeitpunkt ihre Waren abliefern.
Ich finde die erklärung eigentlich ziemlich logisch und garnicht dämlich. die produzierten güter werden auf einem karren oder transporter oder frachtschiff immer zu einem festen zeitpunkt ins lager geschafft. unwarscheinlicher ist es wohl eher das jeder arbeiter für jeden kieselstein den er gefunden hat einmal den weg ins lager läuft um diesen abzugeben!
zum thema produktion muss man sich wirklich von spiel zu spiel gedanken machen. für den spieler ist es meistens positiver wenn er seine rohstoffe zeitnah erhält und auch ausgeben kann. (pro echtzeit)
ich bevorzuge eher eine echtzeitumgebung, da ticks für mich aus entwicklersicht zu grösseren performance engpässen führen können. (angenommen es müssen alle 15 minuten die lager von 20.000 spielern in je ~5 basen auf den aktuellen stand gebracht werden... 100.000 updates zu einem festen zeitpunkt können schon mal etwas dauern.) natürlich kann man dies auch verhindern, aber das führt hier denke ich etwas zu weit.
nachdem ich gern neue wege gehe, würde ich bei meinem spiel übrigens auf eine mischung aus tick und echtzeit bei der rohstoffgewinnung setzen. das könnte beispielsweise so aussehen, dass eine mine den gesamten tag in echtzeit eisen produziert und der spieler selbst einen realistischen intervall festlegt in dem ein fuhrwerk (oder raumschiff) die rohstoffe in das sichere lager bringt. feinde könnten nun versuchen die rohstoffe vorher an der mine abzugreifen, ohne den spieler direkt angreifen zu müssen.
reg4rds
chojin
gepostet vor 15 Jahre, 10 Monate von DrakeL
Original von Chojin
ich bevorzuge eher eine echtzeitumgebung, da ticks für mich aus entwicklersicht zu grösseren performance engpässen führen können. (angenommen es müssen alle 15 minuten die lager von 20.000 spielern in je ~5 basen auf den aktuellen stand gebracht werden... 100.000 updates zu einem festen zeitpunkt können schon mal etwas dauern.) natürlich kann man dies auch verhindern, aber das führt hier denke ich etwas zu weit.

Das hat wenig mit der Unterscheidung Echtzeit und Ticks zu tun.
Wenn du deine Rohstoffe per Cronjob regelmäßig von allen Spielern in allen Basen aktualisierst hast du recht. Wenn du aber bei jedem Seitenaufruf beim aktuellen Benutzer schaust ob mindestens 1 Tick abgelaufen ist und die Ticks nicht alle gleichzeitig sondern verschoben ablaufen (Zeitpunkt der Anmeldung ist bei mir ausschlaggebend) dann hast die Berechnungen wieder schön verteilt.

Auf diese Diskussion antworten