Server-sided Script/Programma
Hallo,
Ik ben nu ongeveer twee weken bezig met een spel wat veel weg heeft van tribalwars (www.tribalwars.nl). Het idee er van is dus zeg maar dat je je dorpje kan uitbouwen met grondstoffen.
Ik heb dat allemaal gemaakt met PHP en MySQL. Op dit moment is het zo dat de waardes van je grondstoffen worden herschreven op het moment dat het PHP script door de bezoeker wordt geladen.
Maar dat is eigenlijk niet zoals ik het wil hebben. Ik wil eigenlijk dat er bijvoorbeeld elke minuut naar de database word geschreven met nieuwe informatie. Dat zou dan met een programma moeten zijn die op de server moet draaien (altijd). Dat kan (denk ik) niet met PHP omdat dat immers alleen kan worden geladen door een bezoeker die de pagina bezoekt.
Dus mijn vraag:
Heeft iemand een idee hoe ik dat zou kunnen doen, ik heb kennis van PHP, MySQL, Perl en C.
Alvast bedankt!
Jori.
Ik ben nu ongeveer twee weken bezig met een spel wat veel weg heeft van tribalwars (www.tribalwars.nl). Het idee er van is dus zeg maar dat je je dorpje kan uitbouwen met grondstoffen.
Ik heb dat allemaal gemaakt met PHP en MySQL. Op dit moment is het zo dat de waardes van je grondstoffen worden herschreven op het moment dat het PHP script door de bezoeker wordt geladen.
Maar dat is eigenlijk niet zoals ik het wil hebben. Ik wil eigenlijk dat er bijvoorbeeld elke minuut naar de database word geschreven met nieuwe informatie. Dat zou dan met een programma moeten zijn die op de server moet draaien (altijd). Dat kan (denk ik) niet met PHP omdat dat immers alleen kan worden geladen door een bezoeker die de pagina bezoekt.
Dus mijn vraag:
Heeft iemand een idee hoe ik dat zou kunnen doen, ik heb kennis van PHP, MySQL, Perl en C.
Alvast bedankt!
Jori.
"Ik wil eigenlijk dat er bijvoorbeeld elke minuut naar de database word geschreven "
Zinloos, gebruik dan bij het updaten een factoor x in de formule
- dan belast je de server ook niet onnodig voor iets wat gewoon op afroep gedaan kan worden berekend
Zinloos, gebruik dan bij het updaten een factoor x in de formule
- dan belast je de server ook niet onnodig voor iets wat gewoon op afroep gedaan kan worden berekend
Dan zou de hiscore alleen worden bijgeschreven op het moment dat je inlogt of je een pagina refreshed. Je scores lopen dan niet door.
Als je snapt wat ik bedoel :-)
Als je snapt wat ik bedoel :-)
Gewijzigd op 26/06/2010 15:04:29 door Jori K
Nee, je kan de higscores bij elke page-click opnieuw bereken en vastleggen
Als er niet gespeeld wordt, valt er in feite ook niets bij te werken.
Als er niet gespeeld wordt, valt er in feite ook niets bij te werken.
Gewijzigd op 26/06/2010 15:06:18 door Noppes Homeland
O, dat als ook maar iemand hem laad de database voor 'iedereen' wordt herschreven?
Draait het programma / spel helemaal op de cliënt en maakt het tijdens het spelen geen verbinding met de server?
Er is juist helemaal geen cliënt-sided scripting. Alles is server-sided (PHP, MySQL). :)
Jori.
Jori.
Volgens mij zoekt Jori K een cron. Met linux kan je cron-files laden. Bijvoorbeeld een php bestand die je om de zoveel tijd eens laad. Ik snap helemaal wat hij bedoelt hoor. Maar je moet daarvoor wel als root kunnen inloggen. Tenzij je Windows hebt bestaand er verschillende free- en shareware programma's die de linux cron nabootsten.
Misschien kan je eens een voorbeeld van die site online zetten?
Misschien kan je eens een voorbeeld van die site online zetten?
Gewijzigd op 26/06/2010 17:40:20 door Ruben Portier
Cron is hier, mijns inziens, niet nodig.
Lees de reacties van Noppes, dat moet voldoende zijn.
Lees de reacties van Noppes, dat moet voldoende zijn.
Nou ... dan kun je toch elke actie die de gebruiker doet zien op de server en aan de hand daarvan bepalen of de score omhoog of omlaag moet? En dit dan direct in de database opslaan? UPDATE scores SET punten = punten + 10 WHERE gebruiker = ... En als een andere gebruiker het score overzicht opvraagt, hoogste scores, uit de database vissen? ORDER BY punten DESC LIMIT 0,10 ... Of werkt het zo niet?
Gewijzigd op 26/06/2010 18:34:06 door Piet Verhagen
Misschien dat je deze artikelen kan lezen? Daarin wordt een goede denkwijze uitgelegd naar mijns inziens.
Wat je het best kan doen is een ActionManager opzetten, wil je meer informatie dan moet je de volgende blok reeks maar eens lezen, Succes
http://development.blog.markkazemier.nl/category/browser-based-games/
Wat je het best kan doen is een ActionManager opzetten, wil je meer informatie dan moet je de volgende blok reeks maar eens lezen, Succes
http://development.blog.markkazemier.nl/category/browser-based-games/
Bedankt voor al jullie reacties,
Ik denk dat ik voor de 'bezoeker bijscrijf' methode ga. Cronjobs zijn wel een interessant alternatief maar naar mijn mening niet nodig als er toch niet zoveel mensen het spel spelen. Daarbij neem ik ook nog de extra rekenkracht die de server dan nodig heeft in overweging.
Jori.
Als iemand nog een ander idee heeft hoor ik dat graag. Een brede bassis is een goed begin :).
Ik denk dat ik voor de 'bezoeker bijscrijf' methode ga. Cronjobs zijn wel een interessant alternatief maar naar mijn mening niet nodig als er toch niet zoveel mensen het spel spelen. Daarbij neem ik ook nog de extra rekenkracht die de server dan nodig heeft in overweging.
Jori.
Als iemand nog een ander idee heeft hoor ik dat graag. Een brede bassis is een goed begin :).
Maar stel, je heb 250 bezoekers,
en ze bezoeken allemaal de highscore pagina...
Dat is toch ook belastend voor je server..?
en ze bezoeken allemaal de highscore pagina...
Dat is toch ook belastend voor je server..?
Mitchel V op 27/06/2010 21:31:16:
Maar stel, je heb 250 bezoekers,
en ze bezoeken allemaal de highscore pagina...
Dat is toch ook belastend voor je server..?
en ze bezoeken allemaal de highscore pagina...
Dat is toch ook belastend voor je server..?
Ja maar het gaat erom dat als de server niet bevraagd wordt, deze dan ook geen berekeningen hoeft te doen. Stel al je spelers komen uit Nederland, dan kun je er vanuit gaan dat tussen 12 uur 's nachts en 8 uur 's ochtends geen spelers op zijn. Als je dan toch om de 10 minuten nieuwe scores gaat berekenen dan kost dat veel serverkracht. Op het moment dat je de pagina aan het laden bent moet er toch al van alles gebeuren, en dan maken die 2 of 3 berekeningen extra ook niet zo veel meer uit.




