สถาปัตยกรรมเอนจิ้น Nexus

Nexus ทำงานอย่างไร

ความซับซ้อนแบบแบน

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

Nexus ทำงานต่างออกไป องค์ประกอบพื้นฐานของเกมคืออะตอมที่ใช้สร้างทุกอย่าง การเพิ่มกลไกใหม่ไม่ได้เพิ่มความซับซ้อนทางสถาปัตยกรรม

องค์ประกอบนับล้าน แต่สถาปัตยกรรมไม่ซับซ้อนขึ้น ระบบขยายขนาดได้ - สู่กลไก กฎ และโลกที่ซับซ้อนระดับใดก็ได้

เครือข่ายความหมาย

Nexus เก็บข้อมูลเป็นทริปเปิล (ข้อเท็จจริง) - ข้อความยืนยันง่าย ๆ ในรูปแบบ "ประธาน → คำกริยา → กรรม" ในรูปแบบเดียวกันอธิบายได้ทั้งข้อเท็จจริงเกี่ยวกับโลกและกฎกลไก:

  • แอปเปิ้ล → เป็น → กินได้ (ข้อเท็จจริงเกี่ยวกับโลก)
  • กวาง → เป็น → สัตว์กินพืช (ข้อเท็จจริงเกี่ยวกับโลก)
  • การโจมตี → สร้างความเสียหาย → 6 (กฎกลไก)
  • พิษ → เพิกเฉยเกราะ → ใช่ (การปรับเปลี่ยนกฎ)
  • หญ้า → เติบโต → เมื่อความชื้นสูงกว่าระดับที่กำหนด (ข้อเท็จจริงเกี่ยวกับโลก)
  • องค์กรอาชญากรรม → ควบคุม → ย่านเมือง (ข้อเท็จจริงเกี่ยวกับโลก)

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

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

ตัวแปลผล

ตัวแปลผลประมวลผลทริปเปิลและสรุปผลจากข้อเท็จจริง:

  • แอปเปิ้ล → เป็น → ผลไม้
  • มนุษย์ → กินได้ → ผลไม้
  • สรุป: มนุษย์กินแอปเปิ้ลได้

การสรุปสร้างจากการจับคู่ข้อเท็จจริง ห่วงโซ่อาจยาว นี่คือตัวอย่างที่ซับซ้อนกว่า:

  • ก็อบลิน → เป็น → สิ่งมีชีวิต
  • สิ่งมีชีวิต → มี → พลังชีวิต
  • สรุป: ก็อบลินมีพลังชีวิต
  • การโจมตี → สร้าง → ความเสียหาย
  • ความเสียหาย → ลด → พลังชีวิต
  • สรุป: การโจมตีสามารถทำร้ายก็อบลินได้

เพิ่มพิษที่มีคำกริยาความเสียหาย - มันจะทำงานอัตโนมัติกับทุกสิ่งที่มีพลังชีวิต

ตัวแปลผลทำงานกับคำร้องที่เป็นทางการ ไม่ใช่ภาษาธรรมชาติ

กราฟความรู้

วัตถุและคุณสมบัติของโลกต้องอธิบายได้อย่างยืดหยุ่น โดยไม่ต้องเขียนตายตัว

พื้นฐานคือสิ่งต่าง ๆ: ตัวละคร สิ่งของ สัตว์ องค์กร เรือ พืช ข้อเท็จจริงถูกเชื่อมกับแต่ละสิ่งผ่านคำกริยา

คำกริยาแต่ละตัวแสดงความเชื่อมโยงหนึ่งอย่างหรือคุณสมบัติหนึ่งอย่าง:

  • "เป็น" (การจำแนก: ก็อบลิน → สิ่งมีชีวิต)
  • "มี" (การครอบครอง: สิ่งมีชีวิตมีพลังชีวิต)
  • "ความเสียหาย" (ผลกระทบ: การโจมตีสร้าง 6)
  • "ต้นทุน" (การใช้: การโจมตีใช้ 3 มานา)
  • "การดูดซับ" (การป้องกัน: โล่บล็อก 5)
  • "ความสัมพันธ์" (ความเชื่อมโยง: ก็อบลินเกลียดมนุษย์)

การโจมตีมีคำกริยาความเสียหาย = 6 โล่มีคำกริยาการดูดซับ = 5 เอนจิ้นสรุป: 6 - 5 = 1 ผ่านเข้าพลังชีวิต กลไกเดียวสำหรับทุกแหล่งความเสียหายและทุกการป้องกัน - ดาบ พิษ ไฟ คาถา

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

เพื่อประสิทธิภาพ ใช้การแคช ดัชนี และการปรับรายละเอียดแบบปรับตัว (LOD)

กฎเป็นรูปแบบ

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

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

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

รูปแบบผสมผสานกันได้อย่างอิสระ เกมการ์ดใช้ผลกระทบและการดูดซับ เกมวางแผนใช้การใช้และการสะสม RPG ผสมทุกอย่างเข้าด้วยกัน

เกมใหม่คือสิ่งใหม่และการผสมผสานรูปแบบใหม่

เอเจนต์

สิ่งต่าง ๆ สามารถอธิบายเป็นเอเจนต์ - มีสถานะและกฎพฤติกรรมเป็นของตัวเอง นี่เป็นคุณสมบัติเสริม ศัตรูในเกมการ์ดเลือกการกระทำเอง คนป่าในเกมวางแผนโจมตีเมื่อเงื่อนไขเอื้ออำนวย พ่อค้าใน RPG เดินทางระหว่างเมือง เอเจนต์:

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

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

ขนาดที่ไม่สูญเสียตรรกะ

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

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

เวลาและพื้นที่

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

การปรับมาตราส่วนพื้นที่กำหนดระดับของสิ่งต่าง ๆ และกระบวนการ ที่มาตราส่วนใหญ่ - สภาพอากาศ การอพยพ การเมือง ที่มาตราส่วนท้องถิ่น - สิ่งแต่ละชิ้นและคุณสมบัติ ตรรกะเหตุผลเดียวกันทุกระดับ

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

ผู้เล่นสามารถลงลึกไปในโครงสร้างของโลก ศึกษาสิ่งต่าง ๆ และเดินตามคุณสมบัติ - คล้ายกับการนำทางในระบบอ้างอิง

การก่อร่างโลก

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

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

หลังจากโต้ตอบกับสถานที่แล้ว สถานะของมันจะถูกบันทึกและไม่ถูกคำนวณใหม่อีก

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

เกมออนไลน์

เกมออนไลน์ทำงานบนหลักการเดียวกัน เซิร์ฟเวอร์เก็บข้อมูล กฎ และสิ่งที่ผู้เล่นค้นพบแล้ว

ถ้าผู้เล่นหลายคนอยู่ในพื้นที่เดียวกัน - เซิร์ฟเวอร์รวบรวมสถานะร่วมและซิงโครไนซ์ระหว่างพวกเขา

นอกพื้นที่เกม โลกยังเป็นเพียงศักยภาพ - กฎและแนวโน้ม ไม่มีรายละเอียด

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

สถาปัตยกรรมในฐานะภาษา

ข้อมูล กฎ อินเทอร์เฟซ และพฤติกรรมเอเจนต์ - รูปแบบเดียว สิ่งต่าง ๆ ไม่รู้จักกัน ความเชื่อมโยงเกิดขึ้นอัตโนมัติผ่านคำกริยาร่วม

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

ถ้าสถานการณ์ในเกมสามารถอธิบายเป็นคำพูดได้ - มันทำงานใน Nexus