Ergebnis 1 bis 9 von 9

Thema: PHP Browsergame - Funktionen verstehen

  1. #1
    random dude
    Gast

    Frage PHP Browsergame - Funktionen verstehen

    Servus.


    Ich bin Medeingestalter und erstelle schon seit jahren kleine Private Homepages. Hier nutze ich zu Meisst Wordpress, und erstelle simple Templates/Themes.
    Jetzt möchte ich seit einiger Zeit etwas tiefer ins Programmieren einsteigen. Da ich keine "Ausbildung" in diesem Bereich genossen habe, bringe ich mir das Meisste selbst bei.

    Für ein größeres Projekt eines Kunden nutze ich mittlerweile ein PHP-Framework (Codeigniter) zusammen mit AJAX und einer mySQL-Datenbank.
    Das klappt schon ganz nett.

    Nun kam mir vor einigen Tagen die Idee, ich könnte zum Üben ja ein kleines "Browsergame" basteln.
    Das soll nichts großes sein, sondern mir nur dabei helfen zu verstehen was man alles mit PHP, AJAX und einer Datenbank anstellen kann.




    Jetzt habe ich mir zuerst mal Gedanken um den Funbktionsumfang gemacht.
    Eine Benutzerverwaltung steht bereits. Also Registrieren, und Anmelden an der Seite, den Benutzern kann auch eine Rolle zugewiesen werden (Admin, Operator, Spieler), welche verschiedene Rechte zur Nutzung des "Spiels" vorgibt.
    Als nächstes möchte ich jedem Benutzer einen Wertgegenstand geben, in diesem Fall eine Zahlungsmöglichkeit (Gold, Credits, Rohstoffe oder was auch immer).

    Meine Idee: Jeder Spieler startet mit einem Guthaben X. Jeder Spieler verfügt über ein Grundeinkommen, welches sich sekündlich zum Guthaben addieren soll. Sagen wir hier 1 Gold pro Sekunde. Beim "Ausbauen der Infrastruktur" soll das Grundeinkommen pro Sekunde steigen. Also zum Beispiel 1,3 Gold pro Sekunde. Das Einkommen soll sich auch zum Guthaben addieren, wenn der Spieler nicht eingeloggt ist.


    Mein Problem: Wie ist sowas im Groben zu gestalten? Muss ich hier zum Beispiel cron einsetzen, welches sekündlich die komplette Datenbank aktualisiert, und jedem Konto einen Betrag X hinzufügt? Scheint mir zu aufwändig.



    Kann mich da jemand in die richtige Richtung stubsen? ^^
    Browserspiele wie Ogame, DieStämme, ect. haben ja ein solches Ressourcen-System.



    Liebe Grüße
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP Browsergame - Funktionen verstehen

    Der Cronjob würde deinen Server killen

    Du kannst es einfacher machen.
    Du speicherst bei jedem Benutzer ab, wann er das letzte mal geklickt hat und wenn er das nächste mal klickt, weißt du, wie lange das genauert hat.
    Über diese Zeitdifferenz kannst du dir ausrechnen, wie viel er dazu bekommt und das in die Datenbank eintragen.
    Das aber bei jedem Benutzer für sich - die anderen interessieren ihn ja nicht, das würde nur Rechenzeit kosten.

    Oder im allgemeineren Fall: Jedesmal, wenn du auf das Vermögen eines Benutzers zugreifst, speicherst du den Zeitpunkt ab. Mit dem zuvor gespeicherten und dem aktuellen Zeitpunkt weißt du genau, wie viel Gold er bekommt.

    Deine Datenbank muss die Realität nicht 1:1 wiederspeigeln - dafür kannst du ja eine Logik programmieren. So ersparst du dir Rechenzeit und viele Nerven. Habe als erstes PHP-Projekt auch ein Browsergame entwickelt und Rohstoffe stündlich verteilt (und andere berechnungen ausgeführt). Aber einer gewissen Größe bricht dein Script einfach ab - du merkst es nicht - und manche deiner Benutzer bekommen keine Rohstoffe mehr - viel Spaß beim Fehlersuchen
    Something big is coming. And there will be pirates and ninjas and unicorns...

  3. #3
    HTML Newbie
    Registriert seit
    26.03.2012
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Browsergame - Funktionen verstehen

    Okay das hört sich schonmal sinnig an.


    Müsste also so funktionieren:

    In der Datenbank hab ich stehen:
    Benutzer Dude hat 1.000 Gold um 18:30:00 Uhr, Grundeinkommen = 2 gold pro Sekunde
    Dude loggt sich ein um 19:00:00 Uhr
    Die PHP-Funktion speichert die Loginzeit zwischen, lädt aus der DB das Guthaben sowie die dazugehörige Zeit.
    Dann wird die Zeitdifferenz errechnet = 30 Minuten; sowie mit dem Einkommen pro Sekunde verrechnet | 30 * 60 * Grundeinkommen (2) = 3.600 Gold.
    Also hat der Dude um 19 Uhr 4.600 Gold.


    Das neue Guthaben schreibe ich dann wieder in die DB inklusive der aktuellen Zeit.
    Ich muss also bei jedem Seitenaufruf das alte Guthaben laden, das neue Guthaben berechnen und sogleich das neue Guthaben wieder in die DB speichern.
    Ist mein Gedankengang soweit richtig? ^^


    Liebe Grüße, und vielen Dank für die flotte Hilfe!
    dude*

  4. #4
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: PHP Browsergame - Funktionen verstehen

    jau so müsste das von der grund-idee her klappen
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  5. #5
    Samurai
    Registriert seit
    21.08.2011
    Beiträge
    233
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Browsergame - Funktionen verstehen

    ich würde die DB nur aktualisieren, wenn sich der Satz pro Sekunde ändert...
    Ansonsten kannst du ja immer rechnen:

    Am Anfang hat er 1000Gold mit 1Gold/s einkommen. damit kannst du ja zu jedem zeitpunkt x den "Kontostand" bestimmen, bis sich das "Einkommen ändert. Anders siehts natürlich aus, wenn auch ab und zu mal was abgezogen werden muss oder unplanmäßig was dazukommt. Aufjedenfall halte ich eine mysql-query bei jedem Klick für Übertrieben. oder ist das Normal bei BGs?

    alxy

  6. #6
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP Browsergame - Funktionen verstehen

    us dem Grund habe ich ja gemeint, dass man es auch aktualisieren könnte, wenn es verwendet wird. Das kann man wunderbar als Klasse abstrahieren. Und die get_money-Funktion führt das einfach aus und speichert zwischen. Also wenn die get_money-Funktion öfter in einem Script aufgerufen wird, merkt sich das Script nach der ersten Verwendung den Wert.
    Something big is coming. And there will be pirates and ninjas and unicorns...

  7. #7
    HTML Newbie
    Registriert seit
    26.03.2012
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Browsergame - Funktionen verstehen

    Ja so hab ichs auch jetzt gemacht.

    Erst beim AUfrufen der Seite wird die Zeitdifferenz errechnet, und mit der ProduktionProStunde multipliziert.
    Danach wird der neue Wert in die DB geschrieben.

    Ich bastel mal noch weiter, mal sehen wie sich das entwickelt.


    Danke für eure Tips!

  8. #8
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP Browsergame - Funktionen verstehen

    Viel Glück weiterhin
    Something big is coming. And there will be pirates and ninjas and unicorns...

  9. #9
    Interessierte/r Avatar von splasch
    Registriert seit
    04.04.2008
    Beiträge
    118
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Browsergame - Funktionen verstehen

    Schau dir die Tutorials dazu an unter: http://gameseal.net/tutorials
    Dort werden solche Technicken vorgecodet und erklärt.

    Mfg Splasch

Ähnliche Themen

  1. Navigation Spielereien verstehen
    Von $mysql= im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 04.08.2010, 11:47
  2. Friend Funktionen in Komponenten-Funktionen wandeln --Fragen
    Von Epimetheus im Forum Forum für alle anderen Programmiersprachen
    Antworten: 5
    Letzter Beitrag: 30.11.2007, 19:33
  3. Gültigkeit von Funktionen in Funktionen
    Von thomas69 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 25.05.2007, 16:08
  4. Texte besser verstehen?
    Von im Forum Off Topic und Quasselbox
    Antworten: 3
    Letzter Beitrag: 26.09.2005, 21:07
  5. Wie ist das zu verstehen?
    Von scout1979 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 15
    Letzter Beitrag: 16.09.2004, 01:07

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •