เริ่มต้นจากศูนย์ - เป็นความผิดพลาดหรือไม่ถ้าฉันคิดค้นล้อใหม่?


31

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

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

ฉันพลาดอะไรไปรึเปล่า?


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

คำตอบ:


16

ไม่มันไม่ใช่เรื่องเลวร้ายอะไรเลย การเรียนรู้และความสามารถในการเรียนรู้เป็นพื้นฐานที่สำคัญในการเป็นโปรแกรมเมอร์ที่ดี

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

แน่นอนว่าเมื่อคุณทำอะไรบางอย่างเสร็จแล้วและต้องการสร้างเกมต่อไปก็ไม่มีเหตุผลที่จะนำ codebase เก่ามาใช้ซ้ำ

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

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


ขอบคุณเรย์ที่เป็นประโยชน์! แต่คุณช่วยเพิ่มรายชื่อกลไกของเกมได้เช่นกัน ...
Ayyappa

ไม่มีปัญหา. ฉันไม่แน่ใจว่าคุณหมายถึงอะไรในบริบทของคำถามเดิมของคุณ หลังจากคุณเป็นอะไร
Ray Dey

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

+1 สำหรับการจบโครงการ- การทำโครงการให้เป็นประสบการณ์ที่ดีจริงๆ
ไซคลอป

36
i want to implement it on my own to learn stuff.

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


3
+1 เพียงเพราะ API หรือห้องสมุดบุคคลที่สามสามารถสรุปรายละเอียดการใช้งานทั้งหมดได้นั่นหมายความว่าคุณไม่จำเป็นต้องรู้ การใช้ 'off-the-wheel' จะช่วยให้คุณเขียนโค้ดเสร็จเร็วขึ้น แต่การสร้างวงล้อของคุณเองจะช่วยให้คุณระบุว่าคนที่ทำสีแบบใดดีที่สุดและที่สำคัญที่สุดคือวิธีเพิ่มประสิทธิภาพและแก้ไขข้อบกพร่องเหล่านี้เมื่อซี่เริ่มโผล่ออกมา ...
sebf

4
+1 อย่าประดิษฐ์ล้อใหม่ยกเว้นว่าคุณกำลังหัดทำล้ออยู่
zzzzBov

4
จำไว้ว่าสิ่งนี้จะช่วยพัฒนาทักษะของคุณในการออกแบบเอ็นจิ้นเกมแต่ไม่ใช่ในการออกแบบเกม
Dave O.

นี่เป็นคำตอบที่ควรค่าแก่การ ... ขอบคุณ ... แต่มันก็แย่ที่ฉันไม่สามารถทำเครื่องหมายสองคำตอบได้ :(
Ayyappa


5

ขึ้นอยู่กับสิ่งที่คุณหลังจาก หากคุณต้องการที่จะเรียนรู้บูรณาการเท่าที่คุณรู้สึกเหมือนล้อ ฉันรู้ว่าคนที่เขียน JVMs หรือ PNG loader ของพวกเขาสำหรับห่าของมัน

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


4

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

เทคโนโลยีใหม่กำลังออกมาตลอดเวลาซึ่งต้องการคนที่จะคิดค้นสิ่งใหม่ OpenCL และภาษาคำนวณ GPU อื่น ๆ เป็นตัวอย่างที่ดี

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

เมื่อคุณได้ประดิษฐ์ล้อสองสามล้อเพื่อให้คุณได้กลิ้งคุณจะรู้ว่าสิ่งของของคุณเป็นโบนัสที่ยอดเยี่ยม!

รวมทั้งมันสนุกดี


1

และมีคนที่อ้างว่าพวกเขามีประสิทธิผลมากขึ้นเพราะพวกเขาคิดค้นล้อใหม่

ในกรณีที่จุด: Eskil Steenberg ผู้สร้างโลกของความรัก (วิดีโอที่ยอดเยี่ยมที่เขาพูดเกี่ยวกับเกมของเขาเครื่องยนต์ของเขาและที่น่ากลัวเครื่องมือและปรัชญาของเขา: http://vimeo.com/18423305 )


1

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

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


0

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

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

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


0

เป็นเพียงความผิดพลาดถ้าคุณไม่มีเวลาเรียนรู้ หากคุณมีเวลาไปได้เลย หากคุณไม่ทำก็ไม่ทำ

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