มีแหล่งข้อมูลที่ดี (คู่มือการใช้งานแบบฝึกหัดและอื่น ๆ ) เพื่อเริ่มศึกษารหัสของ Quake 3 เอ็นจิ้นเกินตัวรหัสหรือไม่?
ฉันสนใจมากที่รู้ว่าโครงสร้างสำหรับวัตถุประสงค์ทางการศึกษาและอาจมีการปรับเปลี่ยนบ้าง
มีแหล่งข้อมูลที่ดี (คู่มือการใช้งานแบบฝึกหัดและอื่น ๆ ) เพื่อเริ่มศึกษารหัสของ Quake 3 เอ็นจิ้นเกินตัวรหัสหรือไม่?
ฉันสนใจมากที่รู้ว่าโครงสร้างสำหรับวัตถุประสงค์ทางการศึกษาและอาจมีการปรับเปลี่ยนบ้าง
คำตอบ:
ดังนั้นคุณควรเริ่มต้นด้วยการมองหาที่บทความวิกิพีเดียในid ไฮเทค 3 ซึ่งสามารถเติมเต็มได้ด้วยการสรุปการพูดคุย GDC ของ Brian Hook และของโบราณในบล็อกElement 61 นอกจากนั้นคุณจะต้องสำรวจหาบทเรียนเกี่ยวกับ mod เก่า ๆ ที่คุณสามารถลองและสร้างสิ่งที่เกิดขึ้น
ฉันขอแนะนำให้เริ่มต้นจากการเปิดตัวแหล่งที่มาดั้งเดิมจาก id แทนที่จะเป็น ioquake3 หรืออะไรก็ได้ที่คุณต้องการเพื่อดูบริบทของสิ่งที่เกิดขึ้นจริง ๆ (วิธีจัดการอินพุตและควบคุมภายในเอ็นจิ้น มีการใช้โครงสร้าง ฯลฯ )
ประเด็นสำคัญบางประการที่ช่วยฉันเมื่อฉันทำงานกับมัน:
quake3.exe +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
เพื่อให้เอ็นจิ้นสามารถเรียกใช้เนทีฟโค้ดแทนโค้ด VMสิ่งที่ฉันทำไว้กับเพื่อนร่วมงาน:
โดยส่วนตัวแล้วฉันพบว่าเครื่องยนต์เป็นการผสมผสานที่ยอดเยี่ยมของสิ่งที่ชาญฉลาดที่ทำในรูปแบบที่โง่เง่าทำสิ่งที่โง่ในรูปแบบที่ชาญฉลาดและทำสิ่งที่ชาญฉลาดด้วยวิธีที่ชาญฉลาดจริงๆ มันเป็นตัวอย่างที่ดีของวิธีการมีโมดุลและการออกแบบโครงสร้างที่ดีในโครงการ C ขนาดกลาง
สุดท้ายอย่ารู้สึกแย่ถ้าใช้เวลาสักพักก็จะเคลิ้มไป ฉันอาจต้องใช้เวลาหนึ่งเดือนกว่าจะได้รู้ว่าจะหาสิ่งที่ฉันกำลังมองหาในเครื่องยนต์; หากสิ่งอื่นล้มเหลวให้เริ่มต้นที่แอปพลิเคชั่น init และเพียงแค่เจาะลึกเข้าไปในฟังก์ชั่นโดยแสดงความคิดเห็นด้วยตัวคุณเองว่าเป็นป้ายบอกทาง จอแสดงผลของฉันครอบคลุมอยู่ในสีชมพูโพสต์ - อิทโน้ตด้วยชื่อฟังก์ชันหมายเลขบรรทัดและคำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่พวกเขาทำ
หนังสือมุ่งเน้นไปที่การเขียนโปรแกรม Mod ใน Quake III Arenaจะช่วยให้คุณเข้าใจวิธีการแยกไคลเอนต์และลอจิกเซิร์ฟเวอร์การทำนายผลไคลเอนต์กราฟิกด้านไคลเอนต์ ฯลฯ
อย่างแน่นอน
http://en.wikipedia.org/wiki/Quake_engineเป็นภาพรวมที่ดีว่ามีอะไรบ้าง แต่คุณสามารถดูรายละเอียดสถาปัตยกรรมได้อย่างรวดเร็วผ่านการอ้างอิง
ฉันขอแนะนำหนังสือสองเล่มเกี่ยวกับสถาปัตยกรรมเอ็นจิ้นเกมซึ่งอาจสอดคล้องกับสิ่งที่คุณกำลังมองหามากขึ้น ในขณะที่ไม่เจาะจง Quake พวกเขาเข้าไปในรายละเอียดของการออกแบบเครื่องยนต์และวิ่งขนานไปกับแง่มุมต่าง ๆ ของเครื่องยนต์ Quake: