กระสุนถูกจำลองในวิดีโอเกมอย่างไร


86

ฉันเพิ่งเล่นเกมอย่าง MW2 เมื่อเร็ว ๆ นี้และในฐานะโปรแกรมเมอร์ฉันมักจะถามตัวเองว่าทำไมพวกเขาถึงทำให้เกมสมจริงมาก ตัวอย่างเช่นวิธีจำลองความเร็วของกระสุน

  1. เมื่อ NPC ยิงกระสุนจากปืนของเขากระสุนไม่เคลื่อนที่จากปืนของเขาไปยังเป้าหมายที่กำหนดหรือไม่พวกเขาไม่สนใจส่วนนี้อย่างสมบูรณ์และเพียงแค่ใส่รูกระสุนใส่เป้าหมาย

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


25
หน้าจอเลือดจริงมาก!
AttackHobo

6
รูปถ่าย : BOOOOORRRIIIING
mahen23

1
ฉันไม่แน่ใจว่าคุณสามารถโทรหากระสุนปืนของ Megaman Legend ได้หรือไม่ แต่ใน Megaman พวกเขาใช้กระสุนปืนช้าสำหรับกระสุน ในภาพเหล่านั้นคุณสามารถเห็นภาพโค้งได้ชัดเจนหากคุณวิ่งเป็นวงกลมขณะถ่ายภาพ (เอฟเฟกต์โบลิทาร์)
โกหก

คำตอบ:


84

เกม FPS ส่วนใหญ่ใช้ raycasting สำหรับการเล่นเกมจริง สัญลักษณ์แสดงหัวข้อย่อยการเดินทางและเป้าหมายทันทีเมื่อยิง

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

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

เกมบางเกมเช่น ARMA II, STALKER (ทั้งชุด) ใช้ฟิสิกส์กระสุนจริงมากขึ้นด้วยเวลาในการเดินทางแฉลบและการรุกด้วยมุมโก่ง ฉันเชื่อว่าระบบเหล่านี้ใช้ raycasting แต่มีข้อ จำกัด ที่กำหนดโดยความเร็วของกระสุน ด้วยเกมเหล่านี้ความเร็วปากกระบอกปืนสามารถสมจริงเหมือนใน ARMA II หรือดูถูกต้องเหมือนใน STALKER

ฉันชอบที่จะมีลูกกระสุนจริงมากเหมือนปืนยิงขีปนาวุธไม่ใช่เลเซอร์


1
หากไม่ได้เล่นเกมดังกล่าวเกมนี้จะมีผลต่อการเล่นเกมอย่างไร ฉันหมายถึงถ้าคุณใช้สัญลักษณ์แสดงหัวข้อย่อยในเกมเช่น Call of Duty คุณเห็นความแตกต่างที่เห็นได้ชัดเจนหรือไม่? มุมการเจาะนั้นเปลี่ยนไปหรือไม่? ผู้เล่นจะรู้หรือไม่ว่าตัวละครของพวกเขาไม่ตรงกับรูกระสุนที่เกี่ยวข้องกับนักกีฬา? เพียงแค่อยากรู้ว่าสิ่งที่มีประโยชน์มีการปรับค่าใช้จ่าย ขอบคุณล่วงหน้า.
Dutchie432

มันเพิ่มเลเยอร์ของความคาดเดาไม่ได้และความลึกให้กับกลไกการยิงที่ฉันพบว่าน่าพอใจ สัญลักษณ์แสดงหัวข้อย่อยไม่ได้ทันที !!! chuckhawks.com/rifle_ballistics_table.htmกระสุนที่มีค่า 2644 ฟุตต่อวินาทีเป็นเวลา 600 ฟุตใช้เวลามากกว่า 0.2 วินาทีในการเข้าโจมตีเป้าหมายที่ไม่ได้คิดว่าจะช้าลง เป้าหมายการทำงานจะพลาดถ้าคุณเล็งไปที่มันโดยตรง ระยะทางไกลกว่านี้จะอนุญาตให้กระสุนบุ๋มช้ากว่าความเร็วของเสียงปล่อยให้คนกระโดดลงไปที่พื้นหรืออื่น ๆ ถ้าพวกเขาได้ยินเสียงปืน
AttackHobo

มีคำสั่งที่ไม่ถูกต้องหลายคำตอบในคำตอบนี้และควรถูกลบทิ้ง ตรวจสอบคำตอบของฉันด้านล่าง
EddieV223

1
กระสุนใน ArmA 2 เป็นขีปนาวุธจำลอง พวกเขาสามารถแก้ไขได้ (เปลี่ยนความเร็วเปลี่ยนทิศทาง) การบินกลางและชนกับวัตถุขณะเดินทาง ไม่ว่ามันจะทำโดยการฉายรังสีหรือไม่ไม่เกี่ยวข้องพวกมันทำหน้าที่เป็นวัตถุฟิสิกส์จริง
decaviatedcaviar

ดังนั้น mw2 เรย์คาสติ้งหรือไม่? เพราะพวกเขาทำงานได้อย่างยอดเยี่ยมในการจำลองรูกระสุนและสภาพแวดล้อมที่ถูกทำลายโดยมันอย่างชัดเจน
mahen23

51

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

ในระยะทางสั้นกระสุนจะเดินทางพร้อมกับเวลาล่วงเลยระหว่างเฟรมพวกเขาจะได้รับจากนักกีฬาไปยังเป้าหมายระหว่างหรือภายใน 1 เฟรมต่อไป

* นั่นคือช้ากว่าจรวดในชีวิตจริงเพื่อให้ผู้เล่นได้เห็นพวกเขาบินผ่านอากาศ


44

ฉันเขียนรหัสกระสุนสำหรับ PlanetSide เรามีขีปนาวุธ 'hitscan' ไม่กี่ตัว แต่ส่วนใหญ่ทำการจำลองขีปนาวุธให้ดีที่สุดที่เราจะได้รับข้อ จำกัด ของซีพียูและกระสุนจำนวนมากที่เล่นได้ตลอดเวลา

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

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

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

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


2
ฉันเล่น Planetside ก่อนที่ฉันจะเข้าสู่การเขียนโปรแกรมเกมที่ดีและฟังดูเหมือนว่าจะสนุกกับการเขียนโค้ด
Anthony

18

มันขึ้นอยู่กับเกมและระดับของความแม่นยำ / ความสมจริง

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

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

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

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


14

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


11

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

ในทางกลับกัน Torque 3D Engine DID ใช้วัตถุกระสุนจริงและนักออกแบบอาจส่งผลต่อความเร็วมวลและแรงโน้มถ่วงของตัวดัดแปลง เครื่องยนต์ทั้งหมดได้รับการอัพเดทค่าทุก 32 มิลลิวินาที

แก้ไข

นอกเหนือจากการใช้วัตถุที่เป็น projectile แล้ว Torque 3D Engine ยังอนุญาตให้ใช้การฉายรังสีเป็นทางเลือก (ฉันทำหลายเกมที่ "projectile" เป็นผลกระทบของอนุภาคที่ไม่มีการสนับสนุนที่วัตถุกระสุนปืนทำดังนั้นจึงจำเป็นต้องใช้การฉายรังสี)


พี่ชายของเรื่องที่น่ากลัว อย่างไรก็ตามฉันมั่นใจว่า Torque 3D engine ต้องการพลังการประมวลผลมากขึ้นเพื่อคำนวณฟิสิกส์ทั้งหมดเหล่านี้
mahen23

@ mahen23 คุณจะประหลาดใจ มันมีการคำนวณทางฟิสิกส์น้อยกว่าที่ Source Engine ทำส่วนหนึ่งเป็นเพราะมันไม่ได้จัดการกับการชนแบบ Softbody เลยเพียงแค่การ จำกัด ขอบเขตและกล่องการชนเท่านั้น
Casey

10

มีบทความดีๆเกี่ยวกับ Team Fortress 2 wiki เกี่ยวกับพฤติกรรมของกระสุนปืนและอาวุธปืนที่นิยม

http://wiki.teamfortress.com/wiki/Mechanics#Hit_detection


2
วิกินั่นคือการอ่านที่ดี
mgiuca

ในขณะที่ส่วนนั้นสั้นมันจะอธิบายทั้ง hitscan กับ non-hitscan และมันจะอธิบายว่า hitboxes คืออะไรและใช้อย่างไร
jhocking

อย่าลืมอ่านบทความย่อย "Projection" และ "Hitscan" ใต้หัวข้อของส่วนนั้น
lunixbochs

5

จริงๆแล้วหลายเกมใช้อัลกอริทึมการทดสอบการแสดงผล gpu การแสดงผล นี่เป็นวิธีพื้นฐานในการทำงาน:

1) ปิดหน้าจอสร้างการแสดงผลของมุมมองปัจจุบันที่ภูมิประเทศทั้งหมดเป็นสีดำและตัวละครทุกตัวเป็นสีที่ไม่ใช่สีดำ 2) รับสีของพิกเซลภายใต้ขนไขว้ 3) หากไม่ใช่การค้นหาสีดำ - > การทำแผนที่ผู้เล่นและใช้การโจมตีกับเป้าหมายนั้น

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


การค้นหาผู้เล่น color-> ฟังดูเจ็บปวดไหม? ถ้าคุณสร้างมันขึ้นมามันจะไม่ได้ผลเหมือนกันหรือไม่?
ชะลอตัวลง

จริงๆแล้วมันเร็วมาก เวลาส่วนใหญ่ที่ใช้ในการเรนเดอร์มาจากการแรเงาของรูปหลายเหลี่ยมจริง ในกรณีของการเรนเดอร์การทดสอบ Hit จะใช้รูปหลายเหลี่ยมสีทึบเท่านั้น นอกจากนี้การทดสอบการตีนี้สามารถทำได้อย่างสมบูรณ์ใน GPU และเป็นพิกเซลที่สมบูรณ์แบบ ไม่มีสิ่งใดที่จะติ๊กผู้เล่นได้ดีกว่าการตีเป้าหมายที่สมบูรณ์แบบแล้วให้การทดสอบโดนบอกว่ามันพลาด
ทิโมธี Baldridge

แต่คุณจะแปลงพื้นที่พิกเซลไปสู่อวกาศโลกให้เป็นวัตถุที่สอดคล้องกันได้อย่างไร
decaviatedcaviar

@Daniel: ตามคำตอบที่กล่าวไว้เป้าหมายที่ได้รับผลกระทบจะถูกระบุด้วยสี ตัวละครแต่ละตัวมีสีที่แตกต่างกัน (ทึบ) ดังนั้นคุณสามารถตรวจสอบสีและสีดำ = พลาดสิ่งอื่น ๆ = ค้นหาว่าใครเป็นสีในนั้นเพราะพวกเขาได้รับผลกระทบ
Dave Sherohman

@Dave Sherohman ฉันต้องอ่านมันผิด แต่เดิมหลังจากอ่านคำอธิบายของคุณมันชัดเจนดังนั้นสิ่งที่เขาหมายถึง ... ไชโย
deceleratedcaviar

4

บางเกมไม่ต้องสงสัยเลยว่าใช้สัญลักษณ์แสดงหัวข้อย่อยทางฟิสิกส์ที่สมจริงโดยคำนึงถึงเวลาในการเดินทางและการตก แต่ฉันเดาว่าเกมส่วนใหญ่จะไม่ทำอย่างน้อยสำหรับ NPC

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

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

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

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


+1 ข้อมูลที่ดี แต่ฉันคิดว่ามันน่าจะเป็นที่ชื่นชอบมากขึ้นถ้า AI นั้นไม่ดีในการเล็งไปที่ผู้เล่นมากกว่ากรวยที่ใหญ่กว่า หรือถ้าคุณต้องการทำให้กรวยมีขนาดใหญ่ขึ้นทำให้มันแปรผันตามขนาดของการหดตัวและทำให้ศัตรูในระดับที่ต่ำกว่ามีอัตราการเพิ่มขนาดที่เร็วขึ้นดังนั้นพวกมันจึงดูเหมือนไม่มีประสบการณ์
AttackHobo

1

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

สิ่งที่น่าสังเกตอีกอย่างก็คือ Nexuiz มีตัวเลือกฝั่งเซิร์ฟเวอร์ในการคำนวณจำนวนการเข้าดูลูกค้าหรือบนเซิร์ฟเวอร์ หากคุณสงสัยว่าลูกค้ากำลังโกงคุณสามารถเปลี่ยนไปใช้การคำนวณยอดฮิตในฝั่งเซิร์ฟเวอร์เพื่อช่วยบรรเทาปัญหาดังกล่าว


1

กลยุทธ์หนึ่งคือการผสมผสานของการแสดงทุกอย่างและการติดตามทุกอย่าง คุณไม่จำเป็นต้องแสดงสัญลักษณ์แสดงหัวข้อทุกครั้ง ตัวอย่างเช่นหากปืนของคุณยิง 30 รอบ / วินาที strafe อาจสร้างอนุภาคไม่กี่ร้อย ... คุณสามารถลดการเรนเดอร์โดยใช้ "เอฟเฟกต์การติดตาม", เรนเดอร์ทุกช็อตที่สาม ผู้เล่นยังเห็น 10 รอบ / วินาทียิงใส่ศัตรู

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


คุณควรรวมข้อมูลบางอย่างว่าทำไมทุกช็อตที่ 3 หรือมากกว่านั้นจะมีผู้ตามรอย มันไม่ใช่การพัฒนาผู้พัฒนาเกม มันเป็นทหาร สัญลักษณ์แสดงหัวข้อย่อยที่มีฟอสฟอรัสฝังอยู่ในด้านหลังของกระสุน เมื่อยิงกระสุนปืนดินปืนนั้นจะจุดประกายฟอสฟอรัสซึ่งทำให้เกิดรอยสว่างหลังกระสุน กระสุนเจาะมีราคาแพงกว่ากระสุนปกติดังนั้นจึงใช้กระสุนนัดเดียวหรือมากกว่านั้นเพื่อประหยัดเงินในขณะที่ยังคงมีผลต่อการเล็งเป้าหมายได้ง่ายขึ้น
AttackHobo

นอกจากนี้คุณไม่ต้องการแยกมันออกในการเรนเดอร์และการอัปเดตเหมือนที่คุณพูด คุณต้องการให้ลูกกระสุนปืนทำด้วยวิธีการอัพเดททั้งหมด คุณต้องการให้ทุกช็อต X หรือมากกว่านั้นจะมีเอฟเฟกต์ติดตามที่ช้ากว่ากระสุนเพื่อแสดงการเคลื่อนไหวและทิศทาง
AttackHobo

@AttackingHobo ฉันไม่ได้นึกถึงรอบฟอสฟอรัสโดยเฉพาะ แต่มีบางคิวภาพที่กระสุนกำลังบิน ความคิดคือการใช้การบีบอัดแบบเลือก ... ลบระดับรายละเอียดที่ผู้เล่นจะไม่ลงทะเบียนว่า "หายไป" แต่จะช่วยลดภาระในระบบ บิต "สัญลักษณ์แสดงหัวข้อย่อยที่ 3" เป็นกฎเกณฑ์ ... คุณต้องทดลองเพื่อดูว่าอะไรทำงานได้ดี ในคำตอบของคุณคุณพูดว่า "tracers ปลอม" ซึ่งก็สมเหตุสมผลดีเช่นกัน
Stephen

1

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

อย่างไรก็ตามฉันคิดว่ามันอาจเป็นปัญหาได้มากที่จะชดเชยกระสุนจริงในสภาพแวดล้อมที่มีผู้เล่นหลายคนหากไม่เป็นไปไม่ได้หากเวลาแฝงเริ่มต้นนานกว่า 30 หรือ 50 มิลลิวินาที

วันหนึ่งผู้ให้บริการอินเทอร์เน็ตอาจให้ความสำคัญกับความล่าช้าและมอบข้อเสนอที่แตกต่างกันเล็กน้อย ... แต่หากไม่มี FTTH ก็ยังคงเป็นความฝัน ...


1

ในเกมเช่น บริษัท ที่ไม่ดี battlefeild 3 และ stalker ฉันเชื่อว่ากระสุนเป็นเอนทิตีที่แท้จริงที่ถูกไล่ออกเหมือน "จรวด" ฉันคิดว่าการติดตามรังสีเป็นสิ่งจำเป็นหากกระสุนจะไปถึงเป้าหมายในทันที เมื่อเอนทิตี้ของตนเองในกระสุนจริงเพียงแค่จะฟ้องเพื่อดูว่ามันกระทบกับใครบางคน


0

ตามความเป็นจริงถ้าคุณดูวิดีโอไกลใน Call of Duty คุณจะเห็นรอยยิ้มสีส้มบินผ่านอากาศไปยังเป้าหมายที่ต้องการและการโจมตี hobo จะมีคำตอบที่ถูกต้องเป็นส่วนใหญ่

หากคุณต้องการเอฟเฟกต์ Richochet อย่าง Hobo ให้ไปเล่นเกม Halo หากคุณถ่ายภาพที่ผนังโลหะจากตำแหน่งที่อยู่ใกล้คุณจะเห็นกระสุนปืนพุ่งออกมาจากโลหะ สไนเปอร์ในนั้นออกจากเส้นทางไปยังจุดที่มันชน

คำตอบที่ retarted เสร็จแล้วฉันอาจกลับไปแก้ไขในภายหลัง


-5

สัญลักษณ์แสดงหัวข้อย่อยและฟิสิกส์ทั้งหมดในชุดของเกม stalker ใช้ไลบรารีโอเพนซอร์สที่เรียกว่า "Open Dynamics Engine"

http://en.wikipedia.org/wiki/Open_Dynamics_Engine

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

เกมอื่น ๆ ที่ใช้งานมัน BloodRayne 2, Call of Juarez, World of Goo, X-Moto และ OpenSimulator

ทางเลือกที่ดีอีกอย่างหนึ่งก็คือห้องสมุดฟิสิกส์ "กระสุน" http://en.wikipedia.org/wiki/Bullet_%28software%29

มันถูกใช้ในแกรนด์ขโมยอัตโนมัติ 4 ไถ่ถอนแดงตายและอีกมากมาย

ps arma 2 ใช้เอ็นจิ้นฟิสิกส์ในบ้านเกมถัดไป arma 3 ของพวกเขาจะใช้เอนจิ้นฟิสิกส์ฟิสิกส์


3
มันทำให้เข้าใจผิดในการปิดรายการเกมที่ใช้ ODE เพื่อจุดประสงค์ที่ไม่มีส่วนเกี่ยวข้องกับสัญลักษณ์แสดงหัวข้อย่อย
jhocking

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