วิธีที่ง่ายและสนุกที่สุดในการเขียนโปรแกรมเกม 2D? แฟลช? XNA? เครื่องยนต์อื่น ๆ [ปิด]


20

นี่คือโพสต์ที่มีรายละเอียดการค้นหาของฉันสำหรับวิธีที่สนุกที่สุดสำหรับโปรแกรมเมอร์เกม hobbyist เพื่อทำให้หวานเวลาว่างของเขาด้วยการทำเกม

ความต้องการของฉัน: ฉันดู Flash ก่อนฉันสร้างเกมเล็ก ๆ สองเกม แต่ฉันไม่แน่ใจในประสิทธิภาพ ฉันต้องการสร้างเกมกลยุทธ์ขนาดใหญ่พอสมควรโดยมีหลายร้อยยูนิตต่อสู้พร้อมกันมีการระเบิดและภาพเคลื่อนไหว แผนที่ซูมได้ ฉันเห็นว่า Adobe มี API 3 มิติใหม่สำหรับ Flash แต่ฉันไม่รู้ว่าจะปรับปรุงประสิทธิภาพการทำงานแบบ 2D ได้หรือไม่ฉันไม่พบสิ่งที่เกี่ยวข้องกับคำถามนั้นในช่วง MAX10 ของพวกเขา คุณจะบอกว่า Flash เป็นเทคโนโลยีที่ดีสำหรับการสร้างเกม 2D ขนาดใหญ่ได้อย่างง่ายดายหรือไม่? ฉันชอบ Actionscript และฉันชอบความเรียบง่ายทุกอย่างใน Flash มีเครื่องมือหลายอย่างที่ทำให้ง่ายยิ่งขึ้น

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

ฉันรู้ว่ากรอบ XNA ค่อนข้างดี แต่ไม่มีเอ็นจิ้นที่ดีสำหรับมันและมันจะทำงานบน Windows เท่านั้นซึ่งเป็นการปิดครั้งใหญ่ ยิ่งใหญ่กว่านั้นคือคุณต้องติดตั้ง XNA ที่แจกจ่ายซ้ำได้ในแต่ละครั้งที่คุณต้องการมอบเกมให้กับใครบางคน ถ้าฉันใช้ XNA ฉันจะต้องสร้างเครื่องมือทั้งหมดด้วยตัวเองและฉันอาจต้องใช้มันด้วย WPF (ฉันชอบสร้างเครื่องมือด้วย Adobe AIR แต่น่าเสียดายที่ API สำหรับการจัดการรูปภาพ ฯลฯ นั้นแย่กว่าใน Flash มากกว่าใน XNA / WPF) ตอนนี้ฉันรู้แล้วว่าฉันสามารถสร้างเครื่องมือของตัวเองที่ สนับสนุนแต่ละแพลตฟอร์มเหล่านั้น แต่ค่อนข้างตรงไปตรงมาซึ่งจะเป็นการทำงานผ่าน API มากเกินไป ท้ายที่สุดฉันต้องการสร้างเกมไม่ใช่เครื่องยนต์

ดังนั้นคำถามจะกลายเป็น: อาจมีแพลตฟอร์มข้าม (ฟรีหรือพัฒนาฟรีหรือไม่) มีเครื่องมือที่ฉันสามารถใช้สำหรับการพัฒนา 2D หรือไม่? ฉันชอบ: C #, Actionscript ฉันไม่รังเกียจที่จะใช้ c ++ ถ้าชุดเครื่องมือสูงกว่าค่าเฉลี่ย แต่ฉันสงสัยอย่างมากว่ามีบางอย่างที่นั่น โปรดพิสูจน์ว่าฉันผิด :) ดังนั้นสรุป: ฉันต้องการใช้ Flash แต่ฉันไม่รู้ว่ามันปรับขนาดได้ดีหรือไม่ ฉันไม่ใช่สแคปเตอร์ฉันต้องการ API ที่แท้จริงที่ฉันสามารถทำงานร่วมกับ IDE ที่เหมาะสมได้

สำหรับข้อมูลฉันดูทางเลือกต่าง ๆ ฉันจริง ๆ แล้วกำลังค้นหามานานแล้ว คุณช่วยฉันได้มากในการตัดสินใจในที่สุด

  • คุณสมบัติที่ชาญฉลาดเครื่องยนต์ Flatredball จะเหมาะ แต่ฉันลองใช้เครื่องมือของพวกเขาและค่อนข้างตรงไปตรงมาพวกเขาน่ากลัว ใช้ไม่ได้อย่างแน่นอนฉันต้องทำด้วยตัวเองอย่างแน่นอน ฉันไม่ได้ดู API ของพวกเขา แต่หากเครื่องมือของพวกเขาแย่มากฉันก็ไม่อยากดูต่อไป

  • Unity3D อันนี้ค่อนข้างดี แต่ฉันไม่ต้องการ 3Dและมันค่อนข้าง ... ต้องใช้เวลาเรียนรู้มาก ฉันไม่ชอบเลยว่ามันแพงเกินไปที่จะใช้กับแพลตฟอร์มที่ต่างกันและฉันสามารถเขียนโค้ดได้เฉพาะผ่านการเขียนสคริปต์ คุณต้องซื้อแต่ละแพลตฟอร์มแยกกัน การใช้งานโปรแกรมแก้ไขโดยเฉลี่ยแล้วผลิตภัณฑ์โดยรวมดีพอสำหรับจุดประสงค์ส่วนใหญ่ แต่การเรียนรู้ด้วยตัวเองนั้นจะเกินความจริง

  • พระอิศวร 3 มิติ มันดูดีพอ แต่อีกครั้ง: ฉันไม่ต้องการ 3D การใช้งานโปรแกรมแก้ไขนั้นแย่กว่า Unity3D เพียงเล็กน้อยในความคิดของฉันและมันก็ไม่ชัดเจนสำหรับฉันในการเริ่มเขียนโปรแกรม ฉันคิดว่ามันต้องใช้ C ++ สำหรับการเข้ารหัสดังนั้นจึงเป็นค่าลบเช่นกัน ฉันต้องการมีความสนุกสนานและ c # คือความสนุก;)

  • SDL ค่อนข้างตรงไปตรงมาฉันยังคงต้องพอร์ตกับการใช้งาน SDL ที่แตกต่างกันทั้งหมด และฉันไม่ชอบการเขียนโปรแกรมแบบ OpenGL มันน่าเกลียดธรรมดา และมันต้องการ c ++ ฉันรู้ว่าอาจมีบาง wrapper แต่ฉันไม่ชอบใช้ wrappers เพราะ ...

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

  • Ogre3D วิธีการทำงานมากเกินไปมันเป็นเพียงโปรแกรมกราฟิก ยังไม่มีการสนับสนุนหลายแพลตฟอร์มและ c ++

  • Torque2D มีค่าใช้จ่ายในการใช้และฉันไม่ได้ยินเรื่องดีๆมากมายเกี่ยวกับการสนับสนุนและเอกสารประกอบ นอกจากนี้ยังมีค่าใช้จ่ายเพิ่มเติมสำหรับแต่ละแพลตฟอร์ม


เครื่องมือ FRB SDK ไม่ดี (โดยเฉพาะกาวฉันไม่ได้ใช้) แต่ช่วยให้คุณประหยัดเวลาในการเขียนและรูปแบบไฟล์นั้นง่ายหากการเขียนเครื่องมือของคุณเองเป็นสิ่งที่จำเป็น API ไม่เลวและดูเหมือนว่าเหมาะสำหรับขอบเขตนี้ปัญหาที่ใหญ่ที่สุดในตอนนี้คือการขาดพอร์ต XNA 4.0 สำหรับพีซีและ Xbox นอกจากนี้ XNA redist และข้อกำหนดเบื้องต้นอื่น ๆ สามารถเป็นส่วนหนึ่งของการติดตั้ง - และการใช้ clickonce คุณสามารถมีการอัพเดตอัตโนมัติและการปรับใช้พร้อมใช้งานได้ทันที
Oskar Duveborn

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

ไม่ใช่คำตอบที่สมบูรณ์ แต่ Flash มีขนาดที่ดีกว่าที่คุณคิด หากคุณไปที่บิตแมปดาต้าดาต้าแทนการใช้สแต็กการแสดงผลและทำการปรับแต่งอย่างง่ายอื่น ๆ คุณสามารถบีบมันออกมาได้เยอะกว่าที่คิดด้วยวิธีไร้เดียงสามากกว่า
Gregory Avery-Weir

รายการในตัวแก้ไขอนุภาคเรียกง่ายๆว่า "พื้นผิว" บนแผงคุณสมบัติตัวปล่อยสัญญาณ ^^ มีแบบฝึกหัดเกี่ยวกับเครื่องมือทั้งหมดเพื่อให้ผู้สร้างเนื้อหาที่ไม่ได้เข้ารหัสสามารถช่วยได้ แต่ใช่ UIs นั้นน่ากลัวจริง ๆ จากมุมมองการออกแบบการโต้ตอบ
Oskar Duveborn

1
สำหรับ XNA นั้นเป็น Windows เท่านั้นมีการใช้โอเพ่นซอร์สของ XNA ของ API ที่เรียกว่า MonoGame ซึ่งจะทำงานบนแพลตฟอร์มที่ไม่ใช่ Windows ทุกประเภท: cocoa-mono.org/archives/400/ …ฉันไม่ได้ใช้มันด้วยตัวเอง มันมีอยู่จริง
chaosTechnician

คำตอบ:


10

Pygame เป็นเกมโปรดของฉัน เนื่องจากการเขียนโปรแกรมในภาษาไพ ธ อนหมายความว่าคุณจะเขียนโปรแกรมได้อย่างรวดเร็วและเนื่องจากสิ่งต่าง ๆ แบบ 2 มิติทำได้อย่างรวดเร็ว pygame จะสนุก ...


เป็นโบนัสถ้าคุณตัดสินใจว่าคุณต้องการที่จะย้ายไปสู่โลก 3 มิติที่มี pyglet ที่ล้อม GL ในงูผิว;)
เวย์นเวอร์เนอร์

9

ฉันใช้LÖVEมาระยะหนึ่งแล้วและฉันชอบมันมาก คุณต้องเรียนรู้ Lua แต่มันเป็นภาษาเล็ก ๆ น้อย ๆ ที่สนุกที่จะเรียนรู้ ผู้คนในฟอรัมมีประโยชน์อย่างยิ่ง


ประสิทธิภาพคืออะไร ฉันสามารถใช้ IDE อะไรได้บ้าง
Maxi

1
ฉันที่สองนี้ เราใช้ Lua และ LOVE สำหรับเกม Global Game Jam ของเราและได้ผลอย่างน่าอัศจรรย์ พวกเขาได้รวบรวมโอเพ่นซอร์สไลบรารีที่ยอดเยี่ยมจำนวนมากไว้ด้วยกันภายใต้ API ทั่วไปเพียงหนึ่งเดียว ประสิทธิภาพดีมาก (Lua เร็วมาก!) และฟีเจอร์ OpenGL ขั้นสูงจำนวนมากเช่น FBO ถูกเปิดเผยซึ่งหาได้ยากสำหรับเครื่องยนต์ 2D จำนวนมาก เหนือสิ่งอื่นใดนั่นคือมันข้ามแพลตฟอร์ม (Win / Mac / Linux) แน่นอนฉันจะให้มันดูดี
บ๊อบซอมเมอ

1
@Maxi: ด้วยความรักคุณแค่ต้องการบรรณาธิการและคอนโซลที่คุณสามารถเขียนได้love .
egarcia

2
รัสเซียสร้างเกมด้วยหรือไม่? มันจะมาจากรัสเซียด้วยความรัก: P
Bart van Heukelom

5

ฉันตัดสินใจไปกับ Flash Molehill 3D API ใหม่สามารถใช้วาดสไปรต์ 2D ในพื้นที่ 3D ได้เร็วขึ้นเช่นกัน ฉันไม่เห็นเหตุผลใด ๆ ที่ Flash จะไม่เร็วพอสำหรับเกมที่ฉันอธิบายไว้ก่อนหน้านี้ ฉันจะต้องสร้างเครื่องมือด้วยตัวเอง แต่ฉันอาจต้องทำสิ่งนั้นต่อไป ในความคิดของฉันการใช้ AIR เพื่อสร้างเครื่องมือก็ค่อนข้างเรียบร้อย Flash ยังมีการเข้าถึงที่กว้างที่สุดด้วยแพลตฟอร์มที่ยอดเยี่ยม


ลองCocos2d-x มันเป็นสิ่งที่ฉันใช้สำหรับการพัฒนาเกมอินดี้ของฉัน
สตีเฟ่น Furlani

1
แฟลชอาจเป็นตัวเลือกที่ดีเนื่องจากมีเครื่องมือและไลบรารีที่เหมาะสำหรับการใช้แฟลช Molehill API จะทำการโหลด CPU จำนวนมาก (ก่อนหน้านี้ทุกอย่างได้รับการจัดการโดย CPU) คุณต้องคำนึงถึงการกระจายเกมของคุณด้วย โดยปกติแล้ว Flash หมายถึงเกมที่ใช้เบราว์เซอร์ ...
bummzack

และดูแลเกี่ยวกับการเล่นเกมมือถือแฟลชและโทรศัพท์มือถือนั้นเป็นการผสมผสานที่ไม่ดี
Gustavo Maciel

" และดูแลเกี่ยวกับการเล่นเกมมือถือแฟลชและโทรศัพท์มือถือนั้นเป็นการผสมผสานที่ไม่ดี " @Gtoknu เหตุผลใดก็ตาม
NemoStein

@NemoStein ลองค้นหาด้วย youtube แฟลชบางอันที่ทำงานอยู่ในโทรศัพท์มือถือ นอกจากนี้ Adobe ยังหยุดพัฒนาแฟลชเป็น Android และไม่มีแฟลชสำหรับ iOS
Gustavo Maciel

4

ลองSFML


ในขณะที่มีประโยชน์ SFML เป็นเพียงกราฟิก / เครือข่าย / เสียง API ไม่ได้เป็นเอ็นจิ้นเกมที่มีคุณสมบัติครบถ้วน (แม้ว่าจะค่อนข้างใกล้เคียง)
a_m0d

2

ลองCocos2d-x มันเป็นสิ่งที่ฉันใช้สำหรับการพัฒนาเกมอินดี้ของฉัน

มันเป็นแพลตฟอร์ม OpenGL (ES) ที่พยายามและเป็นจริงซึ่งมีทั้งเสียงฟิสิกส์และแม้แต่ 3D เล็กน้อยที่ออกมาสำหรับ iPhone มาระยะหนึ่งแล้วและเพิ่งจะมาถึงแพลตฟอร์มอื่น


2

ตั้งแต่คุณบอกว่าคุณชอบ Actionscript แต่กำลังมองหาข้ามแพลตฟอร์มดูที่Haxe + อะรีนา HaXeเป็นภาษาที่คล้ายกับ Actionscript แต่สามารถคอมไพล์เป็น Flash, Javascript, PHP หรือ C ++ NME เป็นไลบรารีที่คล้ายกับไลบรารีกราฟิกของ Flash แต่ทำงานบนแพลตฟอร์มอื่นเช่นกัน ชุดนี้ช่วยให้คุณสามารถรวบรวมไปยังแพลตฟอร์มที่แตกต่างกัน

ฉันยังไม่ได้ใช้ NME แต่การทดสอบครั้งแรกของฉันกับ HaXe + Molehill (เมื่อไม่กี่วันที่ผ่านมา) ผลิต 60fps เมื่อแสดง 10,000 sprite หมุน 16x16 บนแล็ปท็อปของฉัน ฉันใช้ HaXe มาสองสามวันแล้วและไม่มีประสบการณ์เพียงพอที่จะทำให้แน่ใจว่ามันเป็นสิ่งที่ใช่สำหรับคุณ แต่มันก็คุ้มค่าที่จะดู


1

ฉันเป็นแฟนตัวยงของAllegro 5 เป็นส่วนตัว แต่เป็น C API ยังและทั้งหมดมันเป็น API ง่าย ๆ ที่ไม่เป็นไปตามที่คุณต้องการและให้การเข้าถึง:

  • กราฟิก 2 มิติ (สนับสนุนโดย OpenGL หรือ D3D ขึ้นอยู่กับแพลตฟอร์มของ platfom)
  • เสียง
  • แบบอักษร (รวมทั้งบิตแมปและ TTF)
  • อินพุต (เมาส์และคีย์บอร์ด)
  • PhysicsFS (การจำลองเสมือนของระบบไฟล์)
  • กำลังโหลดภาพ

5.1 จะเพิ่มการรองรับ shader เช่นกัน

SDL 1.3 นั้นมีรูปร่างที่ค่อนข้างดีเช่นกัน แซมดูเหมือนจะเสร็จสิ้นการเปลี่ยนแปลง API ที่สำคัญและสิ่งที่มีอยู่แล้วนั้นค่อนข้างเสถียรแล้ว ถึงกระนั้น ... มันยังไม่เป็นรุ่นเบต้าและ Allegro 5.0 จะวางจำหน่าย

ได้รับแล้วสำหรับเกมที่ซับซ้อนและทันสมัยกว่านี้คุณอาจต้องการจับคู่ Allegro 5 กับห้องสมุดฟิสิกส์บางประเภท ( Box2Dเป็นต้น) ถึงกระนั้นคุณสามารถไปได้ไกลและสนุกไปกับมันโดยไม่มีอะไรมากไปกว่า Allegro 5, ไลบรารีมาตรฐาน C หรือ C ++ และโค้ดของคุณเอง

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