Một trò chơi Python sẽ chạy trên nhiều nền tảng?


10

Tôi có kế hoạch viết một trò chơi bằng Python và có lẽ là một số SQL. Tôi lo lắng về việc chương trình của tôi sẽ linh hoạt như thế nào khi tôi hoàn thành nó, lý tưởng nhất là tôi muốn nó chạy trên Windows, Mac, Android và iPhone ... tuy nhiên tôi có cảm giác điện thoại sẽ bị giới hạn vì điều này loại điều Làm thế nào tôi có thể viết về một chương trình chạy trên nhiều nền tảng? Điều này thậm chí còn khả thi cho một lập trình viên mới bắt đầu?

Câu trả lời:


12

Bản thân Python khá dễ mang theo (chạy trên nhiều nền tảng), nhưng bạn phải tính đến những điều sau:

  • Những hạn chế của nền tảng bạn đang nhắm mục tiêu là gì? Bạn có muốn bán thông qua một cửa hàng điện thoại di động?

    Chẳng hạn, thị trường WP7 chỉ cho phép bán các ứng dụng được viết bằng mã được quản lý (.NET). AppStore cũng bị khóa và chỉ cho phép ứng dụng gốc được viết bằng Objective-C. Android cho phép chạy cả Java và mã gốc thông qua NDK. Mọi người đã phát triển các cách giải quyết để cho phép chạy JavaScript chẳng hạn trong các ứng dụng gốc trong iOS hoặc chuyển đổi ứng dụng Web sang ứng dụng gốc

  • Làm thế nào di động là các thư viện bạn muốn sử dụng?

    Đây là một ví dụ: Cocos2D là một thư viện Python có cổng Objective-C. Bạn có thể xây dựng trò chơi của mình bằng Python cho các nền tảng máy tính để bàn và viết lại nó trong Objective-C, giữ phần lớn cấu trúc nhờ vào thư viện. Nhưng sau đó, bạn chỉ có hỗ trợ cho máy tính để bàn + iOS.

Nhìn chung, Python không phù hợp với nền tảng di động, vì thiếu hỗ trợ. Dưới đây là ba lựa chọn khả thi:

  • XNA được tạo ra để tạo trò chơi cho Windows, Xbox 360 và Windows Phone 7. Có hai dự án ( MonoGame ExEn ) cho phép biến các trò chơi đó, gần như không sửa đổi, thành ứng dụng iOS (thông qua MonoTouch), ứng dụng Android (thông qua MonoDroid) ). MonoTouch và MonoDroid có chi phí giấy phép mặc dù.

  • Unity rất dễ mang theo và cho phép nhắm mục tiêu hầu hết tất cả các nền tảng (mặc dù chưa có hỗ trợ Linux )

    Nó miễn phí cho các trò chơi trên máy tính để bàn. Họ có phiên bản Pro nhưng đối với hầu hết các trò chơi, bạn có thể làm tốt mà không cần nó. Có một biểu đồ so sánh các phiên bản khác nhau cho mỗi nền tảng: http://unity3d.com/unity/licenses

  • Các ứng dụng web (được gọi là HTML5) với API Canvas 2D hoặc WebGL chạy trên các trình duyệt và điện thoại thông minh gần đây. Sự hỗ trợ sẽ chỉ trở nên tốt hơn theo thời gian. Có nhiều công cụ như ImpactJS hoặc Three.JS đã nói ở trên để tạo ra các công cụ 3D.


muốn thêm rằng Unity hỗ trợ 3 ngôn ngữ: C #, Javascript và Boo, cú pháp rất giống với Python
George Profenza

3

PyGame nói điều này trong trang Giới thiệu của họ :

Thật sự di động. Hỗ trợ Linux (pygame đi kèm với hầu hết các bản phân phối linux dòng chính), Windows (95, 98, ME, 2000, XP, Vista, Windows 64 bit, v.v.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX và QNX. Mã này chứa hỗ trợ cho AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS và OS / 2, nhưng những thứ này không được hỗ trợ chính thức. Bạn có thể sử dụng nó trên các thiết bị cầm tay, máy chơi game và máy tính One Laptop Per Child (OLPC).

Bản thân Python cực kỳ di động và đủ dễ dàng để chuyển sang các nền tảng mới (giả sử ai đó đã không làm điều đó cho bạn). Mọi thứ sẽ trở nên "thú vị" bất cứ khi nào bạn cần truy cập vào một số bit dành riêng cho nền tảng, đó là nơi PyGame có thể giúp bạn, nếu nó hỗ trợ các nền tảng bạn đang xem hoặc bạn có thể chuyển nó.

Một vấn đề liên quan đến bán là một số phương thức phân phối (cửa hàng ứng dụng) có thể không cho phép các ứng dụng có thể chạy mã bên thứ ba không xác định. Bạn sẽ phải khóa Python và các tập lệnh của nó để chúng không thể truy cập bất cứ thứ gì bên ngoài ứng dụng và có thể ngăn nó chạy các tập lệnh mà bạn không cung cấp như một phần của trò chơi.


1

Tôi không chắc chắn về Android, nhưng Python không thể chạy trên iPhone. Hiện tại các công cụ tốt nhất để triển khai một trò chơi trên Windows, Mac, Android và iPhone sẽ là sử dụng HTML5 hoặc Unity3D. Có một loạt các công cụ khác ít được biết đến hơn và do đó ít được chứng nhận hơn, như Ideaworks Gamestudio.

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.