Dlaczego nie ma więcej 64-bitowych plików wykonywalnych gier? [Zamknięte]

10

Do tej pory widziałem, że wiele gier jest nadal kompilowanych w architekturze 32-bitowej, chociaż prawie 50% obecnych użytkowników systemu Windows korzysta z 64-bitowego systemu operacyjnego? Dlaczego to?

Jeśli powodem jest powiększenie grona odbiorców (ponieważ aplikacja 32-bitowa może działać na 64), dlaczego nie stworzą jej dwóch wersji, ponieważ mniej więcej chodzi o rekompilację, a uruchamianie aplikacji 64-bitowych może zwiększyć wydajność ze względu na więcej dostępne rejestry procesora i inne funkcje.

uray
źródło
World of Warcraft właśnie zaczął dostarczać 64-bitowy plik wykonywalny i uważam, że gry Source (przynajmniej Valves) mają wersje 64-bitowe. Wygląda więc na to, że ludzie wskakują na modę.
Kyle

Odpowiedzi:

13

Ten blog MSDN o tym, dlaczego nie ma 64-bitowej wersji programu Visual Studio, rozwiązuje wiele problemów, które również wpływają na gry. Istotą tego jest to, że przejście do wersji 64-bitowej może w rzeczywistości obniżyć wydajność w wielu przypadkach z powodu wpływu na pamięć podręczną procesora (więcej danych z 64 bitami, ale pamięć podręczna tego samego rozmiaru).

Dodatkowa pamięć adresowalna może pomóc, ale niewiele komputerów konsumenckich i tak ma więcej niż 4 gigabajty pamięci. Dodaj to do bólu związanego z dystrybucją dwóch plików binarnych dla systemu Windows, a łatwo jest zdecydować, że nie jest to odpowiedni czas dla gier 64-bitowych (jeszcze).

kevin42
źródło
5
Myślę, że twój drugi akapit był prawdziwy 2 lata temu, ale nie dzisiaj.
Bart van Heukelom,
5

Podczas mojej poprzedniej pracy przenieśliśmy cały nasz silnik (MMO) do wersji 64-bitowej i ostatecznie uruchomiliśmy 64-bitowego klienta w kilku miejscach w ramach procesu programowania w celu wstępnego przetwarzania danych. Ale nigdy nie wysyłalibyśmy klienta 64-bitowego do użytkowników końcowych.

Po pierwsze, poprawa wydajności jest bardzo niewielka, a większość gier na komputery PC i tak jest ograniczona.

Po drugie, bardzo niewielu użytkowników końcowych ma wystarczającą ilość pamięci RAM, aby skorzystać z 64-bitowego pliku wykonywalnego, a żaden silnik, który jest nawet niejasno zaprojektowany dla konsol (które pamiętają maks. Przy 512 MB), nie zostanie zoptymalizowany pod kątem dużej dostępnej pamięci.

Wreszcie posiadanie 2 plików wykonywalnych w rurociągu dystrybucji jest ogromnym bólem w dupie. Nie możesz tylko wysłać 64-bitowego pliku wykonywalnego, ponieważ wtedy 30% odbiorców nie może go uruchomić. Musisz więc dostarczyć zarówno plik wykonywalny 64-bitowy, jak i 32-bitowy, a także jakieś opakowanie, które działa poprawnie. Jeśli jesteś grą online, oznacza to dodatkowy plik o wielkości wielu megabajtów do łatania przy każdej zmianie kodu oraz dodatkowe trudności w upewnieniu się, że odpowiednia wersja trafia do odpowiedniego odtwarzacza. Po prostu nie warto starać się o drobne korzyści.

Ben Zeigler
źródło
2

Gdyby to była tylko kwestia rekompilacji, mielibyśmy 64-bitową wersję wszystkich gier.

Niestety nie jest to takie łatwe, szczególnie w silnikach gier ze starszą bazą kodu.

Przeniesienie do wersji 64-bitowej wymagałoby w tym przypadku dużego wysiłku. Po prostu zalety na razie nie były wystarczające, aby było to warte.

NocturnDragon
źródło