การพัฒนาเกม

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

6
สร้างแคมของฉันเอง
ฉันวางแผนที่จะสร้างระบบ cam kill ของตัวเองสำหรับชุดเครื่องมือ sandbox หลังจากคิดเกี่ยวกับกลไกของลูกเบี้ยวฆ่าตัวเอง แต่ฉันค่อนข้างหลงทาง ฉันพยายามที่จะสร้างสิ่งที่เห็นได้ทั่วไปในเกมเรียกร้องของหน้าที่จากมุมมองของนักฆ่าฉากการฆ่าจริง ความคิดของฉัน: - ฉันจำไม่ได้เมื่อคนฆ่าคนอื่นเพราะฉันไม่รู้ว่าจะเริ่มกระบวนการบันทึก มีวิธีที่ฉันจะกำหนดอย่างแม่นยำเมื่อใครบางคน 'เกี่ยวกับ' เพื่อฆ่าใครบางคน - ความคิดที่แท้จริงของฉันจนถึงตอนนี้ก็คือการมีสำเนาที่สมบูรณ์ของทุกสิ่งที่โหลดไปด้านข้างเพื่อคัดลอกการเคลื่อนไหวทั้งหมดจากโลกดั้งเดิม แต่มีความล่าช้า 10 วินาที ด้วยวิธีนี้กล้องฆ่าทั้งหมดจะมีความยาว 10 วินาทีและกล้องบุคคลจะถูกย้ายไปยังโลกที่สองของนักฆ่า คำถามของฉัน: มีวิธีที่ยอมรับได้ในการทำเช่นนี้? ใครบ้างมีความคิดที่ดีสำหรับสิ่งนี้? ขอบคุณถ้าคุณทำได้!
15 camera 


1
เครื่องยนต์เช่น Frostbite มีลักษณะอย่างไรในระยะแรก ๆ ? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันสนุกไปกับการเล่น Battlefield และฉันรู้สึกปลื้มกับทุกสิ่งที่ปรากฏและเสียง ฉันแค่สงสัยว่าเอ็นจิ้นเกมเริ่มชีวิตอย่างไร ในที่สุดจุดของการเขียนโค้ดจะทำอะไรและมันทำอะไรก่อนที่มันจะเริ่มแสดงพื้นผิวแสงและอนุภาคทั้งหมดอย่างสมบูรณ์แบบ? มีบทความที่ดีออนไลน์หรือตัวอย่างที่ทุกคนเห็นหรือไม่

3
ฉันจะทำให้พื้นผิว OpenGL ปรับขนาดได้โดยไม่มัวหรือไม่?
ฉันใช้ OpenGL ผ่าน LWJGL ฉันมีการเรนเดอร์รูปสี่เหลี่ยมขนาด 16x16 ที่ 16x16 เมื่อฉันเปลี่ยนเป็นจำนวนสเกล, รูปสี่เหลี่ยมจะโตขึ้น, จากนั้นจะกลายเป็นพร่ามัวเมื่อมันใหญ่ขึ้น ฉันจะทำให้มันขยายได้โดยไม่ทำให้ตาพร่าเช่นใน Minecraft นี่คือรหัสภายในวัตถุ RenderableEntity ของฉัน: public void render(){ Color.white.bind(); this.spriteSheet.bind(); GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0,0); GL11.glVertex2f(this.x, this.y); GL11.glTexCoord2f(1,0); GL11.glVertex2f(getDrawingWidth(), this.y); GL11.glTexCoord2f(1,1); GL11.glVertex2f(getDrawingWidth(), getDrawingHeight()); GL11.glTexCoord2f(0,1); GL11.glVertex2f(this.x, getDrawingHeight()); GL11.glEnd(); } และนี่คือรหัสจากวิธี initGL ของฉันในคลาสเกมของฉัน GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glClearColor(0.46f,0.46f,0.90f,1.0f); GL11.glViewport(0,0,width,height); GL11.glOrtho(0,width,height,0,1,-1); และนี่คือรหัสที่ใช้วาดรูปจริง public void start(){ initGL(800,600); init(); while(true){ …
15 opengl  java  lwjgl  slick 

2
ฉันจะหมุนรอบจุดโดยพลการในแบบ 3 มิติ (แทนที่จะเป็นจุดกำเนิด) ได้อย่างไร
ฉันมีบางรุ่นที่ฉันต้องการหมุนโดยใช้ quaternions ในลักษณะปกติยกเว้นการหมุนเกี่ยวกับจุดกำเนิดฉันต้องการให้ออฟเซ็ตเล็กน้อย ฉันรู้ว่าคุณไม่ได้พูดว่าในพื้นที่ 3 มิติที่คุณหมุนรอบจุด; คุณบอกว่าคุณหมุนรอบแกน ดังนั้นฉันจึงจินตนาการว่ามันหมุนไปรอบ ๆ เวกเตอร์ซึ่งหางอยู่ในตำแหน่งที่ไม่ได้มาจากแหล่งกำเนิด การแปลงเลียนแบบทั้งหมดในเครื่องมือเรนเดอร์ / ฟิสิกส์ของฉันถูกเก็บไว้โดยใช้ SQT (สเกล, quaternion, การแปลความคิดที่ยืมมาจากหนังสือGame Engine Architecture ) ดังนั้นฉันจึงสร้างเมทริกซ์แต่ละเฟรมจากส่วนประกอบเหล่านี้ ในระบบนี้การแปลจะถูกนำไปใช้จากนั้นปรับขนาดแล้วหมุน ในกรณีเฉพาะฉันต้องแปลวัตถุในอวกาศโลกหมุนและหมุนรอบจุดยอดที่ไม่ได้อยู่กึ่งกลางที่จุดกำเนิดของวัตถุ คำถาม:ด้วยข้อ จำกัด ของระบบปัจจุบันของฉันที่อธิบายไว้ข้างต้นฉันจะบรรลุการหมุนเวียนในท้องถิ่นโดยมีศูนย์กลางที่จุดใดจุดหนึ่งนอกเหนือจากจุดกำเนิดได้อย่างไร โหวตอัตโนมัติให้กับทุกคนที่สามารถอธิบายวิธีการทำเช่นนี้โดยใช้เมทริกซ์เท่านั้นเช่นกัน :)

6
องค์ประกอบของเกมผู้จัดการเกมและคุณสมบัติของวัตถุ
ฉันกำลังพยายามทำให้การออกแบบเอนทิตีอิงองค์ประกอบ ขั้นตอนแรกของฉันคือการสร้างส่วนประกอบต่าง ๆ ที่สามารถเพิ่มไปยังวัตถุ สำหรับส่วนประกอบทุกประเภทที่ฉันมีผู้จัดการซึ่งจะเรียกฟังก์ชั่นการอัพเดทของทุกองค์ประกอบผ่านสิ่งต่าง ๆ เช่นสถานะแป้นพิมพ์ ฯลฯ ตามต้องการ สิ่งต่อไปที่ฉันทำคือลบวัตถุออกและมีส่วนประกอบแต่ละอันที่มีรหัส ดังนั้นวัตถุจะถูกกำหนดโดยส่วนประกอบที่มีรหัสเดียวกัน ตอนนี้ฉันกำลังคิดว่าฉันไม่ต้องการผู้จัดการสำหรับส่วนประกอบทั้งหมดของฉันเช่นฉันมี a SizeComponentซึ่งเพิ่งมีSizeคุณสมบัติ) ดังนั้นSizeComponentวิธีนี้จึงไม่มีวิธีการอัพเดทและวิธีการอัพเดทของผู้จัดการก็ไม่ได้ทำอะไรเลย ความคิดแรกของฉันคือการมีObjectPropertyคลาสที่ส่วนประกอบสามารถสอบถามได้แทนที่จะให้เป็นคุณสมบัติของส่วนประกอบ ดังนั้นวัตถุจะมีจำนวนและObjectProperty ObjectComponentส่วนประกอบจะมีลอจิกการอัพเดทที่สอบถามวัตถุสำหรับคุณสมบัติ ผู้จัดการจะจัดการโทรวิธีการปรับปรุงองค์ประกอบ ดูเหมือนว่าจะเกินความเป็นจริงสำหรับฉัน แต่ฉันไม่คิดว่าฉันจะสามารถกำจัดองค์ประกอบได้เพราะฉันต้องการวิธีที่ผู้จัดการจะต้องรู้ว่าวัตถุใดที่ต้องใช้ตรรกะขององค์ประกอบที่จะเรียกใช้ (มิฉะนั้นฉันจะลบองค์ประกอบออก สมบูรณ์และผลักดันตรรกะการอัปเดตเป็นผู้จัดการ) นี้คือ (มีObjectProperty, ObjectComponentและComponentManagerชั้นเรียน) มากกว่าวิศวกรรม? อะไรจะเป็นทางเลือกที่ดี?

1
การสร้าง HUD / GUI ด้วย OpenGL (LWJGL)
ฉันอยู่ในขั้นตอนของการพัฒนาเกมที่ฉันต้องทำ HUD หรือ GUI ฉันไม่เคยได้รับส่วนนี้ดังนั้นฉันไม่รู้ว่ามันเสร็จสิ้นแล้ว ฉันพยายามเรนเดอร์สี่เหลี่ยมที่ตำแหน่งคงที่บนหน้าจอ แต่มีปัญหา เพื่อให้กล้องของฉันทำงานกับออโทกราฟฟิคฉันใช้สิ่งนี้: public void lookThrough() { GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); GL11.glOrtho(position.x, position.x + Display.getDisplayMode().getWidth()/zoom, position.y + Display.getDisplayMode().getHeight()/zoom, position.y, -1, 1); GL11.glMatrixMode(GL11.GL_MODELVIEW); } ฉันไม่เห็นว่าฉันจะสามารถแก้ไขบางสิ่งบางอย่างบนหน้าจอโดยใช้วิธีนี้ได้อย่างไร มีวิธีใดบ้างไหม? ขอบคุณ :)
15 opengl  java  gui  lwjgl 

1
จะต้องรู้ปัญหาทางกฎหมายเมื่อปล่อยเกม?
เอาล่ะสักวันในอนาคตอันไกลฉันอยากจะปล่อยเกมของตัวเองอย่างอิสระ คำถามของฉันคือจำนวนขั้นต่ำของความคุ้นเคยกับกฎหมายลิขสิทธิ์สิทธิบัตรซอฟต์แวร์และทรัพย์สินทางปัญญาในรูปแบบอื่น ๆ เพื่อปกป้องตัวเองและทรัพย์สินในขณะที่ไม่ได้ละเมิดทรัพย์สินของ บริษัท อื่นโดยไม่ตั้งใจคืออะไร

5
วิธีการผูกกระสุนด้วยภาพเคลื่อนไหวการยิง
ให้บอกว่าคุณมีภาพเคลื่อนไหวที่คุณต้องการให้เกิดขึ้นเมื่อยิงกระสุน คุณจะให้กระสุนแสดงขึ้นในตอนท้ายของอนิเมชั่นได้อย่างไร สิ่งเดียวที่ฉันคิดได้ก็คือการรู้ระยะเวลาของภาพเคลื่อนไหวและการหน่วงเวลาการวางตำแหน่งสัญลักษณ์หัวข้อย่อยและการตั้งค่าให้ใช้งานได้จนกว่าจะถึงเวลาที่กำหนดไว้ ฉันแค่สงสัยว่านี่เป็นวิธีที่ดีที่สุดแล้วทุกคนจัดการกับสิ่งนี้ได้อย่างไร แก้ไข: ฉันคิดว่าฉันมีปัญหาในการใช้ถ้อยคำคำถามอย่างถูกต้อง
15 2d  animation  release  timing 

9
เกมโอเพนซอร์ซที่ดีที่ต้องเรียนรู้คืออะไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันต้องการดาวน์โหลดซอร์สโค้ดของเกมโอเพ่นซอร์สดังนั้นฉันจึงสามารถคุ้นเคยกับสถาปัตยกรรมเกมได้ มีใครรู้เกมที่มีซอร์สโค้ดที่อ่านง่ายและเข้าใจได้ง่ายหรือไม่? แก้ไข: หลังจากคิดแล้วฉันต้องการสร้างเกมที่สามารถเล่นบนเดสก์ท็อปหรือโทรศัพท์ Andriod ด้วยกราฟิก 2D

6
ย้ายผู้เล่นไปที่ช่องสี่เหลี่ยมเดียวกันพร้อมกันไหม
ลองพิจารณาตารางกำลังสอง x 2 ผู้เล่นสามารถย้ายไปยังช่องสี่เหลี่ยมถ้า: ผู้เล่นคนอื่นไม่ต้องการย้ายเข้าไปในจัตุรัสถัดไป ไม่มีผู้เล่นคนอื่นรอและยังคงครองจัตุรัสในเทิร์นนี้ ฉันได้รวมภาพด้านบนเพื่ออธิบายปัญหาของฉัน ผู้เล่นเคลื่อนที่พร้อมกัน หากผู้เล่น 2 คน (หรือมากกว่า) พยายามที่จะย้ายเข้าไปในสี่เหลี่ยมเดียวกันไม่ขยับ
15 turn-based 

3
การเรนเดอร์ซอฟต์แวร์ทำได้อย่างไร?
ฉันต้องการสำรวจแบบเรียลไทม์โดยใช้ซอฟต์แวร์แบบแรสเตอร์ ฉันรู้ว่าทุกอย่างกำลังมุ่งสู่ GPU ในทุกวันนี้ แต่มีบางเกมที่มันยังคงสมเหตุสมผลที่จะใช้ตัวแสดงซอฟต์แวร์ ตัวอย่างเช่น: Voxeltron Voxatron เป็นเกมยิงที่เกิดขึ้นในโลกที่ทำจาก voxels (ก้อนเล็ก ๆ ชนิดหนึ่ง) ทุกอย่างในเกมนั้นจะแสดงในรูปแบบเสมือน 128x128x64 voxel รวมถึงเมนูและรายการเล่นของผู้เล่น หากคุณมองอย่างใกล้ชิดบางครั้งคุณสามารถเห็นสินค้าคงคลัง (คะแนน / ชีวิต / กระสุน) หล่อเงาบนวัตถุบางอย่างบนพื้น ฉันทำงานเกี่ยวกับการแสดงผล voxel และเครื่องมือสร้างแบบจำลองมาเป็นเวลานานโดยมีเป้าหมายสูงสุดในการสร้างเกมผจญภัยสำรวจขนาดใหญ่ ประมาณครึ่งปีที่แล้วมันถูกหลอมรวมกับงานที่ฉันทำกับนักยิงเวทีสำหรับ Conflux และนี่คือผลลัพธ์ มันเป็นเกมที่เล่นง่ายในใจ - ส่วนใหญ่เป็นเพียง Robotron ที่ตั้งอยู่ในโลก 3 มิติที่ถูกทำลายด้วยสิ่งมีชีวิตที่โง่เขลา ฉันไม่แน่ใจว่าความสำคัญของการทำลายล้างจะเป็นอย่างไรต่อการเล่นเกม แต่มันก็สนุกดีที่จะทำลายกำแพงบางส่วน ฉันยังเพิ่มรถปิคอัพสร้างกำแพงที่คุณสามารถใช้เพื่อสร้างกำแพงเพื่อซ่อนจากมอนสเตอร์ที่น่ากลัว เกมจะเกิดขึ้นในชุดเล็ก ๆ โดยสิ้นเชิง บางห้องมีห้องที่มีฉากแอ็คชั่นอยู่ระหว่าง Knightlore และ Smash TV นี่คือบางส่วนของการออกแบบตามการผจญภัยดั้งเดิมแอบกลับมาและข้อแก้ตัวในการสร้างสภาพแวดล้อมเฉพาะเรื่อง คุณสมบัติ: …

3
ฉันจะทำให้ภูมิประเทศ 3 มิติ“ ตกไป” เหมือน Animal Crossing ได้อย่างไร
Animal Crossingมีวิธีที่ไม่เหมือนใครในการเลื่อนแผนที่โลก: เมื่อตัวละครเคลื่อนตัวลงโลกจะหมุนไปมาอยู่ด้านบนเรื่อย ๆ เหมือนติดอยู่กับหลอดกระดาษแข็ง: วิดีโอนี้แสดงวิธีการเคลื่อนไหว ฉันจะสร้างเอฟเฟกต์นี้ได้อย่างไร?
15 3d  movement  maps 

3
การแก้ปัญหาการชนในกรณีที่มีการชนกับวัตถุหลายอย่าง
ฉันมีวัตถุคงที่และวัตถุที่เคลื่อนย้ายได้ ตรวจพบการชนกันโดยใช้ทฤษฎีการแยกแกน - ตัวอย่างเช่นในสถานการณ์นี้ฉันมีวัตถุสองชิ้น (สีแดง): และวัตถุที่เคลื่อนที่ได้ระหว่างสอง: อัลกอริทึมของฉันสามารถคำนวณการชนกันระหว่างวัตถุทั้งสองนี้และมันก็แยกเวกเตอร์ความละเอียดที่สมบูรณ์แบบออกมา (หมายถึงการกระจัดต่ำสุด - เวกเตอร์) กับการชน ตัวอย่างเช่นเมื่อฉันตรวจสอบการชนกันระหว่างสี่เหลี่ยมสีเขียวและสี่เหลี่ยมสีแดงด้านขวาอัลกอริทึมจะแยกเวกเตอร์ที่บอกฉันว่าฉันต้องย้ายสี่เหลี่ยมสีเขียวเพื่อแก้ไขการชนกันอย่างไร: โปรดสังเกตว่าฉันเพิ่งวาดสิ่งนี้ใน MSPaint อย่างรวดเร็วดังนั้นในภาพนั้นอาจเป็นได้ว่าการแปลขั้นต่ำ - เวกเตอร์ผลักสี่เหลี่ยมผืนผ้าสีเขียวออกด้านบน แต่ฉันจะสมมติที่นี่ที่ผลักไปทางซ้าย / จริงสั้นกว่า วิธีการทั่วไปของการเข้าใกล้นี้จะแก้ไขการชนกันของหนึ่งการชนกันต่อหนึ่งเฟรมเท่านั้นแทนที่จะแก้ไขทั้งหมดในคราวเดียว แต่ในกรณีของฉันสิ่งนี้จะส่งผลให้การพลิกล้ม: ขั้นแรกตัวแก้ปัญหาตรวจจับการชนกันสองครั้ง แต่จะแก้ไขการชนกันระหว่างสี่เหลี่ยมด้านขวาและสี่เหลี่ยมสีเขียวเท่านั้น: จากนั้นในเฟรมถัดไปมันจะตรวจจับการชนเพียงครั้งเดียวซึ่งอยู่ระหว่างสี่เหลี่ยมผืนผ้าสีแดงซ้ายและสี่เหลี่ยมสีเขียวและแก้ไขมัน: อย่างที่คุณเห็นนี่จะไม่สามารถแก้ไขการชนกันได้ (ตัวอย่างเช่นโดยการกดสี่เหลี่ยมสีเขียวออกไปด้านบน) และเพียงแค่พลิก flops ระหว่างสองสถานะแทน ฉันจะแก้ปัญหานี้ได้อย่างไร

3
เกมจะป้องกันไม่ให้ผู้คนเรียกใช้ตัวเองหลาย ๆ กรณีได้อย่างไร
Starcraft II จำกัด ฉันไม่ให้เรียกใช้หลายอินสแตนซ์ แต่ถ้าฉันเรียกใช้อินสแตนซ์ที่สองที่sandboxed ใน Sandboxieมันใช้งานได้ สิ่งนี้อาจเป็นสาเหตุของอะไร ฉันจะทำซ้ำพฤติกรรมนี้สำหรับเกมของตัวเองได้อย่างไร

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