การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

7
ภาษาเฉพาะโดเมนสำหรับการเขียนสคริปต์ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา อย่างที่ทราบกันดีว่าล่ามแบบฝังตัวสำหรับภาษาเช่น Lua และ Python นั้นใช้กันอย่างแพร่หลายในการเขียนสคริปต์ของเกมลอจิก แต่ฉันไม่ได้เห็นข้อมูลมากมายเกี่ยวกับคนที่ใช้ภาษาเฉพาะโดเมนสำหรับสคริปต์เช่นสร้างภาษาสคริปต์ตรรกะเล็กน้อย 'ด้านบนของภาษาที่ใช้สำหรับส่วนที่เหลือของเกมโดยใช้มาโครหรือการเขียนโปรแกรมอย่างคล่องแคล่วหรืออะไรก็ตาม ดังนั้นคำถามของฉันมีดังนี้: ตัวอย่างของ DSL ที่คุณเห็นในเกมจริงมีอะไรบ้าง ปัญหาอะไรบ้างที่เกิดขึ้น คุณจะแนะนำเส้นทางนี้สำหรับนักพัฒนาเกมอื่น ๆ และในสถานการณ์ใดบ้าง คุณเห็นว่าสิ่งนี้เป็นเรื่องธรรมดามากขึ้นเมื่อการพัฒนาเกมก้าวไปสู่ภาษาที่เป็นมิตรกับ metaprogramming เช่น Boo?
12 scripting 

5
ไลบรารีเลเยอร์เครือข่าย [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังมองหาเลเยอร์เครือข่ายใด ๆ ที่พร้อมที่จะเพิ่มให้กับเกมของฉันไม่ว่าจะฟรีหรือราคาที่ยุติธรรมสำหรับเกมอินดี้ โดยเลเยอร์เครือข่ายฉันหมายถึงห้องสมุดบางประเภทที่ฉันสามารถเชื่อมต่อกับที่ฉันจะสามารถส่งข้อความไปและรับข้อความจากและมันจะจัดการข้อมูลระดับต่ำทั้งหมดด้วยตัวเอง ฉันกำลังมองหาโดยเฉพาะอย่างยิ่ง: ห้องสมุดคุณภาพสูงที่เข้าใจและจัดการกับสิ่งที่ซับซ้อนเช่นความแออัดของเครือข่าย ห้องสมุดที่ปรับขนาดได้ซึ่งจะทำให้ฉันมีผู้เล่นจำนวนมากเล่นด้วยกัน ควรเป็นโซลูชันเพียร์ทูเพียร์ไม่ใช่เซิร์ฟเวอร์ที่ใช้ ควรเป็นไลบรารีที่มีผลผูกพันกับภาษาระดับสูง (เช่น Java หรือ C #) ตัวอย่างของสิ่งที่ฉันกำลังมองหาคือGrappleแต่ฉันรู้ว่ามีห้องสมุดอื่น ๆ

1
ฉันควรจะโฮสต์เกมแฟลชของฉันที่ไหน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังดูเกมแฟลชของฉันบนไซต์เช่น Kongregate หรือ NewGrounds แต่ด้วยตัวเลือกมากมายฉันเหลือสงสัยว่าข้อดีข้อเสียของตัวเลือกต่างๆคืออะไร? ฉันสนใจใน: เข้าถึงผู้ชมมากที่สุด ทำเงิน (เช่นฉันรู้ว่า Kongregate แบ่งปันรายได้โฆษณา) คุณสมบัติ / ประโยชน์อื่น ๆ ของเว็บไซต์ (เช่น API การรวมเข้าด้วยกันเพื่อให้ได้คะแนนสูงการชำระเงินแบบเล็ก ฯลฯ )

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

5
API สะพานที่ไม่เชื่อเรื่องพระเจ้า (เช่น OpenGL / D3D / อะไรก็ตาม) คุณใช้มันอย่างไรคุณสร้างมันขึ้นมา Pro's and Con's [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา คุณกำลังสร้างเอนจิ้น 3 มิติ คุณต้องการโลกที่หลากหลายที่สุด ทันใดนั้นคุณก็รู้ว่าถ้าคุณต้องการใช้ Direct3D บนเครื่อง Windows และ OpenGL บน OSX / Linux คุณจะต้องเสียสละคุณสมบัติที่รองรับของตัวหารที่ใช้ร่วมกันให้น้อยที่สุด บางคนอาจใช้ OpenGL ในสามระบบปฏิบัติการ 'เพราะมันดูเหมือนจะเป็นตัวหารร่วมน้อยที่สุดด้วยตัวเอง ทั้งหมดเป็นสิ่งที่ดี. จากนั้นคุณต้องพอร์ตกราฟิก API ของคุณไปที่ GX ของ Nintendo คุณต้องสร้างเส้นทาง PS3 และ Xbox360 ด้วย คุณทำอะไร? คุณออกแบบ API ของคุณเองซึ่งเป็นตัวหารน้อยที่สุดในตัวเองและเขียนการใช้งานแบ็กเอนด์สำหรับแต่ละแพลตฟอร์มหรือคุณเขียนสำหรับแต่ละแพลตฟอร์มเป็นสาขาของตัวเองหรือไม่? หากคุณเลือกที่จะออกแบบ API ของคุณเองคุณใช้รูปแบบบริดจ์หรือวูดูของคุณเองหรือไม่ ความบ้าคลั่งหยุดอยู่ที่ไหนที่คุณตระหนักถึงทุกสิ่งและวิธีการอ่างล้างจานในครัวจะต้องหยุดและคุณมีเครื่องมือแยกต่างหากสำหรับแต่ละแพลตฟอร์มเป็นสาขา หรือคุณยึดติดกับทุกอย่างและอ่างล้างจานในครัวและเก็บเฉพาะแพลตฟอร์มไว้ในความเชี่ยวชาญของโมดูลแบ็กเอนด์สำหรับแต่ละแพลตฟอร์ม

6
Unreal Engine 3 กับ id Tech 3 กับ Unity [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังพยายามตัดสินใจว่าฉันควรเริ่มใช้เอ็นจิ้นตัวใดเพื่อเริ่มสร้างเกม ฉันเลือกUnityแต่เมื่อได้ยินว่าUnreal Engine 3เพิ่งจะเป็นอิสระที่จะใช้ฉันพบว่าฉันตั้งคำถามกับการตัดสินใจของฉัน เทคนิค Unreal ยังแพงที่สุดในเชิงพาณิชย์แล้ว Unity จากนั้นid เทค 3 (ฟรี) แต่มันอาจเป็นวิธีที่เร็วที่สุดในการทำงานด้วย หรือมีประสิทธิภาพมากที่สุด แต่ Unity ทำอะไรให้คุณได้มากที่สุดซึ่งมันสมเหตุสมผลที่สุดที่จะทำงานกับเรื่องนี้และใช้ประโยชน์จากประสิทธิภาพ / การปรับแต่ง (เช่น Java / C #) ได้โปรดครับทุกคนสามารถพูดจากประสบการณ์ของทั้งสามได้ไหม ฉันมีประสบการณ์เกี่ยวกับการดัดแปลงตั้งแต่วันลงโทษจากนั้นใน Quake 1 และ Half Life ฉันมีประสบการณ์ใน 3DS Max ด้วย ฉันไม่มีความปรารถนา ณ จุดนี้ในชีวิตของฉันที่จะเข้าสู่เรื่องอนิเมชั่นของ C …
12 unity  unreal 

2
ทำไม Unity ใช้ภาพสะท้อนเพื่อรับวิธีการอัพเดต
ทำไมสามัคคีสะท้อนการใช้เพื่อการเข้าถึงMonoBehaviourวิธีการเช่นข้อความAwake, Update, Start, ... ? การใช้ภาพสะท้อนจะไม่ช้าหรือไม่ ทำไมไม่ได้ใช้ประโยชน์จากวิธีการอื่น ๆ เช่นTemplate Method? มันสามารถนิยามเมธอดเป็นนามธรรมในMonoBehaviourคลาสฐานและบังคับให้คลาสย่อยนำไปใช้
12 unity  c#  performance 

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

3
ทำไมต้องใช้ Time.deltaTime ในฟังก์ชั่น Lerping
เพื่อความเข้าใจของฉัน, ฟังก์ชั่น Lerp สอดแทรกระหว่างสองค่า ( aและb) โดยใช้ค่าที่สาม ( t) ระหว่างและ0 1ที่t = 0ค่า a ถูกส่งคืน at ที่t = 1ค่าbจะถูกส่งคืน ที่ 0.5 ค่าครึ่งทางระหว่างaและbจะถูกส่งกลับ (ภาพต่อไปนี้เป็นแบบสเต็ปสเตปซึ่งมักจะเป็นการแก้ไขแบบลูกบาศก์) ฉันได้ดูฟอรัมและคำตอบนี้ฉันพบบรรทัดของรหัสต่อไปนี้:transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime); ฉันคิดกับตัวเองว่า "เป็นคนโง่เขาไม่มีความคิดอะไรเลย" แต่เนื่องจากมีผู้โหวตมากกว่า 40+ ครั้งฉันจึงได้ลองและแน่นอนว่ามันใช้ได้ดี! float t = Time.deltaTime; transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, t); Debug.Log(t); ผมได้รับค่าสุ่มระหว่าง0.01และสำหรับ0.02 tฟังก์ชั่นไม่ควรแก้ไขตามหรือไม่ ทำไมค่าเหล่านี้สแต็ก มันเกี่ยวกับ lerp อะไรที่ฉันไม่เข้าใจ?

1
อนุพันธ์ของอวกาศสกรีนคืออะไรและเมื่อใดที่ฉันจะใช้
ฉันเห็นฟังก์ชั่นddxและddyglsl และการเทียบเท่า hlsl เกิดขึ้นในรหัส shader ทุก ๆ ครั้งแล้ว ขณะนี้ฉันกำลังใช้พวกมันเพื่อทำแผนที่ bump โดยไม่มีการแทนเจนต์หรือ bitangent แต่โดยทั่วไปฉันคัดลอกวางโค้ด ฉันไม่เข้าใจว่าฟังก์ชั่นเหล่านี้คืออะไรพวกเขาทำอะไรและเมื่อใดที่ฉันจะใช้มัน ดังนั้นคำถาม: ฟังก์ชันอนุพันธ์หน้าจอคืออะไร? ฟังก์ชั่นเหล่านี้ทำอะไร? ค่าอินพุตและค่าเอาต์พุต ลักษณะพิเศษใดที่ใช้บ่อยที่สุด เอฟเฟกต์ประเภทใดที่คุณต้องมองไปที่ฟังก์ชันเหล่านี้

3
Attack vs Defense และใครคือผู้ชนะ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันอยู่ในขั้นตอนการสร้างเกมง่ายๆใหม่ในมือถือและฉันใช้เวลาหลายวันในส่วนต่อไปนี้ เพื่อความง่ายสมมติว่าฉันมีนักสู้สองคน คุณลักษณะเฉพาะของพวกเขาคือการโจมตีและการป้องกัน เมื่อการโจมตีครั้งแรกสิ่งเดียวที่สำคัญคือการโจมตีของเขาและการป้องกันของฝ่ายตรงข้าม และในทางกลับกัน. พวกเขาไม่มีอุปกรณ์สิ่งของความแข็งแกร่งหรือสุขภาพ เพียงแค่โจมตีเทียบกับการป้องกัน ตัวอย่าง: นักสู้ 1: การโจมตี: 50, การป้องกัน: 35 นักสู้ 2: โจมตี 20 ป้องกัน: 80 กระบวนการต่อสู้จะเป็นการโจมตีเพียงครั้งเดียวซึ่งจะเป็นตัวตัดสินผู้ชนะ ดังนั้นจึงไม่มีการโจมตีหรือปัดเศษหลายครั้ง ฉันไม่ต้องการทำให้มันยาก แต่เพิ่มรุ่นที่ไม่คาดคิด นักสู้ที่มีการจู่โจมต่ำกว่าจะสามารถชนะนักสู้อีกคนที่มีการป้องกันที่ดีกว่าได้ (แต่ไม่ใช่ทุกครั้ง) ความคิดแรกของฉันคือทำให้มันเป็นเส้นตรงและเรียกเครื่องมือสร้างตัวเลขสุ่ม If Random() < att1 / (att1 + def2) { winner = fighter1 } else { winner …

2
อัพเดตและแสดงผลในเธรดแยกกัน
ฉันกำลังสร้างเอ็นจิ้นเกม 2D ง่าย ๆ และฉันต้องการอัปเดตและแสดงสไปรต์ในชุดข้อความต่างๆเพื่อเรียนรู้วิธีการทำงาน ฉันต้องการซิงโครไนซ์เธรดการอัพเดทและเรนเดอร์หนึ่ง ปัจจุบันฉันใช้แฟล็กอะตอมสองอัน เวิร์กโฟลว์มีลักษณะดังนี้: Thread 1 -------------------------- Thread 2 Update obj ------------------------ wait for swap Create queue ---------------------- render the queue Wait for render ------------------- notify render done Swap render queues ---------------- notify swap done ในการตั้งค่านี้ฉัน จำกัด FPS ของเธรดการแสดงผลเป็น FPS ของเธรดการปรับปรุง นอกจากนี้ฉันใช้sleep()เพื่อ จำกัด ทั้งเรนเดอร์และอัปเดต FPS ของเธรดเป็น …

3
Unity ให้โค้ดใน Java หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันค่อนข้างใหม่สำหรับประสบการณ์ Unity3D แต่ฉันมีความรู้ดีมากเกี่ยวกับการพัฒนา Java และ Android ฉันสับสนจริงๆว่าถ้า Java จำเป็นสำหรับการพัฒนาแอปพลิเคชัน Android ฉันอ่านที่ไหนสักแห่งในเอกสาร Unity ที่เพิ่มพฤติกรรมให้กับวัตถุใน Unity ต้องใช้สคริปต์และความสามัคคีนั้นสนับสนุนสคริปต์ C #, .Net และ Boo เท่านั้น ไม่มีการใช้ Java เลยใช่ไหม

1
ควอดทรีจะเป็นที่นิยมมากกว่าการแปลงพื้นที่เมื่อใด
ฉันกำลังสร้าง platformer 2d พร้อมวัตถุจำนวนมากในเวลาเดียวกัน ตรวจพบการชนของ AABB ทั้งหมด ก่อนอื่นฉันลองควอดทรีเพื่อลดจำนวนวัตถุที่จะตรวจสอบลองใช้การกำหนดค่าที่แตกต่างกันสองสามอย่าง แต่ก็ไม่ได้มีประสิทธิภาพเท่าที่ฉันต้องการ ฉันใช้แฮชเชิงพื้นที่และมันมีประสิทธิภาพมากกว่าจำนวนของวัตถุที่จะตรวจสอบการชนกันของแต่ละครั้งลดลงอย่างเห็นได้ชัด มีกรณีเมื่อทำการตรวจจับการชนกัน 2d โดยใช้ควอดทรีเป็นที่นิยมมากกว่า hashing อวกาศ? จากการทดสอบของฉันดูเหมือนว่าพื้นที่ว่างเปล่ามักจะจบลงด้วยวัตถุน้อยลงที่จะทดสอบการชนกันหรือไม่ ฉันยังไม่ได้ตั้งเวลาให้กับอัลกอริทึม แต่การทำแฮชราคาแพงมากหรือยากที่จะนำไปใช้เมื่อคุณยกตัวอย่างเช่นการเข้ารหัสใน C? เป็นที่น่าสังเกตว่าฉันกำลังเขียนเกมใน javascript ที่ซึ่งคุณมี hashing "ฟรี" นี่คือการเปรียบเทียบฉันมองข้ามบางสิ่งไปหรือเปล่า http://zufallsgenerator.github.io/2014/01/26/visually-comparing-algorithms/

3
ข้อ จำกัด ของเกม p2p ที่มีผู้เล่นหลายคนเทียบกับไคลเอนต์เซิร์ฟเวอร์ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังอ่านข้อมูลเกี่ยวกับสถาปัตยกรรมเกมแบบผู้เล่นหลายคน จนถึงที่สุดของบทความที่ฉันได้พบข้อตกลงกับรูปแบบลูกค้า - เซิร์ฟเวอร์ ฉันต้องการทราบว่ามีข้อ จำกัด ในการใช้สถาปัตยกรรม p2p อย่างไร สิ่งที่ "คลาส" ของเกมเป็นไปได้ (หรือมากกว่าปกติ) เพื่อใช้งานหรือไม่ อันไหน และโดยทั่วไปแล้วอะไรคือข้อแตกต่างและข้อ จำกัด หลักกับแบบจำลองไคลเอ็นต์ - เซิร์ฟเวอร์

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