นี่อาจเป็นคำถามที่ไม่สำคัญ แต่ฉันมีปัญหาในการเข้าใจสิ่งนี้ จะขอบคุณมากสำหรับความช่วยเหลือของคุณ
ในการพัฒนาเกมโดยใช้การออกแบบเชิงวัตถุฉันต้องการเข้าใจว่าตัวแทน AI เข้าถึงข้อมูลที่พวกเขาต้องการจากโลกของเกมเพื่อที่จะดำเนินการได้อย่างไร
ดังที่เราทุกคนรู้ว่าในเกมตัวแทน AI มักจะต้อง 'รับรู้สภาพแวดล้อม' และปฏิบัติตามสิ่งที่เกิดขึ้นรอบตัวพวกเขา ตัวอย่างเช่นตัวแทนอาจถูกโปรแกรมให้ไล่ล่าผู้เล่นหากเขา / เธอเข้าใกล้มากพอหลีกเลี่ยงสิ่งกีดขวางในขณะเคลื่อนที่ (โดยใช้พฤติกรรมการหลบหลีกการหมุน)
ปัญหาของฉันคือฉันไม่แน่ใจว่าจะทำอย่างไร ตัวแทน AI จะเข้าถึงข้อมูลที่ต้องการเกี่ยวกับโลกของเกมได้อย่างไร
แนวทางหนึ่งที่เป็นไปได้คือเอเจนต์ร้องขอข้อมูลที่ต้องการจากโลกของเกมโดยตรง
มีคลาสที่เรียกว่า GameWorld มันจัดการตรรกะของเกมที่สำคัญ (วนรอบเกมการตรวจจับการชน ฯลฯ ) และยังมีการอ้างอิงถึงเอนทิตีทั้งหมดในเกม
ฉันสามารถทำให้คลาสนี้เป็นซิงเกิล เมื่อตัวแทนต้องการข้อมูลจากโลกของเกมมันก็จะได้รับโดยตรงจากอินสแตนซ์ GameWorld
ตัวอย่างเช่นตัวแทนอาจถูกตั้งโปรแกรมให้Seek
ผู้เล่นเมื่อเขา / เธอปิด ในการทำสิ่งนี้ตัวแทนจะต้องได้ตำแหน่งของผู้เล่น GameWorld.instance().getPlayerPosition()
ดังนั้นมันก็สามารถขอได้โดยตรง:
ตัวแทนยังสามารถรับรายการเอนทิตีทั้งหมดในเกมและวิเคราะห์ตามความต้องการ (เพื่อค้นหาว่าเอนทิตีใกล้เคียงหรืออะไรอย่างอื่น): GameWorld.instance().getEntityList()
นี่เป็นวิธีที่ง่ายที่สุด: ตัวแทนติดต่อชั้น GameWorld โดยตรงและรับข้อมูลที่ต้องการ อย่างไรก็ตามนี่เป็นวิธีเดียวที่ฉันรู้ มีดีกว่าไหม
นักพัฒนาเกมที่มีประสบการณ์จะออกแบบสิ่งนี้ได้อย่างไร "รับรายการของเอนทิตีทั้งหมดและมองหาสิ่งที่คุณต้องการ" ไร้เดียงสาหรือไม่? มีวิธีการและกลไกใดบ้างที่อนุญาตให้ตัวแทน AI เข้าถึงข้อมูลที่ต้องการเพื่อดำเนินการ