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.
Odpowiedzi:
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).
źródło
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.
źródło
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.
źródło