เกม Python ทำงานบนหลายแพลตฟอร์มหรือไม่


10

ฉันมีแผนที่จะเขียนเกมใน Python และอาจเป็น SQL ฉันกังวลเกี่ยวกับความหลากหลายของโปรแกรมเมื่อฉันทำเสร็จฉันต้องการให้มันทำงานบน Windows, Mac, Android และ iPhone ... แต่ฉันมีความรู้สึกว่าโทรศัพท์จะถูก จำกัด เรียงลำดับของสิ่งต่าง ๆ ฉันจะเขียนโปรแกรมที่ทำงานบนหลายแพลตฟอร์มได้อย่างไร สิ่งนี้เป็นไปได้สำหรับโปรแกรมเมอร์มือใหม่หรือไม่?

คำตอบ:


12

Python เป็นอุปกรณ์พกพาที่ค่อนข้างสวย (ทำงานบนหลาย ๆ แพลตฟอร์ม) แต่คุณต้องคำนึงถึงสิ่งต่อไปนี้:

  • แพลตฟอร์มที่คุณกำหนดเป้าหมายมีข้อ จำกัด อะไรบ้าง คุณต้องการขายผ่านร้านมือถือหรือไม่?

    ตัวอย่างเช่นตลาด WP7 อนุญาตให้ขายแอปที่เขียนด้วยรหัสที่มีการจัดการ (.NET) เท่านั้น AppStore นั้นถูกล็อคไว้เช่นกันและอนุญาตเฉพาะแอปพลิเคชันดั้งเดิมที่เขียนใน Objective-C เท่านั้น Android อนุญาตให้รันทั้ง Java และเนทีฟโค้ดผ่าน NDK ผู้คนได้พัฒนาวิธีการแก้ปัญหาเพื่ออนุญาตให้ใช้งานเช่นJavaScript ในแอพพื้นฐานใน iOSหรือการแปลงเว็บแอปเป็นแอพพื้นฐาน

  • ห้องสมุดที่คุณต้องการใช้แบบพกพาเป็นอย่างไร

    นี่คือตัวอย่าง: Cocos2Dเป็นห้องสมุด Python ที่มีพอร์ต Objective-C คุณสามารถสร้างเกมของคุณใน Python สำหรับแพลตฟอร์มเดสก์ท็อปและเขียนมันใหม่ใน Objective-C ทำให้โครงสร้างส่วนใหญ่ต้องขอบคุณห้องสมุด แต่คุณจะรองรับเดสก์ท็อป + iOS เท่านั้น

โดยรวมแล้ว Python ไม่เหมาะสำหรับแพลตฟอร์มมือถือเพราะขาดการสนับสนุน นี่คือสามทางเลือกที่ใช้การได้:

  • XNAถูกสร้างขึ้นเพื่อสร้างเกมสำหรับ Windows, Xbox 360 และ Windows Phone 7 มีสองโครงการ ( MonoGameและ ExEn ) ที่อนุญาตให้เปิดเกมเหล่านั้นโดยแทบจะไม่มีการดัดแปลงใด ๆ ให้เป็นแอพ iOS (ผ่าน MonoTouch), Android apps (ผ่าน MonoDroid ) MonoTouch และ MonoDroid มีค่าใช้จ่ายใบอนุญาตแม้ว่า

  • Unityเป็นอุปกรณ์พกพามากและอนุญาตให้กำหนดเป้าหมายได้เกือบทุกแพลตฟอร์ม (แม้ว่าจะยังไม่มีการสนับสนุน Linux )

    ฟรีสำหรับเกมบนเดสก์ท็อป พวกเขามีรุ่น Pro แต่สำหรับเกมส่วนใหญ่คุณสามารถทำได้ดีหากไม่มี มีแผนภูมิเปรียบเทียบรุ่นต่างๆสำหรับแต่ละแพลตฟอร์ม: http://unity3d.com/unity/licenses

  • เว็บแอปพลิเคชัน (เรียกว่า HTML5) ด้วย Canvas 2D API หรือ WebGL ทำงานบนเบราว์เซอร์และสมาร์ทโฟนรุ่นล่าสุด การสนับสนุนจะดีขึ้นเมื่อเวลาผ่านไป มีเครื่องมือมากมายเช่น ImpactJS หรือ Three.JS ที่กล่าวมาสำหรับการทำสิ่งต่างๆ


ต้องการเพิ่มว่า Unity รองรับ 3 ภาษา: C #, Javascript และ Boo ซึ่งคล้ายกันมากในไวยากรณ์ของ Python
George Profenza

3

PyGameกล่าวสิ่งนี้ในหน้าเกี่ยวกับ :

พกพาได้อย่างแท้จริง รองรับ Linux (pygame มาพร้อมกับการกระจายส่วนใหญ่ของ linux stream), Windows (95, 98, ME, 2000, XP, Vista, 64- บิต Windows ฯลฯ ), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX และ QNX รหัสประกอบด้วยการรองรับ AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS และ OS / 2 แต่ไม่รองรับอย่างเป็นทางการ คุณสามารถใช้กับอุปกรณ์มือถือเครื่องเล่นเกมและคอมพิวเตอร์ One Laptop Per Child (OLPC)

Python นั้นพกพาได้สะดวกมากและง่ายพอที่จะย้ายไปยังแพลตฟอร์มใหม่ (สมมติว่ามีคนไม่ได้ทำเพื่อคุณ) สิ่งต่างๆจะได้รับ "น่าสนใจ" เมื่อใดก็ตามที่คุณต้องการเข้าถึงบิตเฉพาะแพลตฟอร์มซึ่งเป็นที่ที่ PyGame สามารถช่วยคุณได้หากรองรับแพลตฟอร์มที่คุณกำลังดูหรือคุณสามารถพอร์ตได้

ปัญหากึ่งเกี่ยวข้องคือวิธีการแจกจ่ายบางอย่าง (ร้านค้าแอป) อาจไม่อนุญาตให้แอปพลิเคชันที่สามารถเรียกใช้รหัสบุคคลที่สามที่ไม่รู้จัก คุณจะต้องล็อค Python และสคริปต์ของมันลงเพื่อให้พวกเขาไม่สามารถเข้าถึงสิ่งใด ๆ นอกเหนือจากแอปพลิเคชันและอาจป้องกันไม่ให้เรียกใช้สคริปต์ที่คุณไม่ได้ให้ไว้เป็นส่วนหนึ่งของเกม


1

ฉันไม่แน่ใจเกี่ยวกับ Android แต่ Python ไม่สามารถทำงานบน iPhone ปัจจุบันเครื่องมือที่ดีที่สุดสำหรับการปรับใช้เกมบน Windows, Mac, Android และ iPhone คือการใช้ HTML5 หรือ Unity3D มีเครืองมืออื่น ๆ ที่ไม่ค่อยรู้จักและไม่ค่อยมีใครรู้จักเช่น Ideaworks Gamestudio

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.