การพัฒนาเกม

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

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

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

5
มีวัตถุสแตติกขนาดใหญ่เช่นสภาพแวดล้อมที่ส่งจากเซิร์ฟเวอร์ไปยังไคลเอนต์ในเกมที่มีผู้เล่นหลายคนทันสมัยหรือไม่?
ฉันมีระบบที่มีสิทธิ์ซึ่งเมื่อผู้เล่นเข้าร่วมการแข่งขันมันจะได้รับวัตถุที่เกิดแล้วทั้งหมด - กลับกลายเป็นตัวของมันเอง (ลูกค้า) ดูเหมือนว่านี้: Client ส่งโทเค็นการเข้าถึงไปที่ Server Client ได้รับการยอมรับจาก Server Client สลับฉากกับฉากเกม Serverส่งผู้เล่น, ลัง, วัตถุที่คุณสามารถโต้ตอบด้วยเพื่อให้clientสามารถวางไข่และแสดงพวกเขา แต่วัตถุพื้นดินล่ะ? ตอนนี้ฉันมีฉากเดียวกันที่แน่นอนบนเซิร์ฟเวอร์และไคลเอนต์ - ด้วยระนาบคงที่หนึ่งที่ทำหน้าที่เป็นพื้น ขณะนี้ฉันกำลังเพิ่มสิ่งใหม่ต้นไม้บันไดและสร้างสิ่งต่าง ๆ ด้วยกัน ฉันคิดว่า - เราดี แต่ไม่ควรซิงโครไนซ์สภาพแวดล้อมด้วย? จะเชื่อมต่อเครือข่ายอย่างใด? เป็นเจ้าของเซิร์ฟเวอร์หรือไม่ มาดูLeague of Legendsกัน: มันเป็นสภาพแวดล้อมที่คงที่อาจเป็นตาข่ายเดียว (บันไดหญ้าผนังร้านค้า) แต่มันถูกเก็บไว้ในไคลเอนต์จริง ๆ หรือมันถูกส่งโดยเซิร์ฟเวอร์ในระหว่างการโหลดหน้าจอ?
18 unity  networking  maps 

2
โครงสร้างหน่วยเกม RTS
ฉันต้องการวิธีที่จะสร้างหน่วยที่แตกต่างกันมากมายโดยไม่ต้องเขียนโปรแกรมอะไรเช่น moveTo และ Attack มากกว่าหนึ่งครั้ง วิธีที่ฉันเห็นมันมี 2 วิธีที่ฉันทำได้ คลาสหน่วยทั่วไปเดียวที่มีแฟล็กที่ระบุสิ่งที่สามารถ / ไม่สามารถทำได้ (จากนั้นสร้างอินสแตนซ์ในอาร์เรย์แบบสแตติกและคว้าเมื่อจำเป็น) คลาสหน่วยนามธรรมพร้อมวิธีการแบบนามธรรมสำหรับการกระทำเฉพาะหน่วยเช่น (Attack, Harvest, Patrol) ซึ่งจำเป็นต้องนำไปใช้ในคลาสย่อยแม้ว่าหน่วยนั้นจะไม่สามารถเก็บเกี่ยวสิ่งใดได้ วิธีแรกในการทำสิ่งนี้ดูง่ายที่สุด แต่ฉันจะต้องมีรหัสจำนวนมากที่ไม่ได้ใช้สำหรับหน่วยงานส่วนใหญ่ วิธีที่สองสามารถใช้งานได้เช่นกัน แต่ถ้าฉันตัดสินใจที่จะมีสองหน่วยที่แตกต่างกันที่สามารถเก็บเกี่ยวทรัพยากรฉันจะมีรหัสเดียวกันแน่นอนในสองชั้นเรียนที่แตกต่างกันซึ่งดูเหมือนจะไม่ถูกวิธีที่จะทำ นี่เป็นแนวทางที่ถูกต้องสำหรับปัญหานี้หรือไม่? ในเกมอย่าง AoE ทุกหน่วยมีสิ่งที่ฉันเข้าใจคือ List of Actions / Orders บางอย่างฉันอยากรู้วิธีทำให้บางอย่างคล้ายกับสิ่งนั้นโดยที่ฉันสามารถเขียนโค้ด Action / Order แต่ละครั้งได้ครั้งเดียวและ จากนั้นมอบให้กับทุกหน่วยงานที่ต้องมีการกระทำ หากฉันไม่ชัดเจน (น่าเชื่อถือสูง) หรือคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ฉันกำลังมองหาเพียงแค่ถามฉันในความคิดเห็น
18 unity  c#  architecture  rts 

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

2
Steam มอบการจัดเก็บข้อมูลถาวรให้กับนักพัฒนาหรือไม่?
Steam มอบการจัดเก็บข้อมูลถาวร (สำหรับข้อมูลที่กำหนดเอง) แก่นักพัฒนาหรือไม่? ตัวอย่างเช่นนักกีฬาออนไลน์จะสามารถเก็บสถิติผู้เล่น (สังหารการแข่งขันผู้เล่นเสียชีวิต ฯลฯ ) บนเซิร์ฟเวอร์ Steam หรือไม่
18 online  data  steam 

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

5
เอฟเฟกต์กราฟิกที่เกิดขึ้นกับพื้นผิวที่ห่างไกลที่ไม่ใช่การทำแผนที่เรียกว่าอะไร
เราทุกคนรู้เกี่ยวกับMIP การทำแผนที่ มันลดคุณภาพของพื้นผิวเมื่อพื้นผิวอยู่ห่างออกไป หากไม่มีการทำแผนที่ mip พื้นผิวจะปรากฏเป็น "สั่นไหว" เหมือนส่วนบนของภูเขาที่นี่: มีชื่อเฉพาะหรือไม่ ฉันต้องการเขียนประโยคเช่น "ฉันใช้การทำแผนที่ mip เพื่อแก้ไขผล ___" หรือ "สิ่งนี้เรียกว่า ___ และเกิดขึ้นเมื่อไม่ได้ใช้การทำแผนที่ mip"

3
จุดประสงค์ของการเพิ่มองค์ประกอบที่ไม่ใช่เกมเข้ากับเกมคืออะไร?
ตัวอย่างฉันจะอ้างอิงนักวิทยาศาสตร์ใน Jetpack Joyride ฉันเข้าใจว่ามีความสำเร็จที่เกี่ยวข้องกับนักวิทยาศาสตร์ที่คุณสามารถฆ่าพวกเขาหรือคุณมีความน่ารังเกียจ แต่ฉันไม่ได้ถามเกี่ยวกับสิ่งเหล่านั้น ฉันต้องการที่จะเข้าใจว่ามีเหตุผลที่สำคัญมากที่จะมีองค์ประกอบดังกล่าวในเกมหรือไม่ (อย่างน้อยในตอนแรก) ดูเหมือนว่าจะไม่สำคัญเลย การปรากฏตัวของนักวิทยาศาสตร์ (หรือเทียบเท่า "นักแสดง" ที่เห็นได้ชัดในเกม) มีผลทางจิตวิทยาหรืออิทธิพลใด ๆ ต่อผู้เล่นหรือไม่? หรือพวกเขาเป็นเพียงเกมเล็ก ๆ น้อย ๆ ที่แทบจะไม่สร้างความแตกต่างใด ๆ กับความรู้สึกและทัศนคติของผู้เล่นในขณะที่เล่นเกม?

2
การจัดสรรและเพิ่มหน่วยความจำขนาดใหญ่เมื่อเริ่มต้นใช้งาน“ ล้างหน่วยความจำหรือไม่”
หนังสือเกมการเข้ารหัสเสร็จสมบูรณ์ฉบับที่สี่บทที่ 5 (การเริ่มต้นเกมและการปิดระบบ ) ส่วนการตรวจสอบหน่วยความจำมีตัวอย่างโค้ดที่น่าสนใจนี้: bool CheckMemory(const DWORDLONG physicalRAMNeeded, const DWORDLONG virtualRAMNeeded) { MEMORYSTATUSEX status; GlobalMemoryStatusEx(&status); if (status.ullTotalPhys < physicalRAMNeeded) { // you don’t have enough physical memory. Tell the player to go get a // real computer and give this one to his mother. GCC_ERROR("CheckMemory Failure: Not enough physical …
18 c++  memory 

2
จะแก้ไขคู่ค่าคีย์ (เช่นพจนานุกรม) ในตัวตรวจสอบของ Unity ได้อย่างไร
ฉันมีระบบสะกดคำที่ฉันสร้างหลักการมีดังนี้: แต่ละคาถาเป็นรูปแบบสำเร็จรูปอัตโนมัติ มันมีสคริปต์ที่มีคุณสมบัติบางอย่าง (ความเสียหายพื้นฐานระยะเวลา ... ) ที่สามารถแก้ไขได้ในการตรวจสอบ ฉันมี Spell enum ที่แสดงรายการคาถาที่เป็นไปได้ทั้งหมดในรหัสซึ่งใช้ในตรรกะของเกม เมื่อฉันต้องการเสกคาถาฉันต้องได้รับพรีสแลชของคาถานี้เพื่อยกตัวอย่างและอ่านข้อมูล นักแสดงแต่ละคน (ไม่ว่าจะเป็นผู้เล่นหรือศัตรู) จำเป็นต้องมีรายการอนิเมชั่นที่เป็นไปได้สำหรับคาถา ปัญหาเกี่ยวกับวิธีที่ฉันพยายามใช้คือ: สำหรับการแสดงรายการแอนิเมชั่นของนักแสดงแต่ละคนฉันสามารถใช้ a Dictionary<Spell, Animation>ได้ แต่พจนานุกรมไม่ได้รับการสนับสนุนจากผู้ตรวจสอบซึ่งทำให้ยากที่จะแก้ไขนักแสดงหลายประเภทได้อย่างง่ายดาย ฉันต้องการวิธีในการเข้าถึง prefab คาถาจาก enum ที่เกี่ยวข้องได้อย่างง่ายดาย ที่นี่ฉันสามารถใช้พจนานุกรมได้ แต่ฉันสามารถอ้างอิงเฉพาะ prefab ในตัวตรวจสอบไม่ใช่ในรหัสซึ่งหมายความว่าฉันจะไม่สามารถเติมพจนานุกรมนี้ได้ ฉันกำลังมองหาวิธีที่จะเชื่อมโยงคาถาของฉันได้อย่างง่ายดาย enums กับ prefabs และภาพเคลื่อนไหวที่สอดคล้องกัน

2
texelFetch และพื้นผิวของ OpenGL แตกต่างกันอย่างไร
ฉันเข้าใจความแตกต่างที่สำคัญระหว่างtexelFetchและtextureแต่มีคำถามบางอย่างเกี่ยวกับรายละเอียด: ไม่texelFetchเกี่ยวข้องกับการลงโทษประสิทธิภาพหรือไม่? เช่นไม่ได้ใช้แคชหรือเช่น? มีtexelFetchและtextureใช้แทนกันได้เมื่อใช้GL_NEAREST?

3
จับคู่ชิ้นส่วนของโลกที่สร้างขึ้นแบบขั้นตอนกับส่วนอื่นของโลก
คุณได้อ่าน The Chronicles of Amber โดย Roger Zelazny แล้วหรือยัง? ลองนึกภาพตัวเองเล่นในเกม MMO คนที่ 3 คุณวางไข่ในโลกและเริ่มเดินไปรอบ ๆ เมื่อเวลาผ่านไปเมื่อคุณคิดว่าคุณได้เรียนรู้แผนที่คุณรู้ว่าคุณอยู่ในสถานที่ที่คุณไม่เคยเห็นมาก่อน คุณกลับไปยังที่สุดท้ายที่คุณแน่ใจและรู้ว่ายังอยู่ที่นั่น แต่ส่วนที่เหลือของโลกมีการเปลี่ยนแปลงและคุณไม่ได้สังเกตว่ามันเกิดขึ้นได้อย่างไร ฉันได้อ่านเกี่ยวกับการสร้างโลกขั้นตอน ฉันได้อ่านเกี่ยวกับเสียงเพอร์ลินและอ็อกเทฟเสียงรบกวน, อัลกอริธึมไดมอนด์สแควร์เกี่ยวกับการจำลองแผ่นเปลือกโลกและการกัดเซาะของน้ำ ฉันเชื่อว่าฉันมีความเข้าใจที่คลุมเครือของวิธีการทั่วไปในการสร้างโลกแบบขั้นตอน และด้วยความรู้นี้ฉันไม่มีความคิดว่าคุณจะทำสิ่งที่เขียนไว้ด้านบนได้อย่างไร ทุกความคิดที่อยู่ในใจของฉันได้พบกับปัญหาทางทฤษฎีบางอย่าง นี่คือความคิดที่ฉันคิดได้: 1) "ย้อนกลับ" รุ่นโลกที่มีหมายเลขเมล็ดเป็นอินพุตและบางอย่างที่อธิบาย -a-chunk-number ฉันสงสัยว่ามันเป็นไปได้ แต่ฉันจินตนาการถึงฟังก์ชั่นที่จะได้รับเมล็ดพันธุ์และสร้างเมทริกซ์ของตัวเลขซึ่งจะถูกสร้างเป็นชิ้น ๆ และสำหรับแต่ละหมายเลขที่ไม่ซ้ำกันจะมีอันที่ไม่ซ้ำกัน และฟังก์ชั่นที่สองที่ได้รับหมายเลขอันไม่ซ้ำกันนี้และสร้างเมล็ดพันธุ์ที่มีหมายเลขนี้ ฉันพยายามที่จะทำให้รูปแบบในภาพด้านล่าง: 2) การทำชิ้นสุ่มอย่างสมบูรณ์และทำการเปลี่ยนแปลงระหว่างพวกเขา ตามที่แนะนำในAracthor ประโยชน์ของวิธีนี้คือมันเป็นไปได้และไม่ต้องใช้เวทมนตร์ fuction :) ข้อเสียของวิธีการนี้มีอยู่ในความคิดของฉันคือว่าเป็นไปไม่ได้ที่จะมีโลกที่หลากหลาย ถ้าคุณสมมุติว่าทั้งหมู่เกาะและทวีปแสดงเพียงหนึ่งหมายเลขและมันเป็นส่วนที่อยู่ติดกันดังนั้นขนาดของก้อนจะไม่เท่ากับทวีป และฉันสงสัยว่ามันเป็นไปได้ที่จะทำให้การเปลี่ยนหน้าตาดีระหว่างชิ้น ฉันพลาดอะไรไปรึเปล่า? คุณกำลังพัฒนา MMO กับโลกที่สร้างขึ้นแบบขั้นตอน แต่แทนที่จะมีโลกเดียวคุณมีมากมายจำนวนมากคุณจะใช้วิธีการใดในการสร้างโลกและคุณจะใช้การเปลี่ยนแปลงของผู้เล่นจากโลกหนึ่งไปยังอีกโลกหนึ่งได้อย่างไรโดยที่ผู้เล่นไม่สังเกตเห็นการเปลี่ยนแปลง อย่างไรก็ตามฉันเชื่อว่าคุณมีความคิดทั่วไป …

3
คุณเตรียมตัวอย่างไรสำหรับเงื่อนไขหน่วยความจำไม่เพียงพอ?
นี้จะเป็นเรื่องง่ายสำหรับเกมที่มีขอบเขตกำหนดไว้อย่างดี แต่คำถามคือเกี่ยวกับเกม sandbox ที่ที่ผู้เล่นจะได้รับอนุญาตให้สร้างและสร้างอะไร เทคนิคที่เป็นไปได้: ใช้พูลหน่วยความจำที่มีขีด จำกัด สูงสุด ลบวัตถุที่ไม่ต้องการเป็นระยะ ๆ จัดสรรจำนวนหน่วยความจำเพิ่มเติมที่จุดเริ่มต้นเพื่อให้สามารถเป็นอิสระในภายหลังเป็นกลไกการกู้คืน ฉันจะบอกว่าประมาณ 2-4 MBs สิ่งนี้มีแนวโน้มที่จะเกิดขึ้นในแพลตฟอร์มมือถือ / คอนโซลซึ่งหน่วยความจำมักจะถูก จำกัด ไม่เหมือนกับพีซีขนาด 16 GB ของคุณ ฉันสมมติว่าคุณสามารถควบคุมการจัดสรร / การจัดสรรคืนหน่วยความจำได้อย่างสมบูรณ์และไม่มีการรวบรวมขยะ นั่นเป็นเหตุผลที่ฉันกำลังติดแท็กสิ่งนี้เป็น C ++ โปรดทราบว่าฉันไม่ได้พูดถึงรายการ C ++ ที่มีประสิทธิภาพ 7 "เตรียมพร้อมสำหรับเงื่อนไขหน่วยความจำไม่เพียงพอ"แม้ว่าจะเกี่ยวข้องกัน แต่ฉันต้องการดูคำตอบเพิ่มเติมเกี่ยวกับการพัฒนาเกมซึ่งคุณมักจะควบคุมสิ่งที่มากกว่า สิ่งที่เกิดขึ้น เพื่อสรุปคำถามคุณจะเตรียมตัวอย่างไรสำหรับเงื่อนไขหน่วยความจำไม่เพียงพอสำหรับเกมแซนด์บ็อกซ์เมื่อคุณกำหนดเป้าหมายแพลตฟอร์มด้วยคอนโซลหน่วยความจำ / อุปกรณ์เคลื่อนที่ จำกัด

1
การออกแบบเครื่องมือเกม - Ubershader - การออกแบบการจัดการ Shader [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันต้องการใช้ระบบ Ubershader ที่ยืดหยุ่นด้วยการแรเงาที่เลื่อนออกไป ความคิดปัจจุบันของฉันคือการสร้างความแตกต่างจากโมดูลซึ่งจัดการกับคุณสมบัติบางอย่างเช่น FlatTexture, BumpTexture, Displacement Mapping เป็นต้นนอกจากนี้ยังมีโมดูลขนาดเล็กที่ถอดรหัสสีทำการแมปโทนและอื่น ๆ ซึ่งมีข้อดีที่ฉันสามารถ แทนที่โมดูลบางประเภทหาก GPU ไม่รองรับดังนั้นฉันสามารถปรับให้เข้ากับความสามารถของ GPU ในปัจจุบัน ฉันไม่แน่ใจว่าการออกแบบนี้ดีหรือไม่ ฉันกลัวว่าฉันจะเลือกได้ไม่ดีตอนนี้และจ่ายเงินในภายหลัง คำถามของฉันคือฉันจะหาแหล่งข้อมูลตัวอย่างบทความเกี่ยวกับวิธีการนำระบบการจัดการ shader ไปใช้ได้อย่างมีประสิทธิภาพได้อย่างไร ไม่มีใครรู้ว่าเอ็นจิ้นเกมใหญ่ทำเช่นนี้ได้อย่างไร

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