Tôi sử dụng Java để viết trò chơi và tôi đã sử dụng C ++ để viết trò chơi và thấy Java vẫn ổn miễn là bạn vẫn chú ý đến những điểm mạnh và điểm yếu của Java. Hai lợi thế lớn đối với tôi, lập trình trong Java là tốc độ phát triển và khả năng triển khai / tính di động. Thời gian biên dịch nhanh hơn nhiều so với trong VC ++ (chưa thể nói về XCode hoặc Clang), điều đó có nghĩa là tôi có thể giải quyết vấn đề nhanh hơn nhiều. Ngoài ra, vì Eclipse đang biên dịch liên tục, tôi ít mắc lỗi đánh máy hơn. Tôi chưa bao giờ viết một đoạn mã C ++ 'chỉ hoạt động' trên một hệ thống hoặc trình biên dịch khác. Trong Java, đây là chuẩn mực.
Mặt khác, Java có một số nhược điểm lớn. Hiệu quả thường được coi là một lý do không sử dụng Java nhưng tôi thấy rằng miễn là bạn viết mã theo một cách nhất định, Java có thể hoạt động khá tốt. Vấn đề là, cách chắc chắn mà bạn phải viết mã đi ngược lại với những gì nhiều người dân Java sẽ coi là thiết kế tốt.
Trái tim của Java là 'trình thu gom rác', đó là hệ thống quản lý bộ nhớ. Khi viết mã hiệu quả, bạn muốn tránh phân bổ động mọi khung trong bất kỳ ngôn ngữ nào và điều này đặc biệt đúng với Java. Nếu bạn tắt bộ thu gom rác do mới cẩu thả thì bạn có thể tạm biệt tốc độ khung hình mượt mà. Thứ hai (và khó chịu nhất) Java không hỗ trợ các kiểu dữ liệu người dùng hạng 1. Mọi kiểu dữ liệu người dùng trong Java về cơ bản được khởi tạo như một con trỏ tới một lớp, được phân bổ trên heap. Điều này thật tệ cho đồng thời bộ đệm mà bạn không thể có những thứ như một mảng các đối tượng Vector3 và có những thứ đó đồng thời trong bộ nhớ - bạn có thể có một mảng các con trỏ Vector3 nhưng hoàn toàn không giống nhau. Nói chung, bạn phải sử dụng offset thành các mảng lớn của các kiểu nguyên thủy thay thế.