ซอร์สโค้ดของ Source Engine พร้อมใช้งานหรือไม่


9

ซอร์สโค้ด C ++ แบบเต็มของ Source Engine พร้อมใช้งานหรือไม่

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

คำตอบ:


35

ไม่มันไม่ใช่. คุณอาจได้รับสิทธิ์การใช้งานแหล่งข้อมูลจาก Valve แต่ตัวแหล่งข้อมูลนั้นไม่ใช่โอเพ่นซอร์ส


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

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

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

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


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

@BDillan แน่นอนบางคนเรียนรู้ว่าวิธีที่ยาก .. แม้ว่า บริษัท จะจ้างคุณทำงานกับกองใหญ่ของรหัสเครื่องยนต์ที่คุณไม่เข้าใจและไม่มีเวลาและจบลงแค่แก้จุดบกพร่อง
Teodron

โปรดทราบว่าซอฟต์แวร์ ID ได้เปิดให้ใช้งาน
เอ็นจิ้

1
ในฐานะที่เป็นสัมผัสกันเล็กน้อยดูที่รหัสของเครื่องมือทางการค้าสามารถให้ความรู้ได้มากหากคุณมีมืออาชีพอธิบายความแตกต่างระหว่าง "รหัสนี้ดี" และ "รหัสนี้เป็นแฮ็คที่น่าเกลียดซึ่งจำเป็นในยุคเก่า วัน "; ตัวอย่างเช่น -> fabiensanglard.net
Shish

5

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

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

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

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

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