การพัฒนาเกม

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

2
อัลกอริทึมสำหรับแผนที่ 2D ขั้นตอนที่มีเส้นทางเชื่อมต่อ
ปัญหาที่จะต้องแก้ไข:สร้างแผนที่ดันเจี้ยน 2D แบบสุ่มสำหรับเกมแบบเรียงต่อกันที่ห้องทั้งหมดเชื่อมต่อกัน ฉันกำลังมองหาวิธีแก้ปัญหาที่ดีกว่าสิ่งที่ฉันมีอยู่ในปัจจุบัน โซลูชันปัจจุบันของฉันคือฉันรันสองอัลกอริธึม ครั้งแรกที่สร้างดันเจี้ยนที่มีห้องพัก ที่สองตรวจสอบให้แน่ใจว่าห้องพักทุกห้องเชื่อมต่อกัน ฉันอยากรู้ว่าการแก้ปัญหาอื่นอาจมีอยู่ เร็วขึ้นและ / หรือง่ายขึ้นเป็นต้นความเร็วไม่ใช่เรื่องที่น่ากังวล แต่ถ้าความเร็วสามารถเพิ่มได้โดยไม่ต้องเสียค่าใช้จ่ายจริงนั่นเป็นเรื่องดี ที่สำคัญกว่านั้นคือฉันและคนอื่น ๆ ที่อ่านอาจเรียนรู้วิธีต่าง ๆ ในการเข้าถึงและแก้ไขปัญหา ด้านล่างคือการใช้งานปัจจุบันของฉัน ขณะนี้ห้องพักไม่มีทางออกหรือออกในทิศทาง 2, 3 หรือ 4 สร้างห้องดันเจี้ยน ตั้งค่า: ตั้งค่าห้องปัจจุบันเป็นห้องซ้ายบน รับประเภทห้องที่ถูกต้องสำหรับห้องพัก (ที่ประเภทห้องที่ถูกต้องเป็นประเภทที่ไม่มีทางออกจากคุกใต้ดินและห้องที่ออกตรงกับทางออกของห้องด้านบนและห้องทางด้านซ้ายเพียงตรวจสอบด้านบนและ เหลือเนื่องจากขั้นตอนที่ 2 ด้านล่าง) วางห้องลงแล้วเลื่อนพิกัด x หนึ่งก้าว หากพิกัด x เกินความกว้างของดันเจี้ยนให้ตั้งค่าพิกัด x เป็น 0 และเลื่อนไปข้างหน้าพิกัด y หนึ่งก้าว หากพิกัด y เกินความสูงของดันเจี้ยนเราก็เสร็จเรียบร้อย ทำซ้ำจาก # 1 ฉันจะตรวจสอบเพื่อดูว่าห้องทั้งหมดเชื่อมต่อกันหรือไม่หากพวกเขาไม่ได้เชื่อมต่อกันทั้งหมดฉันเรียกใช้อัลกอริทึมที่สองว่าในวิธีที่ไม่เซ็กซี่ …

2
ประสิทธิภาพการทำงานมีประโยชน์อย่างไรในการบันทึกอักขระที่ล็อกอินทั้งหมดใน MMO ในช่วงเวลาปกติ
MMORPGS ส่วนใหญ่มีระบบ Worldsave ที่จะบันทึกอักขระทั้งหมดทุกๆ X ชั่วโมง ฉันคิดว่าเหตุผลก็คือประสิทธิภาพ เหตุใดจึงดีกว่าประสิทธิภาพการทำงานที่ดีกว่าการบันทึกอักขระในการตัดการเชื่อมต่อ

4
อัตราเงินเฟ้อสามารถอยู่ในราคาคงที่ Mmorpg โลกได้หรือไม่?
สมมติฐาน: วัสดุหัตถกรรมไม่มีที่สิ้นสุด วงเงินคือผู้เล่นที่เบื่อ ผู้เล่นสามารถค้าขายได้ผ่านทางบ้านประมูลเท่านั้น ราคาทั้งหมดได้รับการแก้ไข ผู้เล่นไม่สามารถตัดสินใจราคาตามอำเภอใจ สินค้าในบ้านประมูลจะถูกเก็บไว้เป็นระยะเวลาไม่สิ้นสุดและไม่สามารถถอนได้โดยผู้สร้างการประมูล (ยกเว้นว่าเขาจ่าย 100% ราคาสินค้า + 10% ค่าธรรมเนียมการประมูล) อัลกอริธึมการขายคือ FIFO (ไอเท็มแรกที่ผู้เล่นคนใดวางขายเป็นไอเท็มแรก) การสร้างและรวบรวมอาชีพมีคะแนนงานฝีมือ 10 ชิ้นต่อวัน คำถาม / คะแนนที่จะพูดคุยเกี่ยวกับ: ผู้เล่นทุกคนจะมีความสุขราคายุติธรรม 100% ปราศจากการหลอกลวงไม่จำเป็นต้องเล่นตลาดหุ้นเพื่อทำกำไรผ่านการประดิษฐ์ ผู้เล่นใหม่จะมีประสบการณ์เดียวกันแม้ว่าพวกเขาจะมาสายเกินไปที่จะเล่นเกม เงินไม่เคยสูญเสียคุณค่าคุณสามารถเก็บเงินในธนาคารมาถึงหลังจากผ่านไป 10 ปีกับเกมและซื้อทุกอย่างในราคาเดียวกัน ในทางตรงกันข้ามกับ WOW แร่ทองแดงอย่างง่ายมีค่า 10 เงินเมื่อเริ่มเกมและตอนนี้ได้สิ้นสุดเป็น 200 เงิน นั่นคืออัตราเงินเฟ้อ 2,000% เมื่อมีราคาคงที่คุณรับประกันได้ว่าแม้ว่าผู้เล่นทุกคนในจักรวาลจะมีมูลค่า 99999999999 กรัมในกระเป๋าของพวกเขา แต่สินค้าก็มีมูลค่าเท่ากัน นั่นรับประกันอัตราเงินเฟ้อ 0% แฮกเกอร์อาจร้องไห้ตามที่พวกเขาต้องการ แต่ราคาสินค้าจะไม่เปลี่ยนแปลง เหตุใด WOW / Diablo …

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

9
ฉันจะใส่หนังสือที่เป็นสาธารณสมบัติในเกมของฉันได้ไหม
เพื่อความสนุกฉันต้องการรวมชั้นวางหนังสือในเกมของฉันกับหนังสือจริง (หรือน้อย) ที่คุณสามารถอ่านได้จริง ฉันจะประสบปัญหาทางกฎหมายหรือไม่หากฉันรวมหนังสือที่พิมพ์ออกมาเป็นสาธารณสมบัติเช่นPride และ PrejudiceหรือAlice ใน Wonderland

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

1
Freeglut กับ SDL เทียบกับ GLFW
ฉันต้องพอร์ตโครงการเกมของฉันจาก Android (เขียนใน C, OpenGL ES 2.0 ขอบคุณ NDK) ไปยังแพลตฟอร์ม Windows และ Linux แน่นอนว่าฉันจะต้องเขียนโค้ดที่ขึ้นอยู่กับบางแพลตฟอร์ม แต่ตอนนี้ฉันติดอยู่กับคำถามว่าไลบรารี่สำหรับการสร้าง OpenGL และการใช้งานการจัดการอินพุท googling ที่รวดเร็วทำให้ฉันได้รับผู้สมัคร 3 คน: 1) Freeglut - เขียนใหม่และฟรีดี GLUT เก่า 2) SDL - รู้จักมากที่สุดหนึ่ง lib ที่ใช้ในหลาย ๆ เกม 3) GLFW - ชนิดใหม่ แต่ง่ายและใช้งานได้ ฉันเพิ่งใหม่ในการพัฒนาพีซีและไม่เห็นความแตกต่างที่สำคัญเกิดขึ้นกับพวกเขา คุณสามารถช่วยฉันเลือกอันไหนได้บ้าง? ฉันต้องการเพียงแค่อินพุตเมาส์ / คีย์บอร์ดและการสร้างบริบท OpenGL อย่างชัดเจนและฉันจะใช้ GLEW เพื่อเข้าถึง OpenGL …
26 opengl  windows  linux 

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

3
“ Gameplay Programmer” คืออะไร?
ในรายละเอียดงานฉันมักจะเห็นตำแหน่งที่เรียกว่า "Gameplay Programmer" ผู้คนในตำแหน่งนั้นทำอะไร

6
ชื่อ "เกมประดิษฐ์" ในเกมฟุตบอลต้องทำเพื่อหลีกเลี่ยงการละเมิดลิขสิทธิ์อย่างไร
ฉันรู้ว่าชื่อผู้เล่นตัวจริงไม่สามารถใช้ในวิดีโอเกมได้เว้นแต่จะได้รับอนุญาต (โดยทั่วไปมีราคาแพงมาก) โดยผู้ถือสิทธิ์ (ผู้เล่นทีม ฯลฯ ) ตามที่อธิบายไว้ที่นี่และที่นี่ มีการอภิปรายเกี่ยวกับแหล่งข้อมูลที่เป็นไปได้ที่สามารถปรึกษาเพื่อพิจารณาว่าคุณกำลังละเมิดปัญหาลิขสิทธิ์หรือไม่ แต่ไม่ได้พูดอะไรเกี่ยวกับปัญหาของฉัน (อย่างน้อยเท่าที่ฉันเข้าใจ) เนื่องจากความเข้าใจที่ไม่ดีและ ความเชี่ยวชาญในเรื่อง) คำถามของฉันนั้นง่ายมาก : มีกฎใดบ้างที่กำหนดจำนวนความแตกต่าง (ในตัวละครเสียงความยาวลักษณะทางสัทวิทยาสิ่งใด ๆ ) จากชื่อจริงไปยังชื่อ (หรือปลอม) ที่สมมติขึ้น ปลอม? ตัวอย่างเช่นถ้าฉันสร้างวิดีโอฟุตบอลที่มีกองกลางที่น่ารังเกียจที่มีคุณสมบัติของ Cristiano Ronaldo (ด้วยความเคารพในลักษณะสถิติและอื่น ๆ ที่ไม่ใช่ลักษณะทางกายภาพ) ฉันจะเรียกผู้เล่นคนนี้เพื่อหลีกเลี่ยงการละเมิดลิขสิทธิ์ได้อย่างไร? คริสเตียนโรนัลด์? Cristo Romaldi Christiano Ronnaldo มีการเปิดตัว ISS PRO (เกมฟุตบอล) ที่มีชื่อเสียงโดยใช้ชื่อปลอม - นี่คือรายชื่อ -ซึ่งคล้ายกับของจริงมาก มีกฎ / กฎหมายที่ระบุว่าอะไรดีหรือไม่?
26 copyright 

2
ฉันจะสร้างเอฟเฟกสายฟ้าได้อย่างไร
มีอัลกอริทึมในการสร้างสายฟ้าหรือไม่? ฉันต้องการอัลกอริทึมที่สร้างรายการเซกเมนต์หรือวัตถุชี้ที่ระบุตำแหน่งที่สลักเกลียว วิธีนี้จะต้องใช้พารามิเตอร์จุดเริ่มต้นพร้อมกับจุดสิ้นสุด สายฟ้าควรมีกิ่งสุ่มออกมาและซิกแซกตามช่วงเวลาที่สุ่ม ผลลัพธ์จะเป็นเอฟเฟกต์ฟ้าผ่าแบบสุ่มซึ่งจะมีลักษณะเช่นนี้ (ที่มา: wikimedia.org ) หากใครรู้อัลกอริทึมที่อาจใช้งานได้ก็จะได้รับการช่วยเหลืออย่างมาก!

3
ผลวัตถุเค้าร่าง
ฉันจะทำให้เอฟเฟกต์เค้าร่างคล้ายกับที่พบใน League of Legends หรือ Diablo III ได้อย่างไร มันใช้ shader หรือไม่? อย่างไร? ฉันต้องการคำตอบที่ไม่เชื่อมโยงกับเอ็นจินใด ๆ โดยเฉพาะ แต่เป็นคำตอบที่ฉันสามารถปรับให้เข้ากับเอนจินที่ฉันกำลังทำงาน

5
ฉันต้องการสร้างเกมที่ปรับเปลี่ยนได้ สิ่งนี้มีผลต่อการเลือกภาษาการเขียนโปรแกรมของฉันอย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเริ่มเกมเล็ก ๆ ใน Java และฉันกำลังพิจารณาการเรียนรู้ C # สำหรับโครงการขนาดใหญ่ ฉันอยากทำเกม moddable มาก แต่มีคนบอกฉันว่าฉันต้องติดกับ Java ถ้าฉันต้องการให้เกมนั้นเป็น moddable แม้ว่าฉันจะไม่เข้าใจว่าทำไม ดังนั้นลักษณะของภาษาการเขียนโปรแกรมใดทำให้ภาษาเหมาะกับเกมที่ปรับเปลี่ยนได้มากขึ้น?
26 modding 

2
AI เกมที่ซับซ้อนสำหรับเกมกลยุทธ์แบบเลี้ยว
ฉันกำลังค้นคว้าบางอย่างสำหรับโครงการเกมวางแผนกลยุทธ์และมองหาแหล่งข้อมูลที่ดีในหัวข้อนี้ เกมดังกล่าวเป็นเกมสงครามทั่วไปที่ประเทศต่างๆสามารถต่อสู้กันปรับใช้ยูนิตและให้หน่วยเหล่านี้เคลื่อนที่ไปบนแผ่นกระเบื้องหกเหลี่ยม, โจมตีซึ่งกันและกันเป็นต้น ฉันสนใจเป็นพิเศษในการจัดระเบียบ AI ของอารยธรรม V! ตามวิกิพีเดียเกมใช้ระบบ AI ที่แตกต่างกันสี่แบบสำหรับเลเยอร์ที่แตกต่างกันของ AI ของเกม: ยุทธวิธี AI ควบคุมแต่ละหน่วย ฝ่ายปฏิบัติการ AI ดูแลด้านการสงครามทั้งหมด กลยุทธ์ AI จัดการอาณาจักรทั้งหมด AI เชิงกลยุทธ์ที่ยิ่งใหญ่กำหนดเป้าหมายระยะยาวและกำหนดวิธีการชนะเกม แนวคิดนี้ดูเหมือนว่าเหมาะสมที่จะได้รับ AI ที่ซับซ้อนและทำให้ฉันอยากรู้ว่าระบบ AI ที่แตกต่างกันเหล่านี้ทำงานอย่างไร (และทำงานร่วมกัน) AI ยุทธวิธีน่าจะเข้าใจได้ง่ายที่สุดเพราะมันจัดการการตัดสินใจสำหรับหน่วยเดียว (การเคลื่อนไหวการโจมตีการซ่อมแซมการหลบหนี ฯลฯ ) แต่ฉันคิดว่าระบบ AI อื่น ๆ นั้นเป็นที่ที่น่าสนใจจริงๆ ตัวอย่างเช่น AI การปฏิบัติงานทำอะไรและทำเช่นนั้นได้อย่างไร ฉันแน่ใจว่าสิ่งเหล่านี้เป็นความลับที่ดีที่สุดที่เก็บรักษาไว้โดย Firaxis Games แต่มันก็ยอดเยี่ยมมากที่จะได้รับการสนทนาเริ่มต้นเพื่อหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ นอกจากนี้หากใครรู้หนังสือที่ดีที่จัดการกับเกมวางแผนกลยุทธ์แบบเปิดเอไอมันจะเป็นการดีที่จะรู้ เห็นได้ชัดว่านี่เป็นหัวข้อที่มีการกระจัดกระจายบนเว็บ ฉันได้รับ "การเขียนโปรแกรมเกม …

7
คำแนะนำของ Microsoft ในการใช้คุณสมบัติ C # ใช้ได้กับการพัฒนาเกมหรือไม่
ฉันเข้าใจว่าบางครั้งคุณก็ต้องการคุณสมบัติเช่น: public int[] Transitions { get; set; } หรือ: [SerializeField] private int[] m_Transitions; public int[] Transitions { get { return m_Transitions; } set { m_Transitions = value; } } แต่ความประทับใจของฉันคือว่าในการพัฒนาเกมถ้าคุณไม่มีเหตุผลที่จะทำอย่างอื่นทุกอย่างควรจะเร็วที่สุด ความประทับใจของฉันจากสิ่งที่ฉันอ่านคือ Unity 3D ไม่แน่ใจว่าจะเข้าถึงแบบอินไลน์ผ่านคุณสมบัติได้ดังนั้นการใช้คุณสมบัติจะส่งผลให้มีการเรียกใช้ฟังก์ชันเพิ่มเติม ฉันถูกต้องหรือไม่ที่จะเพิกเฉยต่อคำแนะนำของ Visual Studio เพื่อไม่ให้ใช้ช่องสาธารณะ (โปรดทราบว่าเราใช้ในint Foo { get; private set; }กรณีที่มีข้อได้เปรียบในการแสดงการใช้งานที่ต้องการ) ฉันทราบว่าการเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นสิ่งที่ไม่ดี แต่อย่างที่ฉันได้กล่าวไว้ในการพัฒนาเกมคุณจะไม่ทำอะไรช้า ๆ เมื่อความพยายามคล้าย ๆ …

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