Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Ajax][MySQL] Mapa, Tworzenie mapy
Skie
post
Post #1





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Witajcie, wiem, że ten temat był już poruszany kilkakrotnie na tym forum, ale w żadnym temacie nie znalazłem żadnej wskazówki co do zagadnienia w tworzeniu mapy wraz ze skryptem poruszania się po niej.

Myślę nad tym przez długi czas i odkładam pracę nad tym aspektem strony już od dłuższego czasu, pewnie skończy się tak, że zrobię to na końcu.

Jak sądzicie? Jak tworzona jest mapa w takich grach via www jak np. plemiona, travian czy my-fantasy.

Przy swoich przemyśleniach doszedłem do dwóch sposobów stworzenia takiej mapy.

1. Przy starcie mapy plik PHP pobiera z bazy MySQL niezbędne dane, a następnie edytuje je za pomocą skryptu napisanego w AJAX. (podczas poruszania się itd.). Zapisywanie danych do bazy występowałoby tylko po opuszczeniu mapy. Mankamentem takiego pomysłu jest to, że ładwo można byłoby taki skrypt oszukać - np. restartując przeglądarkę.

2. Przy starcie mapy plik PHP pobiera z bazy MySQL niezbędne dane, a następnie przy pomocy AJAX'a przy każdym ruchu wczytuje inny plik PHP do obliczeń. To byłby sposób lepszy i dokładniejszy od poprzedniego, lecz z kolei sądzę iż "zabiłby" mi serwer, więc odpada.

Czy macie jakieś rady jak wyeliminować wady tych pomysłów?
A może zrobić pseudo bazę danych poprzez zapisywanie danych w osobnym pliku .txt?

Czekam na wasze sugestie.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A nie lepiej zapisać to w plik xml?
Go to the top of the page
+Quote Post
nithajasz
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Za bardzo kombinujesz..

Masz skrypt do poruszania się po mapie prawo, lewo, góra, dół. Nic trudnego. Kwestią ważniejszą jest zorganizowanie mapy w sposób taki by dało się prosto poruszać po polach. Prosty przykład to kwadrat dzielony na pola i numerowane od 1 do iluś tam. Poruszając się w zależności od kierunku dodajesz, odejmujesz nr pól i zapisujesz do bazy. Tak to działa np. w travianie.

Przykład :

Mapa i pola :

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

Stoisz na polu nr 1 ruszasz się w prawo [trafiasz na pole 2 w bazie nadpisujesz dla uzytkownika nr pola na ktorym przebywa] ruszasz sie w dol trafiasz na pole 7 [ponownie nadpisujesz].

Obliczeń wiele nie ma. Jedyna wada to ciągłe zapisywanie do bazy. Ewentualnie pozycję można zapisywać do sesji i w jakiś sposób przed jej wygaśnięciem zapisywać dane do bazy.
Go to the top of the page
+Quote Post
Skie
post
Post #4





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


U mnie jest zrobione to dosyć inaczej, gdyż pola są numerowane współrzędnymi x i y. Np. 1:1, 1:2, 1:3 itd.
Działa to dobrze, ale jeżeli po każdym ruchu będę to zapisywał do bazy danych to chyba mi to zabije serwer.
Bo jak np. poruszam się z miejsca A do B i idę przykładowo 10 pól, to będzie musiał się wykonać 10 razy plik PHP oraz 10 razy połączyć z bazą danych. Pomnożyć to przykładowo przez 1000 graczy i już jest 10 tys. połączeń w ciągu pół minuty.
Go to the top of the page
+Quote Post
Landon
post
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 21.04.2007
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


No więc tak:

Proponuje pobierać dane z mysql i generowanie pliku xml nastepnie odbieranie go przez ajax'a zapisywanie do tablicy i z tej tablicy generowanie mapy przyjmijmy że stworzysz 2 tablice 1 odpowiedzialną za załadowane sektory a drógą przechowywującą dane o wszystkich polach...

Z ostatniego posta zrozumiałem że chodzi o grę więc musisz pobierać za każdym razem współrzedne graczy któży są aktualnie (mam taki skrypt tylko napisz na gg:11861269)

Ten post edytował Landon 28.05.2008, 22:16:51
Go to the top of the page
+Quote Post
Kocurro
post
Post #6





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Skie: bazy nie dasz rady zabić - chyba, że źle ją zaprojektowałeś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Gra MuOnline chodzi na MsSQL'u i co chwila zapisuje/odczytuje dane dotyczące aktualnego stanu gracza - pozycja, wskaźniki itp.

Daje radę przy 5 tysiącach osób online więc ... w czym problem ?

pozdr
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:29