2012-02-16 28 views
6

Tôi rất thú vị khi bắt đầu phát triển trò chơi. Tôi hiện đã làm một số OpenGL trong C + +, nhưng bây giờ tôi đang tìm các tùy chọn cung cấp Android, và tôi đã tìm thấy những người phát triển trò chơi của mình bằng cách sử dụng mã nguồn gốc (C++) và những người khác sử dụng Java ...C++ và Java trong Android

Vì vậy, tôi không thực sự biết đó là sự khác biệt chính. Tôi đọc rằng nhiều người có kinh nghiệm sử dụng C++ và thích cái này để không phải học những điều mới bằng cách sử dụng java ... nhưng tôi không nghĩ đây là lý do chính.

Sự khác biệt chính khi phát triển trò chơi bằng C++ hoặc Java là gì? Perfomance? Khả năng mở rộng? Tích cực?

Ngoài ra, bạn có đề xuất bắt đầu phát triển trò chơi bằng OpenGL không?

+1

Cân nhắc sử dụng 'Renderscript' http: //android-developers.blogspot.com/2011/02/introducing-renderscript.html –

+2

Chỉ để đảm bảo bạn hiểu sự khác biệt - Android sử dụng OpenGL ES, phiên bản rút gọn của OpenGL. –

+0

Giải thích rất chi tiết về NDK của Android bởi Nhà phát triển Android của Google trong video này http://www.youtube.com/watch?v=5yorhsSPFG4. – SMeyers

Trả lời

7

Tôi khuyên bạn nên sử dụng ngôn ngữ nào bạn cảm thấy thoải mái hơn. Một trò chơi không bao giờ là một dự án nhỏ, và vì bạn mới làm quen với quy trình (đánh giá bởi câu hỏi này), bạn có lẽ sẽ không quan tâm đến bất kỳ sự khác biệt về hiệu năng hay bất cứ thứ gì như thế.

Để trả lời câu hỏi của bạn:

Performance

thấy C++ vs Java Performance, Android: Java, C or C++? vv

khả năng

Không có gì là kế thừa mà C++ có thể làm và Java có thể' t, hoặc ngược lại khi nói đến mục tiêu của bạn.

Khả năng mở rộng

Không chắc chắn những gì bạn đang yêu cầu với điều mới.

+0

Cảm ơn câu trả lời. Sau đó, nếu cả hai đều có cùng khả năng, tại sao mọi người chọn một hoặc khác? Chỉ vì họ biết nhiều hơn về một người cụ thể?Tôi mới bắt đầu phát triển trò chơi nhưng tôi muốn bắt đầu với các tùy chọn tốt nhất, ngay cả khi nó khó hơn. Cảm ơn một lần nữa – Frion3L

+0

Khá nhiều. Nếu điều đó tùy thuộc vào tôi, tôi sẽ làm C++ vì đó là ngôn ngữ đầu tiên và ưa thích của tôi. Thêm vào đó, tôi đã biết OpenGL bằng cách sử dụng native C++ và không cần phải bận tâm với các trình bao bọc Java. Bạn không chắc chắn nó như thế nào trên các thiết bị di động, nhưng hầu hết các engine game nổi bật, và các API liên quan, để sử dụng PC đều có trong C++ cũng dễ dàng hơn (xem bất kỳ game AAA nào. Tôi gần như đảm bảo nó là C++, PC hoặc Console). Mặc dù điều này có thể khác trên thiết bị di động. Mặt khác, một số nhà phát triển có thể chỉ sử dụng Java (hoặc nghĩ rằng nó là 'sạch hơn' hoặc 'dễ dàng hơn', cả hai đều chủ quan) và sử dụng nó. – ssell

5

C++ có thể hoạt động tốt hơn so với Java (không tin những người dùng ngày hôm nay, làm điểm chuẩn của riêng bạn), nhưng có nhiều hỗ trợ hơn cho Java trên Android. Cuối cùng, nó phụ thuộc vào mức độ ứng dụng của bạn sẽ tăng lên và lượng pin sẽ tiêu hao. Nếu nó là cực kỳ chuyên sâu, đi với C + + bởi vì bạn có thể làm nhiều hơn với ít hơn. Nếu nó không quan trọng, sau đó đi với Java.

0

ở cuối nó không quan trọng nếu bạn sử dụng C++ bạn sẽ cần phải tìm hiểu tất cả các khuôn khổ được sử dụng để phát triển Android, nếu bạn sử dụng java, bạn sẽ tìm hiểu java và OpenGL là như nhau trong tất cả các ngôn ngữ để chỉ cần đi với C++ nếu bạn là nhà phát triển C++

Ngoài ra, bạn có đề xuất bắt đầu phát triển trò chơi bằng OpenGL không?

bạn không nên bắt đầu với OpenGL không mà bạn có thể không nhưng tôi sẽ điều SAGEST như SFML phù thủy sẽ dạy cho bạn rất nhiều về đồ họa lập trình thì bạn có thể chuyển sang OpenGL

+0

Tại sao bạn đề xuất không bắt đầu với OpenGL? –

+0

Bởi vì nó là khó khăn (nói về OpenGL 3+) cho chương trình tringle đầu tiên của bạn, bạn cần phải tìm hiểu về shaders nên về cơ bản bạn cần học rất nhiều trước khi bạn bắt đầu lập trình với OpenGL đó là lý do tại sao tôi thích SFML nó sẽ công nghệ cho bạn tất cả các khái niệm về lập trình đồ họa thì OpenGL không có vẻ khó khăn như vậy, tôi đã không bắt đầu với nó và tôi không biết ai đó đã làm nếu bạn muốn nói chuyện với các lập trình viên đồ họa chuyên nghiệp rồi ghé qua trò chuyện SFML hỏi họ https: //chat.sfml- dev.org/ –

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/16785828) –