จะเริ่มต้นอย่างไรกับการพัฒนาเกม [ปิด]


65

ฉันถามก่อนหน้านี้ในหัวข้อนี้ที่ stackoverflow.com หนึ่งในความคิดเห็นเริ่มต้นนำฉันมาที่นี่เพื่อ gamedev.stackexchange.com ดังนั้นฉันจะโพสต์ที่นี่อีกครั้ง

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

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

พื้นหลังของฉัน: ฉันได้ทำงานในภาษาการเขียนโปรแกรมที่หลากหลายตั้งแต่ PHP ถึง C ++ ถึง Java ถึง ASM ฉันไม่กลัวความท้าทายใด ๆ ที่มาพร้อมกับการเรียนรู้ไวยากรณ์ใหม่หรือข้อ จำกัด ที่มีอยู่ในภาษาใหม่ อย่างไรก็ตามประสบการณ์การเขียนโปรแกรมที่ผ่านมาทั้งหมดของฉันนั้นไม่ใช่แบบกราฟิกอย่างเคร่งครัดและมักจะมีการโต้ตอบน้อยมากหรือง่ายมากระหว่างการดำเนินการ ฉันได้สร้างอัลกอริทึมที่กว้างขวางและยอดเยี่ยมสำหรับการแก้ปัญหาเชิงตรรกะและคณิตศาสตร์รวมถึงปัญหาการสร้างกราฟ อย่างไรก็ตามในทุกกรณีมีการกำหนดอินพุตในไฟล์ส่งแบบฟอร์มในรูปแบบ HTML หรือพิมพ์ลงในคอนโซล การโต้ตอบแบบเรียลไทม์กับผู้ใช้เป็นสิ่งที่ฉันไม่มีประสบการณ์

คำถามของฉัน: ฉันควรเริ่มทำเกมที่ไหน? ยังดีกว่า - ฉันควรเริ่มต้นอย่างไรเมื่อพยายามสร้างสภาพแวดล้อม 3 มิติที่ใช้งานบนคีย์บอร์ดได้ ในการค้นหาออนไลน์ฉันได้พบแหล่งข้อมูลมากมายที่เชื่อมโยงกับเอ็นจิ้นเกม, เอ็นจิ้นกราฟิกและเอ็นจิ้นฟิสิกส์ ต่อไปนี้เป็นบทสรุปโดยย่อเกี่ยวกับประสบการณ์ของฉันกับเครื่องมือบางอย่างที่ฉันลอง

Unreal SDK: วิดีโอการสอนสมมติว่าคุณมีความรู้ในเชิงลึกเกี่ยวกับการสร้างแบบจำลอง 3 มิติ, เอ็นจิ้นกราฟิค, ภาพเคลื่อนไหวและอื่น ๆ หน้า "เริ่มต้นใช้งาน" ไม่มีคำอธิบายที่เป็นทางการของการพัฒนาเกม คุ้นเคยกับ หลังจากดาวน์โหลด SDK และเปิดใช้งานเพื่อดูว่าเครื่องมือใช้งานง่ายอย่างที่พวกเขาอ้างหรือไม่ฉันได้รับการต้อนรับด้วยปุ่มประมาณ 60 ปุ่มและช่องว่างเปล่าสำหรับการสร้างแบบจำลอง 3 มิติของฉัน คลิกที่ "เพิ่มปริมาณ" (เพื่อพยายามเพิ่มลูกบาศก์พื้นฐาน) ฉันได้พบกับเมนู 30 ตัวเลือก ตื่นฉันปิดตัวแก้ไข

Crystal Space: เว็บไซต์ดูเหมือนจะให้ข้อมูลค่อนข้างมากอธิบายว่า Crystal Space เป็นเพียงกราฟิกและซอฟต์แวร์สหาย CEL เป็นตรรกะของเอนทิตีสำหรับการสร้างเกม มีการสาธิตเกมตัวอย่างซึ่งสร้างขึ้นโดยใช้ "CELStart" ซึ่งเป็นเครื่องมือง่ายๆสำหรับผู้ที่ไม่มีความรู้เกี่ยวกับการเขียนโปรแกรมเกม ฉันเปิดเกมเพื่อดูว่าฉันจะตั้งตารออะไรต่อไป มันแข็งตัวหลายครั้งเมนูมีข้อผิดพลาดมากมายมีกราฟิกบกพร่องหลายพันศัตรูไม่ตอบสนองต่อความเสียหายและเมื่อฉันปิดเกมมันถูกล็อค สะสมเครื่องยนต์

IrrLicht: บทช่วยสอนถือว่าฉันมี Visual Studio 6.0 (ฉันมี Visual Studio 2010) ฉันไม่สามารถนำเข้าไลบรารีไปยัง Visual Studio อย่างถูกต้องและไม่สามารถเรียกใช้ฟังก์ชันใด ๆ ที่พวกเขาใช้งานอยู่ คัดลอกไฟล์ส่วนหัวคลาสไฟล์และ DLLs ด้วยตนเองไปยังโฟลเดอร์ของโครงการของฉัน - โครงการไม่สามารถคอมไพล์ได้อย่างถูกต้อง

เห็นได้ชัดว่าฉันไม่ได้ไปเริ่มต้นที่ดีและฉันจะไปในแวดวง ใครบางคนชี้ให้ฉันในทิศทางที่ถูกต้อง? ฉันควรเริ่มต้นด้วยการดาวน์โหลดโปรแกรมเช่น Blender และเรียนรู้การสร้างแบบจำลอง 3 มิติหรือฉันควรจะเรียนรู้วิธีใช้โปรแกรมกราฟิกหรือไม่ ฉันควรมองหาเอ็นจิ้นเกมแบบรวมทุกอย่างหรือดีกว่าที่จะลองและเขียนโค้ดเกมตรรกะของฉันเอง? หากใครได้สร้างเกมของตัวเองขึ้นมาฉันอยากจะฟังว่าพวกเขาเริ่มต้นได้อย่างไร

นอกจากนี้การเรียนในโรงเรียนของฉันก็ไม่ใช่ทางเลือก ไม่มีอะไรให้


3
+1 พื้นหลังการเขียนโปรแกรมที่ดีกำลังมองหาความต้องการเฉพาะ
Marcouiller จะ

6
+1 นี่เป็นคำถามที่คิดมาอย่างดีและค้นคว้าเกี่ยวกับวิธีเริ่มการพัฒนาเกม นอกจากนี้ฉันรู้สึกเจ็บปวดกับ Unreal SDK
James

ฉันขอแนะนำให้ตรวจสอบบทเรียนของ Raven67854สำหรับ UDK พวกเขาอยู่ในรายการวิดีโอคนดูเหมือนจะชอบพวกเขา
Jesse Dorsey

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

คำตอบ:


38

ฉันได้ถามคำถามดังกล่าวเมื่อฉันเข้าร่วม GD นี่คือลิงค์บางส่วนที่คุณอาจสนใจซึ่งฉันหวังว่าจะนำคุณไปสู่เป้าหมายของคุณ

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

  1. จะเริ่มเขียนเกมแบบฝึกหัดหรืออะไรทำนองนั้นได้ที่ไหน?
  2. พื้นฐานการพัฒนาเกมคืออะไร? (คำถามที่น่าสนใจ IMHO)
  3. แยกฟิสิกส์และตรรกะเกมออกจากรหัส UI
  4. การย้ายเทพดาของฉันใน XNA โดยใช้คลาส

ทำไม XNA คุณจะถาม? เพียงเพราะพื้นหลัง Java ของคุณ XNA ใช้ C # ซึ่งคล้ายกับ Java ในหลาย ๆ ทางและยังเป็นกรอบง่าย ๆ ในการใช้ซึ่งเป็นนามธรรมของเกมลูปและสิ่งต่าง ๆ เพื่อที่คุณจะได้จดจ่อกับสิ่งที่สำคัญ

ฉันหวังว่าสิ่งนี้จะช่วยให้คุณเริ่มต้นได้ =)


1
ขออภัยสำหรับการตอบกลับที่ล่าช้า =) ฉันกำลังอ่านแต่ละโพสต์ที่คุณเปลี่ยนเส้นทางให้ฉัน (นอกจากนี้หนึ่งในโพสต์ที่เชื่อมโยงไปยังหน้า MSDN ในการสร้างเกม 3 มิติด้วย XNA ซึ่งสนใจฉันตั้งแต่หน้าเครื่องมือเกมของ XNA สำหรับเกม 2D เท่านั้น) ฉันคิดว่านี่เป็นจุดเริ่มต้นที่ดีอย่างแน่นอน ขอขอบคุณ. ฉันจะดาวน์โหลด XNA คืนนี้และเข้านอนแล้วหวังว่าพรุ่งนี้ฉันจะลองทำโป่งหรืออะไรซักอย่าง
stevendesu

@ สตีเว่น: ไม่มีปัญหา! ฉันโพสต์คำตอบนี้เพื่อช่วยผู้พัฒนาที่กระตือรือร้นเช่นเดียวกับฉันที่ขอคำแนะนำ! ฉันหวังว่าคุณจะสนุกกับการทำมัน! ความท้าทายแรกและยังคงของฉันคือการพัฒนาเกมคล้าย Arkanoid ง่ายที่ฉันต้องทำงานทางของฉันสำหรับการตรวจจับการชนในขณะที่มีการเขียนชั้นเรียนของฉันหนึ่งสำหรับยานอวกาศแต่ละลูกพลังงานและอิฐ จากนั้นGame1ชั้นเรียนของฉันจะใช้เป็นตัวควบคุมเกมซึ่งในความคิดของฉันคือชั้นเรียนที่จะควบคุมและบอกชั้นเรียนอื่น ๆ ว่าจะทำอย่างไร ฯลฯ ฉันอธิบายมุมมองนี้ในส่วนของลิงก์ # 4 และ # 5
Marcouiller จะ

ฉันอาจจะถามคำถามอื่นเร็ว ๆ นี้ (พรุ่งนี้) xx ดาวน์โหลด XNA Game Studio 4.0 ติดตั้งแล้ว .... และไม่มีคำแนะนำที่ชัดเจนเกี่ยวกับสิ่งที่ต้องทำต่อไป เว็บไซต์ XNA อย่างเป็นทางการทั้งหมดบอกว่า "สร้างเกมสำหรับ Windows Phone 7" ไปทั่ว - ไม่เกี่ยวกับการสร้างเกมสำหรับ Windows ฉันจะคิดออกตอนเช้าหรือถามที่นี่ถ้าฉันไม่สามารถ เวลานอน =)
stevendesu

1
สร้างโครงการใหม่โดยใช้ Visual Studio จากนั้นเลือก XNA ที่ใดก็ได้ที่คุณสามารถเลือกประเภทโครงการ จากนั้นเริ่มสร้างเกมสำหรับ windows! เท็มเพลตโปรเจ็กต์เกม XNA ของคุณ (โปรเจ็กต์ใหม่) จะรวบรวมและรันบน Windows โดยกำเนิด XNA เป็นไลบรารี Microsoft สำหรับการพัฒนาเกมเช่นนี้คุณอาจพัฒนาเกมสำหรับ Windows และ XBox
Marcouiller จะ

1
เพื่อประโยชน์ในอนาคตมันมีค่าที่ชี้ให้เห็นว่า XNA นั้นถูกคัดค้านเป็นหลัก แต่ Monogame ยังมีชีวิตอยู่ ส่วนใหญ่รหัสเดียวกันจะใช้งานได้
หมอผี

8

คุณอาจลองUnity 3Dเพราะ

  • สามารถตั้งโปรแกรมใน JavaScript, C # หรือ Boo
  • มันมีการสอนที่ดีตรงนี้
  • ช่วงการเรียนรู้ไม่สูงชัน
  • มีUnity Answersซึ่งคุณจะพบทรัพยากรได้มากขึ้น

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

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

แก้ไข:มีความคิดเห็นเกี่ยวกับ Unity ที่ถูกมองว่าเป็นเอ็นจิ้นเกม "ไม่เหมาะสม" ซึ่งอาจเข้าใจผิดเมื่อฉันบอกว่า - ดังนั้นจึงวางไข่ความคิดเห็นด้านล่าง ฉันไม่ได้ตั้งใจจะแนะนำว่า Unity ไม่สามารถใช้ในการออกแบบเกมที่เหมาะสมในทางตรงกันข้าม ฉันใช้มันเองและฉันชอบมัน ;)


3
มีอะไรที่ไม่เหมาะสมเกี่ยวกับเรื่องนี้?
lathomas64

ฉันก็อยากรู้เช่นกัน
Jesse Dorsey

บางทีความจริงที่ว่า (เช่น Flash หรือ Java) นั้นต้องใช้โปรแกรมคอนเทนเนอร์เพื่อให้ทำงานเขาจึงคิดว่ามัน "ไม่เหมาะสม" เพราะมันไม่สามารถคอมไพล์และแจกจ่ายให้กับผู้ชมจำนวนมาก ทั้งสองวิธีฉันกำลังมองหา XNA ในตอนนี้ ฉันอาจตรวจสอบ Unity3D ถ้า XNA พิสูจน์ได้ยากเกินไป
stevendesu

ฉันได้ยินคนพูดว่าสำหรับการออกแบบเกม "เหมาะสม" ความสามัคคีไม่ควรถูกมองข้าม อย่างที่เคยกล่าวไว้ก่อนหน้านี้ - ฉันใช้มันด้วยตัวเองและฉันก็ค่อนข้างมีความสุขกับมัน ในบางกรณีความสามัคคีทำให้สิ่งต่าง ๆ เป็นเรื่องง่ายอย่างน่าสงสัยฉันเดาว่า…;) ฉันแค่ป้องกันความเสี่ยงเพราะฉันไม่รู้ว่าผู้คนจะตอบโต้ที่นี่เพื่อพูดถึงความสามัคคีได้อย่างไร บางทีนั่นอาจทำให้เกิดการโหวต?
xeophin

@steven_desu: ที่จริงแล้วคุณต้องการโปรแกรมคอนเทนเนอร์สำหรับผู้เล่นเว็บเท่านั้น เกมที่คอมไพล์เพื่อให้ทำงานบน Windows หรือ Mac นั้นมีในตัวเองทั้งหมด
xeophin

2

ถ้าคุณมีปัญหากับ irrlicht คุณควรลอง Ogre3D ด้วย มันไม่ใช่เรื่องง่าย แต่มันอาจทำงานได้ดีกว่าถ้าคุณใช้เวลาสักพัก สิ่งสำคัญที่คุณต้องเข้าใจคืออะไรคือ framelistener, วิธีการได้รับเวลาตั้งแต่เฟรมสุดท้ายถูกแสดงและนั่นเป็นสิ่งเดียวที่คุณต้องเข้าใจถ้าคุณต้องการให้แอปพลิเคชั่นนี้คุณกำลังพูดถึง

ฉันยังมีปัญหาบางอย่างกับ irrlicht บทเรียนไม่ทันสมัยมากนัก แต่คุณควรลองตัวอย่าง!

ฉันยังวิ่งวนเป็นวงกลมที่จุดเริ่มต้นเล่นกับ panda3d และสิ่งอื่น ๆ เช่น pygame ฯลฯ พยายามที่จะมุ่งเน้นไปที่แนวคิดของเกม

และพยายามที่จะจำคณิตศาสตร์ matric บางอย่างก็จะมีการใช้งานในแบบ 3D!


2

ฉันเพิ่งเริ่มต้นแสวงหาเหมือนกันกับคุณ ฉันวิ่งเข้าไปในจาวาเอนจิ้นที่เรียกว่าjMonkeyEngineซึ่งทำให้ฉันผ่านชุดบทเรียนที่ยอดเยี่ยม ฉันไม่รู้ว่ามันจะอธิบายการออกแบบเกมในระดับมากหรือไม่

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

คุ้มค่าที่จะอ่านแน่นอน - ฉันมีความคิดที่ดีเกี่ยวกับสิ่งที่ฉันทำหลังจากผ่านไปหลายชั่วโมง


บทเรียนนี้มีค่าสำหรับการอ่านแม้ว่าคุณจะไม่ได้ใช้เอ็นจิ้นก็ตาม นอกจากนี้ยังมีแบบฝึกหัดที่ดีเกี่ยวกับคณิตศาสตร์สามมิติ
DMan

2

คุณควรลอง Flixel http://flixel.org/ ฉันสร้างเกม "demo" เกมแรกของฉันโดยใช้ flixel ชุมชนที่ดีแบบฝึกหัดที่ดี

ไม่ใช่ 3D แต่มีคุณสมบัติที่ดีมากมายที่ทำให้ขั้นตอนแรกของคุณในการเขียนโปรแกรมเกมเป็นเรื่องง่าย

ดังกล่าวว่า: แสดงพันของวัตถุที่เคลื่อนที่
ชนขั้นพื้นฐานระหว่างวัตถุ
กลุ่มวัตถุร่วมกันเพื่อความเรียบง่าย
ได้อย่างง่ายดายสร้างและปล่อยอนุภาค
สร้างระดับการเล่นเกมโดยใช้ tilemaps
การแสดงผลข้อความ, บันทึกเกมเลื่อน
เมาส์และแป้นพิมพ์
คณิตศาสตร์และสาธารณูปโภคสี

และมันฟรีสำหรับใช้ในเชิงพาณิชย์ซึ่งยอดเยี่ยมมาก


1

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


1

ลองSource Engine มันง่ายในการพัฒนาเกมและคุณสามารถรับแพลตฟอร์มการจำหน่าย (Steam) และขายเกมของคุณได้ฟรีหากคุณลงนามในข้อตกลงกับ Valve Corportaion


1

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

ฉันใช้ FlashDevelop ซึ่งเพียงพอสำหรับการพัฒนา

Chris Moeller's "การสร้างเกม Asteroids Flash"เป็นกรณีที่ยอดเยี่ยมในจุดด้วยวิธีการทีละขั้นตอนโดยใช้แฟลชพัฒนา

สำหรับเกมกระเบื้องที่ใช้มีการกวดวิชาที่ดีเยี่ยมในIroncoding

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

ทำให้มันเล็กเพื่อให้คุณสามารถเสร็จสิ้นและปล่อยมัน

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