Spiel für Browser programmieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansatz
ansprechen
aufgabenstellung
beispiel
besten mache
datum
feld
gegner
genaueren nachfragen
http
jemand
laden
mitteln
schaden
sekunde
spiel
spieler
symbol
umsetzen
url
-
Hallo zusammen,
ich habe vor ein kleines Spiel zu programmieren und ich bin mir nicht sicher wie ich das am besten mache. Um das Grundprinzip am besten erklären zu können, mache ich das jetzt hier mal als Beispiel mit einem TicTacToe Spiel.
Also wenn man ein neues Spiel startet soll ein Gegner gesucht werden. Wenn ein Gegner gefunden wurde soll das Spiel starten. Dann fängt zum Beispiel Spieler 1 an und setzt sein Symbol auf ein Feld. Dann kommt Spieler 2 usw. Das Spiel soll im Browser zu spielen sein und das ganze soll am besten passieren, ohne das die Seite ständig neu laden muss. Mir geht es als erstes darum, wie man das macht, dass sich zwei Spieler zu einem Spiel zusammen finden. Wie realisiert man sowas? Geht sowas überhaupt mit PHP?
Kennt vielleicht sogar jemand ein gutes Tutorial, was mein Anliegen gut erklärt?
Ich würde mich über Hilfe freuen.
Viele Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also theoretisch geht es ja schon mit PHP, aber dann hast du eben die Seitenreloads und du wirst nicht automatisch in ein Spiel weiter geleitet, wenn ein Spieler gefunden wurde, weil PHP nur beim Seiten nachladen prüfen kann, ob da jemand ist. Was du suchst ist das Stichwort Ajax. PHP wirst du brauchen, du kannst das Script dann aber zu jeder Zeit, ohne Reload ausführen. Ehrlich gesagt ist das keine gute Lösung, aber die Beste mit deinen Mitteln. Du könntest also zum Beispiel jede Sekunde per Ajax das PHP Script aufrufen und damit überprüfen, ob ein Spieler vorhanden ist. Das ist nicht wirklich effizient, aber ohne eigene/richtige Hardware kannst du das mit JS und PHP sonst nicht umsetzen. Als vergleich kannst du dir ja mal Websockets anschauen. Ein Vorteil daran wär halt, dass du nicht ständig, mit einem Zeitabstand prüfen musst. Die Verbidnung bleibt offen, und überträgt die Daten, sobald sie Vorhanden sind. Bei deinem Fall prüfst du hald ständig, und bekommst immer eine Antwort, und zwar, dass keine neuen Daten vorhanden sind, so lange, bis sich was ändert.
Grundsätzlich funktioniert das ganze dann ja wie ein Chat, nur du schreibst keine Nachricht, sondern übermittelst, welches Feld du angeklickt hast. Und wenn du mal verstehst, wie das abläuft, kannst du das auf jedes Game anpassen.
Ich hoffe ich konnte dir schon ein wenig helfen. Bei genaueren Nachfragen einfach melden.
Beitrag zuletzt geändert: 20.4.2015 11:18:39 von c143 -
c143 hat schon Recht. Am effektivsten wäre wahrscheinlich ein Websocket oder eine Kombi aus Javascript und PHP. Hier findest du mehr Infos dazu. In dem Artikel wird auch noch eine Methode genannt, die zumindest für die Partnersuche sinnvoll sein könnte: Long Polling (das "unendliche" bzw. absichtlich verlängerte Laden der Seite).
Für weitere Fragen kannst du mich auch gerne ansprechen ^^ (bin ein großer Fan von Php und Javascript)
Lg, Franz -
An deiner stelle würde ich vielleicht mit ein paar Beispiel Projekten anfangen. Ich denke dieses Buch ist dafür am besten geeignet. Bei so vielen Schwierigkeiten kann es auf jeden Fall nicht schaden. http://www.buecher.de/shop/html/html5-spieleentwicklung/seidelin-jacob/products_products/detail/prod_id/36671031/
-
Ich kenne jetzt deine Vorkenntnisse nicht. Aber ich würde mich bei der Aufgabenstellung auch den Vorrednern anschließen. Ohne Reload geht es gar nicht. Ajax führt auch einen Reload durch, aber keinen kompletten Reload der Seite sondern nur partieller Abschnitte.
Zum Thema Gegner finden:
Mein Ansatz wäre, dass beim Login ein Feld in der Datenbank mit 1 gesetzt wird, wie z.B. "logged_in = 1".
So weißt du jederzeit welcher Nutzer online ist und kannst zwei Spieler zusammenführen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage