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

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

4
การจำลองทางฟิสิกส์ฝั่งเซิร์ฟเวอร์ที่มีผู้เล่นหลายร้อยคน
ขณะนี้ฉันกำลังทำงานในเกมแนวฟิสิกส์ที่ผู้เล่นคนเดียวซึ่งฉันต้องการให้ฟิสิกส์เป็นฝั่งเซิร์ฟเวอร์จำลอง นี่เป็นเพราะเกมจะมีกระดานผู้นำผู้เล่นที่ต่อเนื่องและอื่น ๆ และฉันต้องการป้องกันการโกงใด ๆ - โดยทั่วไปเป็นสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ที่แท้จริงไคลเอนต์ "โง่" และแสดงเฉพาะสิ่งที่เซิร์ฟเวอร์ต้องการให้คุณแสดง อย่างไรก็ตามปัญหาคือเกมนี้มีผู้เล่นหลายร้อยคน (อาจจะเป็นพันคน) ในเวลาเดียวกัน เรื่องนี้เกี่ยวข้องกับฉันเพราะมันน่าจะทำให้พลังในการประมวลผลของเซิร์ฟเวอร์ลดลงถ้าฉันต้องทำและรักษาสถานะเป็นร้อย ๆ รายการในเวลาเดียวกัน ฉันจะไม่มีปัญหาในการย้ายการจำลองฟิสิกส์ทั้งหมดไปยังฝั่งไคลเอ็นต์ แต่จากนั้นฉันจะต้องมีวิธีการตรวจสอบจริง ๆ ถ้าผลลัพธ์ของการจำลองไคลเอ็นต์นั้นถูกต้อง อย่างไรก็ตามฉันไม่สามารถหาวิธี ฉันคิดเกี่ยวกับการใช้ฝั่งเซิร์ฟเวอร์จำลองนาน ๆ ครั้งเพื่อตรวจสอบว่าไคลเอนต์ยังคงเล่นอยู่ แต่ฉันต้องการให้เซิร์ฟเวอร์มีความเครียดน้อยที่สุดเท่าที่จะทำได้ วิชาฟิสิกส์จะมีความซับซ้อนเท่ากับการสาธิต GDC 2011 โดย Glenn Fiedlerซึ่งอาจจะง่ายกว่า อย่างไรก็ตามฉากที่มีการชนกันของร่างกายที่แข็งกระด้างจะอยู่ในฉากเดียวและพวกมันจะมองเห็นได้ในครั้งเดียว ฉันมีความยากลำบากในการได้รับคำตอบของกรณีนี้เนื่องจากทรัพยากรส่วนใหญ่บนเว็บ - อีกครั้งเว็บไซต์ Glenn Fiedlers เป็นเว็บไซต์ที่ยอดเยี่ยม - พูดถึงฟิสิกส์เครือข่ายขนาดเล็ก (เช่น FPS ที่มีผู้เล่น 30 คนเช่น Halo) คำแนะนำเว็บไซต์เอกสารหรือสิ่งที่ชอบในเรื่องใด ๆ จะได้รับการชื่นชมมาก …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.