คำถามการออกแบบ / แก้ไข / บันทึกในระดับ 2D [ปิด]


12

ฉันคิดเกี่ยวกับการสร้างเกม 2D Sidescroller ง่าย ๆ เช่น SuperMario จากนั้นฉันสงสัยเกี่ยวกับวิธีบันทึกโหลดหรือสร้างระดับสำหรับเกม สิ่งแรกที่ฉันคิดคือการวาด png บล็อกที่เรียบง่ายซึ่งแสดงถึงระดับการสร้างทุกส่วนที่ผู้เล่นสามารถเดินเป็นสีพิเศษ (อาจม่วง) ฉันจะนำเข้าระดับในบล็อกหรือกระเบื้องเพื่อให้ฉันสามารถตรวจสอบการชนกัน

ดังนั้นคำถามของฉันคือ:
มีวิธีที่ดีกว่านี้?
อะไรคือวิธีการที่เป็นมืออาชีพสำหรับสิ่งนี้
ฉันควรทำสิ่งนี้กับ Tiles และตัวแก้ไขแผนที่ตามแบบเรียงต่อกันหรือไม่ (ด้วยเหตุผลบางอย่างที่ฉันไม่ชอบ แต่ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดที่ฉันจะใช้)
กับระดับพื้นฐานของไพ่คุณจะตระหนักถึงความลาดชันได้อย่างไรและคุณจะตรวจสอบการชนได้อย่างไร

คำตอบ:


10

สำหรับ MMO 2D เราใช้http://www.mapeditor.org/ http://www.mapeditor.org/เราใช้หลายเลเยอร์สำหรับพื้นหลังการตกแต่งพื้นหลังวัตถุในระดับเดียวกับผู้เล่นและวัตถุที่อยู่ด้านหน้าของผู้เล่น และเลเยอร์เพิ่มเติมด้วยสี่เหลี่ยมสีแดงเพียงหนึ่งช่องเพื่อทำเครื่องหมายการชน

ฉันไม่แน่ใจว่า appoach นี้หรือซอฟต์แวร์ทำงานได้ดีสำหรับ scroller ด้าน 2D แต่อาจคุ้มค่าที่จะดู


+1 มันเป็นเครื่องมือที่ยอดเยี่ยม นอกจากนี้ยังเป็นโอเพ่นซอร์สดังนั้นคุณสามารถขยายได้ถ้าคุณต้องการ
Janis Kirsteins

นั่นเป็นเครื่องมือที่ดีจริงๆฉันทดสอบและไม่มีปัญหาเดียวที่นำเข้ามาในเกมของฉัน
Simiil

1
ตกลงดังนั้นตอนนี้ฉันต้องการทราบวิธีการทำระดับที่ไม่ใช่กระเบื้องเช่นโลกในเวิร์ม แต่ฉันเดาว่าฉันจะถามคำถามนี้ในคำถามใหม่สักวันหนึ่ง
Simiil

6

วิธีทั่วไปอาจเป็นเพียงแค่สตริงตัวอย่าง

0,0,0,0,0,0,1,1,1,0,0,0,2

โดยที่ 0 จะเป็นบล็อกที่คุณสามารถเดินได้บน 1 อาจเป็นเดือยและ 2 อาจเป็นเส้นชัย

คุณเพียงแค่อ่านมันผ่านไฟล์ข้อความ (หรือมีฮาร์ดโค้ดลงในเกม) และวาดบล็อกที่สัมพันธ์กันซึ่งเชื่อมโยงกับตัวเลขและให้ตรรกะการจัดระเบียบของคุณจัดการ

เห็นได้ชัดว่าคุณสามารถเลือกรูปแบบใดก็ได้ที่คุณต้องการและบางที 0 หมายถึงวาด 5 บล็อกที่สามารถเดินได้

นี่เป็นเพียงวิธีเดียวที่จะทำได้

http://www.smudgedcat.com/tut_tiledlevel.html ลิงก์นี้เป็นตัวอย่างภายใน c # โดยใช้เฟรมเวิร์ก XNA มันจะทำให้คุณมีความคิดคร่าว ๆ (มันไม่ได้มีความลาดชัน แต่สิ่งที่คล้ายกันสามารถใช้ในการกำหนดประเภทของกรณีนี้)

ขอแสดงความนับถือ


นี่เป็นวิธีที่ "Excite Bike" เป็นแผนที่แบบกำหนดเองใน Nintendo vc.nintendolife.com/games/nes/excitebike
Stephen Furlani

5

ข้อความแสดงแทน

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


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

ข้อความแสดงแทน


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

ในการแก้ไขข้อมูลระดับของเกมตัวอย่าง Allegro เราใช้ Blender Tool แบบโอเพนซอร์สและฟรี คุณสามารถรับได้ที่นี่:

http://blender.org

นี่คือคำแนะนำทีละขั้นตอนวิธีการทำงาน:

1) วางไฟล์ ademo_export.py ลงในโฟลเดอร์สคริปต์ Blender ของคุณ มันเป็นสคริปต์การส่งออกซึ่งจะแปลงจากรูปแบบ. blend เป็นรูปแบบ. txt ที่ใช้โดยเกมตัวอย่าง ภายใต้ยูนิกซ์พา ธ จะเป็น:

~ / .blender / scripts / ademo_export.py

2) โหลดเครื่องปั่นไฟล์. blend ภายใต้ unix ให้พิมพ์สิ่งนี้จากไดเร็กทอรีด้วยไฟล์ level.blend:

blender -w level.blend

(-w คือการใช้โหมดหน้าต่างซึ่งฉันชอบ)

3) แก้ไขระดับ ในเมนูใต้

ช่วยเหลือ -> เบราว์เซอร์ช่วยเหลือสคริปต์ -> ส่งออก -> ระดับเกมสาธิต Allegro

คุณจะพบเคล็ดลับที่มีประโยชน์

4) บันทึกไฟล์ (ใช้การบีบอัดก่อนที่จะกระทำ) ส่งออกเป็น. txt จากเมนูส่งออกโดยเลือก Allegro Demo Game Level

5) อัปเดต level.dat โดยใช้ level.txt ระดับใหม่ควรปรากฏในเกม


2

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

มีสองวิธีหลักคือ; ทำได้ง่ายกว่า แต่ไม่มีประสิทธิภาพ

  • คุณสามารถใช้โปรแกรมแก้ไขแผนที่ ทั้งเขียนของคุณเองหรือหาคนที่มีอยู่ก่อนเช่น mapeditor ซึ่ง nhnb กล่าวถึง การเขียนของคุณเองจะดีสำหรับประสบการณ์การเรียนรู้ แต่ไม่มากสำหรับผลิตภัณฑ์สำเร็จรูป
  • คุณสามารถพิมพ์ข้อมูลลงในไฟล์ข้อความได้ มันง่ายกว่า แต่ก็ไม่ง่ายที่จะอ่านอีกครั้ง คุณอาจได้รับสิ่งเดียวกันจากตัวแก้ไขแผนที่ แต่นั่นอาจเป็นแบบอัตโนมัติ ข้อเสียอีกครั้งของสิ่งนี้คือคุณไม่สามารถเพิ่มเอฟเฟกต์พิเศษใด ๆ เช่นไทล์ (ไม่ใช่ประเภทไทล์ แต่ตัวอย่างไทล์ (13,45)) เพื่อทำสิ่งพิเศษ

2

ฉันมีความคิดที่คล้ายกัน (เช่นกลับไปเขียนเกมงานอดิเรก - งานและภาระผูกพันอื่น ๆ ... )

ฉันพิจารณาเส้นทางการพัฒนา 'Map Editor' อย่างจริงจังเป็นส่วนหนึ่งของเกม / แอปพลิเคชัน

หากเกมของคุณเหนือกว่าพีซีของคุณเองเนื้อหาของชุมชนจะเป็นประโยชน์อย่างยิ่ง

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