ฉันจะป้องกันไม่ให้การเคลื่อนที่ในแนวทแยงสำรวจแผนที่มากขึ้นได้ไหม?


57

ในกริดแบบเรียงต่อกันที่การเคลื่อนที่ใน 8 ทิศทางใช้เวลาเลี้ยวเท่ากัน (กฎสไตล์กระดานหมากรุก) ฉันสามารถป้องกันการเคลื่อนที่ในแนวทแยงจากการแสดงไทล์ใหม่มากกว่าการเคลื่อนไหวแบบมุมฉากได้หรือไม่?

ตัวอย่างเช่นคุณเป็นกล่องสีแดงในภาพด้านล่าง คุณจะเห็นเซลล์สีเขียวในปัจจุบัน (มุมมองสี่เหลี่ยมจัตุรัส) คุณสามารถย้ายระยะห่างของไทล์ใด ๆ ในแปดทิศทางใดก็ได้

หากคุณย้ายไปทางตะวันออกเฉียงเหนือคุณจะสำรวจกระเบื้องใหม่ 13 รายการ (แสดงเป็นสีน้ำเงิน) หากคุณย้ายไปทางใต้คุณจะสำรวจกระเบื้องใหม่ 7 รายการเท่านั้น (แสดงเป็นสีม่วง)

ตารางที่มีความสามารถในการมองเห็นขึ้นอยู่กับตำแหน่ง

ฉันจะทำให้การเดินทางในแต่ละทิศทางดีเท่า ๆ กันสำหรับการสำรวจได้อย่างไร


27
นี่เป็นข้อบกพร่องพื้นฐานกับการออกแบบเกมเช่นนี้ คุณต้องไม่อนุญาตให้มีการเคลื่อนไหวในแนวทแยงหรือเปลี่ยนไปใช้บางอย่างเช่นกริดหกเหลี่ยมที่ไม่มีปัญหานี้
Tetrad

1
@Tetrad คุณไม่ผิดที่เกี่ยวกับมันเป็นข้อบกพร่อง แต่คุณอาจไม่ได้ตระหนักถึงวิธีการที่แพร่หลายมันมีอยู่ในเกมเช่นนี้
นายสมิ ธ

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

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

2
คำตอบที่ค่อนข้างไม่ตอบ: การเคลื่อนที่แบบฉากมุมฉากทำตัวเหมือนตอนนี้ แต่การเคลื่อนที่แนวทแยงทำให้แหล่งกำเนิดแสงกลายเป็น "เลือน" - มันไม่เผยให้เห็นทั้ง 13 สี่เหลี่ยมที่เพิ่งเข้ามาในระยะ แต่เพียง 7 (หรือดังนั้น) ของพวกเขากำหนดแบบสุ่ม
Snowbody

คำตอบ:


67

Dungeons and Dragons 3.5 (RPG แบบปากกาและกระดาษ) มีโซลูชันที่ใช้สำหรับการคำนวณรัศมีของการเคลื่อนไหวและตามกริด: การเคลื่อนที่ในแนวทแยงมีค่าใช้จ่าย 1.5 เท่ากัน เนื่องจากเส้นทแยงมุมของตารางหน่วยมีค่าประมาณ 1.414, 1.5 จึงค่อนข้างใกล้เคียง

เนื่องจาก D&D 3.5 รองรับการเคลื่อนไหวแบบจำนวนเต็มเท่านั้นวิธีที่คำนวณได้จริงนี้คือการเคลื่อนไหวแบบมุมฉากมีค่าใช้จ่าย "หนึ่งตาราง" การเคลื่อนไหวในแนวทแยงแรกของคุณยังมีค่าใช้จ่าย "หนึ่งตาราง" แต่ค่าใช้จ่ายในแนวทแยงที่สอง "สองสี่เหลี่ยม" คุณสลับหนึ่งและสองสี่เหลี่ยมสำหรับการเคลื่อนที่ในแนวทแยงแต่ละครั้ง การใช้กฎการเคลื่อนไหวนี้ในเกมของคุณจะจัดการกับปัญหาหลายอย่างกับการเคลื่อนไหวในแนวทแยง

ดังที่แผนภาพนี้แสดงกฎการเคลื่อนไหวนี้สร้างการประมาณที่สมเหตุสมผลของวงกลมและไม่ได้ปิดมากกว่า 1 เมื่อเปรียบเทียบกับระยะทางจริง (เมื่ออยู่ในระยะเริ่มต้น 15 หน่วย)

ป้อนคำอธิบายรูปภาพที่นี่

หากวิสัยทัศน์ / รัศมีการสำรวจของคุณคำนวณด้วยวิธีนี้การเคลื่อนที่ในแนวทแยงและการค้นพบในแนวทแยงจะใกล้เคียงหรือใกล้เคียงกับมุมฉาก


สิ่งที่ฉันอยากจะแนะนำ แม้ว่ามันจะคุ้มค่าที่จะสังเกตว่ากลยุทธ์นี้ตกอยู่ในแง่ของการ จำกัด การเคลื่อนไหวหากตัวละครสามารถย้ายหนึ่งช่องว่างต่อเทิร์น (ซึ่งดูเหมือนจะเป็นกรณีจากแผนภาพของคำถาม?) คุณสามารถ "จำได้" ถ้าพวกเขาอยู่บนเส้นคี่ / คู่ระหว่างเส้นโค้งแม้ว่าสิ่งนี้อาจทำให้ผู้เล่นสับสนหรือทำให้หงุดหงิด ไม่ว่าจะทำงานได้ดีสำหรับปัญหาการมองเห็น
Alexis Beingessner

5
@AlexisBeingessner จริง และผู้ถามระบุว่าเขาต้องการการเคลื่อนไหวคล้ายหมากรุก แต่ฉันคิดว่าเนื่องจากนี่เป็นเว็บไซต์พัฒนาเกมคอมพิวเตอร์ฉันจะชี้ให้เห็นวิธีแก้ปัญหาการเล่นเกมที่ดี หากนี่เป็นปริศนาหรือคำถามทางคณิตศาสตร์ที่บริสุทธิ์กว่านี้ฉันคาดหวังไว้ในไซต์อื่น หากนี่เป็นเกมที่คล้ายกับคนโกงบางคนก็สนับสนุนความเร็วในการเคลื่อนที่ที่แตกต่างกันไปแล้ว
Dane

เกม Roguelike ส่วนใหญ่ดูเหมือนจะเป็นเกมเทิร์นเบส แต่จริงๆแล้วมีองค์ประกอบเวลาดังนั้นถ้าคุณเคลื่อนที่ในแนวทแยงมุมวัตถุอื่น ๆ จะมีเวลามากขึ้นที่จะตอบสนองก่อนที่คุณจะเคลื่อนไหวอีกครั้ง
Kos

67

คุณต้องเปลี่ยนรูปร่างของมุมมอง

ดังนั้นเมื่อคุณเคลื่อนที่ไปในทิศทางใดก็จะเห็นจำนวนสี่เหลี่ยมใหม่ที่เท่ากัน

นี่คือความเป็นไปได้หนึ่งอย่าง:

ตัวอย่างตาราง


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

43
@ mr.smith ใช่นั่นเป็นปัญหาใหม่ แต่ฉันได้แก้ปัญหาเก่าของคุณ ...
ChargingPun

แน่นอนคุณ; ดูเหมือนว่าฉันจะไม่เจาะจงพอกับคำถาม
นายสมิ ธ

8
รูปทรงกลมจะช่วยได้ไหม
amitp

3
@amitp นี่คือรูปวงกลม - หากฟังก์ชันระยะทางของคุณคือระยะทางแมนฮัตตัน
Daniel Wagner

27

หากต้องการให้การเคลื่อนไหวในแนวทแยงและมุมฉากปรากฏขึ้นในพื้นที่เดียวกันโดยประมาณคุณจำเป็นต้องมีสองสิ่ง (ซึ่งเพียงอย่างเดียวได้รับการแนะนำในคำตอบหรือความคิดเห็นอื่นแล้ว):

  1. ช่วงมุมมองแบบวงกลมโดยประมาณ :

    รูปภาพของช่วงการดูกลมแบบหลอก

    ด้วยตัวเองสิ่งนี้จะไม่ให้พื้นที่ที่เหมือนกันอย่างแน่นอนสำหรับการเคลื่อนไหวทั้งสองประเภท ตัวอย่างเช่นในภาพด้านบนการเคลื่อนไหวมุมฉากเผยให้เห็น 9 ช่องในขณะที่การเคลื่อนไหวในแนวทแยงพบ 13 มันยังคงดีกว่าอัตราส่วน 13/7 สำหรับพื้นที่มุมมองสี่เหลี่ยมในตัวอย่างของคุณ

    ในความเป็นจริงเมื่อรัศมีมุมมองเพิ่มขึ้นอัตราส่วนของพื้นที่ที่ถูกเปิดเผยต่อขั้นตอนในแนวทแยง / มุมฉากมีแนวโน้มที่√2≈ 1.414 สำหรับพื้นที่วงกลมในขณะที่อัตราส่วนเดียวกันสำหรับพื้นที่มุมมองสี่เหลี่ยมมีแนวโน้มที่ 2

  2. การเคลื่อนไหวในแนวทแยงช้าลง :

    ในชีวิตจริงการเดินตามแนวทแยงมุมข้ามสนามสี่เหลี่ยมใช้เวลานานกว่าการเดินไปตามด้านใดด้านหนึ่ง ในความเป็นจริงใช้เวลานานกว่า√2≈ 1.414 เท่า หากคุณต้องการให้การเคลื่อนไหวในเกมของคุณสมจริงยิ่งขึ้นคุณควรทำให้สิ่งนั้นเกิดขึ้นในเกมของคุณเช่นกัน

    ในทางปฏิบัติ 3/2 = 1.5 เป็นค่าประมาณที่ค่อนข้างดีที่√2 ดังนั้นคุณสามารถทำให้แต่ละขั้นตอนฉากใช้เวลาสองหน่วยและทำให้แต่ละขั้นตอนในแนวทแยงใช้สาม ด้วยพื้นที่มุมมองตัวอย่างข้างต้นสิ่งนี้ให้ผล 9/2 = 4.5 เปิดเผยสี่เหลี่ยมต่อหน่วยเวลาสำหรับการเคลื่อนที่แบบมุมฉากและ 13/3 = 4.33 เปิดเผยสี่เหลี่ยมต่อหน่วยเวลาสำหรับการเคลื่อนไหวในแนวทแยง ค่อนข้างใกล้ใช่มั้ย

    อีกทางเลือกหนึ่งถ้าคุณต้องการที่จะยึดติดกับ "1 step = 1 time unit" สำหรับการเคลื่อนไหวมุมฉากคุณสามารถใช้ระบบ D&D Dane แนะนำและทำทุกขั้นตอนในแนวทแยงที่สองใช้เวลาเลี้ยวเพิ่ม (หากคุณทำเช่นนั้นคุณจำเป็นต้องให้หน่วยนับชัดเจนว่ามีขั้นตอนทแยงมุมกี่หน่วยก็ตามมิฉะนั้นคุณอาจจบลงด้วยการหาประโยชน์เช่นพูดE, NE, E, NE, .. .ลำดับการเคลื่อนไหวที่ช่วยให้ผู้เล่นที่จะสำรวจได้เร็วกว่าที่ตั้งใจไว้.)


วิธีง่าย ๆ ในการป้องกันการหาประโยชน์ดังกล่าวคือการพูดว่าค่าใช้จ่ายในการเคลื่อนที่ในแนวทแยงนั้นใช้สองเห็บยกเว้นเมื่อนำหน้าด้วยการเคลื่อนที่ในทิศทางเดียวกันซึ่งใช้สองเห็บ
supercat

1
@supercat: จริง แต่นั่นจะทำให้E, NE, E, NE, ...ลำดับที่เห็นได้ชัดมีประสิทธิภาพน้อยกว่าสำหรับการสำรวจมากกว่าการเคลื่อนไหวแบบตั้งฉาก / แนวทแยงมุมซึ่งอาจไม่เป็นที่ต้องการเช่นกัน
Ilmari Karonen

มันจะทำให้ลำดับนั้นมีประสิทธิภาพลดลง แต่แล้วอะไรนะ? วิธีการสำรวจไม่ควรมีประสิทธิภาพเท่ากัน ที่จริงแล้วมันอาจจะไม่เลวร้ายที่จะต้องเสียเวลาในการเปลี่ยนแปลงการปฐมนิเทศยกเว้นกรณีที่การย้ายก่อนหรือหลังเป็นเส้นทแยงมุมสองเท่า
supercat

2
ฉันทำสิ่งที่คล้ายกันในขณะที่กลับมาและฉันแก้ไขได้โดยการเคลื่อนไหวมุมฉากราคาสอง "เห็บ" ต่อตารางและการเคลื่อนไหวในแนวทแยงค่าใช้จ่ายสาม
Mason Wheeler

11

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

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

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


นั่นคือการประนีประนอมที่น่าสนใจ หากคุณเดินทางในแนวทแยงมุมจะไม่สามารถมองเห็นเซลล์ทั้งหมดที่ปกติจะมองเห็นได้ คุณสามารถรอเทิร์น (เพื่อสำรวจเซลล์เหล่านั้น) หรือเคลื่อนที่ต่อไป
นายสมิ ธ

8
คำตอบใดคือ "คำตอบก่อนหน้า"
Mooing Duck

7

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


3

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

ในขณะที่คุณไม่สามารถบังคับการเคลื่อนไหวแบบเดี่ยวได้โดยไม่สูญเสียกริดของคุณ (ซึ่งจะเปลี่ยนการออกแบบเกมของคุณอย่างมีนัยสำคัญ) บางทีคุณอาจติดตามการเคลื่อนไหวที่เพิ่มขึ้นและการเลื่อนการเคลื่อนไหวในภายหลัง: ติดตาม 0.41 วินาทีเพิ่มเติม 1.00 หน่วยนั้นข้ามการเคลื่อนไหว หรือวิธีอื่น: พิจารณาเส้นทแยงมุมให้เป็นปกติเพิ่มขึ้น 0.41s สำหรับการเคลื่อนที่ในแนวนอนหรือแนวตั้งแต่ละครั้งและให้เครดิตการเคลื่อนไหวพิเศษหนึ่งครั้งซึ่งมากกว่า 1 (หรือ 1.41 สำหรับการเคลื่อนที่ในแนวทแยง)

คุณจะต้องระมัดระวังวิธีการนำเสนอสิ่งนี้กับผู้เล่นของคุณในแบบที่ทำให้ดูราบรื่นและยุติธรรม ในสถานการณ์ที่มีผู้เล่นหลายคนการเปลี่ยนแปลงดังกล่าวอาจกลายเป็นสิ่งที่ผู้เล่นใช้ประโยชน์จากกลยุทธ์ - นี่อาจเป็นปัญหาหรืออาจมีวิธีที่เป็นธรรมชาติในการผสมผสานสิ่งนี้เข้ากับช่างเกม (อาจอนุญาตให้ผู้เล่นเก็บขนาดเล็ก จำนวน "เครดิตการย้ายที่ไม่ได้ใช้" ที่พวกเขาสามารถใช้เพื่อตอบสนองอย่างรวดเร็วในภายหลังและมีการย้ายฟีดพิเศษ 0.41s เข้า (หรือนำออกจาก) พูลนั้น

สิ่งนี้จะได้ผลดีที่สุดหากผู้เล่นควบคุมเอนทิตีที่ย้ายการเคลื่อนไหวมากกว่าหนึ่งยูนิต ตัวอย่างเช่นอาจใช้คะแนนการเคลื่อนไหวสามคะแนนเป็นการเคลื่อนไหวแบบ horzontal สามครั้งหรือแบบทแยงมุมสองอันที่เหลือ 0.16 ในสระว่ายน้ำในภายหลัง เมื่อถึง 1.00 ผู้เล่นจะได้รับ "ฟรี" hor / มากและย้ายที่ 1.41 ฟรีแนวทแยง คุณสามารถเพิ่มจำนวนพิเศษที่ 1.5 เพื่อบังคับให้ใช้หรือสูญหาย ณ จุดนั้นเพื่อหยุดผู้เล่นที่รักษาพลังงานที่เก็บไว้นี้ไว้สำหรับอายุหรือปล่อยให้มันสร้างขึ้น

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


2

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


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