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

การออกแบบและ / หรือตรรกะของเอนทิตีในเกมตัดสินใจเกี่ยวกับพฤติกรรมของมัน

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

3
ฉันจะคำนวณเส้นทางสำหรับวัตถุที่มีความเร่ง จำกัด ได้อย่างไร
ตัวอย่างเช่นสมมติว่าฉันมีรถยนต์และรถยนต์มีรัศมีวงเลี้ยวต่ำสุดโดยเฉพาะและฉันต้องการขับรถคันนี้จากจุดหนึ่งไปยังอีกจุดหนึ่ง แต่รถไม่ได้หันหน้าไปทางจุด b ฉันจะคำนวณเส้นทางไปยังจุด b ได้อย่างไร ความสามารถในการระบุทิศทางที่จุด b ก็จะเป็นเรื่องที่ดีด้วย (พูดว่าคุณต้องการขับรถไปที่ถนนรถแล่นแล้วไปที่โรงรถของคุณ - มันไม่ค่อยดีนักถ้าคุณไปถึงถนนรถแล่นด้วยการขับรถบนสนามหญ้า และกำลังหันไปด้านข้าง :) ตัวชี้ไปยังเอกสารประกอบ (หรือแม้แต่ชื่อ) น่าจะดีอย่างสมบูรณ์ - ฉันมีปัญหาในการค้นหาอะไรเลย ในความพยายามของฉันพวกเขาทำงานในกรณีง่าย ๆ แต่ล้มเหลวอย่างน่าสังเวชในสถานการณ์เช่นเมื่อจุด b อยู่ใกล้กับรัศมีวงเลี้ยวต่ำกว่า ตัวอย่างเช่นคุณจะกำหนดเส้นทางที่คล้ายกับสิ่งนี้ได้อย่างไร (เส้นทางตัวหนา): แก้ไข: ในปัญหาที่แท้จริงของฉันมีข้อ จำกัด เส้นทางง่าย ๆ แต่ฉันมีอัลกอริธึม A * ที่ใช้งานได้ แต่มันช่วยให้สิ่งต่าง ๆ สามารถเปลี่ยนแปลงหัวเรื่องได้ทันที เล็กน้อยเมื่อพวกเขาไปถึงจุดเปลี่ยน

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

2
เส้นทาง“ เส้นสายตา” ข้ามตาข่ายนำทาง
ฉันต้องการคำนวณสายตาในตาข่ายนำทาง พิจารณาภาพด้านล่างเส้นสีเหลืองเป็นผลลัพธ์ของ A * เท่านั้นและเส้นสีแดงเป็นผลลัพธ์ของอัลกอริธึมที่เห็น "ใช้เส้นสีเหลืองเป็นอินพุตตอนนี้หน่วยสามารถย้ายได้โดยตรงโดยไม่ต้อง" ซิกแซก " อัลกอริทึมในการคำนวณ "เส้นสายตา" คืออะไร?

3
วิธีการพิจารณาแรงโน้มถ่วงเมื่อย้าย AI
ฉันกำลังสร้างเกม 2D ขณะนี้มีเฮลิคอปเตอร์ที่บินอยู่รอบ ๆ ซึ่งควบคุมโดยผู้เล่น มันถูกควบคุมโดยใช้ปุ่มลูกศร: ขึ้นซ้ายและขวา มันความเร็วตามแกน Y คือdyและความเร็วพร้อมแกน x dxคือ ฟิสิกส์เป็นดังนี้: เมื่อใดก็ตามที่ขึ้นไม่ได้กด , dyเร่งในการเร่งความเร็วอย่างต่อเนื่องไปเรื่อย ๆต่อลง (แรงโน้มถ่วง) dxยังคงอยู่ในค่าปัจจุบัน เมื่อUP กด , dyเร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง 4 (ขึ้นจนกว่าจะถึงความเร็ว 4) dxยังคงอยู่ในค่าปัจจุบัน เมื่อซ้ายกด , dxเร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง -4 เมื่อขวากด , DX เร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง 4 (เมื่อกดซ้ายหรือขวาและไม่กดขึ้นพร้อมกันดังที่ฉันพูด: dyยิ่งเล็กลงเรื่อย ๆ เพราะแรงโน้มถ่วงส่งผลต่อเฮลิคอปเตอร์) ทั้งหมดนี้ทำให้เฮลิคอปเตอร์มักตามโค้งในอากาศมากกว่าเป็นเส้นตรง นี่สร้างฟิสิกส์ที่ดูเหมือนจริงมาก คำถามของฉันคือ: เฮลิคอปเตอร์ฝ่ายตรงข้าม, AI ควรย้ายโดยใช้ระบบฟิสิกส์เดียวกัน ให้บอกว่า …
9 2d  physics  ai 

2
ติดตามเส้นทางในแบบเรียบ
ขณะนี้ฉันกำลังสร้างเกมป้องกันหอคอย 2d ที่มีช่องทางเคลื่อนที่ที่กำหนดไว้ล่วงหน้าซึ่งศัตรูติดตาม (เช่นหอคอยไม่สามารถบล็อกเส้นทางและการค้นหาเส้นทางไม่ใช่ปัญหาที่ฉันพยายามแก้ไข) ฉันพยายามคิดว่าจะให้หน่วยตามช่องทางนี้อย่างราบรื่นได้อย่างไร ฉันมีแนวคิดคร่าวๆสองข้อเกี่ยวกับวิธีการทำเช่นนี้ แต่ฉันชอบที่จะป้อนข้อมูลบางอย่างซึ่งน่าจะง่ายต่อการใช้ / เทคนิคมาตรฐานมากขึ้น หรือแน่นอนถ้าฉันมีวิธีที่แตกต่างกันโดยสิ้นเชิงซึ่งฉันไม่คิดว่าฉันจะรักที่จะเรียนรู้เกี่ยวกับสิ่งนั้นเช่นกัน จุดอ้างอิง: ความคิดแรกของฉันคือการกำหนดเส้นทางเป็นชุดของจุดอ้างอิงแบบตายตัว หน่วยจะใช้อัลกอริทึมการหมุนแบบ "ค้นหา" ขั้นพื้นฐาน (เช่นอันนี้ ) เพื่อย้ายไปยังแต่ละจุดตามเส้นทางในเส้นทางที่ต่อเนื่องกัน อย่างไรก็ตามฉันสงสัยว่ามันอาจเป็นการยากที่จะป้องกันไม่ให้หน่วยเบี่ยงเบนไปจากเลนที่ฉันต้องการให้พวกเขาติดตาม ฉันสงสัยว่าการไม่สามารถเลี้ยวอย่างรุนแรงพออาจทำให้พวกเขา "เหิน" ออกจากเลนที่ต้องการหรือไม่ ฉันคิดว่าฉันอาจสามารถป้องกันได้โดยอนุญาตให้ใช้กำลังบังคับที่ค่อนข้างแรง Bezier Curves: วิธีที่สองที่ฉันพิจารณาคือกำหนดเส้นทางด้วยเส้นโค้ง bezier และในแต่ละขั้นตอนจะคำนวณจุดตามเส้นโค้งด้วย (dt * speed) ห่างจากตำแหน่งปัจจุบันของหน่วย ฉันสงสัยว่าเทคนิคนี้จะทำให้การกำหนดเส้นทางที่หน่วยจะปฏิบัติได้ง่ายขึ้น แต่ฉันไม่รู้ว่าจะดำเนินการอย่างไร ข้อเสนอแนะใด ๆ นอกจากนี้ฉันไม่ต้องการเปลี่ยนคำตอบของทุกคน แต่หน่วยต่างๆจะต้องสามารถเดินทางด้วยความเร็วคงที่ตลอดเส้นทาง นอกจากนี้ฉันกำลังเขียนโปรแกรมเกมนี้ในไพ ธ อนโดยใช้ pyglet framework หากมีคำถามเกี่ยวกับคำถามที่ไม่ชัดเจนโปรดแจ้งให้เราทราบ แก้ไข: นอกจากนี้สำหรับสิ่งที่คุ้มค่าผมเรียงลำดับของการพยายามที่จะทำซ้ำพฤติกรรมการเคลื่อนไหวของศัตรูในราชอาณาจักร Rush

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

2
การประมาณค่าใช้จ่ายในระบบ GOAP
ฉันกำลังพัฒนาระบบ GOAP ใน Java คำอธิบายของ GOAP สามารถพบได้ที่http://web.media.mit.edu/~jorkin/goap.html โดยพื้นฐานแล้วมันใช้ A * เพื่อพล็อตระหว่างการกระทำที่เปลี่ยนแปลงสถานะโลก เพื่อให้โอกาสที่ยุติธรรมสำหรับการกระทำและเป้าหมายทั้งหมดที่จะดำเนินการฉันใช้ฟังก์ชันการวิเคราะห์พฤติกรรมเพื่อประเมินค่าใช้จ่ายในการทำบางสิ่งบางอย่าง วิธีที่ดีที่สุดในการประเมินค่าใช้จ่ายนี้เพื่อให้สามารถเปรียบเทียบกับค่าใช้จ่ายอื่น ๆ ทั้งหมดคืออะไร ยกตัวอย่างเช่นการประเมินค่าใช้จ่ายในการวิ่งหนีจากศัตรูเมื่อเทียบกับการโจมตี - วิธีการคำนวณต้นทุนควรเปรียบเทียบได้อย่างไร
9 java  ai  path-finding 

2
การออกแบบ Snake AI
ฉันยังใหม่กับ gamedev stackechange นี้ แต่เคยใช้เว็บไซต์คณิตศาสตร์และ cs มาก่อน ดังนั้นฉันจึงอยู่ในการแข่งขันเพื่อสร้าง AI สำหรับงูที่จะแข่งขันกับงูอีกสี่ตัวในรอบ 5 นาทีโดยมีกติกาเหมือนกับเกมงู Nokia แบบดั้งเดิมยกเว้นว่ามีงูห้าตัวบอร์ด 30x30 และมี จำนวนของอุปสรรคเล็ก ๆ บนสนาม เช่นเดียวกับเกมของ Nokia งูของคุณจะเติบโตขึ้นเมื่อคุณไปถึงผลไม้และหากคุณชนกับตัวเองงูอีกตัวหรือกำแพงที่คุณตาย เกมทำงานด้วยความล่าช้า 30ms ระหว่างการเคลื่อนไหวและเซิร์ฟเวอร์จะส่งสถานะเกมใหม่ทุก ๆ 50ms ซึ่งรหัสจะต้องวิเคราะห์และสิ่งที่ไม่และเอาท์พุทย้ายถัดไป ผู้ชนะคืองูที่ยาวที่สุดในทุกจุดของเกม เบรกเกอร์เน็คไทจะตัดสินโดยการฆ่า จนถึงตอนนี้สิ่งที่ฉันทำคือการใช้การค้นหากราฟ A * จากงูแต่ละตัวเพื่อตรวจสอบว่างูของฉันใกล้เคียงกับแอปเปิ้ลหรือไม่และถ้าเป็นก็จะไปที่แอปเปิ้ล ไม่เช่นนั้นฉันก็สร้างอัลกอริธึมเล็กน้อยเพื่อกำหนดพื้นที่ว่างเปล่าของกระดานซึ่งงูของฉันไปเพื่อคาดการณ์แอปเปิ้ลต่อไป นอกเหนือจากนี้ฉันมีการตรวจสอบความสามารถในการเอาตัวรอดเล็ก ๆ น้อย ๆ เพื่อให้แน่ใจว่างูของฉันไม่ได้เดินเข้าไปในกับดักที่ไม่สามารถออกไปได้และถ้ามันติดอยู่ฉันก็มีบางอย่างที่จะให้โอกาสที่ดีกว่า ... อย่างไรก็ตามฉันได้ทดสอบงูของฉันบนเซิร์ฟเวอร์ทดสอบและมันก็ค่อนข้างดี โดยทั่วไปแล้วกลยุทธ์ของฉันจะให้แอปเปิ้ลเมื่อมันเป็นสิ่งที่แน่นอนและหาพื้นที่เมื่อมันไม่ทำให้มันเติบโตเร็วกว่างูชนิดอื่น ๆ (งูบางตัวทำสิ่งที่คล้ายกัน แต่มักจะไปตรงกลางหรือมุม) บางครั้งมันชนะ เกมทดลองใช้งานเหล่านี้ แต่บ่อยกว่าไม่แพ้งูตัวเดียวที่ดูเหมือนจะมีความสามารถในการเอาตัวรอดได้ (งูของฉันเติบโตเร็วขึ้น …
9 ai  snake 

1
แอ็คชั่นที่มุ่งเน้น AI: การหลีกเลี่ยงอัลกอริทึมใช้เวลานาน
Evasion กระบวนการหลบหลีกเป็นสิ่งที่ตรงกันข้ามกับการไล่ล่า แทนที่จะพยายามลดระยะทางไปยังเป้าหมายเราพยายามที่จะเพิ่มมัน ใช้เวลานานในขณะเดียวกันก็หลบเลี่ยงวัตถุหลายอย่างพร้อมกัน ฉันใช้ BFS ที่นี่ เพื่อให้เร็วขึ้นฉันควรใช้อัลกอริทึมอย่างไร

1
การกำหนดเป้าหมายยานพาหนะด้วยการเคลื่อนไหวที่ซับซ้อน?
การกำหนดเป้าหมายของยานพาหนะที่มีความเร็วคงที่รู้จักกันเป็นเรื่องง่ายและมีการประกันการชนกัน (ดูทำนายตำแหน่งของศัตรูเพื่อให้มีวัตถุนำไปสู่เป้าหมาย , ค้นหาจุดที่ 2 วัตถุใน 2D ประชุม, รู้ (คงที่) ความเร็วและความลาดชัน ) AI ที่ไม่แน่นอนสามารถสร้างแบบจำลองโดยการเพิ่มปัจจัยข้อผิดพลาดเล็ก ๆ แต่คนเราจะไปกำหนดเป้าหมายยานพาหนะที่มีการเคลื่อนไหวที่ซับซ้อนได้อย่างไร บางทีมันอาจหลีกเลี่ยง AI หรือวัตถุเกมอื่น ฉันกำลังคิดเกี่ยวกับวิธีที่ฉันทำด้วยตัวเองใน FPS (ซึ่งกระสุนมีความเร็ว จำกัด ) และคิดว่าอาจต้องมีอย่างน้อยสองโหมดการกำหนดเป้าหมายตามการเคลื่อนไหวของเป้าหมายในวินาทีก่อนหน้า: ถ้าใกล้เชิงเส้น (เร่งความเร็วสูงสุดในช่วงที่กำหนด) กับโมเดลเชิงเส้น หากมีความผิดปกติอย่างมาก (อาจใช้กล่องขนาดขอบเขตของตำแหน่งล่าสุดหรือไม่) ให้กำหนดเป้าหมายโดยเฉลี่ย สำหรับตอนนี้ฉันสามารถสันนิษฐานได้ว่าพื้นที่ 2 มิติ AI นั้นอยู่กับที่และกระสุนก็ไม่ได้เคลื่อนไหวและเคลื่อนที่เชิงเส้น
9 ai  aiming 

2
มีข้อบกพร่องในการออกแบบหรือไม่หากสถานะของเอนทิตีไม่ได้ใช้ประโยชน์อย่างเต็มที่ enter (), execute () และ exit ()?
ฉันกำลังติดตาม AI เกมการเขียนโปรแกรมของ Mat Buckland ตามตัวอย่างและฉันพบว่าฉันไม่ได้ใช้สำหรับ enter (), execute () และ exit () ในสถานะของเอนทิตี ตัวอย่างเช่นในเกม RPG อาวุธอาจมีสถานะพร้อมและฉันอาจใช้ enter () และ exit () สำหรับสถานะนั้นเพื่อเพิ่มหรือลบการปรับเปลี่ยนความสามารถของผู้เล่น แต่ไม่จำเป็นต้องดำเนินการ (จริงๆ) ) นี่เป็นข้อบกพร่องในการออกแบบในเครื่องยนต์ของฉันหรือข้อบกพร่องของวิธีนี้หรือไม่?

1
การสร้างเกมกระดาน AI
ฉันต้องการโค้ดเกมกระดานที่ชื่อ Okey และเป็นที่นิยมในตุรกีเป็นส่วนใหญ่ http://en.wikipedia.org/wiki/Okey แต่ฉันมีปัญหาเกี่ยวกับ AI Firslty ให้ฉันอธิบายเกม .. เกมนี้เล่นโดยผู้เล่น 4 คน ในเกมนี้มีไพ่ 106 ใบโดย 2 ในนั้นเป็นโจ๊กปลอม กระเบื้อง 104 ชิ้นแบ่งออกเป็น 4 สีโดยทั่วไปคือสีเขียวสีดำสีน้ำเงินและสีแดง ทุกสีมีสองชุดของไพ่ ชุด ise ประกอบด้วย 13 แผ่นที่เรียงตามลำดับหมายเลข 1 ถึง 13 ผู้เล่นแต่ละคนเริ่มต้น 14 แผ่น (หนึ่งเริ่มต้นที่ 15 และเริ่มต้นก่อน) และโยนหนึ่งในไพ่ที่ไม่ต้องการมากที่สุดในผู้เล่นถัดไป ผู้เล่นคนต่อไปสามารถรับไทล์นี้หรือสามารถรับไทล์อีกอันจากสแต็คตรงกลางโต๊ะ เกมที่เล่นในทวนเข็มนาฬิกา .. เป้าหมายของเกมนี้คือการหาลำดับที่ถูกต้องของ 14 แผ่นโดยเร็วที่สุด ผู้เล่นสามารถจัดเรียงไพ่เรียงตามหมายเลขตามลำดับในสีเดียวกันจนถึง 13 สำหรับการสอบสีเขียว 1, เขียว 2, …

4
ฉันจะทำให้ยานพาหนะเคลื่อนที่ไปยังจุดหนึ่งและหยุดได้โดยไม่ต้องแก้ไขปัญหาหรือการแกว่ง
เอาล่ะลองคิดดูว่าเรามียานพาหนะเช่นเดียวกับที่ฉันอธิบายไว้ในคำตอบของคำถามนี้ด้วยตำแหน่ง 2D ความเร็วความเร็วเชิงมุมและการลาก / แรงเสียดทาน มันสามารถเร่งความเร็วและทำลายด้วยจำนวนตัวแปร แต่ไม่หยุดตายทันทีหรือเข้าถึงความเร็วสูงสุดทันที ฉันจะทำให้มันเคลื่อนที่ไปยังจุดใดจุดหนึ่งและหยุดได้อย่างไรในเวลาที่เร็วที่สุดเท่าที่จะเป็นไปได้โดยไม่ต้องแก้ไขปัญหาหรือแกว่งไปมา ฉันกำลังคิดบางอย่างเช่น: หันไปทางตำแหน่งเป้าหมาย เร่งความเร็ว มองไปที่ 1 ขีดล่วงหน้าถามว่า "ถ้าฉันใช้เครื่องหมายขีดถัดไปฉันจะไปเกินเป้าหมายได้หรือไม่" ถ้ามันจะแหวกแนวใช้จำนวนครั้งตอนนี้ ฉันแน่ใจว่านี่เป็นปัญหาที่แก้ไขแล้วและอาจมีวิธีที่ดีกว่าวิธีที่ฉันอธิบาย
9 physics  ai 

3
รูปแบบสำหรับการแข่งพฤติกรรม AI
สมมติว่าคุณมี AI แข่งแบบอิสระ สมมติว่าสามารถจัดการกับพื้นฐานของการเบรกและหมุนพวงมาลัยได้ คุณจะจัดโครงสร้างและใช้การหลีกเลี่ยงการชนการแซงร่างการปิดกั้นและพฤติกรรมอื่น ๆ อย่างไรเพื่อให้รถยนต์ของคุณยังคงแข่งขันได้ ลิงก์ไปยังเอกสาร / การใช้งานจะยอดเยี่ยม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.