การพัฒนาเกม

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

1
เกม AAA ใช้เนื้อสัมผัสนี้ในส่วนของการจับคู่โทนเสียงได้อย่างไร
ฉันพบว่า Battlefield 3 และ Saint's Row the Third ใช้พื้นผิวนี้ในขั้นตอนสุดท้ายของการทำแผนที่โทนสี ทุกคนสามารถแชร์ลิงก์ไปยังบทความเกี่ยวกับวิธีใช้พื้นผิวนี้ได้หรือไม่? UPDATE:เนื่องจากมีตัวอย่างใด ๆ ของการใช้งานการจัดระดับสีในสุทธิฉันจะโพสต์ตัวอย่างที่รวดเร็วและสกปรกของฉันสำหรับ XNA 4.0 สิ่งนี้ไม่ทำอะไรนอกจากสร้าง colormap 2d เริ่มต้นตั้งแต่เริ่มต้นบน GPU คัดลอกเนื้อหาลงในพื้นผิว 3 มิติบน CPU และทำการแก้ไขสีจริงด้วยรหัส shader จากบทความที่ให้ไว้ในคำตอบ ตัวอย่างการแก้ไขสี XNA 4.0 หากคุณต้องการทราบว่าคุณสามารถทำอะไรกับสิ่งนี้ดูที่นี่: http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/ ในระยะสั้นผู้เขียนอธิบายว่าคุณสามารถสร้างภาพหน้าจอของภาพปกติในเกมของคุณด้วยจานสีเริ่มต้นที่ด้านบนดำเนินการแก้ไขภาพหน้าจอใน photoshop ตัดและคัดลอกจานแก้ไขสีที่ผิดรูปลงในเครื่องยนต์และมี การแก้ไขสีนั้นจะใช้สำหรับทุกฉากในเกมโดยอัตโนมัติ
43 textures  hlsl 

3
ทำไมบทช่วยสอนใช้วิธีการต่าง ๆ ในการเรนเดอร์ OpenGL
http://www.sdltutorials.com/sdl-opengl-tutorial-basics http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ บทเรียนสองบทนี้ใช้วิธีการต่างกันโดยสิ้นเชิงเพื่อให้ได้ผลลัพธ์ที่ใกล้เคียงกัน แรก ๆ glBegin(GL_QUADS)ที่ใช้สิ่งที่ต้องการ อันที่สองใช้สิ่งที่ชอบvertexBufferObjectsshaders ตาม GLEW แต่ผลลัพธ์ก็เหมือนกัน: คุณจะได้รูปร่างพื้นฐาน ทำไมความแตกต่างเหล่านี้จึงมีอยู่? วิธีแรกดูเหมือนง่ายกว่าที่จะเข้าใจ ข้อดีของวิธีที่สองที่ซับซ้อนคืออะไร

8
ฉันจะทำการจำลองทางฟิสิกส์ที่กำหนดขึ้นได้อย่างไร
ฉันกำลังสร้างเกมฟิสิกส์ที่เกี่ยวข้องกับวัตถุแข็งเกร็งซึ่งผู้เล่นเคลื่อนย้ายชิ้นส่วนและชิ้นส่วนเพื่อไขปริศนา / แผนที่ สิ่งสำคัญอย่างยิ่งของเกมคือเมื่อผู้เล่นเริ่มทำการจำลองสถานการณ์มันจะทำงานแบบเดียวกันทุกที่โดยไม่คำนึงถึงระบบปฏิบัติการตัวประมวลผลและอื่น ๆ ... มีห้องสำหรับความซับซ้อนจำนวนมากและการจำลองอาจทำงานเป็นเวลานานดังนั้นจึงเป็นเรื่องสำคัญที่เอนจิ้นฟิสิกส์จะกำหนดอย่างสมบูรณ์เกี่ยวกับการทำงานของจุดลอยตัวมิฉะนั้นวิธีแก้ปัญหาอาจปรากฏขึ้นเพื่อ "แก้ปัญหา" บนเครื่องของผู้เล่นคนหนึ่งและ "ล้มเหลว" กับอีกรายการหนึ่ง ฉันจะบรรลุระดับนี้ในเกมของฉันได้อย่างไร ฉันยินดีที่จะใช้กรอบและภาษาที่หลากหลายรวมถึง Javascript, C ++, Java, Python และ C # ฉันถูกล่อลวงโดย Box2D (C ++) เช่นเดียวกับภาษาอื่นที่เทียบเท่าเนื่องจากดูเหมือนว่าจะตอบสนองความต้องการของฉัน แต่มันขาดการกำหนดจุดลอยตัวโดยเฉพาะอย่างยิ่งกับฟังก์ชันตรีโกณมิติ ตัวเลือกที่ดีที่สุดที่ฉันเคยเห็นมาแล้วนั้นเทียบเท่ากับ Java ของ Box2D (JBox2D) ดูเหมือนจะใช้ความพยายามในการกำหนดระดับจุดลอยตัวโดยใช้StrictMathมากกว่าMathสำหรับการใช้งานหลายอย่าง แต่ก็ไม่มีความชัดเจนว่าเอ็นจิ้นนี้จะรับประกันทุกสิ่งที่ฉันต้องการเพราะฉันยังไม่ได้สร้างเกม เป็นไปได้ที่จะใช้หรือดัดแปลงเอ็นจิ้นที่มีอยู่เพื่อให้เหมาะกับความต้องการของฉันหรือไม่? หรือฉันจะต้องสร้างเครื่องยนต์ด้วยตัวเอง? แก้ไข: ข้ามส่วนที่เหลือของโพสต์นี้ถ้าคุณไม่สนใจว่าทำไมใครบางคนถึงต้องการความแม่นยำเช่นนี้ บุคคลในความคิดเห็นและคำตอบดูเหมือนจะเชื่อว่าฉันกำลังมองหาบางสิ่งที่ฉันไม่ควรทำเช่นนี้ฉันจะอธิบายเพิ่มเติมเกี่ยวกับวิธีการทำงานของเกม ผู้เล่นจะได้รับจิ๊กซอว์หรือระดับซึ่งมีอุปสรรคและเป้าหมาย เริ่มแรกการจำลองไม่ทำงาน จากนั้นพวกเขาสามารถใช้ชิ้นส่วนหรือเครื่องมือที่ให้ไว้เพื่อสร้างเครื่องจักร เมื่อพวกเขากดเริ่มการจำลองจะเริ่มขึ้นและพวกเขาจะไม่สามารถแก้ไขเครื่องได้อีกต่อไป หากเครื่องแก้แผนที่ผู้เล่นได้เอาชนะระดับ ไม่เช่นนั้นพวกเขาจะต้องกดหยุดปรับเปลี่ยนเครื่องแล้วลองอีกครั้ง เหตุผลที่ทุกอย่างจำเป็นต้องกำหนดขึ้นเพราะฉันวางแผนที่จะสร้างรหัสที่จะแมปเครื่องทุกเครื่อง (ชุดของชิ้นส่วนและเครื่องมือที่พยายามแก้ปัญหาระดับ) ไปยังไฟล์ xml หรือ …

6
มันไม่เป็นมืออาชีพหรือไม่ที่จะปล่อยให้ทรัพยากรในเกมเปิดกว้าง?
ฉันยังคงมีปัญหาในการจัดเก็บทรัพยากรของฉันหลังจากผ่าน API ที่ซับซ้อนและโดยทั่วไปเพียงแค่ไฟล์ซิปที่ทำให้สมองของฉันหมดฉันคิดว่าฉันสามารถบรรจุเกมด้วยทรัพยากรที่มองเห็นได้ด้วยตามนุษย์ในโฟลเดอร์ง่าย ๆ นั่นจะไม่เป็นมืออาชีพหรือไม่? โดยส่วนตัวฉันไม่เคยเห็นเกมทำแบบนั้นโดยทั่วไปจะหมายความว่าผู้เล่นสามารถแก้ไขสิ่งที่เขาต้องการในเกมเช่นไปที่ map1.txt และเพิ่ม X เพื่อสร้างกำแพงหรือเปลี่ยนผู้เล่นสไปรต์ กับม้าใน MS PAINT
43 c++  assets 

3
เกมที่ใช้ระบบเสียงเช่น Audiosurf และ Beat Hazard ทำงานอย่างไร
หมายเหตุ: ฉันไม่ได้ถามวิธีการโคลนหนึ่งในนั้น ฉันถามเกี่ยวกับวิธีการทำงาน ผมมั่นใจว่าทุกคนเห็นเกมที่คุณใช้ไฟล์เพลงของตัวเอง (หรือคนที่ให้) และเกมผลิตระดับขึ้นอยู่กับพวกเขาเช่นAudiosurfและตีอันตราย นี่คือวิดีโอของ Audiosurf เพื่อแสดงให้เห็นว่าฉันหมายถึงอะไร หากคุณให้เพลงเฮฟวีเมทัลคุณจะได้รับชุดของอุปสรรคศัตรูและประสบการณ์เกมที่แตกต่างอย่างสิ้นเชิงจาก Vivaldi สิ่งที่ฉันสนใจคือเกมเหล่านี้ทำงานอย่างไร ฉันไม่รู้เกี่ยวกับเสียง (ดีมากด้านข้อมูล) แต่พวกเขาจะประมวลผลเพลงให้เข้าใจได้อย่างไรเมื่อมีการปรับตัวหรือเมื่อเร่งความเร็วขึ้น ฉันเดาว่าพวกเขาสามารถป้อนค่าระดับเสียง (สมมติว่าสิ่งต่าง ๆ เหล่านั้นมีอยู่ในไฟล์เสียง) เพื่อสร้างระดับ แต่มันจะไม่อธิบายอย่างเต็มที่ ฉันกำลังมองหาคำอธิบายลิงก์บางอย่างไปยังบทความเกี่ยวกับสิ่งนี้ (ฉันแน่ใจว่ามีคำหรือเงื่อนไข) หรือแม้แต่การใช้งานโอเพนซอร์ซของสิ่งนี้ ;-) แก้ไข: หลังจากการค้นหาและความช่วยเหลือเล็กน้อยฉันพบเกี่ยวกับFFT (การแปลงฟูริเยร์เร็ว) นี่อาจเป็นขั้นตอนในทิศทางที่ถูกต้อง แต่มันเป็นสิ่งที่ไม่สมเหตุสมผลสำหรับฉัน ... หรือเข้ากับความรู้ทางฟิสิกส์ของฉันเกี่ยวกับคลื่น

12
ระดับการเล่นของสนาม: ลงโทษผู้เล่นที่ดีกว่าหรือเพิ่มผู้เล่นที่แย่ลง?
ฉันกำลังสร้างเกม 1 vs 1 ที่ผู้เล่นแต่ละคนควบคุมรถด้วยจอยสติ๊กที่เหมือนกัน วัตถุประสงค์สำหรับผู้เล่นคือการไปถึงเป้าหมายก่อนผู้เล่นคนอื่น ผู้เล่นของเกมจะถูกจัดหมวดหมู่ตามทักษะการควบคุมรถเช่นระดับทักษะ [1,2,3,4,5] โดยที่ 5 เป็นระดับทักษะสูงสุด ผู้เล่นจะไม่ได้ตั้งใจที่จะกระโดดขึ้นและลงในระดับความสามารถเมื่อเล่นเกม หลังจากช่วงเวลาหนึ่งเช่นหนึ่งสัปดาห์ระดับทักษะจะได้รับการอัปเดต สิ่งนี้จะไม่ปรากฏแก่ผู้เล่น เป้าหมายของฉันคือการทำให้ผู้เล่นทุกคนรวมกันในการตั้งค่า 1 vs 1 เป็นโอกาสการสูญเสียที่ชนะ 50/50 สำหรับผู้เล่น ตัวอย่าง: ผู้เล่น 1 (ระดับทักษะ 5) กับผู้เล่น 2 (ระดับทักษะ 1) แต่ละคนควรมีการเปลี่ยนแปลง 50% ไปถึงเป้าหมายก่อน ฉันไม่สามารถค้นหางานวิจัยใด ๆ ได้ว่าวิธีปฏิบัติที่ดีที่สุดคือการจำกัดความสามารถของผู้เล่นที่ดีหรือเพิ่มความสามารถของผู้เล่นที่ไม่ดีหรืออาจเป็นการรวมกัน ความคิดคือการมีวัยรุ่นที่ปิดการใช้งานเล่นกับเพื่อนฉกรรจ์หรือสมาชิกในครอบครัวของพวกเขา ดังนั้นจึงเป็นไปไม่ได้ที่จะไม่ปล่อยให้ผู้เล่นที่ดีเล่นกับคนเลว ข้อมูลจากการทดสอบภาคสนามแสดงให้เห็นว่าวัยรุ่นที่พิการมีประสิทธิภาพที่เลวร้ายกว่าร่างกายที่ไม่สามารถทำงานได้อย่างต่อเนื่องเนื่องจากการหดเกร็ง ฉันกำลังมองหาข้อมูลว่าจะทำอย่างไรกับสิ่งนี้; การวิจัยประสบการณ์ของคุณเกมอื่น ๆ กำลังทำอะไรอยู่? มีคำแนะนำทั่วไปสำหรับสิ่งนี้หรือไม่?

8
วิธีการเรียนรู้ภาพเคลื่อนไหว 2d? [ปิด]
ฉันจะเรียนรู้วิธีการทำแอนิเมชัน 2d อย่างง่ายได้อย่างไร หรือว่ามันเป็นเพียงแค่การวาดภาพทุกเฟรมใน Photoshop มีเคล็ดลับหรือลูกเล่นหรือไม่? บทแนะนำเพื่อช่วยเริ่มต้นใช้งานหรือไม่ นอกจากนี้ยังมีตัวเลือกซอฟต์แวร์ใดบ้าง (โดยเฉพาะอย่างยิ่งโอเพนซอร์สหรือแม้แต่ฟรี)
43 2d  animation 

6
ในทางปฏิบัติระบบวัตถุของเกมที่ใช้ชิ้นส่วน [ปิด]
เรามาดูประวัติความสำเร็จกันดีกว่า เกมยอดนิยมใดบ้าง(และเอ็นจิ้นเกม) ที่สร้างขึ้นโดยใช้ระบบเกมแบบอิงองค์ประกอบ แต่ละคำตอบควรมี: ชื่อเกม (หนึ่งคำตอบต่อ) ผู้แต่ง / บริษัท ปี เวลาในการพัฒนา (ไม่จำเป็น) ลิงก์ไปที่ไปรษณีย์หลังศพ (ตัวเลือก) ลิงก์ไปยังเอกสาร / ซอร์สโค้ด (ตัวเลือก)

2
ฆ่าเชื้อตารางคะแนนสูงเพื่อลบคำ / ชื่อผู้ใช้ที่ไม่เหมาะสม
ฉันกำลังสร้างแอปสำหรับลูกค้าซึ่งพวกเขาขอให้มีตารางคะแนนสูงที่เปิดเผยต่อสาธารณะ มันจะแสดงชื่อผู้ใช้ซึ่งเป็นฟิลด์ข้อความอิสระที่ผู้เล่นสามารถป้อนได้ จำนวนผู้เล่นน่าจะต่ำมาก - ฉันคาดหวังมากที่สุด 10s หรือ 100s / วัน ฟิลด์ชื่อผู้ใช้จะยาวกว่า 3 ตัวอักษร ชื่อจะเชื่อมโยงกับบัญชี Firebase Auth แต่สร้างขึ้นผ่านแอพไม่ได้ผูกติดกับอะไรอย่าง Google Play หรือบัญชี Facebook หรืออะไรทำนองนั้น ฉันคิดว่าพวกเขาจะทำได้ดีด้วยการลบชื่อที่ไม่เหมาะสม แต่พวกเขาจะไม่ได้ใช้ทรัพยากรจำนวนมากเพื่อรองรับการกลั่นกรองด้วยตนเอง เมื่อตอนที่ฉันยังเด็กอยู่ 100% ของตารางคะแนนสูงของตู้อาร์เคดในพื้นที่ของฉันประกอบด้วยคำสาบานและคำที่ไม่เหมาะสม (หรือคำอื่น ๆ ) ฉันนึกภาพไม่ออกเลยว่าอินเทอร์เน็ตมีการปรับปรุงอะไรบ้าง ฉันจะฆ่าชื่อผู้ใช้ให้ปลอดภัยเพื่อให้แสดงได้อย่างไร

6
OpenGL เหมาะสมกับเกม 2D หรือไม่?
ฉันสอนตัวเองที่ห้องสมุด OpenGL มาระยะหนึ่งแล้วและต้องการเริ่มทำเกม อย่างไรก็ตามเพื่อการแนะนำที่ง่ายขึ้นฉันต้องการเริ่มด้วยบางสิ่งบางอย่าง 2D เช่นเกมสไตล์โปเกมอนบนลงล่าง นี่เป็นแผนที่ดีหรือเป็น OpenGL ที่สร้างขึ้นเป็นพิเศษสำหรับ 3D หรือไม่?
43 opengl  2d 

1
ทำไมการเรียกฟังก์ชั่น OpenGL ทั้งหมดนำหน้าด้วย“ q” ในซอร์สโค้ด Doom 3
ทำไมการโทรทุก OpenGL นำหน้าด้วย "q" ในรหัสต้นฉบับ Doom 3 พวกเขามีฟังก์ชั่นที่กำหนดเองหรือห้องสมุดที่แตกต่างกันและถ้าเป็นเช่นนั้นทำไมใช้ที่มากกว่า OpenGL? การค้นหาของ Google ใด ๆ เกิดขึ้นกับโมดูล Qt OpenGL ซึ่งฉันคิดว่าไม่มีส่วนเกี่ยวข้องกับมัน
42 opengl  c++ 

1
ฉันจะลดนามแฝงในเอฟเฟกต์การเรืองแสงร่างของฉันได้อย่างไร
ฉันพยายามจำลองเอฟเฟกต์ร่างเรืองแสงในเกม Left 4 Dead เอฟเฟกต์ทำให้วัตถุมีการเรืองแสงแม้ว่าวัตถุจะถูกบัง นี่คือภาพหน้าจอของเอฟเฟกต์: ฉันสามารถทำซ้ำเอฟเฟกต์นี้ในโปรแกรมที่ใช้ OpenGL ได้บ้าง นี่คือสิ่งที่ฉันกำลังทำอยู่: สร้างพื้นผิวสีและความลึกที่มีขนาดครึ่งหนึ่งของขนาดหน้าจอสำหรับแสดงวัตถุที่เรืองแสง ล้างพื้นผิวสี / แสงที่เรืองแสง สีจะถูกล้างเป็นสีดำ สำหรับวัตถุที่ส่องแสงแต่ละอันให้ฉายไปบนพื้นผิวเรืองแสงเป็นสีทึบ ทำการเบลอเกาส์แยกไม่ออกบนพื้นผิวเรืองแสง ทำให้ฉากความละเอียดเต็มตามปกติ ผสมผสานพื้นผิวเรืองแสงเข้ากับฉากปกติอย่างแนบเนียน แต่ใช้พื้นผิวความลึกของแสงเรืองแสงเพื่อปกปิดวัตถุออกมาเหลือเพียงโครงร่างที่เบลอ นี่คือภาพหน้าจอของแนวทางของฉัน: นี่คือ shader ส่วนที่รวมพื้นผิวเรืองแสงกับฉาก: uniform sampler2D glowColorTex; uniform sampler2D glowDepthTex; uniform sampler2D sceneColorTex; void main() { vec2 uv = gl_TexCoord[0].st; vec4 color = texture2D( sceneColorTex, uv); float depth = texture2D( …
42 opengl  shaders  glsl  glow 

6
การวิเคราะห์ฟิสิกส์เกมมาริโอ [ปิด]
ฉันรู้ว่ามีการแยกย่อยของ Sonic the Hedgehog physics ที่นี่และฉันสงสัยว่ามีการสลายของเกมมาริโอหรือไม่? สิ่งที่คล้ายกับนี้ แต่สำหรับมาริโอคือสิ่งที่ฉันสนใจ!
42 physics 

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

7
ความแตกต่างของประสิทธิภาพระหว่างจำนวนเต็มที่ไม่ได้ลงนามและที่เซ็นชื่อมีอะไรบ้าง [ปิด]
ฉันตระหนักถึงประสิทธิภาพในการทำงานเมื่อผสม ints ที่เซ็นชื่อกับลอย มันแย่กว่าไหมถ้าจะผสม ints ที่ไม่ได้ลงนามกับ Floats? มีการเข้าชมใด ๆ เมื่อผสมการเซ็นชื่อ / ไม่ได้ลงชื่อโดยไม่มีการลอยหรือไม่? ขนาดแตกต่างกัน (u32, u16, u8, i32, i16, i8) มีผลกระทบต่อประสิทธิภาพหรือไม่? บนแพลตฟอร์มใด
42 c++  performance 

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