Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-01-2007, 14:37   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 46
Spiel langsamer laufen lassen um zu tricksen

Ich habe den begründeten Verdacht, dass User bei einem Spiel dieses auf irgendeine Art langsamer laufen lassen und dadurch sehr hohe Spielstände erzielen können (die bei "normaler" Geschwindigkeit nicht möglich wären).

Ist es möglich (außer durch einen sehr alten Rechner) ein swf-File "künstlich" langsamer laufen zu lassen (eventuell durch Hilfsprogramme)?

Wie kann ich dies verhindern? Ich müßte doch versuchen, die Zeit die in "Flash vergeht" mit der Zeit abzugleichen, die auf dem Server vergangen ist, oder? Wenn das zu sehr voneinander abweicht , könnte ich den Punktestand ungültig machen.

Hat da jemand Erfahrungen? Vielen Dank im voraus!
Spiderguy ist offline   Mit Zitat antworten
Alt 02-01-2007, 14:41   #2 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 162
Der einfachste Weg um etwas langsamer laufen
zu lassen ist, wenn man einfach die DRUCK-Taste
drückt.

Damit schiießt die CPU-Auslastung in die
Höhe und der Film bzw. das Spiel läuft
dann langsam bzw. steht vielleicht
sogar.

Für die Problematik gibt es leider keine
generelle Lösung. Ich mach es einfach
immer mit Spielprotokollen (Punkte,
Zeitabstand, Framerate, etc), die einen
Spielverlauf speichern. Und dann kann
man im Nachhinein sehen, wie ein
User zu einer bestimmten Punktzahl
gekommen ist und ob dort etwas "faul"
ist.

Geändert von MaticPel (02-01-2007 um 14:44 Uhr)
MaticPel ist offline   Mit Zitat antworten
Alt 03-01-2007, 08:48   #3 (permalink)
Neuer User
 
Benutzerbild von fabulos79
 
Registriert seit: Jul 2006
Beiträge: 21
es gibt diverse CPU-Killer Programme. Dienen eigentlich dazu alte Spiele in vernünftiger Geschwindigkeit spielen zu können.

Du könntest natürlich dein Spiel beenden, wenn es in der Art manipuliert wird. Dazu müsstest du auch nicht die Zeit mit dem Server vergleichen... kannst du komplett Flash-intern machen.

Aber ob das ratsam ist.

Geändert von fabulos79 (03-01-2007 um 08:51 Uhr)
fabulos79 ist offline   Mit Zitat antworten
Alt 03-01-2007, 09:08   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 46
Zitat:
Zitat von fabulos79 Beitrag anzeigen
... kannst du komplett Flash-intern machen.
Vielen Dank! Wie könnte ich das Flash-Intern regeln? Flash läuft doch auf der Seite des Anwenders und wenn dessen Rechner langsamer läuft, läuft dann nicht auch die "Flash-Zeit" langsamer?
Spiderguy ist offline   Mit Zitat antworten
Alt 03-01-2007, 09:10   #5 (permalink)
Flashbitch
 
Benutzerbild von X-Tender
 
Registriert seit: Oct 2003
Ort: Hannover
Beiträge: 279
Wenn du alles TimeBased machst und nicht FrameBased dann solte das eigentlich keine probleme geben.
Also mit intervallen arbeiten statt mit onEnterFrame z.b.
Und Timebased animationen verwenden statt framebased.
__________________
Fuchtelworld
X-Tender ist offline   Mit Zitat antworten
Alt 03-01-2007, 09:13   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 46
Zitat:
Zitat von X-Tender Beitrag anzeigen
Wenn du alles TimeBased machst und nicht FrameBased dann solte das eigentlich keine probleme geben.
Also mit intervallen arbeiten statt mit onEnterFrame z.b.
Und Timebased animationen verwenden statt framebased.
Dann müsste ich das ganze Spiel (die ganzen Spiele) überarbeiten und neu aufbauen - gibt es eine weniger aufwändige Möglichkeit?
Spiderguy ist offline   Mit Zitat antworten
Alt 03-01-2007, 09:41   #7 (permalink)
Neuer User
 
Benutzerbild von fabulos79
 
Registriert seit: Jul 2006
Beiträge: 21
Zitat:
Zitat von X-Tender Beitrag anzeigen
Wenn du alles TimeBased machst und nicht FrameBased dann solte das eigentlich keine probleme geben.
Also mit intervallen arbeiten statt mit onEnterFrame z.b.
Und Timebased animationen verwenden statt framebased.
Berichtige mich, wenn ich falsch liege. Aber Intervallbasierung ändert nur bedingt was. Wenn er (Onkel CPU) es nicht schafft die Intervalle in der angegebenen Zeit abzuarbeiten, führt er sie einfach seltener aus -> sprich Spiel läuft langsamer. Sonst wären Intervalle ja die Lösung für alle Performance-Probleme

Thema Flash-interne Erkennung der Spielgeschwindigkeit:
einfach die Frames per Second (FPS) abfragen. Etwa wie folgt: Bei jedem Frame eine Variable (z.B. myFrames) um 1 erhöhen. Einen Interval von 1s setzen und dann anschauen wie groß myFrames ist... das entspricht dann etwa der aktuellen FPS. myFrames auf 0 setzen und weiter gehts. Wenn die FPS dann unter einem bestimmten wert ist kannst du das Spiel ja abbrechen.

Vielleicht solltest du aber die durchschnittliche FPS erstmal mitloggen... evtl. schummeln die Leute ja garnicht und du schließt nur unschuldige mit lahmen Rechnern aus
fabulos79 ist offline   Mit Zitat antworten
Alt 03-01-2007, 09:48   #8 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Vielleicht solltest du aber die durchschnittliche FPS erstmal mitloggen...
Da könnte man am Anfang des Spieles (Optionsmenu, Startscreen) eine Framemessung machen, natürlich müsste da eine Auslastung wie im Spiel simuliert werden, und diese mit den Messungen während des spieles vergleichen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele