Я використовую Java для написання ігор, і я використовував C ++ для написання ігор. Я вважав, що Java є чудовою, якщо ви пам'ятаєте, які сильні та слабкі сторони Java. Великі дві переваги для мене, програмування на Java - це швидкість розробки та розгортання / портативність. Часи компіляції набагато швидше, ніж у VC ++ (поки не можу говорити за XCode або Clang), що означає, що я можу виправити проблеми набагато швидше. Крім того, оскільки Eclipse постійно збирається, я роблю менше помилок типу помилок. Я ніколи не писав фрагмента коду C ++, який просто працює в іншій системі чи компіляторі. У Java це норма.
З іншого боку, у Java є кілька основних зворотних моментів. Ефективність часто вважається причиною не використовувати Java, але я виявив, що якщо ви певним чином кодуєте, Java може працювати досить добре. Проблема полягає в тому, що певний спосіб, який ви повинні кодувати, суперечить тому, що багато яваківських людей вважають гарним дизайном.
В основі Java - «збирач сміття», це система управління пам’яттю. Коли ви пишете ефективний код, ви хочете уникати динамічного розподілу кожного кадру будь-якою мовою, і це особливо стосується Java. Якщо ви вимкнете колектор для сміття через неохайний new'ing, ви можете поцілувати плавні кадри до побачення. По-друге (і найприємніше) Java не підтримує типи даних користувачів першого класу. Кожен тип даних користувача в Java інстанціюється по суті як вказівник на клас, виділений на купі. Це жахливо для одночасності кешу, що ви не можете мати такі речі, як масив об’єктів Vector3 і мати ці паралельні пам’яті - ви можете мати масив покажчиків Vector3, але це зовсім не те саме. Як правило, ви повинні використовувати зсуви у великих масивах примітивних типів.