Hejsa.. Jeg vil gerne have at vide, hvordan man laver det bedste system til at hente brugernes kordinater som de 'står' på i mit spil.
Kom i tanke om, at hvis man skulle finde kordinaterne, og hvis der var 200 brugere online, og de klikkede rundt i mit spil - hvor så den skulle opdatere MySQL med felterne - så ville det jo få mysql til at overbelaste totalt?
Hvordan kan jeg lave det bedste ud af, at vise de online brugere, som er online på min server's kordinater?
Er det meningen man skal bruge en sådan stor side, hvis man skal lave et spil som jeg beskriver? - eller findes der en nemmere mulighed?
Fordi - når andre brugere logger på mit spil, så kan de jo ikke se de andre online brugere i spillet.
Det kun hvis der kommer en ny ind, MENS man selv er inde, man kan.
Det lyder som noget du kan klare med Shared Objects, gemme koordinaterne på brugeres egen PC. Jeg ved ikke om du kender til Shared Objects men her er et link du kan kigge på http://www.kirupa.com/developer/mx/sharedobjects.htm
Jeg er ikke vanvittig meget inde i det med hensyn til hvor hurtigt det er...men hvad hvis du bruger application variabler? Nedenstående er til asp, men de findes også i andre sprog...
det jo netop der, det går galdt. for hvis jeg skal udtrække deres kordinater fra databasen, så skal jeg vel også skrive til den - og det er der som det kommer til at overbelaste.
kan det ikke lade sig gøre at hente variablerne ud fra datbasen når man starter, men så ellers bruge application variablerne til at vedligeholde positionerne. Så bruge dem som noget der minder om din database, hvor alle kan tilgå variablerne?
Svaret er en dedikeret socket-server. Du spurgte angående sockets for et par dage siden, så du sidder vel ellerede med en?
Ellers ville servere såsom Flash Media Server 2, Moocks Unity Server (http://www.moock.org/unity) eller open source initiativet Oregano (http://www.oregano-server.org) kunne det du har brug for. De kan nemlig alle håndtere mange samtidige brugere.
Er du en haj til Java og ved du ikke hvad du skal lave i din sommerferie, kan du også bygge din egen ;)
har min egen socket server i visual basic.. og alt virker, bortset fra jeg mangler en idé til at loade brugerne som er ONLINE på serveren, med deres kordinater.
Det jo svært at vide hvor de står henne på deres positionerne, hvis der er andre online, og man først lige er kommet ind?
Yep, og så er svaret jo en multi user server a lá den type jeg nævnte ovenfor. Har du sådan en server kørende holder den fint styr på hvor dine brugere er henne - altså forudsat at du har kædet deres bevægelser på skærmen hos klienten sammen med serverens logik.
Hvis du anvender FMS2 har du et shared objekt til rådighed som du kan kode op imod fra klienten. Hvis du sidder på din egen server der ikke er bygget til Flash, kan du principielt gøre det med sockets. Men lige dér er jeg nok mere til besvær end hjælp ;)
Hvis du skulle være i tvivl, så er det et større projekt du har rodet dig ud i. Samtidig administration af mange brugere på mange klienter er ikke ligefrem superlet. Især ikke hvis man selv vælger at programere serversiden. Men som med alt andet: "har man tid og tålmodighed skal det nok kunne lade sig gøre".
Vi kan da godt tage den fra begyndelsen. Når du vil arbejde med mange brugere i Flash har du 3 muligheder:
1: Bruge serverside scripting og en database. Fint nok til asynkrone applikationer, men noget værre hø hvis vi er ude i noget realtime multiplayer 2: Købe en multiuser server som er bygget til at acceptere mange connections og holde styr på dem. Hvordan sådan en virker er sådan set underordnet, for den giver dig et API med metoder der hjælper dig til at gøre det du vil. 3: Lave din egen server eller bygge videre på en eksisterende. Det giver stor fleksibilitet, men medmindre du er godt hjemme i netværksprotokoller og java-programmering vil det tage år for dig at bikse noget brugbart sammen.
Med andre ord svømmer du mod meget store bølger hvis du ikke 100% forstår hvad det er jeg mener med ovenstående smøre. Det er supersvært for mig at vurdere dit niveau og rådgive derefter når du spørger i øst og vest. Så hvis du er interesseret i mere hjælp hvor vi ikke snakker forbi hinanden må du først og fremmest præcisere hvad det er du vil lave og dernæst tilkendegive om du er hjemme i OOP-, Java- og netværksprogrammering.
Til sammenligning vil jeg sige at jeg selv som Flashudvikler med en del års erfaring, ikke ville røre ved det du beskriver medmindre kunden er villig til at lægge på den sjove side af 100.000 alene for programmeringen...
1. jeg har en server, og det virker fint. 2. det er kodet således serveren står og modtager og sender indkommende data tilbage. 3. det er flash som holder styr på kommandoer med XMLSocket.prototype.onData
Jeg bruger mysql og flash og php, men det jo ikke det mit spørgsmål er. Mit spørgsmål er hvordan jeg får loadet alle brugerne i starten - altså dem der i forevejen er på clienten - uden brug af xml og mysql da det vil overbelaste , hvis folk rykker på deres positioner hele tiden
Det er cool at du får det til at lyde så simpelt, for det er det nemlig ikke.
Det du bliver nødt til at konstruere er en serverside logik som holder styr på brugerne. Og når jeg siger "konstruere" mener jeg helt fra bunden opbygge nogle klasser som tilføjer eller fjerner brugere efter behov. Personligt ville jeg nok bygge logikken med noget server side XML, men verden er åben og du bestemmer selv. Logikken skal så naturligvis også have et interface til at modtage og sende data til klienterne.
På klientsiden skal du så lave dine kald til serveren når brugeren flytter rundt. Det kan vel gøres supersimpelt ved kun at supplere navn, x-, og y-position til serveren. Du skal også på klientsiden bygge nogle klasser/metoder til at holde styr på alle de andre personer som kommer ind. Det er relativt simpelt med attachMovie-metoden, men det kunne jo være sjovt hvis der var forskel på de mc'er der blev attachet. F.eks. kunne jeg godt tænke mig min avatar havde nissehue på - det skal du så evt. også tage hensyn til klient-side. Klientsiden skal jo så også kunne modtage (eller selv spørge?) efter listen med andre brugere som er på lige nu. Men det lyder til at du allerede har konstrueret den del af det.
Jeg tænker selv "Remoting" hvis det skal være helt godt, altså hvis du vil skabe nogle sockets du kan sidde og lytte på. Så får du mere rå og ligetil data både ud og ind af din applikation - og det lyder det jo som om du har det godt med.
Hvis du alligevel på et tidspunkt bliver træt af at skulle lave det hele selv, så giv de multi user servers jeg nævner ovenfor et kig. Der er jo en grund til at de er blevet lavet og at de er både open source og kommercielle succeser. Du er ikke den første der har villet lavet det du vil - og folk der er knap så hardcore til at programmere som du øjensynligt er, vælger som regel den "nemme" løsning: at trække på andres erfaringer, bruge deres produkt og kun bruge den udviklingstid det kræver at sætte sig ind i deres API'er. Det er nu lidt mere trygt at træde i fodspor der allerede er sat og undgå den mio. fejl man uværligt selv løber ind i hvis man begynder forfra ;)
Held og lykke med det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.