Lập trình game và 3D trên iPhone

Tuesday, January 5, 2010 0 phản hồi

Gần đây tôi nhận được nhiều email của các bạn hứng thú với lập trình 3D/ game trên iPhone. Các bạn hỏi tôi khá nhiều câu hỏi rất thú vị - đặc biệt là về tài liệu và cách tiếp cận. Tôi sẽ cố gắng giải đáp thắc mắc của các bạn trong nội dung bài viết này.

Phân biệt 2 khái niệm: game engine và 3D engine

Về bản chất, đây là 2 khái niệm khác biệt. Tuy nhiên đôi lúc cũng có chút nhập nhằng.
3D engine: là những thư viện giả lập môi trường 3D trên máy tính. Trong đó đặc thù bao gồm:
+ Mô phỏng/định nghĩa các thực thể 3D.
+ Ánh sáng, đổ bóng.
+ Phủ vật liệu.
+ Giả lập camera.
+ Hiện thực quá trình render ảnh từ môi trường 3D để thành kết quả cuối cùng và hiển thị lên màn hình.

Game engine: là những thư viện hỗ trợ cho quá trình lập trình game. Thông thường một game engine thường bao gồm:
+ 3D/2D engine hỗ trợ cho việc lập trình trên môi trường 3D hoặc 2D.
+ AI (Artificial Intelligence) engine: hỗ trợ cho việc lập trình các yếu tố liên quan đến AI trên game.
+ Physic engine: hỗ trợ việc giả lập các yếu tố vật lý trong môi trường game.
+ Tool hỗ trợ cho việc tạo ra/import các "vật liệu" sử dụng trong game. Ví dụ: tạo terrain (địa hình), tool convert hoặc import các file mô hình, ...

Những thư viện lập trình game/3D trên iPhone

Các bạn có thể tham khảo bài viết này (liệt kê tương đối đầy đủ):
http://www.neverreadpassively.com/2009/03/review-of-iphone-3d-engines.html

Tôi muốn trở thành một expert về lập trình game (đặc biệt là trên iPhone). Cần tiếp cận như thế nào?

Tôi sẽ không trả lời câu hỏi này một cách trực tiếp vì nó khá nhiều cho phạm vi một bài viết. Tuy nhiên, tôi sẽ gợi một số câu hỏi để các bạn tự tìm lời giải đáp.

1. Những kiến thức nào một lập trình viên game cần trang bị? Những vấn đề nào được gọi là nan giải về kĩ thuật trong việc lập trình game?
2. Ngành công nghiệp game của thế giới đang phát triển như thế nào? Quy trình làm một game ra sao (từ ý tưởng đến hiện thực)? Có những role nào trong một game project?
3. Phân tích xu hướng hiện tại và tương lai của thị trường game (và game trên iPhone)?
4. Vòng đời của một sản phẩm game?
5. Các mô hình mà những nhà phát triển game đang tiến hành để thu lợi nhuận?
6. Phân chia các thể loại game và những đặc trưng kĩ thuật/ý tưởng liên quan?
7. Lập trình game trên iPhone có gì khác biệt so với các môi trường khác?
8. Các engine và công cụ nào hỗ trợ lập trình game (nói chung) và trên iPhone (nói riêng)

Tôi muốn trở thành một expert về lập trình 3D trên iPhone. Cần tiếp cận như thế nào?

Tương tự, tôi cũng sẽ đặt một vài câu hỏi để các bạn tự tìm lời giải cho mình.
1. Lập trình 3D (nói chưng) và trên iPhone (nói riêng) được ứng dụng như thế nào?
2. Những kiến thức nào về lập trình 3D cần được chuẩn bị?
3. Những điểm khó khăn/ thuận lợi trong việc lập trình 3D trên iPhone?

Tài liệu tham khảo

Tôi liệt kê một vài quyển sách được gọi là khá hay cho lập trình 3D/game (nói chung) và cả trên iPhone. Các bạn có thể tìm thấy những quyển sách này trên trang: http://gigapedia.com/ (cần đăng kí thành viên trước khi search)

+ AI for Game Developers
+ AI game wisdom
+ 3D Math Primer for Graphics and Game development
+ Game creation and career
+ Game Development and Production
+ Physic for game programmer.
+ iPhone game project
+ Unity Game Development Essentials

Thân.