หน่วย
1. ปัญญาประดิษฐ์เบื้องต้นในการพัฒนาเกม: บทบาท ขอบเขต การตรวจสอบ ลิขสิทธิ์ และจริยธรรม 2. การออกแบบต้นแบบและกลไก: การทำซ้ำอย่างรวดเร็วจากไอเดียไปจนถึงคอร์ที่เล่นได้ 3. ระบบพฤติกรรมและบทสนทนาของ NPC: ปัญญาประดิษฐ์ที่ทำให้ตัวละครมีชีวิต 4. การสร้างเนื้อหาตามขั้นตอน (PCG): ระดับ แผนที่ ภารกิจ และการเล่าเรื่อง 5. การผลิตเนื้อหาและภาพ: แนวคิดศิลปะ 2D/3D และพื้นผิว 6. การผลิตเสียง ดนตรี และเอฟเฟกต์: โลกแห่งเกมที่ได้ยิน 7. การสร้างโค้ดและการรวมกลไก: Unity (C#) และ Unreal (Blueprint/C++) 8. ความสมดุลของเกม การจำลอง และเศรษฐกิจ: เกมที่ยุติธรรมพร้อมตัวเลข 9. การประกันคุณภาพ (QA) การดีบักและการทดสอบอัตโนมัติ 10. ลิขสิทธิ์ ความคิดริเริ่ม ใบอนุญาต และจริยธรรม: เนื้อหาที่เผยแพร่และมีความรับผิดชอบ 11. ขั้นตอนการทำงานแบบครบวงจร การบูรณาการสายการผลิต การกำกับดูแล และการบริการแบบสด
หน่วย 7 / 11

การสร้างโค้ดและการรวมกลไก: Unity (C#) และ Unreal (Blueprint/C++)

กำไร:

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

เกมดังกล่าวเป็นซอฟต์แวร์ ไม่ว่าจะออกแบบมาดีแค่ไหน ก็ยังใช้งานด้วยโค้ดได้ เอ็นจิ้นเกมเป็นโครงสร้างพื้นฐานที่ทำให้เกมทำงานได้: Unity (เอ็นจิ้นที่ใช้กันอย่างแพร่หลายซึ่งมีสคริปต์ใน C#) และ Unreal Engine (เอ็นจิ้นที่ใช้ C++ และพิมพ์เขียวภาษาสคริปต์ภาพ) เป็นสองสิ่งที่พบบ่อยที่สุด AI เป็นหนึ่งในตัวช่วยที่เติบโตเต็มที่ที่สุดในการสร้างโค้ด: ตัวควบคุมผู้เล่น, ระบบสินค้าคงคลัง, เครื่องสถานะ, บันทึก/โหลด, ลอจิกอินเทอร์เฟซ, การดีบักและการปรับโครงสร้างใหม่ (การปรับโครงสร้างโค้ดใหม่โดยไม่ทำลายพฤติกรรมของมัน) แต่โค้ดเกมก็มีข้อผิดพลาดของตัวเอง: ประสิทธิภาพ (อัตราเฟรม), วงจรชีวิตของเครื่องยนต์, ความปลอดภัยของผู้เล่นหลายคน ในหน่วยนี้คุณจะได้เรียนรู้วิธีใช้ AI อย่างปลอดภัยและมีประสิทธิภาพในโค้ดเกม

หลักการสำคัญ: บริบทของกลไกและเวอร์ชัน

หาก AI ไม่รู้ว่ามันเขียนถึงกลไกและเวอร์ชันใด มันจะสร้าง API ที่สับสน ล้าสมัย หรือไม่มีอยู่จริง ดังนั้นให้ระบุบริบทของกลไก เวอร์ชัน ภาษา และสถาปัตยกรรมในทุกโค้ดพร้อมท์ "เขียนการเคลื่อนไหวของผู้เล่นเพื่อ Unity" นั้นอ่อนแอ "Unity 2022.3, C#, ระบบอินพุตใหม่, การเคลื่อนไหวทางฟิสิกส์แบบ Rigidbody" นั้นทรงพลัง ระบุว่าคุณต้องการ Blueprint หรือ C++ ใน Unreal และเวอร์ชันที่คุณใช้อยู่

การไหลของรหัสที่ปลอดภัยทีละขั้นตอน:

  1. ให้บริบท (กลไก เวอร์ชัน ภาษา สถาปัตยกรรมปัจจุบัน ข้อจำกัด)
  2. ต้องการขนาดเล็กและชัดเจน (องค์ประกอบเดียว ไม่ใช่ทั้งระบบ)
  3. อ่านและทำความเข้าใจโค้ด (ทำความเข้าใจว่ามันทำอะไรทีละบรรทัด อย่าใส่โค้ดที่คุณไม่เข้าใจ)
  4. สร้างและทดสอบ (ทำงานบนเครื่องยนต์ โปรไฟล์ — วัดประสิทธิภาพ)
  5. ปรับโครงสร้างใหม่และบูรณาการ (ตรงกับมาตรฐานโครงการ)
เคล็ดลับ: เมื่อขอโค้ดจาก AI ให้พูดว่า "อธิบายพร้อมแสดงความคิดเห็น" เป้าหมายของคุณคือการเข้าใจโค้ด การใส่โค้ด AI ที่คุณไม่เข้าใจลงในโปรเจ็กต์จะสะสมหนี้ที่ไม่สามารถรักษาได้ นอกจากนี้ ขอโค้ดเป็นชิ้นเล็กๆ ที่ทดสอบได้: แทนที่จะใช้ระบบ 500 บรรทัด ส่วนประกอบ 30-50 บรรทัดที่ทำงานที่กำหนดไว้เพียงงานเดียวนั้นง่ายต่อการตรวจสอบและบูรณาการ

กับดักเฉพาะรหัสเกม

ประสิทธิภาพ รหัสเกมรัน 30-60+ ครั้งต่อวินาที AI สามารถใส่การดำเนินการที่มีราคาแพง (การจัดสรรหน่วยความจำ การค้นหา การจัดการสตริง) ลงในลูปการอัปเดตที่ทำงานในแต่ละเฟรม สิ่งนี้จะลดอัตราเฟรม โปรไฟล์รหัสสำคัญด้านประสิทธิภาพและให้ข้อจำกัด AI เช่น "ทำงานบนทุกเฟรม ไม่มีการจัดสรร"

วงจรชีวิตของเครื่องยนต์ บางครั้ง AI อาจสับสนเมื่อมีการเรียกใช้วิธีการพิเศษ เช่น Awake/Start/Update ใน Unity, BeginPlay/Tick ใน Unreal ตรวจจับข้อผิดพลาดวงจรชีวิตโดยการทดสอบ

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

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

หนี้สถาปัตยกรรมและการบำรุงรักษา

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

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

มินิเคสสามอัน

กรณีที่ 1 — บริบทการเผยแพร่ป้องกันข้อผิดพลาด โปรแกรมเมอร์คนแรกพูดว่า "เขียนรายการสินค้าคงคลังสำหรับ Unity"; รหัสใช้ API เก่า แต่ไม่ได้คอมไพล์ จากนั้นจึงให้บริบท "Unity 2022.3, C#, based on ScriptableObject"; โค้ดรวบรวมครั้งแรกและเหมาะสมกับโปรเจ็กต์ บริบทช่วยประหยัดเวลาในการแก้ไขจุดบกพร่องได้หนึ่งชั่วโมง

กรณีที่ 2 — กับดักด้านประสิทธิภาพ ในเกมหนึ่งเฟรมเรตต่ำ เมื่อทำโปรไฟล์จะเห็นว่าวิธีการอัปเดตที่ AI สร้างขึ้นนั้นได้จัดสรรรายการใหม่ในแต่ละเฟรมและค้นหาศัตรู แก้ไขโค้ดที่มีการอ้างอิงแคชและการอัปเดตที่ไม่ใช่กำลังสอง โดยเพิ่มอัตราเฟรมจาก 42 เป็น 60

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

เทมเพลตที่สามารถคัดลอกได้สี่แบบ

1) คำขอรหัสพร้อมบริบท:

เครื่องยนต์: เอกภาพ 2022.3 ภาษา: C# สถาปัตยกรรม: [เช่น ตามส่วนประกอบ] ข้อ จำกัด : การจัดสรรในการอัปเดต; สามารถอ่านและแสดงความคิดเห็นได้ งาน: [องค์ประกอบเดียวที่กำหนดไว้ เช่น "ตัวควบคุมอักขระกระโดดสองครั้ง"] ตรวจสอบว่าทุก API ที่คุณใช้อยู่ในเวอร์ชันนี้ หากคุณไม่แน่ใจโปรดแจ้งให้เราทราบ

2) คำอธิบาย / ทบทวนรหัส:

อธิบายโค้ดต่อไปนี้ทีละบรรทัดและเขียน (1) มันทำอะไรได้บ้าง (2) ปัญหาด้านประสิทธิภาพที่เป็นไปได้ (การจัดสรรต่อเฟรม การค้นหาที่มีราคาแพง) (3) ข้อบกพร่องที่เป็นไปได้ (4) ข้อเสนอแนะสำหรับการปรับปรุง รหัส: [วาง]

3) การตรวจสอบความปลอดภัยของผู้เล่นหลายคน:

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

4) รีแฟกเตอร์ที่เน้นโปรไฟล์ประสิทธิภาพ:

รหัสนี้ทำงานในทุกเฟรมและลดอัตราเฟรม: [รหัส] ค้นหาการจัดสรร การค้นหาที่มีราคาแพง และการดำเนินการทีละเฟรมโดยไม่จำเป็น ปรับให้เหมาะสมโดยไม่ทำลายพฤติกรรมด้วยแคชและการอัปเดตที่น้อยลง อธิบายการเปลี่ยนแปลง

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

พรอมต์ที่อ่อนแอ:

เขียนระบบบันทึกใน Unity

ไม่มีเวอร์ชัน รูปแบบ ขอบเขตข้อมูล ความปลอดภัย ผลลัพธ์ที่ได้คือเรื่องทั่วไปและมีความเสี่ยง

พรอมต์อันทรงพลัง:

เครื่องยนต์: Unity 2022.3, C# งาน: ระบบบันทึก/โหลดที่ใช้ JSON สิ่งที่ต้องบันทึกไว้: ตำแหน่งของผู้เล่น, สินค้าคงคลัง, ความคืบหน้า ข้อจำกัด: รับการจัดการข้อผิดพลาดจากความเสียหายของไฟล์ เพิ่มการตรวจสอบความสมบูรณ์ (แฮช) ให้กับไฟล์บันทึกเพื่อป้องกันการโกงโดยผู้เล่นเปลี่ยนไฟล์ได้อย่างง่ายดาย ใส่ความคิดเห็นโค้ดและตรวจสอบว่า API แต่ละรายการเป็นเวอร์ชันนี้

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

ตารางบริบทของกลไก/ภาษา

เครื่องยนต์

ภาษา

สิ่งที่คุณต้องมอบให้กับ AI

ความสนใจเป็นพิเศษ

ความสามัคคี

ค#

เวอร์ชัน ระบบอินพุต/ฟิสิกส์

อัปเดตการจัดสรร วงจรการใช้งาน

ไม่จริง

พิมพ์เขียว

เวอร์ชัน บริบทของโหนด

ขีดจำกัดลอจิกภาพ

ไม่จริง

ซี++

เวอร์ชัน โครงสร้างโมดูล

หน่วยความจำ, GC, มาโคร

ผู้เล่นหลายคน

ทั้งสองอย่าง

โมเดลเครือข่าย

ผู้นำเสนอเผด็จการ

ข้อผิดพลาดทั่วไป

  • ไม่ระบุเครื่องยนต์/รุ่น มันมาจาก API ที่ล้าสมัยหรือสร้างขึ้น
  • เชื่อถือโค้ดโดยไม่เข้าใจ หนี้ที่ไม่สามารถรักษาได้สะสม
  • ไม่ใช่การวัดประสิทธิภาพ การจัดสรรแบบเฟรมต่อเฟรมจะลดอัตราเฟรมโดยไม่แจ้งให้ทราบ
  • ไว้วางใจลูกค้า. มีช่องโหว่ในการโกงในโหมดผู้เล่นหลายคน
  • ต้องการทั้งระบบพร้อมกัน ชิ้นเล็กที่ทดสอบได้จะปลอดภัยกว่า

โดยสรุป

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

งานสมัคร

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

รายการตรวจสอบ

  • [ ] ฉันให้บริบทของกลไก เวอร์ชัน ภาษา และสถาปัตยกรรม
  • [ ] ฉันอ่านและเข้าใจโค้ดแล้ว ฉันต้องการมันพร้อมคำอธิบาย
  • [ ] ฉันรวบรวมและทดสอบในเครื่องยนต์และวัดประสิทธิภาพ
  • [ ] ฉันได้ตรวจสอบความปลอดภัยในเครือข่าย/ประหยัด/รหัสบันทึก
  • [ ] ฉันใช้ข้อมูลความปลอดภัยเพื่อปกป้องเกมของตัวเองเท่านั้น