Làm cách nào để bắt đầu tạo trò chơi Android? [đóng cửa]


112

Tôi mới phát triển trò chơi. Tôi quan tâm đến việc phát triển các trò chơi 2D cho nền tảng Android. Nơi tốt nhất để bắt đầu (nghĩa là) Những điều cơ bản và cách tiến hành là gì? Tôi đã có kinh nghiệm lập trình trong Java nhưng không có bất kỳ kinh nghiệm nào về đồ họa hoặc hoạt hình.


Vui lòng làm cho câu hỏi của bạn (tiêu đề) mô tả nhiều hơn một chút.
Ricket

1
Bạn có kinh nghiệm với Android không?
Jesse Dorsey

3
@Ricket hoặc chúng tôi có thể làm điều đó cho anh ấy :)
Andrew Russell

Tôi tò mò về việc liệu OpenGL, trong khi nhanh hơn, tiêu hao nhiều pin hơn so với 2D thông thường bằng cách sử dụng chế độ xem bề mặt hoặc bất kỳ phương pháp nào khác. Có ai biết một câu trả lời?
kelmer

Bạn sẽ phải chọn một công cụ trò chơi và một ý tưởng trò chơi để làm bẩn tay bạn. AndEngine dường như rất phù hợp với các trò chơi 2D và Flappy Bird là 'Hello World' mới trong phát triển trò chơi. Kiểm tra hướng dẫn này trên Flappy Bird trong Android bằng AndEngine . Chúc mừng!
appsroxcom

Câu trả lời:


82

Android có thể không phải là lựa chọn tốt nhất để bắt đầu phát triển trò chơi vì bạn sẽ học nhiều thứ khác nhau cùng một lúc (SDK Android, tạo trò chơi, tối ưu hóa, các kiểu điện thoại khác nhau, v.v.). Cân nhắc việc tạo một số trò chơi Java đơn giản trên máy tính của bạn để làm quen với việc tạo các trò chơi nói chung; Hướng dẫn này có vẻ là một nơi tốt để bắt đầu.

Khi bạn cảm thấy thoải mái với cả Java và phát triển trò chơi, hãy bắt đầu với các hướng dẫn của Android . Hướng dẫn phát triển rất hữu ích, đặc biệt bạn cần biết các nguyên tắc cơ bản và vòng đời hoạt động của Android , cũng như đồ họa . Lấy các mẫu Android và kiểm tra các mẫu trò chơi Lunar Lander và Snake (cũng có JetBoy , nhưng đó là tập trung vào JetPlayer).

Lớp canvas thực sự đủ tốt cho hầu hết các trò chơi 2D, nhưng nếu bạn cần hiệu suất tốt hơn hoặc muốn chuyển sang đồ họa 3D sau này, bạn sẽ phải học OpenGL ES . Tuy nhiên, điều này nằm ngoài phạm vi bắt đầu (trừ khi bạn đã biết OpenGL).


Chính xác những gì tôi đang tìm kiếm. Thanx @Firas Assaad
Ragunath Jawahar

Một tài nguyên tốt khác là cuốn sách Hello, Android khám phá việc tạo ra một trò chơi Sudoku qua nhiều chương, bao gồm vẽ bằng cách sử dụng canvas và xử lý dữ liệu nhập của người dùng. Ngoài ra còn có một chương về đồ họa 3D xây dựng một khối xoay kết cấu.
Firas Assaad

Tôi vừa chuyển từ BlackBerry sang nhà phát triển trò chơi Android và tôi muốn ném mũ vào Firas: lớp Canvas cung cấp hiệu suất quá đủ cho trò chơi 2D. Không cần thêm độ phức tạp thêm của OpenGL khi bạn bắt đầu.
ADB

Tôi đồng ý với câu trả lời này, nhưng Android không phải là nơi tồi tệ hơn để bắt đầu! Dự án lập trình đầu tiên của tôi là một người xem truyện tranh. Sau đó, tôi đã tạo ra một trò chơi giải đố và bây giờ tôi đang tạo một trò chơi 2D với đồ họa OpenGL ES 2.0. Tôi đã học được một bước ngoặt, nhưng trong 9 tháng qua, Android đã giúp tôi có được nền tảng tốt về Java, SQLite và OpenGL cùng với sự khởi đầu tuyệt vời với các khái niệm phát triển trò chơi và OOP. Tôi có thể đã làm điều tồi tệ hơn là học cách lập trình với Android.
Amplify91

66

18

Nếu bạn đã quen thuộc với Android và thực hiện các ứng dụng UI cơ bản với nó, thì bạn sẽ muốn xem hướng dẫn đa phần này giải thích việc vẽ đồ họa lên màn hình Android.


5
liên kết dường như bị phá vỡ - có lẽ trang web không còn tồn tại
Nasir

4

Tất cả những điều này thực sự là câu trả lời tốt. Nhưng tôi hơi ngạc nhiên khi chưa có ai nhắc đến jMonkeyEngine .

Java của nó, dựa trên shader, siêu dễ để bắt đầu, tài liệu rất tốt, cộng đồng tuyệt vời, sửa lỗi nhanh, đi kèm với môi trường phát triển trò chơi (jMP dựa trên nền tảng NetBeans) và phát triển rất nhanh.

Tôi sẽ nhấn mạnh nhiều hơn vào nó bởi vì, phát triển trò chơi và tạo một thư viện mà ai đó sẽ sử dụng để tạo ra một trò chơi khá khác biệt. Vì vậy, nếu bạn muốn làm cho một trò chơi không phải là một công cụ trò chơi, chỉ cần nhảy ngay vào jMonkey Engine với đôi mắt nhắm lại. :)


Tôi đã tìm kiếm nhanh trên google về jMonkeyEngine và Android. Tôi cho rằng khi Android sử dụng trình thông dịch Java của riêng mình thì jMonkeyEngine sẽ không hoạt động trên nó. Mặc dù đó vẫn là Java, nên có lẽ họ đã tạo ra một cổng. Trong mọi trường hợp, một phút nghiên cứu ngụ ý rằng đó là một công việc đang tiến triển.
xuincherguixe

jME hoạt động trên Android, có một số dự án trên cửa hàng. Tôi đề nghị bạn, đăng trong diễn đàn của họ cho các thông số kỹ thuật.
Quazi Irfan

3

Xử lý.org là một nơi tốt khác để bắt đầu cho việc phát triển / mã hóa (hơi đơn giản hóa) trước khi đi sâu vào SDK Android. Nó hoạt động trên Max / Windows / Linux và có phiên bản được phát triển riêng cho việc triển khai Android. Tôi thực sự khuyên bạn nên - miễn là bạn có điện thoại Android, bạn có thể triển khai các trò chơi / ứng dụng cho điện thoại mà bạn thực hiện với phiên bản Xử lý đó. Hy vọng nó giúp.


Bạn cũng có thể xuất bản lên thị trường Android kể từ phiên bản mới nhất, mặc dù tôi chưa thử.
gary

Tôi đã nghe nói rằng Xử lý có vấn đề về hiệu năng với Android, điều đó có đúng không?
Ragunath Jawahar

Tôi đã không thử đủ những thứ khác nhau để đưa ra câu trả lời đúng / sai được hỗ trợ tốt. Các chương trình của tôi dường như hoạt động tốt trên Android. Tôi muốn nói tìm kiếm trên web, diễn đàn xử lý tìm kiếm trên Android, v.v ... Hoặc chỉ cần dùng thử. ;)
gary

Ok, tôi sẽ kiểm tra xem @ com comtois
Ragunath Jawahar

2

Tôi cũng chưa quen với việc phát triển trò chơi Android và tôi thấy công cụ trò chơi mã nguồn mở AndEngine là một công cụ khá tốt để bắt đầu. Nó có một loạt các ví dụ và một cộng đồng khá tích cực.

http://www.andengine.org/


0

Tôi thực sự khuyên dùng Airplay SDK vì nó hoạt động trên windows và triển khai cho hầu hết các điện thoại thông minh. Họ cũng có một giấy phép Indie tuyệt vời.


Tôi là nhà phát triển Java, có vẻ như Airplay SDK là SDK C ++ / XCode?
Ragunath Jawahar

SDK Airplay là Marmalade SDK bây giờ. Nó có SDK riêng cho C ++, Lua, HTML5 và Objective C
noob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.