วิธีทำเกมให้สำเร็จ [ปิด]


20

ปัญหาของฉันคือเมื่อใดก็ตามที่ฉันเริ่มเขียนโปรแกรมโคลนเกม (สำหรับฝึกซ้อม) หรือเกมของตัวเองหรือปัญหาอื่น ๆ ฉันหยุดที่ใดที่หนึ่งในระหว่างการพัฒนาเพราะฉันหมดความสนใจ

คุณติดตามความสนใจในการพัฒนาเกมหรือพัฒนาโดยทั่วไปอย่างไร?


4
จริงๆนอกหัวข้อ - ลองProductivity.stackexchange.comสำหรับคำแนะนำที่สร้างแรงบันดาลใจ
ไซคลอป

1
เป็นไปได้ Dupe gamedev.stackexchange.com/questions/85/…

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

คำตอบ:


28

ในฐานะนักออกแบบฉันมักจะคิดว่าคนเป็นคอลเลกชันของสถิติและตัวแปร เมื่อคุณถามคำถามฉันสามารถเห็น [Pong_Dev_Interest] ลดลงอย่างง่ายดายและ [Spa_Inv_Dev_Interest] เพิ่มขึ้น เมื่อความแตกต่างระหว่างทั้งสองมีค่ามากกว่า [Dev_Project_Inertia] (ค่อนข้างเกี่ยวข้องกับ [Dev_Completion_Desire]) กิจกรรมใน [Pong_Dev] หยุดและหยุด [Spa_Inv_Dev]

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

เมื่อคุณเบื่อให้ทำงานต่อไป เมื่อมันไปได้ดีทำงานต่อไป เมื่อมันตกลงไปอึทำงานต่อไป! อดทน! เป็น Dev ตัวน้อยที่ทำได้! ฉันเชื่อในตัวคุณ!

เสียงกระแอม เตรียมพร้อมที่นั่นมากไปหน่อย แต่คุณจะได้ดริฟท์

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

และมันจะให้ความรู้สึกสบายมาก


12

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

ขั้นแรกค้นหาโครงการที่มีอยู่ในสายงานประสบการณ์ของคุณ คืออย่าเริ่มทำ FPS ถ้าคุณไม่รู้พื้นฐานของ OpenGL / DirectX (นอกเสียจากว่าคุณใช้เอ็นจิ้นเกม แต่นั่นไม่ใช่จุดที่นี่ ;-))

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

  • เสียงประกอบ
  • เพลง
  • เรือสร้างใหม่
  • จรวดสร้างใหม่
  • การตรวจจับการระเบิดระหว่างการยิงและผู้เล่น / ศัตรู
  • ทำให้ศัตรูยิง
  • หน้าจอชื่อเรื่อง
  • คะแนน / ชีวิต / พลังงานอะไรก็ตามที่ซ้อนทับ

งานทั้งหมดนี้ง่ายต่อการทำและเมื่อพวกเขาทำงานในเกมคุณสามารถทำซ้ำในพื้นที่เหล่านั้นและขัดมัน

และเดี๋ยวก่อนฉันจบเกมเล็ก ๆ มันไม่สวย แต่ก็ทำโดยทั่วไปซึ่งให้ผลคุ้มค่าในตอนท้าย :-)


3

คุณต้องระบุปัญหาก่อนจึงจะสามารถแก้ไขได้ ทำไมคุณถึงหมดความสนใจ?

สำหรับฉันมันมักจะเกิดขึ้นเพราะฉันใช้เวลามากกับเฟรมเวิร์กและหลังจากผ่านไปหลายสัปดาห์

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

สำหรับชิ้นส่วนที่ไม่สามารถเป็นแบบอัตโนมัติได้โดยทั่วไปฉันจะวางแผนสองเหตุการณ์สำคัญสำหรับเกม เหตุการณ์สำคัญที่ 1 อาจจะทำให้ผีสางบนหน้าจอและทำให้ WASD ทำงานได้ ฉันจะเพิ่มฟีเจอร์และ refactor เพิ่มทีละน้อย

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


1
ฉันทำมานานแล้วและไม่มีอะไรน่าตื่นเต้นไปกว่าการโหลดสไปรต์เกมแรกของคุณและเคลื่อนไปรอบ ๆ บนหน้าจอ
Sold Out กิจกรรม

2

ฉันพยายามหาส่วนที่ง่ายกว่าที่จะทำ เช่นถ้าฉันไม่สามารถหาวิธีทำบางอย่างหรือไม่ต้องการฉันก็เปลี่ยนเกียร์และทำโมเดลหรือเขียน shader เป็นต้น

ดูนี้และนี้โพสต์อื่น ๆ


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

2

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

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

หาก ณ จุดหนึ่งโปรแกรมไม่ทำงานคุณควรเลิกทำสิ่งที่คุณทำล่าสุด (สำรองข้อมูลให้ใช้ svn หรืออย่างน้อย. rar ที่มีชื่อของวันที่) จนถึงจุดที่ใช้งานได้และลองทำใหม่ อีกครั้งหรือทำงานกับการเปลี่ยนแปลงอื่น ๆ ที่คุณต้องทำจนกว่าคุณจะต้องการลองอีกครั้ง

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

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

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

ป.ล. ฉันสงสัยว่า ... คุณกำลังใช้ทำเกมอะไร


+1 สำหรับการใช้การควบคุมแหล่งที่มา การไม่มี SC เป็นเหตุผลหลักที่ทำให้ฉันหยุดทำงานเกมเมื่อ 4 ปีที่แล้ว (ฉันแก้ไขซอร์สโค้ดมากเกินไปเพื่อย้อนกลับไป) โชคดีที่ฉันเพิ่งตระหนักถึงประโยชน์ของ XNA และเกมกลับมาทำงานอีกครั้ง
Richard Marskell - Drackir

2

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

Re: Refactoring เนื้อหาสามารถเกิดขึ้นได้ บางครั้งถึงแม้จะมีเครื่องมือที่ดีเช่น Git แต่การผสานอาจล้มเหลวแทนที่จะใช้คุณสมบัติ A และฟีเจอร์ B ทั้งสองทำงานไม่ได้ผล! ตัวเลือกเดียวคือกลับไปที่ A แล้วลองอีกครั้ง โชคดีที่การควบคุมเวอร์ชันจะบันทึกรหัสนี้ให้คุณ หากคุณไม่ได้ใช้การควบคุมเวอร์ชันจริงอย่างน้อยก็ทำได้ด้วยตนเองโดยการซิปโฟลเดอร์ dev ของคุณเป็นประจำ - พื้นที่ HD ราคาถูก! โดยสรุปกลับไปที่สิ่งที่ใช้ได้ผลและสร้างใหม่ในขั้นตอนที่เล็กลงทำให้แน่ใจว่าเกมยังคงทำงานในแต่ละขั้นตอน มันเป็นเรื่องน่าหดหู่ที่จะทำความสะอาดโค้ดเพื่อดูทุกสิ่งที่แตกสลาย เพียงเปลี่ยนกลับเป็นรหัสเดิม


1
"ถ้าคุณไม่ใช้การควบคุมเวอร์ชันจริงให้เริ่ม " - เป็นคำตอบที่ถูกต้อง :) จริง ๆ - ง่ายพอที่จะเรียนรู้และเป็นตัวคูณแรงที่สำคัญ VC ใด ๆ ที่จะช่วยให้คุณประหยัดมากเวลามากขึ้นกว่าก็จะสามารถเรียนรู้
Cyclops

ในโครงการการออกแบบข้ามสาขาเมื่อเร็ว ๆ นี้ที่มหาวิทยาลัยที่ฉันอยู่ในโรงเรียนระดับบัณฑิตศึกษาฉันรู้สึกประหลาดใจที่เห็นว่าทีม CS ไม่มีความสนใจในการควบคุมแหล่งข้อมูลในขณะที่ EEs ตั้งค่า SVN ก่อนทำสิ่งอื่น แปลก!
3

1

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

เพื่ออธิบายประเด็นของฉันฉันสามารถบอกคุณได้ว่าสิ่งต่าง ๆ เกิดขึ้นบ่อยแค่ไหน: ในตอนแรกคุณสร้างสไปรต์ไม่กี่เคลื่อนย้ายพวกมันบนหน้าจอด้วยโปรโตเฟรม - ของคุณและคุณตื่นเต้น! คุณสามารถเห็นความก้าวหน้าของคุณและมันก็เป็นไปด้วยดี; คุณสามารถแสดงให้เพื่อนของคุณ

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

ดังนั้นอย่าลืม: สร้างเกมไม่ใช่เครื่องมือสร้างเกม refactor เท่านั้นเมื่อคุณต้องการ อย่ายืดหยุ่นเกินไป - เพียงแค่ขั้นต่ำสุด *

*: แน่นอนว่าการปรับโครงสร้างและความยืดหยุ่นเป็นสิ่งสำคัญ แต่ไม่สำคัญเท่ากับการมีเกมเสร็จ


1

ลองสร้างเวอร์ชั่นที่เล่นได้ในหนึ่งวันไม่ว่าจะง่ายขนาดไหน จากนั้นทำซ้ำ


1
  1. อย่าพยายามทำให้เกมของคุณซับซ้อนเกินไป!

  2. แบ่งงานของคุณออกเป็นงานย่อยขนาดเล็กเฉพาะเจาะจงที่วัดได้ หากภารกิจย่อยใด ๆ ดูใหญ่เกินไปให้แบ่งย่อยเพิ่มเติม

  3. ตรวจสอบให้แน่ใจว่าคุณเขียน "DONE" ด้วยอักษรตัวใหญ่ในรายการงานของคุณ (ฉันใช้ไฟล์. txt) เมื่องานของคุณเสร็จสิ้น อย่าลบงานออกเพราะจะทำให้คุณไม่ก้าวหน้า

นี่คือสิ่งที่ฉันทำ มันทำงานในอดีต

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