2009-07-24 41 views
9

Được sử dụng để phát triển các ứng dụng kinh doanh và tham chiếu. Bây giờ tôi phải làm một trò chơi trên iPhone. Có gì mẹo bạn có thể chia sẻ để giúp tôi với:"gotchas" khi phát triển trò chơi trên iPhone là gì?

  1. hiểu phạm vi của dự án
  2. xác định các sản phẩm trung
  3. xác định chơi trò chơi và các thông số khác
  4. ước lượng nỗ lực phát triển
  5. thử nghiệm trò chơi

Một câu hỏi lớn, tôi biết. Cảm ơn!

+1

Quy trình đánh giá App Store –

+1

Nếu bạn đang yêu cầu gợi ý và mẹo, đây có phải là Wiki Cộng đồng không? – Xetius

Trả lời

2

Sự khác biệt chính giữa các ứng dụng và trò chơi kinh doanh, đặc biệt là trên thiết bị di động, là tầm quan trọng của hiệu suất. Một ứng dụng tạo một biểu mẫu và chờ người dùng nhập vào có thể không làm bất cứ điều gì trong thời gian chờ đợi. Một vòng lặp trò chơi, mặt khác là đi tất cả các thời gian và có thể làm rất nhiều. Lập trình viên kinh doanh không được sử dụng để suy nghĩ trong các điều khoản này, nhưng trò chơi rút ra năng lượng pin và, tin hay không, cách bạn thực hiện trò chơi của bạn sẽ có ảnh hưởng lớn đến tốc độ pin được rút ra.

Vì vậy, một câu hỏi là, trò chơi này mà bạn "phải" phát triển là gì? Nếu đó là sudoku, đừng lo. Nếu đó là trận chiến không gian 3D thời gian thực, đó là một câu chuyện khác.

Nếu ứng dụng doanh nghiệp của bạn có trên iPhone thì có thể bạn đã sử dụng 100% Objective-C. (Nếu bạn đang thực hiện các ứng dụng C# hoặc Java trên máy tính để bàn, thì hãy chào đón để quản lý bộ nhớ của chính bạn.) Có những người sẽ cho bạn biết rằng việc quản lý kiểu thời gian chạy của Objective-C quá chậm đối với các trò chơi phức tạp. Mọi người chắc chắn làm cho trò chơi OK sử dụng nó với Cocos2D và các công cụ khác, nhưng một lần nữa nó phụ thuộc vào trò chơi. Có những nhà phát triển chuyên nghiệp, những người sẽ chỉ làm việc với C++ hoặc thậm chí trực tiếp C.

36

Câu trả lời của tôi không tuân theo phản hồi phương pháp thác nước bạn đang tìm kiếm vì tôi nghĩ bạn sẽ cần phải học kỹ năng lập trình trò chơi trước khi bạn có thể lập kế hoạch, thiết kế, triển khai và thử nghiệm nó. Lập trình trò chơi là rất khác nhau để lập trình kinh doanh và một lĩnh vực khác trong và của chính nó.

Do thiếu kinh nghiệm trong các trò chơi lập trình, có một vài khái niệm mà bạn sẽ cần phải tìm hiểu trước khi bạn có thể lập trình thời gian trò chơi, hãy để một mình trên iPhone.

Một số trong những điều này sẽ phụ thuộc vào việc bạn đang lập trình một trò chơi 3D hay đi theo phong cách nền tảng 2D.

OpenGL ES Điều đầu tiên bạn cần tìm hiểu là OpenGL ES programming language. Về cơ bản, đây là một API 3D cho phép bạn vẽ bản gốc 3D. Bạn sẽ vẫn cần phải sử dụng điều này nếu bạn đang mã hóa một trò chơi 2D vì nó là nhanh chóng do sử dụng GPU để tăng tốc. Có một số hướng dẫn hay về Google mà bạn nên bắt đầu.

Vector Math Nếu bạn đang làm bất cứ điều gì 3D, bạn sẽ cần phải tìm hiểu về 3D vector toán, vectơ được về cơ bản sử dụng cho tất cả mọi thứ trong trò chơi, camera nhìn hướng, vị trí của các nhân vật, tốc độ, phát hiện va chạm, vv Các vectơ 2D (x, y) trừ đi thành phần z vẫn cần thiết cho lập trình trò chơi 2D.

Phát hiện va chạm Làm cách nào để biết khi nào quả bóng của tôi chạm vào tường? Câu trả lời là phát hiện va chạm. Có rất nhiều hình thức phát hiện va chạm như Sphere để Sphere, AABB, OOBB, Convex Hulls, Triangle Lưới vv

AI Làm thế nào để kẻ thù để tấn công nhân vật chơi của tôi không? Trí thông minh nhân tạo là một lĩnh vực lớn cần thiết để cung cấp cho NPC/Kẻ thù khả năng đưa ra quyết định thông minh. AI có thể đơn giản như các phát biểu khác nhưng thường yêu cầu các máy trạng thái hữu hạn hoặc logic mờ có hiệu quả.

Đường dẫn Nếu bạn muốn di chuyển một ký tự từ điểm A đến điểm B trong khi tránh kẻ thù và di chuyển chướng ngại vật, bạn sẽ cần sử dụng thuật toán đường dẫn. A Star (A *) là một trong những phổ biến nhất.

Scene Graph Nếu bạn muốn có 10-20 + kẻ thù trên màn hình cùng một lúc, bạn sẽ cần phải mã hóa một đồ thị trường để quản lý các bản vẽ năng động, logic và sáng tạo và xóa các tài nguyên. Nếu bạn không biết đa hình là gì, bạn sẽ cần phải biết nó vì nó là điều cần thiết cho các đối tượng trò chơi của bạn tuân thủ và nó liên kết với biểu đồ cảnh.

Vật lý Vị trí, tốc độ, gia tốc, trọng lực và Rays đều được biểu diễn bằng vectơ và bạn có thể cần phải đánh giá toán vật lý để mã hóa bất kỳ trò chơi nào. Bắt đầu với định luật chuyển động thứ hai của Newton F = MA (Force = Mass * Acceleration). Một công cụ vật lý mã nguồn mở như Bullet, ODE, Newton, Tokamak sẽ làm mọi thứ dễ dàng hơn, có nghĩa là bạn sẽ không cần tự viết các quy tắc vật lý này.

Mục tiêu-C++ Đây là tùy chọn mặc dù được khuyến nghị. Nếu bạn không biết C++ thì đây chính là một hỗn hợp của C++ và Objective-C. Tôi có xu hướng sử dụng C++ cho công cụ và lập trình trò chơi cốt lõi vì tốc độ của C++ và tính sẵn có của các thư viện của bên thứ ba trong C++.

Âm thanh Nếu bạn cần âm thanh, bạn có thể tiếp tục và sử dụng các khung âm thanh đơn giản mà Apple cung cấp, tuy nhiên âm thanh định vị 3D sẽ yêu cầu điều gì đó tốt hơn. Tôi khuyên bạn nên học FMOD SDK cho iPhone. Như @Stowelly đã đề cập, FMOD yêu cầu giấy phép phân phối thương mại nhưng có những người khác bạn có thể tìm kiếm miễn phí bản quyền.


Sử dụng một công cụ trò chơi Có game engine có sẵn cho iPhone tại thời điểm này sẽ làm cho nó dễ dàng hơn cho bạn để có được một trò chơi đi, trong trường hợp của bạn này sẽ nhanh hơn mặc dù bạn sẽ vẫn cần tìm hiểu các khái niệm tôi đã đề cập ở trên.

Dưới đây là một số công cụ trò chơi tôi biết:

Unity3D Đây có lẽ là một phổ biến nhất mà tôi biết. Unity là một công cụ trò chơi PC/Mac cho phép bạn viết mã trên Mac và biên dịch cho Windows/Linux/Mac OS X. Tôi nghi ngờ việc xây dựng iPhone tương thích trực tiếp với các nền tảng khác, tôi sẽ tưởng tượng bạn sẽ bị hạn chế sử dụng iPhone nếu bạn đã bắt đầu một dự án mới. Tuy nhiên, động cơ này có chi phí triển khai thương mại là $ 199- $ 399.

Cocos2D Đây là một công cụ trò chơi 2D nguồn mở có thể hữu ích cho nhiều trò chơi. Đáng xem xét. Được lưu trữ trên mã Google.

Dưới đây là một số người khác để kiểm tra:

Ston3D for iPhone

OOlong Engine

SIO2Engine

iTGB for 2D Games

+2

Câu trả lời hay. Không có lý do tại sao điều này đã được downvoted, mặc dù OP dường như không biết những gì họ muốn khác hơn là "một trò chơi iPhone" – Xetius

+0

một lời khuyên, nếu bạn có kế hoạch xuất bản trò chơi của bạn trên cửa hàng ứng dụng, SDK FMOD sẽ yêu cầu một giấy phép ..... nhưng tổng thể, thông tin tuyệt vời :) – Stowelly

+0

Bạn đề cập đến có Công cụ trò chơi có sẵn để phát triển iPhone, bạn có thể liệt kê một vài điều mà bạn biết hoặc đề xuất không? - cảm ơn. – Shrill

Các vấn đề liên quan