เป็นความคิดที่ดีหรือไม่ที่จะพัฒนาเกม 2d ที่ไม่น่าสนใจใน python? [ปิด]


10

ฉันวางแผนที่จะพัฒนาเกม RPG อวกาศ 2D และฉันกำลังเผชิญกับทางเลือก: ภาษาที่ดีที่สุดในการเขียนคืออะไร? ผู้สมัครของฉันคือ C ++, Java และ Python เห็นได้ชัดว่าฉันต้องการเขียนเกมใน Python เนื่องจากความรวดเร็วความเร็วในการพัฒนาและความเรียบง่ายในการเพิ่มการรองรับสคริปต์ แต่ฉันเป็นห่วง:

  • Python จะไม่ช้าเกินไปหรือ เกมดังกล่าวจะไม่สำคัญ (เช่น Tetris เป็นต้น) อาจจำเป็นต้องคำนวณงานสำหรับเรือรบหลายพันลำในจักรวาล (แม้ว่า AI ของพวกเขาจะง่ายขึ้นมากหากไม่เห็นเรือรบเหล่านั้นกับผู้เล่น) แน่นอนฉันสามารถเขียนบางส่วนที่สำคัญใน C แต่มันจะทำให้การสร้างและการปรับใช้ซับซ้อนขึ้นทันที
  • สมมติว่าเกมนั้นเป็นที่นิยมและฉันก็กลายเป็นซุปเปอร์สตาร์ ผู้ใช้ Windows ไม่ค่อยมี Python เลย (โชคดีที่เรามี py2exe) Python บน Mac OS X อาจล้าสมัยและเกมอาจมีข้อผิดพลาดที่ไม่ชัดเจน การปรับใช้เกมใน Python จะยากหรือไม่
  • เนื่องจากการไม่มีไลบรารีสำหรับ Python 3 ฉันจะต้องเขียนเกมใน Python 2 จะไม่เปลี่ยนไปใช้ Python 3 ในสองสามปีที่ผ่านมาจะเจ็บปวดและเสียเวลามากเกินไป?

สำหรับคำถามที่สองของคุณฉันค่อนข้างมั่นใจว่ามี py2app ที่คุณสามารถใช้เพื่อทำให้การปรับใช้ง่ายขึ้น
thedaian

1
หากคุณตัดสินใจที่จะทำสิ่งนี้ใน Python คุณอาจต้องการดูว่าคุณสามารถทำส่วนใดส่วนหนึ่ง "ช้า" โดยใช้ numpy (แต่อาจไม่จำเป็นต้องทำ)
เบรนแดนลอง

คำตอบ:


8

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

มันยากที่จะพูด แต่ส่วนใหญ่แล้วปัจจัย จำกัด สำหรับประสิทธิภาพคือความสามารถ / ประสบการณ์ในฐานะนักพัฒนาไม่ใช่ภาษา โปรดทราบว่า EVE ใช้ Stackless Python (ดูที่นี่และที่นี่เพื่อดาวน์โหลดงานนำเสนอที่เกี่ยวข้อง) ผมจำไม่ได้ว่ารายละเอียดที่แน่นอน แต่ที่เห็นได้ชัดที่สุดของเซิร์ฟเวอร์คลัสเตอร์ของพวกเขาจะทำงานหลาม ฉันจึงนึกภาพว่ามันสามารถรองรับความต้องการการปรับขยายของคุณได้แม้ว่าการสร้างต้นแบบเพื่อให้แน่ใจว่าจะดี

ผู้ใช้ Windows ไม่ค่อยมี Python เลย (โชคดีที่เรามี py2exe) Python บน Mac OS X อาจล้าสมัยและเกมอาจมีข้อผิดพลาดที่ไม่ชัดเจน การปรับใช้เกมใน Python จะยากหรือไม่

ผู้ใช้ส่วนใหญ่ไม่ค่อยมีการพึ่งพาไบนารีที่เหมาะสมสำหรับเกมโดยไม่คำนึงถึงว่าเกมเหล่านั้นเขียนด้วยเทคโนโลยีใด (แม้แต่ C ต้องมีการแจกจ่ายองค์ประกอบรันไทม์) การปรับใช้ผ่าน py2exe หรือเทียบเท่าหรือเพียงแค่ปรับใช้การพึ่งพาที่เหมาะสมเป็นสิ่งที่เกิดขึ้นจริงในชีวิต ในขณะที่มันไม่เคยเป็นสิ่งที่ง่ายที่สุด (เทคโนโลยีตัวติดตั้งส่วนใหญ่มีความเจ็บปวด) แต่ก็เป็นไปได้และไม่ควรมีเหตุผลในการหลีกเลี่ยงภาษาดังที่ฉันได้กล่าวไว้

เนื่องจากการไม่มีไลบรารีสำหรับ Python 3 ฉันจะต้องเขียนเกมใน Python 2 จะไม่เปลี่ยนไปใช้ Python 3 ในสองสามปีที่ผ่านมาจะเจ็บปวดและเสียเวลามากเกินไป?

เรื่องนี้ฉันไม่รู้อะไรมากนักไม่เคยใช้ Python 3 ฉันไม่คาดหวังว่า Python 2.X จะหายไปในไม่ช้าอย่างไรก็ตามฉันไม่สงสัยเลยว่าเกมของคุณจะเป็นเช่นไรกับคุณ 'd ความต้องการที่จะเปลี่ยนไปถ้าคุณไม่ต้องการที่จะทำให้บางสิ่งบางอย่างนี้ความกังวลของปัญหาที่ไม่ใช่

อย่างที่คนอื่นพูดคุณกังวลมากเกี่ยวกับการเลือกภาษาของโครงการ Python เป็นเครื่องมือที่ทรงพลังและมีประโยชน์สำหรับการพัฒนาเกมและถ้าคุณรู้และชอบมันคุณควรพัฒนาด้วย มันไม่สำคัญว่าเกมของคุณจะทำงานเร็วแค่ไหนถ้ามันไม่จบเพราะคุณกังวลเกี่ยวกับภาษามากเกินไป


การใช้งาน python 2.7 อย่างครอบคลุมนั้นมีอะไรที่คุณสามารถทำได้กับ python 3.2+ ที่คุณไม่สามารถทำได้ด้วย 2.7 สิ่งนี้จะเปลี่ยนแปลงตลอดเวลา แต่จะสนับสนุนห้องสมุดด้วย =)
Ken

14

ถึงจุดแรกคุณจะต้องสร้างต้นแบบและดู แม้ว่าคุณจะบอกรายละเอียดทั้งหมดกับเราว่าจะไม่เปลี่ยนแปลงอะไรเลย

สำหรับจุดสองจุดอื่น ๆ ฉันรู้สึกเหมือนคุณกำลังวางเกวียนหน้าม้า จากคำถามของคุณดูเหมือนว่าคุณยังใหม่ต่อการพัฒนาเกมซึ่งในกรณีนี้คุณเพียงแค่ต้องเลือกเครื่องมือและไปกับมัน การถกเถียงข้อดีและข้อเสียของเครื่องมือที่มีประโยชน์ส่วนใหญ่เท่ากันคือการเบี่ยงเบนความสนใจจากความท้าทายที่แท้จริงของคุณ: การเรียนรู้การพัฒนาเกม


0

ใหม่ # 3, Python 2.x จะเห็นการสนับสนุนผู้จัดจำหน่ายอย่างน้อยอีก 5-10 ปี หากคุณใช้รุ่นล่าสุดที่เป็นธรรม (2.7 หรืออาจเป็นไปได้ 2.6) เส้นทางการย้ายข้อมูลนั้นค่อนข้างง่ายหากคุณเขียนรหัสที่มีการพิสูจน์ในอนาคต (วัตถุสไตล์ใหม่ยูนิโค้ดทุกที่ ฯลฯ ) ความเจ็บปวดส่วนใหญ่มีไว้สำหรับสิ่งที่ต้องพึ่งพาพฤติกรรมเก่า ๆ ที่แตกหัก


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