Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

Welche Scriptsprache eignet sich gut für mein Anliegen?

Hallo!

Ich würde gerne während der Sommerferien ein kleines Browsergames in Form eines OPGs schreiben. Ich habe schon viele Websites gemacht und kenne mich sehr gut mit PHP, HTML, CSS und MySQL bzw. SQL aus. Also grundsätzlich steht meinen Plänen nichts im Weg. Allerdings ist mein Plan folgender: Jeder Nutzer kann durch die komplette Welt als Punkt navigieren. Auf einer riesigen Karte soll die Steuerung des Punktes per Pfeiltasten möglich sein. Die Position soll per Angabe von aktueller Pixelposition auf der Karte in der Datenbank gespeichert werden. So würde die Position "1.132x5.320" bedeuten, dass sich der Spieler auf der großen Karte bei Pixel 1.132x5320 befindet.

Nun ergibt sich aber folgendes Problem: PHP ist Serverseitig, ich kann damit also nicht die Steuerung per Pfeiltasten übernehmen. Javascript ist mir persönlich sehr suspekt, weil es beim User ausgeführt wird und ein fortgeschrittener User doch mit einem modifizierten Browser leicht eingreifen könnte, oder? Welche "Scriptsprache" eignet sich für soetwas gut?

Und dann bleibt eine letzte Frage: Angenommen der user steuert mit Javascript (oder wie auch immer) seinen Character. Datenbankabfragen ist das letzte, was ich mit Javascript machen wollen würde, sofern das überhaupt geht. Wie bekomme ich dann ohne HTML-Formular und anschließende PHP-Auswertung die neue Position des Spielers in die Datenbank geschrieben? Es wäre ja zum Beispiel doof, wenn der User seinen Punkt eine halbe Stunde ohne Neuladen der Seite zu einem weit entferntem Gebiet auf der Karte steuern würde, der Browser abstürtzt und der User wieder bei der Position von vor einer Stunde ist... Und alle paar Sekunden die Position neu in die Datenbank zu schreiben ist doch auch sicher sehr Ressourcen-lastig... Wie macht man sowas denn am besten?

Bin für alle Tipps und jede Hilfe äußerst dankbar :)

Grüße, Jonathan

2 Antworten

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    Schau dir ruhig nochmal JavaScript an. So schlecht ist die Sprache nicht - allerdings sind die meisten JS-Programmierer nicht grade Kanonen :-)

    Die Geschichte mit dem Punkt hat, auch mit Ajax, einen Haken. Du bist stark abhängig von der Antwortgeschwindigkeit des Servers und wenn du mit den Pfeiltasten rumtackerst, dann stockt der Spielfluss, weil die Netzwerklatenz (Verzögerungen durch den http Request/Response Cycle) sofort durchschlägt.

    Ich würd's Clientseits probieren - allerdings per Ajax in bestimmten Abständen den Zustand des Client auf dem Server aktualisieren.

    Das ist allerdings ne Menge Holz, aber wenn du in den Sommerferien nix anderes zu tun hast...

    Also ich würd lieber ins Freibad gehen und den Mädels auf die Zehen gucken - aber ich verdien ja mit programmieren auch meine Brötchen, da ist das sicher anders :-)

    Viel Spaß

  • vor 1 Jahrzehnt

    Die Lösung ist AJAX. Mit diesem Konzept kannst du per JavaScript eine Verbindung zum Server aufbauen und dort Skripte abrufen.

    So kannst du serverseitig Skripte bereitstellen, die alles regeln und diese clientseitig in einem bestimmten Intervall oder zu bestimmten Ereignissen abrufen, ohne das der Nutzer aktualisieren muss.

    Allerdings ist AJAX nicht ganz einfach und du solltest auf bestehende Bibliotheken (Frameworks) zurückgreifen, zum Beispiel prototype. AJAX funktioniert übrigens mit allen serverseitigen Sprachen, also auch Ruby, Python, PHP und auch C (wenn man unbedingt will...)

    Das beliebte Browsergame OGame wurde auch komplett neu auf Basis von Ajax aufgebaut.

    Eine andere Idee wäre der Einsatz von Flash oder Java, das ist aber für Browsergames unüblich.

Haben Sie noch Fragen? Jetzt beantworten lassen.