สคริปต์ควรโต้ตอบกับสิ่งที่เป็นนามธรรมหรือไม่?


10

ฉันกำลังใช้ Java และ Jython และหลังจากการวิจัยบางอย่างฉันค้นพบว่าการให้สคริปต์เข้าถึงโดยตรงกับส่วนต่อประสานเครื่องยนต์อาจเป็นข้อผิดพลาด

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

คำตอบ:


7

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

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

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

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


3

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


1

การสร้างเลเยอร์ระหว่างแกนกลางของเกมและสคริปต์ที่ใช้ในการสร้างการดัดแปลงเป็นสิ่งที่จำเป็นสำหรับฉัน

คุณได้รับข้อดีหลายประการโดยใช้วิธีนี้:

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

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

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