ซอร์สโค้ด C ++ แบบเต็มของ Source Engine พร้อมใช้งานหรือไม่
ฉันรู้ว่าSDK สามารถใช้งานได้กับการซื้อเกมตามแหล่งที่มาแต่เป้าหมายของฉันคือการค้นหาเอ็นจิ้นเกมแบบโอเพ่นซอร์สที่มีรายละเอียดการใช้งานเต็มรูปแบบเพื่อวัตถุประสงค์ในการเรียนรู้
ซอร์สโค้ด C ++ แบบเต็มของ Source Engine พร้อมใช้งานหรือไม่
ฉันรู้ว่าSDK สามารถใช้งานได้กับการซื้อเกมตามแหล่งที่มาแต่เป้าหมายของฉันคือการค้นหาเอ็นจิ้นเกมแบบโอเพ่นซอร์สที่มีรายละเอียดการใช้งานเต็มรูปแบบเพื่อวัตถุประสงค์ในการเรียนรู้
คำตอบ:
ไม่มันไม่ใช่. คุณอาจได้รับสิทธิ์การใช้งานแหล่งข้อมูลจาก Valve แต่ตัวแหล่งข้อมูลนั้นไม่ใช่โอเพ่นซอร์ส
นอกจากนี้โดยทั่วไปแล้วมันเป็นวิธีที่อันตรายมากในการใช้เครื่องมือที่มีอยู่ทั้งหมดเป็นสื่อการเรียนรู้โดยไม่มีคำแนะนำจากใครบางคนที่มีส่วนร่วมอย่างมากในการพัฒนาเครื่องยนต์
ซอร์สโค้ดเพียงอย่างเดียวบอกให้คุณทราบถึงวิธีการตัดสินใจออกแบบโดยเฉพาะไม่ใช่เหตุผลเบื้องหลังการตัดสินใจส่วนใหญ่ซึ่งมักมีความสำคัญอย่างยิ่งเนื่องจากตัวเลือกมากมายในวิศวกรรมซอฟต์แวร์นั้นมาจากตัวเลือกที่ถูกต้องเท่าเทียมกันโดยทั่วไป คุณต้องเข้าใจบริบทว่าทำไมตัวเลือกถึงดีและถ้าคุณเพียงแค่ดูที่แหล่งกำเนิดของเครื่องยนต์และนกแก้วเทคนิคและสำนวนของพวกเขาคุณก็แทบจะไม่ได้เรียนรู้อะไรที่มีประโยชน์
นอกจากนี้เนื่องจากโค้ดที่ส่งมาเกมไม่ได้ทำให้โค้ดนั้นดี (โดยเฉพาะแหล่งที่มามีแนวโน้มที่จะตัดสินใจออกแบบที่ล้าสมัยไปมากในเรื่อง C ++ และ OO เป็นต้น) มีเรื่องราวสยองขวัญมากมายที่อาศัยอยู่ในฐานรหัสเครื่องยนต์แม้ชื่อ AAA ที่ประสบความสำเร็จมากที่สุด และในฐานะนักปราชญ์ที่น่าประทับใจคุณจะสามารถบอกรหัสที่ดีจากสิ่งที่ไม่ดีได้อย่างไร
ระมัดระวังการใช้ซอร์สโค้ดเป็นแหล่งเรียนรู้และตรวจสอบให้แน่ใจว่าได้จับคู่กับข้อมูลเสริมมากที่สุดเท่าที่จะทำได้
tl; dr: การเรียนรู้วิธีสร้างเอ็นจิ้นมักจะมีประโยชน์กับการสร้างเกมเช่นเดียวกับการเรียนรู้เพื่อสร้างคอมพิวเตอร์และระบบปฏิบัติการของคุณเองตั้งแต่เริ่มต้น หากคุณไม่ใช่ผู้เชี่ยวชาญในสาขานี้คุณอาจไม่ต้องการสร้างเครื่องยนต์ สร้างเกมแทนส่วนเครื่องยนต์มีอยู่แล้ว ต่อมาถ้าไม่มีเอ็นจิ้นที่คุณสามารถเข้าถึงเพื่อให้ตรงกับเกณฑ์สำหรับการออกแบบเกมของคุณคุณสามารถมุ่งเน้นไปที่การสร้างมุมมองที่เฉพาะเจาะจงและนรกมันอาจเป็นประโยชน์ต่อผู้อื่นเช่นกันเนื่องจากคุณกำลังสร้างสิ่งใหม่ ของสิ่งที่ผู้คนลงทุนไปหลายพันชั่วโมงแล้ว
รุ่นยาว: หากคุณต้องการเรียนรู้วิธีการเขียนเอ็นจินอย่ามองไปที่เอ็นจิ้นที่มีอยู่ เรียนรู้แทนส่วนต่าง ๆ (อัลกอริทึม) ที่สร้างเครื่องยนต์ไม่ว่าจะเป็นการเรนเดอร์ฟิสิกส์หรือการค้นหาเส้นทางเป็นต้นเมื่อคุณได้รับความรู้ความเข้าใจในแง่มุมที่เฉพาะเจาะจงคุณอาจต้องการตรวจสอบแหล่งที่มา
ตามปกติคุณไม่ต้องการที่จะเรียนรู้จากแหล่งโดยตรงเว้นแต่จะไม่มีทางเลือกที่ดีกว่า แม้โปรแกรมเมอร์ที่มีประสบการณ์โดยปกติจะไม่ดูแหล่งที่มาของเอ็นจิ้นทั้งหมดเพื่อเรียนรู้จากมัน (ถ้าพวกเขาสามารถช่วยได้) พวกเขามักจะตรวจสอบส่วนที่เฉพาะเจาะจงของมันหรือปรับแต่งส่วนหนึ่งของมัน การพยายามดูแหล่งข้อมูลเพื่อจุดประสงค์ในการเรียนรู้อย่างแท้จริงจะไม่เปิดเผยขั้นตอนและกระบวนการคิดเบื้องหลังรหัสเครื่องยนต์ นั่นก็เหมือนกับการฉีกตึกออกเป็นชิ้น ๆ ในความพยายามที่จะมองเห็นอวัยวะภายในเพื่อเรียนรู้วิธีการสร้าง ในขณะที่ฉันเห็นด้วยกับคำตอบของ Josh ฉันจะก้าวไปอีกขั้นคุณไม่ได้เรียนรู้ "วิธี" ในหลาย ๆ แง่มุม (เว้นแต่คุณจะคุ้นเคยกับสนาม); เช่น ทีมการเขียนโปรแกรมใช้วิธีการอะไร? พวกเขาใช้หลักการอะไรในการใช้งานโค้ด? พวกเขาใช้เครื่องมือและเทคนิคใดในการดีบัก บางคำถามเหล่านี้มีความสำคัญมากกว่ารหัส (สำหรับวัตถุประสงค์ในการเรียนรู้)
หากคุณต้องการที่จะเรียนรู้จากแหล่งที่มามองหาแหล่งที่มีเอกสารที่ดีและมีชุมชนที่แข็งแกร่งสร้างขึ้นรอบ ๆ มัน รหัสการอ่าน (เอ็นจิ้น) แม้ว่าคุณจะเขียนด้วยตัวเองมักจะทำให้เกิดความสับสน