Dlaczego gry są zbudowane na silnikach wieloplatformowych czasami wyłączne w systemie Windows?

99

Jeśli silnik obsługuje system Windows, OS X i Linux, dlaczego czasami widzimy gry korzystające z tych silników, takie jak Space Hulk: Deathwing , ograniczone tylko do systemu Windows?

Nathan
źródło
25
Oznacza to, że można go budować na różnych platformach, nie oznacza to, że nie wymaga dodatkowego wysiłku.
bagno
Prostym powodem jest to, że zdecydowana większość tego typu gier odbywa się na PC.
Fattie,

Odpowiedzi:

150

Powody techniczne:

  • Platforma stworzona specjalnie dla gier : gdy niektórzy programiści tworzą swoje gry, mogą czasem polegać na funkcjach specyficznych dla platformy. Chociaż silnik gry może być w stanie zbudować grę na wiele platform, kod niezwiązany z grą może wywoływać wywołanie specyficzne dla systemu Windows, które albo nie istnieje na innych platformach, albo wymagałoby przerobienia trudnej części gry (usługi licencjonowania, Systemy zapisywania plików itp.).
  • Brak odpowiednich maszyn : przez długi czas większość komputerów Apple nie była wyposażona w wystarczającą moc graficzną, aby uruchomić większość gier. Po co więc wypuszczać gdzieś, gdzie użytkownicy najprawdopodobniej będą mieli złe doświadczenia? Powoli się to zmienia, dzięki lepiej zintegrowanej grafice, ale wciąż może być powodem, dla którego niektórzy wybierają tylko system Windows.
  • Kompatybilność wtyczek / bibliotek : twórcy gier mogą korzystać z bibliotek firm trzecich, aby przyspieszyć programowanie lub używać standardowego / sprawdzonego kodu branżowego (SSL, biblioteki serializacji itp.). Jeśli nie obsługują one platformy X, gra najprawdopodobniej nie będzie działać na niej niezawodnie, więc zostaną wykluczeni.
  • Zwiększona kontrola jakości : Podczas tworzenia gry istnieje niewielka podsekcja zespołu, która zapewnia, że ​​nie ma błędów i że gra spełnia standardy wydajności. Po dodaniu platformy gra musi zostać zasadniczo przetestowana dwukrotnie! Ogólne części gry można pozostawić w spokoju, ale przed wydaniem jest jeszcze wiele testów. Może to również prowadzić do wzrostu kosztów, nie tylko ze względu na dodatkowy potrzebny czas, ale także specjalistyczny sprzęt, w zależności od platformy (Apple, Xbox, PlayStation, telefony itp.).
  • Zwiększone wsparcie : w momencie wydania gier będą zawierać błędy (niektóre gry bardziej niż inne). W miarę dodawania kolejnych platform wzrasta ilość wsparcia po wydaniu, które programista musi zrobić. Błędy specyficzne dla platformy będą musiały zostać naprawione w sposób, który naprawia to dla uszkodzonej platformy i nie wpływa na platformy, na które nie ma to wpływu. Jeśli platforma zmieni się, powiedzmy, Windows 7 na 8 lub iteracja OSX, będzie musiał istnieć pewien poziom kontroli jakości, aby upewnić się, że nie ma żadnych błędów w nowszej wersji. A jeśli tak, to jest to kolejna platforma, która musi być obsługiwana wraz ze starszą wersją. Może to mieć ogromny wpływ na koszty, szczególnie po uruchomieniu gry (gdyby gra nie zarabiała dużo pieniędzy), 3-6 miesięcy po wydaniu.

Powody nietechniczne:

  • Umowa z wydawcą : niektórzy programiści będą mieli umowy z właścicielem platformy na wydanie specjalnie na ich platformę. Chociaż zdarza się to częściej w przypadku konsol, może tak być również w przypadku platform PC (np. Windows).
  • Autorski programista : niektórzy programiści należą do właściciela platformy i nie mogą wydawać swoich gier na określonych platformach. Prawdopodobnie nie zobaczysz Halo na PS4 ani Forza na Macu.
  • Brak odbiorców : programiści mają wiele statystyk na temat trendów konsumenckich na określonych platformach, zwłaszcza jeśli mają dużych wydawców z dużą ilością dostępnych danych. Jeśli mają informacje, które mówią, że 90% ich docelowych odbiorców korzysta z systemu Windows, mogą nie zadać sobie trudu, aby wypuścić na inne platformy, aby spróbować ograniczyć potencjalne błędy i / lub skoncentrować się na materiałach marketingowych.
  • Nie spełnia wymagań platformy : niektóre platformy, takie jak Apple App Store, mają ścisłe wymagania dotyczące układu i projektu, które należy przestrzegać, aby je opublikować. Jeśli gra nie spełnia tych wymagań dla konkretnej platformy dystrybucyjnej, może nie być wart czasu inżynierii, aby dostosować grę i wypuścić ją, jeśli nie ma wystarczającej przewidywanej sprzedaży.
  • Brak doświadczenia z platformą : jeśli programista współpracował wyłącznie z systemem Windows (i nie ma / niewiele osób ma doświadczenie w korzystaniu z innych systemów), nauczenie się drobnych różnic, które mogą powodować problemy na późnym etapie programowania lub budżet może nie być wystarczający, aby zatrudnić nowych pracowników, którzy będą odpowiedzialni za kompilację Linux / OSX.
  • Koszty marketingowe : jeśli dwie platformy mają znacząco różne grupy odbiorców lub grupy wiekowe, materiały marketingowe dla jednej mogą nie dotrzeć do drugiej, co oznacza, że ​​na marketing trzeba wydać więcej pieniędzy. Jeśli te dwie grupy wymagają innego marketingu, wszystkie muszą zostać odtworzone z myślą o nowej grupie docelowej. Marketing może stać się wyjątkowo drogi, szczególnie w przypadku dużych wydań, im więcej platform potrzebuje marketingu, tym szybciej rosną koszty.

Jestem pewien, że jest ich więcej. To tylko niektóre z moich czubków głowy. Mam nadzieję że to pomoże.

użytkownik3797758
źródło
26
To dobra odpowiedź, ale myślę, że brakuje Ci jeszcze jednego ważnego elementu: kosztu testowania / kontroli jakości. Silniki wieloplatformowe nigdy nie doskonale radzą sobie z ukrywaniem różnic między platformami, dlatego konieczne jest testowanie na wszystkich platformach docelowych. Mogą występować błędy, które pojawiają się tylko na jednej platformie lub znaczące różnice wydajności związane z różnymi implementacjami na różnych platformach. Mogą również występować różnice w zachowaniu w funkcjonalności, która ma być wieloplatformowa. Potrzebujesz zwiększonego czasu kontroli jakości i zapewnienia testerom dodatkowego sprzętu. Niektórzy programiści będą potrzebować dodatkowego sprzętu i oprogramowania.
mattnewport
2
Myślałem, że
opisałem
5
Zgadzam się z @mattnewport, że koszt jest tutaj zaniżony - opracowanie, kompilacja, testowanie, debugowanie, płukanie, powtarzanie dla wielu platform może być dość pracochłonne. Wystarczająco trudno jest poprawnie przetestować różne konfiguracje sprzętowe dla jednej platformy!
AC,
3
Ponadto „wsparcie” jest czasami znacznie przesadzone. Wiele silników „obsługuje” system Windows, ale tak naprawdę musiałbyś zainstalować Visual Studio i Python oraz Perl i Cygwin i Msys oraz 5 odmian MinGW i gigabajtów bibliotek, aby z niego korzystać.
AndreKR,
2
„Deweloperzy mają wiele statystyk na temat trendów konsumenckich na konkretnych platformach” - oczywiście użycie ich do ustalenia, które platformy technicznie wspierać, jest trochę samonapędzającą się przepowiednią.
LUB Mapper
30

Ponieważ bycie dostępnym nie oznacza bycia wolnym i natychmiastowym.

Obsługa jeszcze jednego systemu operacyjnego w najbardziej uproszczonej formie oznacza jeszcze jedną platformę zapewniającą wsparcie techniczne.

Im więcej obsługiwanych platform = Im więcej platform potrzebujesz do zapewnienia wsparcia = Spędzanie więcej czasu na wsparciu = Tracenie czasu pracy, który mógłbyś poświęcić na ulepszanie gry.

Obsługa platformy sprowadza się do pewności, z której można czerpać wystarczającą liczbę graczy na tej platformie docelowej, więc rekompensuje to czas poświęcony na wsparcie platformy.

S. Tarık Çetin
źródło
2
Więcej pracy jest tracone na rozwój rynku (App Store, Steam, Google Play) i integrację specyficzną dla platformy, szczególnie w dziale społecznym. (przyjaciele, udostępnianie, uwierzytelnianie)
CostelloNicho
18

Jak dotąd są dobre odpowiedzi, ale przejdźmy do sedna.

Zgodnie z ankietą sprzętową Steam z czerwca 2017 r. 96,24% próbkowanych użytkowników korzystało z systemu Windows. Użytkownicy Windows 87,37% to Windows 10 lub 7, 64 lub 32 bity. Warianty OSX stanowią 2,95% użytkowników, a warianty Linuksa łącznie 0,72%.

Czas to pieniądz. Jeśli twój rynek nie jest niszowy i nie jest ukierunkowany na system operacyjny OSX lub Linux, musisz sprzedać dużo gier, zanim <4% rynku będzie warte twojego czasu, zwłaszcza, że ​​twórcy gier są z trudem przygotowani do uzupełnienia funkcji produktu.

nieodpowiedni kod
źródło
3
... i zakłada to również, że wszyscy użytkownicy płacą średnio porównywalne pieniądze za gry. Pamiętam statystyki dla Androida vs. Windows Phone, gdzie chociaż Android miał znacznie większy udział urządzeń, bezpośrednie przychody (bez reklam) były prawie takie same - i oba były niewielkie w porównaniu z iOS. Jeśli sprzedajesz grę, musisz wiedzieć, ile ludzie są skłonni zapłacić. Stworzenie gry dla 0,7% segmentu rynku, który rzadko kupuje gry, jest wprost szalone: ​​D Prawdopodobnie nie byłoby tego warte, nawet gdyby silnik był idealnie wieloplatformowy (brak dziwnych błędów na różnych platformach).
Luaan,
1
@Luaan Według Humble Bundle przychody z Linuksa są tylko nieco niższe niż Mac, chociaż Mac jest trzy razy bardziej popularny. Być może tłumaczy to fakt, że wysokiej klasy komputery z systemem Linux mają zwykle znacznie lepsze karty graficzne niż komputery Mac w tej samej cenie, ponieważ kompromisy tych maszyn leżą gdzie indziej.
stommestack 12.07.17
1
@JopV. Skromny pakiet jest nieco trudny ze względu na czynnik pakietu. Jeśli zależy mi tylko na jednej grze w pakiecie, nie jestem skłonny płacić więcej tylko dlatego, że dostaję dodatkowe gry, w które nie będę grać (lub gry, za które już zapłaciłem, czasami wiele razy; tak, jestem trochę szalony: P). Może to również wynikać z faktu, że Linux był do niedawna ignorowany w grach, więc ktoś z komputerem Mac lub Win może mieć już niektóre gry, podczas gdy może to być pierwsza wersja Linuksa. Może. Czy mają również statystyki z Humble Store?
Luaan,
2
@Luaan Za każdym razem, gdy pojawia się Humble Indie Bundle, u dołu strony znajdują się statystyki, w tym łączna i średnia kwota pieniędzy wniesionych na system operacyjny. Pozostają dość spójne w każdym pakiecie.
stommestack
14

Inne odpowiedzi tutaj są dobre, ale tutaj jest jedna, o której nie wspomniano.

Mam teraz ten problem - mój zespół zamierza wydać grę stworzoną w Unity na Windows / Mac. Otrzymaliśmy wiele pytań, dlaczego nasza gra nie jest na urządzeniach mobilnych. Istnieją 2 główne odpowiedzi:

1) Telefony po prostu nie są wystarczająco mocne, aby nadążyć za grą. Być może możemy zmniejszyć wierność sztuki (mniej wielokątów w modelach, mniej pikseli w teksturach itp.), Ale to idzie tak daleko. Większość gier musiałaby zostać przepisana, aby była wystarczająco zoptymalizowana, aby telefon mógł ją uruchomić. Próbowaliśmy, ale dostaliśmy tylko około 0,5 klatki na sekundę. Oczywiście nie można grać.

2) Wejście. Cały interfejs użytkownika został zaprojektowany wokół myszy, a część gry zależy od tego, gdzie w danym momencie znajduje się mysz. Cały nasz mechanizm wprowadzania musiałby zostać przepisany, aby gra nadal działała, nie wiedząc, gdzie jest mysz, i tłumacząc różne akcje dotykowe na ekranie na działania myszy, aby uzyskać tę samą funkcjonalność. Podobnie jak wspomniany w odpowiedzi użytkownik 3797758, będzie to wymagało przepisania pewnych rzeczy, aby wejścia „mysz” i „dotyk” mogły być wprowadzone do tego samego systemu, a błąd w jednym nie wpłynie na drugi, i naprawę tego błędu również nie wpłynie na drugiego. Wymaga to więcej zasobów niż mój zespół ma w tej chwili do dyspozycji.

Wspomniany również w odpowiedzi użytkownika 3797758, nie mamy nawet obsługi Linuksa, ponieważ jeden z naszych pakietów ulega awarii na komputerach z systemem Linux, ale działa na systemach Windows / Mac. To, że silnik jest wieloplatformowy, nie oznacza, że ​​wszystko, co go używa.

Cody
źródło
1
Mój telefon bez problemu może grać w GTA Vice City. Wygląda na to, że silnik renderujący jest nieefektywny! :)
Wyścigi lekkości na orbicie
2
W każdym razie ta odpowiedź dotyczy bardziej przenoszenia gier na różne platformy / paradygmaty sprzętowe, a mniej systemów operacyjnych na PC
Lightness Races in Orbit
2
@LightnessRacesinOrbit no cóż, to Unity ... Naprawdę mamy jeden szczególny efekt, który jest kluczowy dla gry i naprawdę nieefektywny. Facet, który to napisał, zniknął, a my nie byliśmy w stanie znaleźć sposobu, aby to poprawić. Takie jest życie ...
Cody,
3
@JopV. Umm nie. Historia jest malutki nieco bardziej skomplikowana. Ale naprawdę nie ma sensu omawiać tego tutaj. Po prostu zauważę, że OpenGL jest API do renderowania 3D; DirectX jest znacznie szerszy. Jeśli chcesz zaangażować się w bezsensowną debatę, przynajmniej porównaj OpenGL z Direct3D :) OpenGL został zaprojektowany do profesjonalnej pracy 3D („otwieranie” zastrzeżonego IrisGL). Jaka inna platforma obsługiwała wówczas OpenGL? Nie było „utrudniania rozwoju wielu platform” - Windows miał natywną obsługę OpenGL. OpenGL nigdy nie był przeznaczony wyłącznie do profesjonalnej pracy na najwyższym poziomie.
Luaan,
2
gpus telefonu są znacznie mniej wydajne niż nawet grafika Intel, ponieważ mają ograniczenia termiczne i rozmiarowe. także wiele osób ma telefony, które nie obsługują OpenGL ES 3.0, więc tylko kilka osób będzie mogło korzystać z Twojej aplikacji, chyba że przerobisz grę na prymitywne OpenGL
ES