Stelma Napisano Sierpień 6, 2012 Zgłoś Share Napisano Sierpień 6, 2012 Witam, Jeżeli zły dział to przepraszam ale nie wiedziałem gdzie go wrzucić. Bo nie chodzi mi o konkretny kod, a raczej jedynie o dyskusje. Lubie różne rozkminy zupełnie nikomu nie potrzebne i ostatnio naszła mnie pewna i szpiesze do was z prośbą o doradzenie Załóżmy że mamy świat 2D niech będzie średnich rozmiarów. 60.000 x 60.000 i na każdym kafelku niech się da położyć 255 przedmiotów. czyli było by to 60.000 x 60.000 x 255 łącznie 918.000.000.000. Robi się dość mocno dla pamięci komputera. Nawet zakładając że w mapie przechowuje jedynie unikatowy identyfikator "kafelka". I teraz w czym problem. A no w tym że chciałbym wykminić sposób jak przechowywać takie kolosy, a jednocześnie utrzymać krótki czas dostępu do danych. Oczywiście dla gry typu single player nie ma problemu bo program doczytuje jedynie określony obszar wokół gracza, a reszta leży spokojnie na dysku. Ale jak już napisałem ja lubię komplikować sobie życie i zakładam że leżało by to na serwerze. Oczywistym jest że nie każdy kafel będzie zapełniony także można by bylo uszczuplić mape przechowując jedynie elementy "istniejące" w posortowanej tablicy dynamicznej. Ale tu przychodzi pytanie czy to nie będzie za wolne dla x graczy ? Btw. Jeżeli ktoś posiada wiedzę na temat dobrze rozwiązanych takich problemów z dużymi mapami to zapraszam do wyjaśnienia mi w jaki sposób serwery np. WoW'a potrafią przechowywać ogromne mapy dla kilku tysięcy graczy w trybie online i jeszcze nie mają kosmicznych wymagań. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 7, 2012 Zgłoś Share Napisano Grudzień 7, 2012 Mapa 60kx60k w postaci tilowej to okolo 3,5GB ramu aby trzymac ja na stale w pamieci. Na standardy serwerowe to zaden dramat. Ale MMO raczej nie robi sie na jednej maszynie tylko na klastrze. Co wiecej mozna swiat podzielic na mniejsze sekcje i rozdzielic obsluge kazdej z sekcji na rozne serwery. Pozatym nie ma obowiazku w mapie 60k x 60k ustawiania tilesa dla kazdego pola. Mozna powiedzmy ustalic jakies Master Nody powiedzmy co 10x10 tilesow i tylko im nadac wartosci. Natomiast wszystko pomiecy tymi nodami robic przez aproksymacje/interpolacje/filla czy inna acje. i wtedy pamieciozernosc spada ci diametralnie. Pozatym serwer nie musi wcale miec wizualizacji. To klient ma ta cala grafike itd. Serwer musi miec mape kolizji + pozycje graczy i itemow. Nawet jak na serwie jest 80 mln ludzi online to powiedzmy to zajmuje 800MB danych. Koszt pamieciowy jest pomijalny. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.