Jak określić minimalne wymagania sprzętowe / programowe dla moich gier?

72

Ponieważ pracuję samotnie nad rozwojem, mam tylko ograniczone zasoby, tj. Jeden komputer, na którym rozwijam i testuję grę. więc wiem tylko na pewno, że moja gra działa z tą konfiguracją.

Jakie mam opcje testowania gry na wielu różnych kombinacjach sprzętu / systemu operacyjnego? Jest to gra komputerowa z systemem Windows.

Crippeoblade
źródło
3
To zawsze było dla mnie bardzo niejasne, więc pomyślałem, że trochę więcej dyskusji na ten temat może być dobry.
Jari Komppa
Niesamowite pytanie! Zastanawiam się nad tym
Dream Lane

Odpowiedzi:

29

Z mojej głowy sugerowałbym próbę uruchomienia gry na kilku innych komputerach PC od znajomych lub krewnych. Następnie możesz rozważyć jakąś formę beta testów, np. Opublikowanie wersji demonstracyjnej lub czegoś takiego, aby uzyskać opinie społeczności.

Raoul
źródło
1
Dokładnie. Wystarczy przetestować na szerokiej gamie niższych maszyn.
David McGraw,
1
Ok ... masz rację, ale to może wymyślić każdy. Naprawdę nie rozumiem, dlaczego ta konkretna odpowiedź ma zbyt wiele zalet. Bez obrazy, jest całkowicie słuszne.
Notabene
24

Jednym z moich ulubionych sposobów na znalezienie tych informacji jest użycie maszyn wirtualnych.

Biorąc pod uwagę, jak można skonfigurować sprzęt i pamięć, na podstawie których dozwolona jest maszyna wirtualna, możesz przetestować szeroki zakres ustawień na własnym komputerze. Pozwala to również na testowanie w wielu systemach operacyjnych.

G. Davids
źródło
7
Wadą testowania maszyn wirtualnych jest to, że zasadniczo zawsze używasz tej samej częstotliwości zegara, a obsługa 3D jest wciąż dość fatalna. Pomogą zasłonić twoje bazy, zapewniając, że gra działa na 32/64-bit i gamę opcji systemu Windows.
Błąd 454
Zgadzam się, podczas gdy VM obejmuje wiele baz, ma jednak ograniczenia. Sądząc po mnóstwie odpowiedzi, myślę jednak, że pytającemu będzie dobrze ^ _ ^
G. Davids
1
@ Błąd 454 Nie dotyczy ESXi, jak opisano w mojej odpowiedzi. Możesz kontrolować ilość zasobów procesora i pamięci, które chcesz mieć w systemie operacyjnym
Ray Dey
@Ray Dey przepraszam, nieprawda, ESXi daje ci wirtualną SVGA, nie ma bezpośredniego dostępu do twojej karty graficznej: kb.vmware.com/kb/1011942
Błąd 454
@ Błąd 454 Nie byłem pewien możliwości wideo, więc nie skomentowałem tego. Powinienem był to wyjaśnić. Ale dzięki za wyjaśnienie tego dla mnie :)
Ray Dey
16

Powinieneś mieć jakieś ogólne pojęcie o minspecie, po prostu rozwijając swoją grę - na przykład, jeśli zdecydowałeś się na użycie D3D10 +, oczywiście wybierasz maszyny XP. To jest miejsce na początek.

Znajdź sposób przetestowania na jak największej liczbie komputerów, najlepiej po wdrożeniu jakiegoś sposobu automatycznego gromadzenia wskaźników wydajności (ponieważ użytkownicy mogą być niewiarygodni), a także niemożliwych do zidentyfikowania informacji o komputerze, na którym działa gra (procesor (y), liczba rdzeni, typ GPU, pamięć RAM, system operacyjny itp. - spójrz na rodzaj danych gromadzonych przez ankietę dotyczącą sprzętu i oprogramowania Steam ). Jednym z najlepszych sposobów na to jest oddanie gry znajomym i rodzinie, jak już wielokrotnie sugerowano. Innym sposobem może być skontaktowanie się ze społecznością twórców gier hobbystycznych i sprawdzenie, czy są zainteresowani testowaniem Twojej gry. Nie jestem pewien, czy coś takiego byłoby właściwym pytaniem tutaj na GDSE, ale prawdopodobnie możesz znaleźć kilka osób w obszarze „czatu”, a także możesz rozejrzeć się / opublikować na stronach internetowych takich jak:

Wszystkie te witryny mają fora lub pod-fora poświęcone w jakiś sposób prezentacji gier, więc możesz uzyskać od nich dość dobrą odpowiedź. Chciałbym ujawnić z góry wszelkie statystyki gromadzone i / lub wysyłane przez grę oraz powód ich gromadzenia. Ludzie mogą się tym denerwować, jeśli odkryją to po fakcie.

Zauważ, że ankieta Steam jest również przydatnym narzędziem do oceny, co powinno być minspec - może pomóc ci zobaczyć, jaki może być stosunek kosztów do korzyści związanych z obsługą określonej funkcji lub klasy sprzętu.

Josh
źródło
13

Sprawdź:
- ile pamięci RAM zużywa
- ile tekstury + pamięci GPGPU używa
- minimalną liczbę klatek / aktualną liczbę klatek na sekundę * szybkość procesora * SpeedUpFactorOf (minimalna liczba rdzeni, którą można użyć)
- podobne równanie dla jednostek obliczeniowych GPU
- jaki poziom opengl / directx / cuda twój silnik gry wymaga od karty graficznej
- ile miejsca na dysku zajmuje instalacja + informacje o użytkowniku ...

Testuj także na różnych konfiguracjach sprzętowych.

Danny Varod
źródło
2
W przypadku większości programów ta zależność między liczbą rdzeni a liczbą klatek na sekundę nie jest liniowa.
Ponkadoodle 21.01.11
2
Zależność ta sugeruje również, że gra jest ograniczona procesorem, co nie jest częste.
Kromster 21.01.11
Miałem na myśli, że jako ogólny kierunek - każdy programista powinien sprawdzić, jakich technologii używał i na jakich zasobach jest zależny. Lekko poprawiłem swoją odpowiedź.
Danny Varod
8

Zasadniczo chcesz przetestować na jak największej liczbie innych komputerów - od twardego sprzętu do gier znajomego po maszynę do grantu tylko do obsługi poczty elektronicznej i Internetu. Szczególnie twoja maszyna do grania tylko do e-maili i Internetu, ponieważ prawdopodobnie jest pełna cruftware i innych rzeczy, które przeszkadzają i spowalniają twoją grę.

Testowanie kompatybilności z komputerem to paskudna puszka robaków i istnieje powód, dla którego profesjonalne testowanie jest drogie. Chcesz więc przetestować jak najwięcej różnych nieparzystych scenariuszy.

Wydaje mi się, że można przejść do testów beta, zarówno z przyjaciółmi, rodziną, jak i szerszym kręgiem w społeczności fanów. Kluczowa rzecz - nie polegaj na anegdotycznych raportach. Na twoich znajomych można polegać, że faktycznie odpowiedzą, ale szersza społeczność nie zrobi tego, chyba że im to ułatwisz.

Zbuduj logowanie do swojej aplikacji, aby podawać twarde fakty na temat FPS, czasu uruchamiania itp. Daj użytkownikowi łatwy kwestionariusz, najlepiej wbudowany w grę, w którym mogą zgłaszać, czy gra była w porządku. Miej te statystyki i dane logowania łatwo przesyłane do Ciebie / przesyłane pocztą e-mail, abyś mógł się później zastanowić. Im więcej statystyk otrzymasz, tym lepiej możesz poczuć, czy twój tytuł to: a) działający w ogóle na innych systemach ib) działający dobrze na innych systemach.

MrCranky
źródło
6

Przetestuj na jak największej liczbie komputerów (pomoże to również wykryć wszystkie określone błędy). Jako programista powinieneś znać swoje główne wąskie gardła - skup się na ich podkreślaniu. Możesz poprosić znajomych, współpracowników w pracy, dziewczynę, rodziców, wiele osób na forach.

PS Tylko w celach informacyjnych:

  • Wymagania procesora = uruchomienie gry w minimalnej rozdzielczości lub bez renderowania GPU (mam nadzieję, że kod renderowania wykorzystuje minimum procesora)
  • Wymagania GPU = uruchom grę na potężnym procesorze z domyślną rozdzielczością i sprawdź, który GPU jest wystarczający do wykonania zadania, podaj także minimalną wersję Direct3D / OpenGL
  • Wymagana pamięć RAM = ile pamięci RAM zajmuje gra (np. Poprzez TaskManager z kolumną rozmiaru maszyny wirtualnej, aby zobaczyć całą przydzieloną pamięć RAM, nie tylko aktywną)
  • Dźwięk = prawie wszystko pasuje, wystarczy wspomnieć o obsłudze kanałów 2 / 5.1
  • Wyświetl = określ minimalną możliwą do gry rozdzielczość, w której pasują elementy sterujące gry
  • Sieć = niektóre masowe testy obciążenia i sprawdź, która przepustowość na to pozwala (modem 56k, DSL, T1, LAN)
  • Klawiatura / mysz / tablet / joystick itp.
Kromster
źródło
2
Po otrzymaniu tych liczb z pewnością chciałbyś je nieznacznie zwiększyć, na wypadek gdyby gra działała przy niskim zużyciu pamięci.
Kaczka komunistyczna
2

Jeśli chodzi o wymagania, założę minimalne wymagania wymagane do uruchomienia gry. Będzie to zależeć od technologii używanych do tworzenia gier.

Na przykład, jeśli używasz określonych interfejsów API, takich jak D3D9 lub OpenGL 3.0, musisz to określić, ponieważ niektóre interfejsy API nie są kompatybilne w dół.

Jeśli budujesz w systemie Windows ze środowiskiem .net, musisz również to sprecyzować.

Jeśli chodzi o wymagania dotyczące wydajności, wypróbowanie na różnych komputerach jest najlepszym rozwiązaniem, chociaż możesz być w stanie zmierzyć powiązaną wydajność za pomocą obliczeń.

na przykład, jeśli twoja obecna karta graficzna działa z prędkością 60 fps, a inny komputer o podobnej konfiguracji, z tą różnicą, że twoja karta graficzna ma o połowę mniejszą prędkość, powinien działać o około połowę mniejszej prędkości twojego komputera. Ponownie, jest to tylko szacunek, wiele innych właściwości wpłynie inaczej na wydajność, ale możesz użyć tych podstawowych informacji do przetestowania gry na docelowych urządzeniach.

Mam nadzieję, że to pomoże, a każdy może mnie poprawić z dowolnego powodu.

Lew
źródło
1

W zależności od rynku docelowego (zakładam, że nie jest to najnowocześniejszy model 3D, tzn. Potrzebne są drogie karty graficzne), przyjrzałbym się wyborowi starszych kart graficznych z miejsca takiego jak EBay, abyś mógł przetestować zarówno NVidię, jak i ATi karty

PhillC
źródło
1

Zawsze jest idealnie, otrzymuj informacje zwrotne od społeczności, jak wspomniano. Ale skąd wziąć społeczność i ludzi, którzy spróbują to przetestować? Umieszczenie go na niektórych forach gier niezależnych pomoże, ale problemem będzie uzyskanie rzeczywistej opinii.

Tylko kilka procent osób, które przetestują grę, napisze dokładną konfigurację i napotkane problemy. Ludzie po prostu tego nie robią. Znacznie lepszym sposobem jest umożliwienie pewnego rodzaju testu porównawczego podczas odczytu konfiguracji systemu użytkownika. Poproś użytkownika o uruchomienie testu porównawczego za pomocą jednego przycisku. Podaj kilka liczb i czasów (tak, ludzie to lubią :-)) i pozwól mu porównać z innymi użytkownikami (z wysyłaniem danych) ... Pomoże.

A potem masz bazę danych pełną konfiguracji, rozdzielczości ekranu, czasów renderowania i nieudanych funkcji ...

Jeśli korzystasz z systemu Windows, wywołanie DXdiag pomoże ci odczytać konfigurację użytkowników. Istnieją jednak programy, których można używać w innych systemach.

Notabene
źródło
1

Jak wspomnieli inni, najlepszym sposobem jest udostępnienie wersji beta i zebranie opinii społeczności w celu uzyskania wiarygodnych wyników.

Chciałbym również zasugerować użycie ESXi. To rozwiązanie maszyny wirtualnej VMWare. Nie zniechęcaj się, ponieważ jest to rozwiązanie VM. ESX jest o wiele bardziej niskim poziomem.

Prawdopodobnie byłoby to dla Ciebie idealne, ponieważ masz jedną maszynę. Możesz testować różne systemy operacyjne, konfiguracje sprzętowe (bez sprzętu graficznego, ESXi użyje tego, co zainstalowałeś na swoim komputerze).

Jest to w zasadzie bardzo uproszczony system operacyjny, na którym można zainstalować inne systemy operacyjne. Używamy go w pracy w celu zapewnienia zgodności wielu systemów operacyjnych. Jest bardzo szybki i niezawodny, prawie tak responsywny jak maszyna waniliowa.

Wiem, że szukasz wymagań sprzętowych, a ESXi ma bardzo fajną funkcję, w której możesz ograniczyć ilość pamięci RAM, procesora lub miejsca na dysku przez system operacyjny i potencjalnie emulować, jak gra działa na niskim poziomie koniec procesora lub małej ilości pamięci, aby uzyskać najwyższą wydajność procesora lub pamięci (ograniczona przez rzeczywisty sprzęt).

Więc jeśli masz komputer o dość wysokiej specyfikacji, możesz na nim zainstalować ESXi, zainstalować dowolne systemy operacyjne i bawić się procesorem i zużyciem pamięci (uważam, że możesz nawet zmienić liczbę rdzeni używanych przez system operacyjny!)

Oto link do niego: http://www.vmware.com/products/vsphere-hypervisor/index.html

Najlepsza rzecz w tym? Jest w 100% darmowy!

Ray Dey
źródło
0

Uruchomienie jakiegoś narzędzia do profilowania byłoby jednym ze sposobów. W przypadku programów Java można użyć VisualVM ( https://visualvm.github.io/ ). Wikipedia wymienia kilka innych. Zobacz: https://en.wikipedia.org/wiki/List_of_performance_analysis_tools . To samo dotyczy debugowania pamięci. Zobacz: https://en.wikipedia.org/wiki/Memory_debugger

Zasadniczo sprowadza się to do sprawdzania zużycia pamięci i procesora w regularnych odstępach czasu podczas uruchamiania programu / grania w grę. Następnie obliczasz jakiś średni zakres i właśnie tego potrzebuje on przez większość czasu. Idealnie byłoby to zautomatyzowane (dla spójności i dokładności) i chciałbyś wykluczyć ilość zasobów zużywanych, współdzielonych lub wykorzystywanych przez inne procesy. Nie mogą być pewne kwestie priorytetowe ukrywanie faktu, że program może używać więcej pamięci, jeśli jest on dostępny. To znaczy, jeśli system operacyjny był bardzo zajęty, twój program może założyć trochę z braku wystarczającej ilości pamięci.

Ostatecznie musisz przetestować / przeprowadzić test / profil, a następnie przeanalizować te testy. Dobrze jest mieć wstępnie zdefiniowane wskaźniki wydajności do porównania. Np. W FPS możesz chcieć 30+ FPS dla grywalnej / przyjemnej gry. Na tej podstawie ustawiasz minimalny pasek na / powyżej specyfikacji sprzętowej potrzebnej do osiągnięcia tego 30+ FPS przez pewien procent czasu (zawsze możliwe jest, aby użytkownik działał zbyt dużo naraz i powodował awarie i zawieszanie się).

Jak powiedzieli inni, naprawdę potrzebujesz innych ludzi do przetestowania go na różnych urządzeniach. W idealnym świecie miałbyś grupę grup z podobnym sprzętem w obrębie grupy i przeprowadzałbyś pewien rodzaj kontroli w porównaniu z testowaniem eksperymentalnym, aby sprawdzić, czy więcej / mniej pamięci, procesora, GPU ma znaczenie, gdy pozostałe czynniki były utrzymywane na stałym poziomie.

Jeremy Harton
źródło