จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html) +--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html) +--- Thread: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร (/thread-2291.html) |
จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - DarkSeerkun - 03-19-2015 ผมกำลังทำโปรเจ็คอยู่ครับ เป็นเกมเดินฟันแนว MOBA ใน RPG Maker VX Ace การเล่นเหมือนเกมเดินฟันใน RPG Maker ทั่วไปแต่เพิ่มกฎแบบ MOBA ในการแพ้ชนะ การบังคับตัวละคร การใช้สกิล กับทำสถานะพวกสตันอะไรแบบนี้ผมทำได้แล้ว แต่ติดตรงการทำ creep และ ai ฮีโร่ทั้งเพื่อนและศัตรูครับ มาที่ปัญหาของ creep ก่อน คือ creep มันต้องเดินไปตามเลนใช่ไหมครับ อันนี้ใช้กำหนดเส้นทางในหน้าอีเว้นได้ แต่เมื่อเจอ creep หรือป้อม หรือฮีโร่ อีกฝั่งในระยะ มันต้อง เปลี่ยนไปโจมตีถูกไหมครับ มีวิธีเช็ค ระยะว่าอีเว้นศัตรูไหนอยู่ใกล้ที่สุด แล้วให้มันเดินตามไหมครับ เพราะคำสั่งเดินตามใน RPG Maker มันทำได้แค่เดินตามตัวผู้เล่น และปัญหาอีกอย่างคือ ถ้าผู้เล่น วิ่งหนีอออกนอกระยะมันก็จะกลับเข้าเลนเหมือนเดิม ทีนี้ผมใช้วิธีปิดสวิตซ์เฉพาะกลับ แต่มันดัน ไปเริ่มเดินตามทิศทางที่เราเซตไว้ตอนแรกแทน ทำให้ path มั่วไปหมด เช่น ตอนเริ่มมาผมให้มัน เดิน ซ้าย 50ครั้ง เดินลง 40 ครั้งเพื่อวิ่งตามเลน แต่พอมันไปไล่ฮีโร่ แล้วจะกลับเล่น มันเดินแค่ ซ้าย 5 ครั้งก็ถึงเลนแล้ว แต่มันไปวนที่ ซ้าย 50ครั้ง เดินลง 40 ครั้ง ตั้งแต่แรกใหม่ ทำให้วิ่งติดขอบมั่งไรมั่ง งงป่ะครับ มีวิธีที่ทำให้มันวิ่งกลับเข้าเลน ใกล้ๆสุด ณ ขณะนั้นไหมครับ แล้วก็ปัญหาของ AI ฮีโร่ครับ อันนี้ปัญหาหนักเลย เราจะทำยังไงให้ฮีโร่ตัวอื่นมันแบ่งหน้าที่ ไปตามแต่ละเลน ดันป้อมเป็น ถอยเข้าป้อมเป็น ไม่วิ่งตามผู้เล่นโง่ๆให้โดน Kill โง่ๆครับ อย่างเวลามันเสียเปรียบให้วิ่งเข้าป้อมตัวเองได้ รู้จักรวมกลุ่มกับเพื่อนมันได้ กลับไปกันฐาน เวลาฐานโดนตีได้ กะจังหวะสตันหรืออัลติเป็น(อันนี้ไม่ซีเรียส) จะกำหนด path ให้ AI อย่างไรดีครับ ลำพังคำสั่งเดินตามที่ RPG Maker ให้มามันไม่พอแน่ๆ แถมเดินตามได้แค่ผู้เล่นด้วย มีแต่คนบอกให้ไปใช้โปรแกรมอื่นครับ แต่ผมมองว่า ถึงใช้โปรแกรมอื่นมันก็ต้องเขียน AI แบบนี้อยู่ดีป่ะ แถมต้องมานั่งศึกษาใหม่ ผมกลัวจะไม่ทันด้วย สู้ลุยด้วย RPG Maker ที่ผมถนัดที่สุดตอนนี้ดีกว่า และถ้าทำได้ก็จะลบคำสบประมาทของคนอื่นต่อ RPG Maker ด้วยครับ พวกพี่ๆเป็นที่พึ่งสุดท้ายของผมแล้ว ขอคำแนะนำด้วยครับ ผมเชื่อว่าพวกพี่ๆน่าจะมีคำแนะนำดีๆ ในการทำด้วย RPG Maker นะครับ เพราะที่นี่ผมดูแล้วน่าจะเป็นแหล่งคนทำ RPG Maker ที่เก่งสุด ในไทยเลย RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - jin - 03-19-2015 ตามหลักการเขียน AI เลยคือ เริ่มจากการกำหนดพื้นฐานเงื่อนไขคร่าวๆครับ เช่น เมื่อ HP >= 80 ทำเงื่อนไข่ที่1 เมื่อ hp >= 60 <79 ทำเงื่อนไขที่2 เมื่อ hp >= 40 < 59 ทำเงื่อนไขที่3 เมื่อhp <39 ทำเงื่อนไขที่ 4 นี่คือเงื่อนไขการเขียน AI ระดับเบสิค ที่AI จะทำงานเพียง 4 รูปแบบ โดยมีตัวแปรเป็น พลังชีวิต ในการควบคุมเงื่อนไข ทีนี้ ถ้าต้องการให้AI ฉลาดมากกว่านี้ สามารถทำได้ โโยการเพิ่มเงื่อนไขต่างๆ เข้าไปซ้อนเงื่อนไขอีก เช่น การเพิ่มตัวแปร สรุป เขียนโค้ดเพิ่มตัวแปรในการตัดสินใจของAI ครับ เพื่อให้เป็นตามที่เราต้องการ และต้องเซ็ตเองทั้งหมด ในการกำหนดเงื่อนไข ในการสู้หรือหนี ซึ่งการเขียนคำสั่งพวกนี้ ต้องเป็นสิ่งที่ผู้สร้างจะกำหนดอย่างเดียวเลยครับ RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - DarkSeerkun - 03-19-2015 ขอบคุณครับ ผมลองกำหนดสวิตซ์เป็นเงื่อนไขคร่าวๆแล้วครับ เช่น ป้อมโดนตีเปิดสวิตซ์ เบอร์ 2 : Fortress Under Attack เวลาเลือดน้อยกว่าเท่านี้ ให้วิ่งหนี แต่ปัญหาติดอยู่ตรง path ครับ ขอชี้แจงเป็นข้อๆนะครับ เช่นถ้า AI ตัวหนึ่งโดนตี ถ้ามีเพื่อนอยู่ใกล้ๆ มันจะวิ่งมาช่วยนะจุดๆนั้นได้ ซึ่ง RPG Maker ทำเงื่อนไขนี้ได้ ถ้าคนโจมตี เป็นผู้เล่น เพราะมีคำสั่งให้วิ่งหาผู้เล่นครับ แต่ทีนี้ ถ้าคนตีเป็น AI ฝ่ายเรา เราก็ไม่สามารถใช้คำสั่งวิ่งตามผู้เล่นได้แล้วครับ แล้วก็ผมอยากหลีกเลี่ยงการใช้ เคลื่อนที่เข้าหาผู้เล่นด้วยครับ ไม่งั้นต้องมาเช็คอีกว่า ตัวที่กำลังตีบอทอยู่นั้นเป็นผู้เล่น หรือบอทด้วยกัน เวลาฐานโดนตี อันนี้น่าจะพอทำได้ไม่ยากครับ เมื่อสวิตซ์เงื่อนไขเปิด ให้ เล่น animation วาป แล้ว วาปกลับตำแหน่ง ฐานที่เรากำหนดได้ ส่วนปํญหาเรื่อง creep ตอนนี้ยังแก้ไม่ตกจริงๆครับ พอใช้การเปิดปิดสวิตซ์ path จะมั่วซั่วไปหมดเลย RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - Mysticphoenix - 03-19-2015 RPG Maker มันช้า ถ้าเขียนด้วย event เพียวๆ มีแล็คแน่ อิอิ แต่จะลองดูก็ได้คับ แนะนำให้ลองใช้สคริป pathfinding ดู จะทำให้eventวิ่งไปจุดนั้นจุดนี้ได้โดยที่ไม่ต้องกำหนด path เองเลย ป.ล. เพิ่งย้อนกลับไปอ่านแล้วเห็นว่าอันนี้ทำส่งโปรเจกต์จบเหรอ? ผมว่ามันใช้เวลาเขียนนานกว่าที่คิดนะ แล้วก็บั๊กจะเยอะต้องแก้บั๊กเรื่อยๆด้วย คิดดีๆนะ มันเป็นหนทางที่ชันมาก แม้แต่ผมยังไม่อยากปีน เดินอ้อมเอายังง่ายกว่า อะไรงี้ สคริปที่จำเป็น -Event ตาม Event http://galvs-scripts.com/2013/03/11/move-route-extras/ หรือสคริป Pathfinding อื่นๆ -Event ตรวจจับฮีโร่ใกล้ๆ http://www.rpgmakervxace.net/topic/6138-simple-detect-script/ -Event แตะ Event อื่น http://www.himeworks.com/2013/04/05/custom-event-triggers/ RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - DarkSeerkun - 03-20-2015 ขอบคุณ คุณ Mysticphoenix สำหรับสคริปที่จำเป็นมากๆครับ ใช่อันที่ผมต้องการเลย ปล.ใช่ครับ แต่ถ้าเปลี่ยนโปรแกรมก็ต้องนั่งศึกษาใหม่ อาจจะหลายเดือน ผมกลัวยิ่งไม่ทันไปกันใหญ่น่ะครับ แล้วถ้าโปรแกรมใหม่เกิดทำไม่ได้แบบที่ต้องการเท่ากับผมเสียเวลาฟรี+ดรอปฟรีอ่ะครับ มันไม่มีอะไรรับประกัน ถ้าไม่มีเรื่องเวลามาบังคับผมก็กล้าลองเปลี่ยนอ่ะครับ RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - Mysticphoenix - 03-20-2015 เป็นห่วง ว่าจะทำไม่ทัน ไม่ลองเปลี่ยนหัวข้อดูเหรอครับ? ด้วยระยะเวลาที่จำกัด เราก็ควรทำอะไรที่เราถนัดหรือคุ้นเคยมาก่อน มากกว่าการทำอะไรที่เรายังไม่รู้ว่าจะสำเร็จรึเปล่า ใช่ไหมล่ะครับ ในที่นี้ไม่ได้หมายถึง RPG Maker แต่หมายถึงการทำ AI เกม MOBA หรือว่าส่ง Proposal ไปแล้ว เปลี่ยนไมไ่ด้แล้ว? ถ้าเปลี่ยนไม่ได้แล้ว โค้งสุดท้าย ตายเป็นตาย ก็ลองลด spec ของเกมดูครับ เช่นให้เหลือแค่เลนเดียว ดีไหม ให้ AI โง่ๆ หน่อย ไม่เป็นไรหรอก ดีไหม ให้ฮีโร่มีทีมละ 1 คนก็พอ ดีไหม อะไรเงี้ยครับ อย่าลืมว่า โค้งสุดท้ายแล้ว Priority สูงสุดของเรา คือการทำให้สำเร็จ เราต้องมองข้ามความสนุก ความเจ๋ง ไปให้เยอะๆครับ RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - DarkSeerkun - 03-20-2015 ส่ง Proposal ไปแล้วครับ T-T อีกอย่างผมเจอเงื่อนไขว่า ถ้าจะใช้ RPG Maker จริงๆต้องทำอะไรที่มันแอดวานซ์อ่ะครับ ห้ามทำ RPG หรือเดินฟันธรรมดา หรือพวกแนวสำรวจง่ายอ่ะครับ เลยโดนโจทย์ MOBA มา พูดถึงคนอื่นก็หนีไปทำ animation ไม่ก็พวก walkthrough กันหมด แล้วโปรแกรมที่ผมถนัดสุดตอนนี้ก็ RPG Maker นี่แหละครับ ปล.วันนี้เช้าลองไปคุยกับอาจารย์แล้วล่ะครับ เขาบอกว่า เล่นคนเดียว แต่ฮีโร่ยังไงก็ต้องให้มี AI ให้ครบ 3-3 ครับ ไม่งั้นมันจะง่ายไป ครีปโง่ได้ไม่เป็นไร แต่ห้ามเดินติดขอบ หรือเดินมั่ว ตอนแรกผมจะขอทำแนวเดินฟันมุมมองด้านบน ไม่ก็ด้านข้างครับ แต่เขาไม่ให้ บอกมันมี ระบบสำเร็จรูปแจก T-T (อาจารย์น่าจะรู้เรื่องวงการ RM พอควรครับ) RE: จะทำ creep กับ AI ฮีโร่แนว MOBA ใน RM อย่างไร - mkhazard - 04-29-2015 ...แต่เมื่อเจอ creep หรือป้อม หรือฮีโร่ อีกฝั่งในระยะ มันต้อง เปลี่ยนไปโจมตีถูกไหมครับ มีวิธีเช็ค ระยะว่าอีเว้นศัตรูไหนอยู่ใกล้ที่สุด แล้วให้มันเดินตามไหมครับ... ตอบ จำแบบฟอร์มเป้ะๆไม่ได้นะครับ ประมาณนี้ เก็บตัวแปรตำแหน่งตัวเอง เช็คตำแหน่งตัวฮีโร่ แล้วก็ if ระยะฮีโร่ = ตำแหน่งเรา+-1(ระยะมองเห็น)ทำทั้ง4ทิศบนล่างซ้ายขวา หรือเพิ่มระยะทำการก็ปรับเป็นแบบคำนวณก็ได้ ฮีโร่X - ครีพX ยกกำลังสอง ถ้าน้อยกว่า(N)ให้เข้าตี ..Nถ้า1ช่องx-xจะได้(-1,1)ยกกำลังได้ 2 Nถ้า2ช่องx-xจะได้(-2,2)ยกกำลังได้ 4 และอื่นๆ,9, 16... ... และปัญหาอีกอย่างคือ ถ้าผู้เล่น วิ่งหนีอออกนอกระยะ...ผมให้มัน เดิน ซ้าย 50ครั้ง เดินลง 40 ครั้งเพื่อวิ่งตามเลน...งงป่ะครับ มีวิธีที่ทำให้มันวิ่งกลับเข้าเลน ใกล้ๆสุด ณ ขณะนั้นไหมครับ ตอบ ตั้งeventให้มันเดินตามตำแหน่งในแผนที่ดีกว่าครับ ตั้งจุด(x,y)กว้างๆสักทุก10=ช่อง เมื่อเดินถึงจุดนี้ให้ทำการเดินจุดต่อไปแล้วปิดeventเก่า(หรือถ้าถนัดสวิตก็ใช้ได้อยู่) โดยแต่ละอิเวนเดินก็ก้อปใส่คำสั่งตีฮีโร่ไป ...แล้วก็ปัญหาของ AI ฮีโร่ครับ อันนี้ปัญหาหนักเลย...อย่างเวลามันเสียเปรียบให้วิ่งเข้าป้อมตัวเองได้ รู้จักรวมกลุ่มกับเพื่อนมันได้ ตอบ if HP อย่างท่าน JIN บอกเลยครับ ...กลับไปกันฐาน เวลาฐานโดนตีได้ ตอบ if ตำแหน่งฮีโร่ มาก(หรือน้อย)กว่าทั้งแกนxและแกนY สมมติแผนที่20x20ให้เขตฐานซัก3x3 ถ้าฐานล่างซ้ายก็ x<3,y>17 ฐานขวาบน x>17,y<3 ให้กลับบ้าน กะจังหวะสตันหรืออัลติเป็น(อันนี้ไม่ซีเรียส)... ตอบ ผมเล่นเอง ยังโดนด่าnoobอยู่เลยครัช(ฮา) ปล.ไม่รู้ทำจิงได้ป่าวนะครับ ไม่ได้ลองเขียนดู |