jak sprawdzić, czy serwer gier może obsługiwać klientów przed wydaniem gry?

13

opracowujemy grę na system iOS z obsługą wielu graczy. jak dotąd wszystko wydaje się być naprawdę dobre, ale teraz chcemy się upewnić, czy serwer może obsłużyć 10000 klientów, czy nie. jakiś pomysł, jak mogę się upewnić, że serwer przetrwa tak duży ruch?

Ali1S232
źródło

Odpowiedzi:

15

Do testowania obciążenia ruchem istnieje wiele narzędzi, ale będziesz musiał przetestować również inne rzeczy, które będą specyficzne dla twojego serwera gry, ponieważ ruch sieciowy jest tylko jedną częścią równania - wykorzystanie procesora i ciągłe zapytania do bazy danych są dwa inne, które od razu przychodzą na myśl jako ważne czynniki, które będziesz chciał zmierzyć (bez wątpienia będą też inne czynniki, które będziesz musiał określić na podstawie twojej wiedzy o tym, jak działa twój serwer gry).

Naprawdę dobrym sposobem na to może być napisanie programu klienckiego „ symulacja gracza ” i uruchomienie wielu jego instancji na wielu komputerach. Minusem jest to, że może to wymagać użycia wielu komputerów, ale niektóre lokalne uniwersytety mogą mieć duże laboratoria komputerowe, na których można by je uruchomić (profesor może być zainteresowany wynikami testu, ponieważ profesorowie uniwersyteccy są naprawdę ciekawi dobre badania).

Twój klient może nie być tak wyrafinowany jak gracz, ale możesz się upewnić, że wykonuje następujące czynności (nie musi być bardzo inteligentny, o ile może być nieco bardziej funkcjonalny niż pijany programista, który naprawdę nie powinna wracać do domu, więc możesz też chcieć oznaczyć postacie w specjalny sposób, aby mogli robić głupie rzeczy, takie jak przechodzenie przez ściany, mieć nieograniczony budżet na kupowanie losowo wybranych towarów od kupców w grze, mieć nieskończone zapasy amunicji i tak dalej):

  • Wysyłaj losowy tekst czatu w losowych odstępach czasu
  • Nawiguj w losowych kierunkach na całym świecie (ale zwykle trzymaj się bliżej głównych miast)
  • Losowo wybieraj broń w losowych kierunkach, gdy w pobliżu znajdują się inni gracze
  • Kupuj / sprzedawaj losowe towary od kupców i od czasu do czasu zrzucaj przedmioty na całym świecie
  • Losowo zapalaj rzeczy w ogniu (lub powoduj inne formy lokalnego zniszczenia)
  • Zdenerwuj hordy dzikich zwierząt i biegnij do ruchliwego miasta, które goni za nimi, a następnie losowo zdecyduj, czy chcesz się wylogować (jeśli wybierzesz wylogowanie, być może dzikie zwierzęta zaczną atakować innych w mieście?)
  • Leczą rannych graczy
  • Wystrzel losowo wybrane zaklęcia magiczne w zatłoczonych miejscach
  • Gotuj surową żywność, przetwarzaj surową tarcicę i inne materiały (np. Z wydobycia) itp.
  • ... inne proste zadania, które Twoi gracze mogą wykonywać regularnie

Jeśli szacujesz, że będziesz mieć jednocześnie 9 000 graczy, spróbuj to przetestować z co najmniej 3-krotnością tej liczby, abyś wiedział, jak twoje serwery mogą obsłużyć obciążenie 27 000 symulowanych zajętych graczy (wielu graczy ma tendencję do bezczynnie, zwłaszcza typy społeczne).

Również ( i to jest bardzo ważne ), jeśli to zrobisz, proszę, PROSZĘ, zaloguj się zwykłą postacią i nagraj wideo wszystkich tych skomputeryzowanych graczy robiących głupie rzeczy i udostępnij nam ten film tutaj, abyśmy mogli mieć dobry śmiech (myślę, że „ pijany taniec w stodole ” może być dobrym tytułem do tego filmu, jeśli można znaleźć odpowiedni scenariusz w grze)! ;-RE

Randolf Richardson
źródło
2
Bardzo dziękuję za twoją odpowiedź, myślę, że musimy przetestować za pomocą tych symulowanych graczy i myślę, że ostatecznie będziemy korzystać z jednej z usług chmurowych do obsługi klientów. podobnie jak sidenote, jest to gra wieloosobowa, ale gracze mogą tylko nawigować po świecie i polować na siebie nawzajem, więc prawie żadne z wymienionych zadań nie zostanie zrealizowane na przykładowych klientach! Mam nadzieję, że następna osoba z tym samym pytaniem zamierza wypuścić grę symulacyjną życia, aby przetestować wszystkie te rzeczy!
Ali1S232,
Po prostu sprawdź, co dotyczy twojej gry (nie ma za co!). Nie wiedziałem nic o funkcjach twojej gry, więc starałem się uwzględnić wiele możliwości w nadziei, że zostaną one omówione.
Randolf Richardson,
Niektóre gry również zaczynają się od wczesnej wersji beta, ale może to być trudna decyzja, ponieważ istnieje nieprzyjemny czynnik, w którym gracz może stwierdzić, że nie lubi gry w fazie beta, a następnie nigdy nie wróci, aby spróbować ponownie (mimo że napotkane problemy zostały rozwiązane).
Randolf Richardson,
2
-1, nierealna odpowiedź. Kobiety-twórcy gier nie istnieją. (Jks, +1, zgodził się na wizualne udostępnienie wyników testu).
deceleratedcaviar
3
Dodam, że właśnie to zrobiłem, dla MMO na przenośnej konsoli; symulowani gracze byli najlepszymi rzeczami do testowania, jak serwery poradzą sobie w stresie. Przeprowadziliśmy również zamkniętą wersję beta (ograniczona do około 500 osób) i wykorzystałem wygenerowane statystyki dotyczące zachowania beta testerów, aby dostroić symulowanych graczy tak, aby zachowywali się tak, jak prawdziwi gracze, jak mogłem. Po zakończeniu bety ustawiłem 40 000 symulowanych graczy, którzy sieją spustoszenie na serwerach. Dużo chaosu!
Trevor Powell,
0

To jest odpowiedź na stare pytanie, mam nadzieję, że może być przydatna dla tych, którzy docierają tutaj przez wyszukiwarkę. Netgend ma platformę testów wydajności, która może emulować 50 000 użytkowników i może wykonywać wszystkie elastyczne emulacje klientów.

Zwłaszcza zobacz blogi

  • Ułatwienie tworzenia sieci
  • wyodrębnia pola z odpowiedzi serwera
  • Testy wydajności z danymi binarnymi

Pamiętaj, że przetwarzanie wiadomości nie jest ograniczone do wiadomości HTTP, dotyczy wszystkich wiadomości.

Mam nadzieję, że to jest pomocne.

pakiet
źródło