Ik wilde eens kijken of ik een soort online game kon maken. En ik heb een paar vraagjes:
1. Stel ik heb voor iedere speler 3 gegevens: x-coördinaat, y-coördinaat, richting. En stel dat er 20 spelers zijn. Moet ik dan om een beetje een vloeiend beeld te krijgen voor elke speler 20 keer per seconde hun positie en richting in een bestand schrijven en ook nog de positie+richting van 19 andere spelers lezen? Of kan ik beter een DB gebruiken? of een heel andere methode? Ik heb tot nu toe nog nooit een DB gebruikt, maar gewoon een bestand waar ik informatie in wegschrijf.
2. kan ik 20 keer per seconden met GD 5 plaatjes van .. laten we zeggen .. 200×200px maken? Wat voor plaatje? Denk maar een een radar of een GPS
3. m.b.v javascript kan ik een php pagina bijvoorbeeld 20 keer per seconde laden. Wat gebeurt er als PHP nog niet klaar is met de pagina maar de pagina toch opnieuw geladen wordt? en Kan ik niet beter een andere methode toepassen, zo ja, welke dan?
zoals ik het nu in mijn hoofd heb gaat het denk ik gewoon niet. Ik weet gewoon niet of het anders kan met PHP en al helemaal niet hoe natuurlijk.
Ga eerst eens je plan uitschrijven.
Opschrijven wat je daadwerkelijk nodig hebt e.d.
Wat leren van php en sql.
Zorgen dat je de volgende dingen hebt of kunt vertellen waarom ze niet nodig zijn
technisch ontwerp
grafisch ontwerp
classen diagram
erd
sequence diagram
activity diagam
etc.
Over vraag 1:
Als je echt voor een X aantal spelers, die tot 20 of meer kunnen oplopen hun positie op het scherm wil noteren dan zou ik echt met een Database werken, het schrijven naar een tekst bestand wordt in verhouding een minder prettige methode.
Over vraag 2:
Begin daar maar niet aan, 20x per seconden een 200x200px plaatje aanmaken met GD is een uit de hand lopende oplossing, dat is niet de oplossing die je zoekt.
Over vraag 3:
het is mogelijk dat een AJAX request door een server niet op tijd wordt uitgevoerd, en vooral 20 request per seconde lijkt mij iets wat je problemen
gaat geven.
Ik krijg het vermoeden dat je het veel meer richting Flash wilt gaan zoeken, zovele request's naar de server en handelingen die je wilt verrichten in een seconde, dan wordt javascript(ajax) als zodanig niet je oplossing.
@TJBV
zo ver ben ik nog niet (dat ga ik dus nog doen, niet dat ik dat nog niet kan) ik wilde alleen weten of er een eenvoudigere manier is dan steeds weer opniet een pagina laden en steeds weer opnieuw gegevens uit een DB/bestand lezen. Lijkt me wel, maar of dat met PHP kan?
@Pakito
HAHA ...
---
Online game is een groot woord (2 woorden haha .. - zucht -), ik wil gewoon de mogelijkheden .. erhm.. verkennen (? ofzow) of het uiteindelijk een spel wordt... dat hangt nogal af van m'n doorzettingsvermogen (ik ben bijvoorbeeld al aan een stuk of 3 text based (zoals Pakito het noemt) "spellen" begonnen. ooit.. toen ik nog niet eens wist dat je met PHP ook OO kon doen.. :P)
Ik zie nu dat ik misschien wat bot was(je moet nooit snel antwoorden en dan weer aan het werk gaan) Mijn excuses
20* per seconden zal op redelijk wat servers gestopt worden (accepteren dat lang niet altijd) en daarnaast zit je met de client kant, hoe snel verwerkt die het en wat doet die als antwoord op request 10 eerder terug komt dan antwoord op request 8. Gaat die dan weer een stapje terug?
Wat voor afbeeldingen wil je maken dat die 20* per seconden gemaakt moeten worden?
Maar zoals Danny al zegt Flash of Flex is wel net zo interessant, dan kun je via amfphp gewoon communiceren met php als je dat wilt.
Oke bedankt, nu weet ik dus dat ik er maar niet aan moet beginnen met PHP.
Danny: Bedankt, ik had al zoiets verwacht.
TJVB: ow geeft niet hoor. Wat voor afbeelding: tja, 20* opnieuw een afbeelding maken was de enige manier die ik kon bedenken (niet waar*) om een radar een beetje vloeiend rondjes te laten draaien.
*) andere manier was nog omslachtiger: in plaats van 1 plaatje maken, al bestaande plaatjes gebruiken. Bijvoorbeeld: Radar: alle stipjes zijn afzonderlijke, al bestaande plaatjes die steeds op een iets andere positie staan. Maar dat werkt misschien met localhost maar niet online. Lijkt me.
Yearupie: Ik ben het helemaal met je eens dat je de mogelijkheid moet hebben je bericht te verwijderen, zeker als je als laatste staat. :P
Met flash kan je toch ook een radar een rondje laten maken?
Dan laat je op frame 1 de radar beginnen met ronddraaien en de posities van de spelers (?) laten wegschrijven naar een tekstbestand.
Vervolgens op frame 30, de laatste frame, de waardes laten ophalen.
Of precies andersom moet je ff kijken. Zoiets bedoel je?