คำถามติดแท็ก behavior

1
ตัวอย่างรหัสพฤติกรรมต้นไม้
http://altdevblogaday.org/2011/02/24/introduction-to-behavior-trees/ เห็นได้ชัดว่าบทความที่น่าสนใจที่สุดที่ฉันพบในเว็บไซต์นี้ คุณคิดยังไงกับเรื่องนี้? มันไม่มีตัวอย่างโค้ดคุณไม่รู้หรือไม่? ฉันยังอ่านว่าสภาพเครื่องจักรไม่ยืดหยุ่นมากเมื่อเทียบกับแผนผังพฤติกรรม ... ด้านบนฉันไม่แน่ใจว่ามีการเชื่อมโยงระหว่างเครื่องรัฐและรูปแบบของรัฐจริงหรือไม่?
23 ai  state  tree  behavior 

1
ต้นไม้พฤติกรรม :: การกระทำที่ใช้เวลานานกว่าหนึ่งขีด
จากสิ่งที่ฉันเข้าใจในต้นไม้พฤติกรรมพฤติกรรมแต่ละอย่างควรเป็นเป้าหมายสั้น ๆ ที่สามารถทำได้ในการทำซ้ำสองสามครั้ง ตัวอย่างเช่นด้านล่างเป็นรูปภาพของแผนผังพฤติกรรม: ตอนนี้ให้เราสมมติว่าพฤติกรรมDrive To Enemyใช้เวลามากกว่าสองสามซ้ำในต้นไม้ ดังนั้นในการขับผ่านไปยังศัตรูแต่ละครั้งจะถูกเรียกเพราะตอนนี้อยู่ในสถานะ ใช้งาน ปัญหาคือฉันต้องการเรียกEvade Enemyหาก Enemy อยู่ใกล้ ๆ และการพิจารณาว่าDrive To Enemyมักถูกเรียกว่าฉันไม่เคยได้รับโอกาสที่จะเรียกEvade Enemy ( ควรเรียกว่าหลีกเลี่ยงศัตรู ) ฉันควรสำรวจ Tree EACHผ่านไม่ว่า Action จะทำงานอะไร ฉันจะทำในสิ่งที่ถูกต้องหรือไม่ วิธีที่เหมาะสมในการจัดการพฤติกรรมดังกล่าวคืออะไร? ตอนแรกถูกถามใน Stackoverflow ความคิดที่นี่น่าจะเหมาะกว่าที่จะถามคำถามนี้
19 ai  game-loop  behavior 

2
พฤติกรรมการใช้งานในเกมผจญภัยง่าย ๆ
ฉันสนุกกับตัวเองเมื่อไม่นานมานี้โดยการเขียนโปรแกรมเกมผจญภัยที่ใช้ข้อความเป็นหลักและฉันก็ติดอยู่กับสิ่งที่ดูเหมือนว่าจะเป็นปัญหาการออกแบบที่เรียบง่ายมาก เพื่อให้ภาพรวมคร่าวๆ: เกมแบ่งย่อยเป็นRoomวัตถุ แต่ละRoomรายการมีEntityวัตถุที่อยู่ในห้องนั้น แต่ละคนEntityมีสถานะเหตุการณ์ซึ่งเป็นแผนที่แบบสตริง -> บูลีนอย่างง่ายและรายการการกระทำซึ่งเป็นแผนที่แบบสตริง -> ฟังก์ชั่น [action] [entity]ท่านผู้ใช้แบบฟอร์มที่ใช้ Roomใช้ชื่อนิติบุคคลที่จะกลับมาที่เหมาะสมEntityวัตถุซึ่งจากนั้นจะใช้ชื่อการกระทำที่จะหาฟังก์ชั่นที่ถูกต้องและดำเนินการมัน ในการสร้างคำอธิบายห้องพักแต่ละวัตถุแสดงสตริงคำอธิบายของตัวเองแล้วผนวกสตริงคำอธิบายของทุกRoom รายละเอียดอาจเปลี่ยนแปลงขึ้นอยู่กับสถานะของมัน ( "ประตูเปิด", "ประตูถูกปิด", "ประตูถูกล็อค" ฯลฯ )EntityEntity นี่คือปัญหา: การใช้วิธีนี้จำนวนฟังก์ชั่นคำอธิบายและการกระทำที่ฉันต้องนำมาใช้อย่างรวดเร็ว ห้องเริ่มต้นของฉันคนเดียวมีประมาณ 20 หน้าที่ระหว่าง 5 เอนทิตี ฉันสามารถรวมการกระทำทั้งหมดไว้ในฟังก์ชั่นเดียวและถ้า - อื่น / สลับไปมาได้ แต่ก็ยังมีสองฟังก์ชั่นต่อเอนทิตี ฉันยังสามารถสร้างEntityคลาสย่อยเฉพาะสำหรับวัตถุทั่วไป / ทั่วไปเช่นประตูและกุญแจได้ แก้ไข 1: ตามที่ร้องขอตัวอย่างรหัสเทียมของฟังก์ชันการกระทำเหล่านี้ string outsideDungeonBushesSearch(currentRoom, thisEntity, player) if thisEntity["is_searched"] then return "There was nothing …

3
ฉันจะจัดการ AI ที่ซับซ้อนได้อย่างไร [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ในอดีตฉันใช้ระบบง่าย ๆ เช่น finite state machine (FSMs) และ FSM แบบลำดับชั้นเพื่อควบคุมพฤติกรรม AI รูปแบบนี้แตกออกอย่างรวดเร็วหรือระบบที่ซับซ้อนใด ๆ ผมเคยได้ยินเกี่ยวกับต้นไม้พฤติกรรม พวกเขาดูเหมือนขั้นตอนต่อไปที่ชัดเจน แต่ฉันยังไม่เห็นการใช้งานจริงหรือลองใช้งานเลย รูปแบบอื่นใดที่สามารถทำให้พฤติกรรม AI ที่ซับซ้อนสามารถจัดการได้

1
การออกแบบตามส่วนประกอบ / เอนทิตี + พฤติกรรมต้นไม้ => วิธีการรวม?
สำหรับโครงการปัจจุบันของฉันฉันดำเนินการองค์ประกอบระบบ / นิติบุคคลตามพื้นต่อไปมากที่สุดของการปฏิบัติที่ดีที่สุดที่มีอยู่ในนี้พื้นที่ค่อนข้างไม่ได้กำหนด ดังนั้นฉันจึงได้ (ขยายออกไปเล็กน้อย) เอนทิตีซึ่งโดยทั่วไปแล้วจะเป็นintID, ชื่อที่มนุษย์อ่านได้, std::mapของคอมโพเนนต์และlong"ตัวบ่งชี้ประเภท" ซึ่งใช้เพื่อแสดงองค์ประกอบที่มีอยู่ (ฉันมีพลังสองenumสำหรับองค์ประกอบทั้งหมด ประเภทและเมื่อใดก็ตามที่มีการเพิ่มองค์ประกอบลงในเอนทิตีฉันจะแก้ไขความยาวนั้นโดยอัตโนมัติผ่านการดำเนินการระดับบิตเปรียบเทียบคำตอบนี้ ) จากนั้นมีส่วนประกอบซึ่งค่อนข้างง่าย: intID enumเป็นประเภทส่วนประกอบตัวชี้ Entity หลักและstd::mapคุณสมบัติทั้งหมดที่มีอยู่ในคอมโพเนนต์นี้ ในที่สุดระบบ / ผู้จัดการที่จัดการกับการประมวลผลเชิงตรรกะ พวกเขาตรวจสอบก่อนว่า Entity ที่ประมวลผลในปัจจุบันมีการจับคู่long"type indicator" = ส่วนประกอบที่จำเป็นทั้งหมดสำหรับระบบนั้นมีอยู่หรือไม่ จากนั้นจะเข้าถึงคุณสมบัติบางอย่างถ้าจำเป็นและเรียกใช้ฟังก์ชันบางอย่างโดยตรงในองค์ประกอบที่เกี่ยวข้องหรือส่งข้อความบางอย่าง (ผ่านตัวแจกจ่ายข้อความ) Bottom-line:จนกระทั่งถึงที่นี่เป็นส่วนประกอบที่ขับเคลื่อนด้วยเหตุการณ์ / ระบบเอนทิตีที่เป็นมาตรฐานมากกว่ารวมกับวิธีการที่ขับเคลื่อนด้วยข้อมูล (เปรียบเทียบส่วนประกอบไม่ได้มีตัวแปรข้อมูลที่มีรหัสตายตัว แต่เป็นแผนที่ทั่วไปแทน (บางส่วน) / archetypes ของส่วนประกอบจะถูกอ่านจากไฟล์ที่มีตัวเลือกในการเพิ่มข้อมูลเพิ่มเติมซึ่งไม่ได้เป็นส่วนหนึ่งของรหัสส่วนประกอบจริง ตอนนี้ฉันอยากจะแนะนำBehavior Trees (อิงจากAiGameDev BTSK ) ในโครงการนั้น แต่ฉันไม่แน่ใจว่าควรเชื่อมโยงกับส่วนประกอบที่มีอยู่แล้วหรือไม่หรือจะรวมการออกแบบเหล่านั้นเข้าด้วยกันอย่างไร แนวคิด / คะแนน / คำถามที่เกี่ยวข้องหลายประการอยู่ในใจ: BT …

4
มีการใช้ BDD (Behavior Driven Development) ในเกมหรือไม่
ฉันอ่านเกี่ยวกับ BDD - การพัฒนาพฤติกรรมขับเคลื่อนมาระยะหนึ่งแล้วและฉันคิดว่ามันง่ายและมีประโยชน์ในการแปลงคุณสมบัติให้เป็นรหัส ผู้ใช้ BDD มักจะเรียกมันว่า TDD ถูกต้องแล้ว BDD เป็นเครื่องมือสำหรับการออกแบบซอฟต์แวร์จากภายนอกสู่ภายในจากค่า bussiness (หรือค่าการเล่นเกม) ไปยังรหัส แดนเหนือแนะนำ BDD คุณรู้จักแหล่งข้อมูลเกี่ยวกับ BDD และเกมอื่นนอกเหนือจากนี้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.