การพัฒนาเกม

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

1
การเขียนโปรแกรมเกม: วิธีการทั่วไปและรูปแบบการออกแบบ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเริ่มเขียนโปรแกรมเกมที่ง่ายมาก ๆ เพื่อที่ฉันจะได้เรียนรู้ OpenGL 3.x ได้ดีขึ้น แต่เนื่องจากฉันไม่มีประสบการณ์และความรู้ที่กระจัดกระจายเกี่ยวกับวิธีการออกแบบเกม 3 มิติฉันมักจะเจอปัญหาที่ฉันรู้ว่าฉันควรออกแบบชั้นเรียนของฉัน ต่างกัน ปัญหาอื่น ๆ ที่ฉันกำลังเผชิญคือวิธีการติดตามเวลาอย่างกระชับในเกมและอัปเดตการเคลื่อนไหวตามต้องการและวิธีบอกตัวแสดงผลว่าต้องมีการวาดใหม่ นอกจากนี้ฉันยังต้องทำให้ฟังก์ชั่นรับและตั้งค่าสำหรับการส่งค่าสถานะต่าง ๆ จากวัตถุหนึ่งไปยังวัตถุอื่นนั่นคือการปฏิบัติที่ไม่ดีหรือไม่? ดังนั้นตามที่ชื่อบอกว่าฉันสนใจหนังสือหรือบทความ / บทช่วยสอนและแหล่งข้อมูลใด ๆ ที่สามารถช่วยฉันได้และจะอธิบายรูปแบบการออกแบบทั่วไปบางอย่างในการออกแบบเกม (เช่นตัวจัดการสถานะเกมแบบอักษร ฯลฯ ) Btw ฉันยังคงใช้ freeglut คุณจะแนะนำให้ฉันย้ายไปที่ระบบหน้าต่างที่ดีขึ้นก่อนที่จะดำเนินการต่อหรือหลังจากที่ฉันเข้าใจ OpenGL ดีขึ้นหรือไม่

3
รุ่นสุ่มของใบหน้ามนุษย์ที่เหมือนจริง
อะไรจะเป็นวิธีที่ทำได้ในการสร้างจำนวนมากของใบหน้ามนุษย์ดูสมจริง? การสร้างแบบจำลอง 3 มิติแบบสุ่มและการเรนเดอร์จะต้องใช้พลังในการคำนวณจำนวนมากโดยเฉพาะอย่างยิ่งเมื่อฉันต้องการแบบ Ad-hoc การวางชิ้นส่วนที่วาดด้วย 2D แต่ละชิ้นต้องใช้ความสามารถทางศิลปะบางอย่างซึ่งฉันขาดไปอย่างแน่นอน นอกจากนี้ฉันต้องการกำหนดค่าพารามิเตอร์หลาย ๆ ด้านของกระบวนการ generational เท่าที่จะทำได้ คุณมีข้อเสนอแนะวิธีการเกี่ยวกับเรื่องนี้?

4
การเรนเดอร์พิกเซลที่สมบูรณ์แบบสำหรับชุดเรนเดอร์เป้าหมายด้วย Quad เต็มหน้าจอ
ฉันมีปัญหาบางอย่างในการแสดงผลกลุ่มของค่าที่แสดงผลเป้าหมาย ค่าไม่เคยจบลงในช่วงที่ฉันต้องการ โดยพื้นฐานแล้วฉันใช้รูปสี่เหลี่ยมเต็มหน้าจอและพิกเซลเชดเดอร์เพื่อแสดงผลพื้นผิวเป้าหมายของชุดเรนเดอร์ของฉันจากนั้นตั้งใจจะใช้พิกัดพื้นผิวเป็นพื้นฐานสำหรับการคำนวณบางอย่างในเดอร์ พิกัดพื้นผิวของช่วงควอดจาก (0,0) ที่มุมบนซ้ายถึง (1,1) ที่มุมล่างขวา ... ปัญหาคือหลังจากการแก้ไขค่าเหล่านี้จะไม่มาถึงที่ส่วนพิกเซลเช่น . ตัวอย่าง: ฉันแสดงผลเป็นพื้นผิว 4x4 และตัวแบ่งส่วนในกรณีนี้เพียงแค่แสดงพิกัดพื้นผิว (u, v) ในช่องสีแดงและสีเขียว: return float4(texCoord.rg, 0, 1); สิ่งที่ฉันต้องการออกจากมันคือพื้นผิวที่พิกเซลที่ด้านซ้ายบนคือ RGB (0,0,0) และทำให้เป็นสีดำพิกเซลที่ด้านบนขวาคือ RGB (255,0,0) และสว่าง สีแดงและพิกเซลที่ด้านล่างซ้ายคือ RGB (0,255,0) - สีเขียวสดใส อย่างไรก็ตามฉันได้รับที่นี่แทน (การเรนเดอร์รูปสี่เหลี่ยมตรงไม่มีการแก้ไข) พิกเซลด้านบนซ้ายเป็นสีดำ แต่ฉันได้สีแดงเข้มและเขียวเข้มที่มุมอื่น ๆ เท่านั้น ค่า RGB ของพวกเขาคือ (191,0,0) และ (0,191,0) ฉันสงสัยอย่างยิ่งว่ามันเกี่ยวข้องกับตำแหน่งการสุ่มตัวอย่างของรูปสี่เหลี่ยม: พิกเซลด้านบนซ้ายอย่างถูกต้องสุ่มตัวอย่างที่มุมบนซ้ายของรูปสี่เหลี่ยมและได้รับ (0,0) เป็นพิกัด …

8
ฉันจะป้องกันไม่ให้ตัวละครของ platformer ของฉันจากการตัดบนกระเบื้องบุผนัง?
ปัจจุบันฉันมี platformer ที่มีแผ่นกระเบื้องสำหรับภูมิประเทศ (กราฟิกที่ยืมมาจาก Cave Story) เกมดังกล่าวเขียนขึ้นโดยใช้ XNA ดังนั้นฉันไม่ได้ใช้เอ็นจิ้นหรือเครื่องยนต์ฟิสิกส์ที่มีอยู่แล้ว การชนกันของกระเบื้องมีการอธิบายค่อนข้างตรงตามที่อธิบายไว้ในคำตอบนี้ (ด้วย SAT แบบง่ายสำหรับสี่เหลี่ยมและวงกลม) และทุกอย่างทำงานได้ดี ยกเว้นเมื่อผู้เล่นวิ่งชนกำแพงขณะล้ม / กระโดด ในกรณีนั้นพวกเขาจะติดกระเบื้องและเริ่มคิดว่าพวกเขาชนพื้นหรือเพดานที่ไม่มีอยู่จริง ในภาพหน้าจอนี้ผู้เล่นเคลื่อนไปทางขวาและตกลงมา ดังนั้นหลังจากการเคลื่อนไหวจะมีการตรวจสอบการชน - และก่อนอื่นมันจะเปิดออกตัวละครของผู้เล่นจะชนกับไทล์ที่ 3 จากพื้นและผลักขึ้นไป ประการที่สองเขาพบว่าชนกับกระเบื้องข้างเขาและผลักไปด้านข้าง - ผลลัพธ์สุดท้ายคือตัวละครของผู้เล่นคิดว่าเขาอยู่บนพื้นและไม่ล้มและ 'จับ' บนไทล์ตราบเท่าที่เขาวิ่งเข้าไป . ฉันสามารถแก้ปัญหานี้ได้ด้วยการกำหนดกระเบื้องจากบนลงล่างแทนซึ่งทำให้เขาล้มลงอย่างราบรื่น แต่แล้วกรณีผกผันก็เกิดขึ้นและเขาจะชนเพดานที่ไม่มีเมื่อกระโดดขึ้นไปบนกำแพง ฉันจะแก้ไขปัญหานี้อย่างไรเพื่อให้ผู้เล่นสามารถตกไปตามกำแพงได้อย่างที่ควร

4
วงกลมภายในการชนกันของวงกลม
ในโครงการหนึ่งของฉันฉันมีพื้นที่เล่นเกมในรูปวงกลม ภายในวงกลมนี้มีวงกลมเล็ก ๆ อีกวงหนึ่งกำลังเคลื่อนที่ สิ่งที่ฉันต้องการจะทำคือป้องกันไม่ให้วงกลมเล็ก ๆ เคลื่อนไปข้างนอกวงกลมที่ใหญ่กว่า ด้านล่างคุณจะเห็นว่าในกรอบที่ 2 วงกลมเล็กด้านนอกฉันต้องการวิธีย้ายมันกลับไปก่อนที่มันจะออกไปข้างนอก สิ่งนี้สามารถทำได้? นอกจากนี้ฉันต้องการจุดชนตามส่วนโค้งของวงกลมใหญ่เพื่อให้ฉันสามารถอัปเดตความเร็วของวงกลมขนาดเล็กได้ เราจะคำนวณจุดนี้อย่างไร สิ่งที่ฉันต้องการจะทำคือก่อนที่จะย้ายวงกลมเล็ก ๆ ฉันทำนายตำแหน่งต่อไปของมันและถ้ามันอยู่นอกฉันจะหาเวลาของการชนกันระหว่าง t = 0 และ t = 1 (t = 1 เต็มเวลา) ถ้าฉันมีเวลาปะทะ t ฉันก็แค่ขยับวงกลมเล็ก ๆ ในช่วง t แทนขั้นตอนเต็มเวลา แต่อีกครั้งปัญหาคือฉันไม่รู้วิธีตรวจจับในเวลานั้นการชนเกิดขึ้นเมื่อมันมาถึงวงกลมสองวงและวงหนึ่งอยู่ภายในอีกวงหนึ่ง แก้ไข: ตัวอย่างจุดปะทะ (สีเขียว) ที่ฉันต้องการค้นหา บางทีภาพอาจจะออกมาเล็กน้อย แต่คุณก็เข้าใจ

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


1
เอฟเฟกต์กราฟิกขั้นสูงถูกนำไปใช้อย่างไร
ฉันอยากรู้ว่าเอฟเฟกต์ 3D เช่นคาถาใน Warcraft หรือ Torchlight ถูกนำไปใช้แบบกราฟิกอย่างไร ฉันเพิ่งเสร็จสิ้นหนังสือบน Direct3D และรู้สึกสบายใจกับมันและกราฟิก 3D โดยทั่วไป แต่ฉันไม่แน่ใจว่าฉันจะทำอะไรเช่นมีตัวละคร 'cast a bolt bolt' หรือคาถาอื่น ๆ ในเชิงกราฟิก ฉันคิดว่ามันเกี่ยวข้องกับเอฟเฟกต์ของอนุภาคหรือพิกัดพื้นผิวแบบเคลื่อนไหวใคร ๆ สามารถให้ข้อมูลเชิงลึกที่เฉพาะเจาะจงกับฉันได้บ้าง ขอบคุณ

2
เข้ารหัสแผนภูมิต้นไม้ rpg ที่มองเห็นได้
ขณะนี้ฉันกำลังใช้ XML เพื่อสร้างแผนภูมิข้อความโต้ตอบของฉันในเกม RPG แต่การทำเช่นนี้ด้วยตนเองสำหรับการสนทนาที่แตกต่างกันหลายร้อยครั้งจะทำให้ฉันเบื่อหน่ายเร็วมาก ฉันสงสัยว่ามีวิธีใดบ้างที่ฉันสามารถใช้โฟลว์ชาร์ต / udk kismet เช่นระบบการเข้ารหัสต้นไม้ diolog ที่มองเห็นได้ ฉันยังต้องการให้ผลลัพธ์สุดท้ายเป็น XML เพราะฉันได้เขียนการแยกวิเคราะห์และตรรกะอื่น ๆ รอบ ๆ XML แล้ว แก้ไข: เพื่อให้ความคิดของสิ่งที่ฉันกำลังมองหานี่คือตัวอย่าง นี่แสดงให้ฉันเห็นเมื่อฉันถามสิ่งนี้เกี่ยวกับ Reddit และมันก็เป็นสิ่งที่ฉันกำลังมองหา แต่มันก็ จำกัด จริงๆสิ่งที่ฉันกำลังมองหาคือซอฟต์แวร์โต้ตอบที่มีการใช้งานแล้วสำหรับเกมหรือซอฟต์แวร์ที่มีกราฟ / ผังงานและสามารถปรับเปลี่ยนให้เหมาะกับความต้องการของฉัน

2
แก้ไขปัญหาเมื่อทำการย้ายเกม Unity ไปยัง Android
ดังนั้นฉันจึงย้ายเกมไปยัง Android เป็นครั้งแรกใน Unity3D และฉันก็เจอปัญหาเล็กน้อยระหว่างทาง ปัญหาปัจจุบันของฉันคือความละเอียดดูเหมือนจะไม่ถูกต้องมันตัดขอบของหน้าจอและการหยุดการเลื่อนของฉันสำหรับการเลื่อนหน้าจอซ้าย / ขวาไม่ได้อยู่ในตำแหน่งที่ถูกต้องอีกต่อไป หลังจากทำวิจัยเล็กน้อยผู้คนจำนวนมากบอกว่าคุณต้องทำให้เกมของคุณมีความละเอียดอิสระเพื่อให้สามารถทำงานบน Androids / Iphone / Ipad ทั้งหมดได้ มันเป็นเรื่องจริงเหรอ? ถ้าเป็นเช่นนั้นฉันจะทำยังไงต่อ ถ้าไม่ฉันจะแก้ไขปัญหาได้อย่างไรเมื่อฉันพอร์ตไปยังอุปกรณ์มือถือมันดูถูกต้อง? แก้ไข: ฉันยังไม่มีสิ่งที่ฉันต้องการจริงๆการแก้ปัญหายังทำงานไม่ถูกต้องแม้ว่าจะมีรหัสและลูกเล่นที่แสดงด้านล่าง ฉันต้องการวิธีในการปรับความละเอียดตามอุปกรณ์ ด้วยเหตุผลบางอย่างเมื่อฉันพยายามดึงความละเอียดของอุปกรณ์โดยใช้รหัสของ Mungoid มันจะคืนค่า 0x0

1
ทรัพยากรสถาปัตยกรรมระบบการต่อสู้ JRPG แบบเลี้ยวตาม
หลายเดือนที่ผ่านมาฉันกำลังยุ่งกับการเขียนโปรแกรม 2D JRPG (RPG สไตล์ญี่ปุ่น) ใน C ++ โดยใช้ห้องสมุด SDL โหมดการสำรวจทำมากหรือน้อย ตอนนี้ฉันจัดการกับโหมดการต่อสู้ ฉันไม่สามารถหาแหล่งข้อมูลเกี่ยวกับวิธีการจัดโครงสร้างระบบการต่อสู้ JRPG แบบคลาสสิกได้ ทั้งหมดที่ฉันพบคือการอภิปรายเกี่ยวกับสูตรความเสียหาย ฉันได้ลองใช้ Google ค้นหากระดานข้อความของ gamedev.net และรวบรวมข้อมูลผ่าน C ++ - คำถามที่เกี่ยวข้องที่นี่ใน Stack Exchange ฉันได้ลองอ่านซอร์สโค้ดของ RPG แบบโอเพ่นซอร์สที่มีอยู่แล้ว แต่หากไม่มีแนวทางบางอย่างมันก็เหมือนกับการพยายามหาเข็มในกองหญ้า ฉันไม่ได้มองหาชุดของกฎอย่าง D&D หรืออะไรทำนองนั้น ฉันกำลังพูดถึงการออกแบบโค้ดและโครงสร้างวัตถุอย่างแท้จริง ระบบการต่อสู้ขอให้ผู้เล่นป้อนข้อมูลโดยใช้เมนู ถัดไปที่เทิร์นการต่อสู้จะถูกดำเนินการในฐานะวีรบุรุษและศัตรูดำเนินการกระทำของพวกเขา ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม ขอบคุณล่วงหน้า.
9 c++  2d  architecture  sdl  rpg 

3
ภาพสามมิติ 2D: พิกัดหน้าจอเป็นกระเบื้อง
ฉันกำลังเขียนเกม isometric 2D และฉันมีปัญหาในการหาตำแหน่งที่เคอร์เซอร์อยู่ นี่คือภาพวาด: โดยที่ xs และ ys เป็นพิกัดหน้าจอ (พิกเซล), xt และ yt เป็นพิกัดของกระเบื้อง, W และ H คือความกว้างของกระเบื้องและความสูงของกระเบื้องเป็นพิกเซลตามลำดับ สัญกรณ์สำหรับพิกัดของฉันคือ (y, x) ซึ่งอาจทำให้เกิดความสับสนขออภัยเกี่ยวกับเรื่องนั้น สิ่งที่ดีที่สุดที่ฉันสามารถคิดได้คือ: int xtemp = xs / (W / 2); int ytemp = ys / (H / 2); int xt = (xs - ys) / 2; int yt …

1
Starcraft 2 ใช้เทคโนโลยีอะไรในการเรนเดอร์แผนที่
ฉันมีแผนที่ที่ถูกสร้างขึ้นแบบขั้นตอนในขณะใช้งานและฉันกำลังตรวจสอบวิธีการแสดงแผนที่นี้ ฉันได้รับความสนใจในรูปลักษณ์ของตาร์คราฟ 2 และฉันอยากให้คำแนะนำเกี่ยวกับวิธีการที่พนักงานใช้เพื่อให้บรรลุมัน ประการที่สองฉันต้องการดูบทช่วยสอนบทความหรือแม้แต่ตัวอย่างซอร์สโค้ดถ้าเป็นไปได้ มีสองสิ่งสำคัญที่ฉันต้องการรับคำแนะนำ แต่โปรดแนะนำสิ่งอื่นที่สามารถช่วยฉันได้ Snappable Tilesets - แผนที่ตาร์คราฟทั่วไปดูเหมือนจะประกอบด้วยชุดไพ่ของโมเดลที่เราสามารถรวมเข้าด้วยกันเพื่อสร้างหน้าผาทางลาดและภูมิประเทศที่สูงอื่น ๆ พวกเขาใช้วิธีการใดเพื่อทำให้ดูเป็นธรรมชาติ สิ่งที่ฉันหมายถึงคือมันยากมากที่จะทำซ้ำจุด ภูมิประเทศพื้นผิว - พื้นผิวภูมิประเทศนั้นหลากหลายและมีชีวิตชีวา (Zerg คืบ) วิธีการใดที่ใช้ในการทำสิ่งนี้? ขอบคุณ

1
ประสบการณ์การขายของ Desura
ไม่มีใครรู้ (หรือมี) ประสบการณ์การขายชื่ออินดี้ผ่านDesura ? มันเปรียบเทียบกับช่องทางการจัดจำหน่ายเกมอินดี้ทั่วไปอื่น ๆ อย่างไร

1
การกำหนดเป้าหมายยานพาหนะด้วยการเคลื่อนไหวที่ซับซ้อน?
การกำหนดเป้าหมายของยานพาหนะที่มีความเร็วคงที่รู้จักกันเป็นเรื่องง่ายและมีการประกันการชนกัน (ดูทำนายตำแหน่งของศัตรูเพื่อให้มีวัตถุนำไปสู่เป้าหมาย , ค้นหาจุดที่ 2 วัตถุใน 2D ประชุม, รู้ (คงที่) ความเร็วและความลาดชัน ) AI ที่ไม่แน่นอนสามารถสร้างแบบจำลองโดยการเพิ่มปัจจัยข้อผิดพลาดเล็ก ๆ แต่คนเราจะไปกำหนดเป้าหมายยานพาหนะที่มีการเคลื่อนไหวที่ซับซ้อนได้อย่างไร บางทีมันอาจหลีกเลี่ยง AI หรือวัตถุเกมอื่น ฉันกำลังคิดเกี่ยวกับวิธีที่ฉันทำด้วยตัวเองใน FPS (ซึ่งกระสุนมีความเร็ว จำกัด ) และคิดว่าอาจต้องมีอย่างน้อยสองโหมดการกำหนดเป้าหมายตามการเคลื่อนไหวของเป้าหมายในวินาทีก่อนหน้า: ถ้าใกล้เชิงเส้น (เร่งความเร็วสูงสุดในช่วงที่กำหนด) กับโมเดลเชิงเส้น หากมีความผิดปกติอย่างมาก (อาจใช้กล่องขนาดขอบเขตของตำแหน่งล่าสุดหรือไม่) ให้กำหนดเป้าหมายโดยเฉลี่ย สำหรับตอนนี้ฉันสามารถสันนิษฐานได้ว่าพื้นที่ 2 มิติ AI นั้นอยู่กับที่และกระสุนก็ไม่ได้เคลื่อนไหวและเคลื่อนที่เชิงเส้น
9 ai  aiming 

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