ฟีเจอร์ใดเป็นของเอ็นจิ้นและอันไหนของเกม


19

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

มีแนวทางปฏิบัติที่ดีที่สุดเพื่อมุ่งเน้นการใช้งานที่ถูกต้องในส่วนที่ถูกต้อง (นั่นคือเครื่องยนต์กับเกม) หรือไม่?

คำตอบ:


25

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

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


เรื่องสั้นสั้น:

A) เอ็นจิ้นควรมีฟีเจอร์ที่แชร์โดยเกมส่วนใหญ่

B) คุณเรียนรู้ว่าคุณลักษณะใดที่ใช้ร่วมกันโดยการทำเกมมากมาย


7
+1 -just start making games without worrying too much about the "engine"
JCM

1
ดีjust start making games without worrying too much about the "engine"แน่นอนเป็นข้อเสนอแนะที่ดี
Christian Ivicevic

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

2
นี่เป็นความคิดที่ดีเพราะมันทำให้คุณไม่สามารถใช้คุณสมบัติของเครื่องมือที่คุณไม่ต้องการใช้ในเกม
Zachary Yates

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