Là một nhà phát triển trò chơi Android, tôi cần lưu ý điều gì khi phát triển trò chơi của mình nếu tôi muốn đa nền tảng trò chơi cho iPhone? Bất kỳ chiến lược, mẹo, vv về việc chuyển sang cả hai nền tảng di động này?
Là một nhà phát triển trò chơi Android, tôi cần lưu ý điều gì khi phát triển trò chơi của mình nếu tôi muốn đa nền tảng trò chơi cho iPhone? Bất kỳ chiến lược, mẹo, vv về việc chuyển sang cả hai nền tảng di động này?
Câu trả lời:
Viết nó bằng C / C ++ - đây là điều lớn nhất bạn có thể làm. Cả hai nền tảng đều hỗ trợ C và C ++, mặc dù theo những cách khác nhau. Trên Android, bạn sẽ sử dụng NDK. Trên iPhone, nó có thể được biên dịch cùng với mã Objective-C.
Bạn sẽ cần đầu tư một chút thời gian để xây dựng giàn giáo xung quanh mã C / C ++ của mình cho mỗi nền tảng. Bạn sẽ có thể khá chung chung trong lĩnh vực này, vì nó thực sự chỉ là kết nối chức năng cụ thể của hệ điều hành vào mã trò chơi của bạn. Đừng bỏ qua khu vực này trừ khi bạn chỉ dự định thực hiện một dự án đa nền tảng hoặc bạn không ngại phát minh lại bánh xe cho mỗi dự án bạn làm.
Sử dụng OpenGL ES - cả hai nền tảng đều có hỗ trợ OpenGL ES. Tận dụng lợi thế của nó. Điều này sẽ giảm thiểu số lượng mã mà bạn cần viết lại. Bạn vẫn sẽ có một số khác biệt trên mỗi nền tảng, nhưng nhìn chung hầu hết mã của bạn sẽ hoạt động trên cả hai.
Tránh các API cụ thể về nền tảng / ngôn ngữ - điều này không cần phải nói, nhưng thật dễ dàng để bị cuốn hút vào việc sử dụng các lớp bộ sưu tập Java trong khi bạn đang làm việc trong Java. Tất nhiên, nếu bạn tuân theo quy tắc đầu tiên ở trên, bạn sẽ không làm được gì nhiều trong Java. Điều tương tự cũng diễn ra theo cách ngược lại - cũng đẹp như các lớp Foundation trong iOS, nếu bạn muốn chuyển sang nền tảng khác, hãy tránh chúng.
Như bạn có thể thấy, có rất nhiều điều phải lo lắng bằng cách đi đa nền tảng. Nếu bạn là một nhà phát triển độc lập nhỏ, nó thậm chí có thể không xứng đáng với thời gian của bạn. Bạn sẽ phải đánh giá nếu bạn thực sự muốn đốt cháy dấu vết của riêng mình để bạn có thể nhắm mục tiêu nhiều nền tảng. Có thể đáng để tận dụng những gì mỗi nền tảng cung cấp để có chu kỳ phát triển nhanh hơn.
Chúc may mắn!
Đó sẽ là một quá trình đau đớn phần lớn từ Java> Objective-C.
Data Driven
Xây dựng một trò chơi chủ yếu dựa trên dữ liệu. Tôi nghĩ rằng điều này nói cho chính nó, nhưng hướng này dẫn đến công việc ít hơn bạn phải thực hiện lại hoàn toàn.
Cao và chặt chẽ
Giữ mọi thứ rất nhỏ và mô đun hóa. Tôi nói điều này bởi vì nó sẽ dễ dàng hơn nhiều nếu bạn có thể dễ dàng lấy một thành phần và thực hiện nó, kiểm tra và lặp lại.
Hợp đồng làm việc
Chơi thẻ của bạn ngay và bạn có thể biết ai đó có thể chăm sóc việc này cho bạn. Nếu bạn là bạn thân nhất với nhà phát triển iPhone, bạn có thể mua cho anh ấy / cô ấy một vài dr. hạt tiêu để giúp di chuyển mã của bạn hơn.
Sử dụng Công cụ đa nền tảng
Nếu bạn đã có một dự án đang chuyển động thì nó không có ý nghĩa gì nhiều. Nhưng nếu bạn chuẩn bị thực hiện một dự án, mà bạn hoàn toàn biết sẽ được chuyển sang các nền tảng khác, thì có thể đáng để tận dụng công nghệ hiện có để giúp gắn kết thế giới của bạn. Unity3D sẽ nhận được hỗ trợ Android với Unity 3.0.
Chuyển đổi / shudder / Công cụ
Và khuyến nghị ít yêu thích nhất của tôi là bạn có thể sử dụng một số loại công cụ chuyển đổi để ít nhất nhận được các mô hình của bạn được chuyển đổi từ Java> C ... Nhưng ... Tôi không tán thành điều đó.
Nếu bạn đang nghĩ đến việc chuyển sang iPhone và trò chơi của bạn vẫn đang được phát triển, thì hãy chuyển sang C ++ nếu bạn chưa có. Nó sẽ làm cho mã của bạn di động hơn đáng kể khi thời gian đến.
Sẽ thêm hai xu của tôi vào chủ đề này - xem xét việc viết trò chơi của bạn bằng ngôn ngữ đa nền tảng như nhiều người khác đã nói ở đây ... nhưng hãy xem xét C #! Đó là một ngôn ngữ mạnh mẽ được quản lý và cung cấp rất nhiều tính năng tuyệt vời mà C ++ không thể hỗ trợ trong việc phát triển trò chơi - và một thư viện tuyệt vời có tên là MonoGame tồn tại cho nó giống với XNA chạy trên tất cả các loại nền tảng. Kể từ phiên bản 3.0, tại thời điểm viết bài này, có thể dễ dàng viết các trò chơi và cổng đầy đủ cho tất cả các nền tảng di động một cách dễ dàng.