Hunter Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 Witam, mam pytanie. Specjalnie na zamówienie stworzyłem strategiczną gre internetową przez przeglądarkę. Mój problem dotyczy mapy którą może oglądać gracz. Wyświetlanie mapy polega na wyciągnięciu danych z bazy i operacja na nich. Podgląd mapy to wyświetlenie w sumie 49 pól a co za tym idzie jednorazowo muszę wykonać 49 zapytań do bazy aby sprawdzić każdą pozycję. I tu pytanie dla pro PHP jest jakiś szybszy i optymalniejszy sposób na wyświetlanie takowej mapy? Operacja na plikach była by szybsza? Proszę o rady. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 W tym przypadku 100 % operacja na plikach. Takie coś jak przechowywanie plików, map itd. nie jest dla relacyjnych baz danych. Możesz się posiłkować NoSQL, ale to nie ma sensu raczej. Dla mnie, to powinno to wyglądać tak: struktura serwera: viewer_mapy.html mapa.dat viewer.js Viewer_mapy to wiadomo, jakiś tam twój bajerancki szablon + podlinkowany viewer.js viewer.js jest skryptem który ładuje mapę z serwera "plik mapa.dat". Ładuje twoją pozycję, i zarządza interakcją. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 16 Marca 2010 Autor Udostępnij Opublikowano 16 Marca 2010 rozumiem że różnice w szybkości będą diametralne? Czy duże pliki .dat dalej będą takie szybkie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 To już zależy jak wydajnie napiszesz loadera w javascriptcie i czy dobierzesz odpowiednią strukturę dla niego. : ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 16 Marca 2010 Autor Udostępnij Opublikowano 16 Marca 2010 jakieś porady co do tego :P ? Bo nie chciałbym się meczyć myśląc że jest okej a potem od nowa pisać aby wydajniej było :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 Nie mam w takich rzeczach doświadczenia, więc Ci nie powiem. Dobrą sprawą by było ew. proxy napisane w PHP które by przesyłało do klienta tylko fragment mapy który user widzi czy jest niedaleko. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 Proxy? Czemu? Ja bym to zrobił na zasadzie cache, chociaż ma to w sumie pewne wady, które jednak wykluczają ten sposób (Ale z obserwacji wnioskuję, że takie plemiona z tego korzystają - tj. cache aktualizowane podczas ważnych operacji (przejęcie wioski) a dodawanie punktów leci co np. 20 minut). @1st: Dlaczego na 49 zapytań? Nie można po prostu jedno pytając: "Wskaż wszelkie obiekty od x, x2, y, y2"? @EDIT: Jeśli skorzystałbyś z plików .dat, to pamiętaj, aby zabezpieczyć się przed wywołaniem ich przez przeglądarkę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 16 Marca 2010 Udostępnij Opublikowano 16 Marca 2010 Chodzi o to, żeby user nie dostawał fragmentów mapy, które nie są mu potrzebne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 17 Marca 2010 Udostępnij Opublikowano 17 Marca 2010 Użyj AJAXa i ładuj dane w tle Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markuz Opublikowano 29 Marca 2010 Udostępnij Opublikowano 29 Marca 2010 Widziałem kiedyś przykład czegoś takiego w necie. Googluj coś typu js rpg example. js step jakoś tak a znajdziesz . Ja też robiłem mapke ale na SQL tak jak ty i teraz nie chce mi się tego zmieniać, mapa w pliku rozwiązuje problem terenu, ale graczy z pliku nie pobierzesz heh. Tak wiec można 2 warstwy zrobić jedna JS a druga SQL . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 29 Marca 2010 Filar Społeczności Udostępnij Opublikowano 29 Marca 2010 Relacyjna baza danych wcale nie jest tutaj przekreślona, jak to napisał Kofel. To wszystko zależy od specyfikacji mapy. Jeśli nie będzie zawierać bardzo dużych ilości danych, to spokojnie uciągnie. Trzeba mieć tylko dobry sprzęt i dobrze zrobione tabele. Przede wszystkim zainteresowałbym się się postgresql'owymi typami i funkcjami geometrycznymi oraz postgisem. Osobiście nie operowałbym na plikach, tylko zbudował aplikację usługową - takie nosql na potrzeby projekty, które by zarządzało całą mapą w pamięci ram + zrzuty do plików. Do tego odpowiednie metody geometryczne w zapytaniach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 30 Marca 2010 Udostępnij Opublikowano 30 Marca 2010 Czyli jednak najlepiej robić coś na wzór NoSQL? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się