Світ розвитку ігор є кумедним: з одного боку, вони часто швидко сприймають нові ідеї, а з іншого - вони ще в кам'яному віці.
Правда, рідко виникає такий великий стимул для переходу на .NET / Java / що-небудь інше, ніж C / C ++.
Більшість ігрових компаній ліцензують частини ігрового двигуна від інших компаній. Ці частини написані на C ++, і хоча у вас може бути доступ до джерела, щоб ви могли його перенести, це вимагає великих зусиль (і, звичайно, ліцензія повинна це дозволити).
Також у C ++ вже існує багато застарілого коду. Якщо код з попередніх проектів можна повторно використовувати (скажімо, якщо ви пишете продовження), це вважає ще більше на користь дотримуватися тієї ж мови, а не переписувати її новою мовою (тим більше, що ви, ймовірно, повторно введіть тонна помилок, які вам потрібно буде витратити час на прасування.
Нарешті, рідко, коли ігри писатимуть на 100% C ++ - все-таки багато робиться за допомогою мов сценаріїв, будь то на замовлення або просто інтегруючи існуючі мови (Lua є однією з найпопулярніших в наші дні).
Що стосується вивезення сміття, то це може бути проблемою. Проблема не стільки в тому, що вона існує, скільки в тому, як вона працює - сміттєзбірник ОБОВ'ЯЗКОВО не блокує (або принаймні гарантує лише блокування дуже коротко), оскільки просто неприпустимо, щоб гра замерзла на 10 секунд, поки він сканує всю виділену пам'ять, щоб побачити, що можна звільнити. Я знаю, що у GC'ing, як правило, Java задихається, коли це майже не вистачає пам’яті (а для деяких ігор там буде).
Ви також трохи обмежені в тому, що можете робити: ви не можете повною мірою експлуатувати апаратне забезпечення через надмірні витрати часу. Уявіть, що Crysis написаний на Java ... навіть якщо це єдина видима різниця, вона просто не буде однаковою (я також впевнений, що вам потрібен Core i7 для її запуску.)
Це не означає, що ці мови не мають свого місця в розробці ігор - і ні, я не маю на увазі лише програмування інструментів. Для більшості ігор вам не потрібен додатковий біт продуктивності, який ви отримуєте від C ++, включаючи 3D-ігри, і якщо ви пишете все з нуля, це може мати ідеальний сенс використовувати щось на кшталт XNA - адже є хороший шанс буде.
Що стосується комерційних ігор - чи вважається RuneScape ? Це, можливо, є найбільш вдалою грою на Java.