Bạn có thể viết một công cụ trò chơi bằng thực tế bất kỳ ngôn ngữ nào bằng cách sử dụng thực tế bất kỳ phương pháp kết xuất nào. Bạn có thể viết một công cụ trò chơi trong bash bằng cách sử dụng đầu ra giao diện điều khiển chẳng hạn.
Vì vậy, tôi nghĩ sẽ tốt nhất khi xác định chính xác những gì bạn muốn học bằng cách viết công cụ của riêng bạn. Có rất nhiều "lĩnh vực" trong phát triển trò chơi.
vv .. Từ đó bạn thậm chí có thể có chủ đề phụ. Trong kết xuất / Đồ họa
2d hay 3d?
Làm người mẫu
Bóng
Thắp sáng
Hoạ tiết
GUI / Huds / Giao diện.
Vân vân
Chỉ cần một trong những chủ đề phụ đó có thể ăn hết nhiều giờ (hoặc nhiều năm!) Của nghiên cứu!
Vì vậy, trước tiên hãy xác định những gì bạn muốn học. Bắt đầu đơn giản.
Sử dụng bất kỳ ngôn ngữ nào bạn cảm thấy thoải mái - mặc dù một số ngôn ngữ phù hợp hơn cho một số nhiệm vụ nhất định. Ví dụ, công cụ cốt lõi và kết xuất có thể được thực hiện tốt nhất với ngôn ngữ cấp "thấp hơn" như C / C ++ (nếu bạn cần hiệu suất đó); nhưng một cái gì đó như AI hoặc Quy tắc trò chơi có thể được thực hiện tốt hơn bằng ngôn ngữ cấp cao hơn. Không có gì nói rằng bạn không thể trộn và kết hợp. Bạn có thể viết công cụ của mình bằng C ++, kết xuất của bạn bằng C (vì nó hoạt động tốt với OpenGL) và sau đó sử dụng LUA để viết kịch bản Quy tắc trò chơi của bạn, v.v.
Theo như ví dụ, có một công cụ trò chơi tên là Slick2D. Nó được viết bằng Java và là nguồn mở. Đây là một ví dụ về động cơ 2d đơn giản được viết và thiết kế thực sự tốt. Bạn có thể tìm hiểu các khái niệm cơ bản từ đó, như vòng lặp trò chơi, quản lý trạng thái trò chơi, v.v.
Nếu bạn cảm thấy thoải mái với C / C ++; Tôi sẽ đề nghị xem qua SDL / OpenGL. Nó xử lý một số công việc vệ sinh như đầu vào, âm thanh, tạo cửa sổ, vv và có thể tập trung vào những thứ khác.