การพัฒนาเกม

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

2
ฉันจะสร้างเอฟเฟกต์ World Healing Wave ได้อย่างไร
ฉันต้องการเปลี่ยนพื้นหลังที่มืดและหดหู่ของฉันให้เป็นพื้นหลังหญ้าที่มีความสุขแบบเรียลไทม์ดังนั้นฉากหลังที่มีความสุขจะปรากฏในรัศมีรอบตัวละครเกม Forcefield ของความสุขถ้าคุณจะ วิธีนี้สามารถทำได้อย่างมีประสิทธิภาพเท่าที่เป็นไปได้เมื่อแสดงไปยังผืนผ้าใบในมุมมองที่กำหนดเอง ปรับปรุง: นี่คือวิธีการทำงานในหัวของฉัน: private int hModeX, hModeY; private float hModeRadius = 0.1f; private float hModeStart = 0; happyModeBg = Bitmap.createScaledBitmap(happyModeBg, getWidth(),getHeight(), true); hModeX = getWidth()/2; hModeY = getHeight()/2; private void initHappyMode(Canvas canvas){ hModeRadius = 75 * thread.getDelta(); if(hModeRadius > 500) { hModeStart = timestep; //What is timestep? …

1
จะใช้ปืนลูกซองในเกมได้อย่างไร?
ปืนพกและปืนกลนั้นง่าย - คุณสามารถยิงกระสุนไปในทิศทางที่แน่นอนได้ ในทางกลับกันปืนลูกซองจะสร้างความเสียหายต่อสิ่งใดก็ตามในพื้นที่หนึ่งที่ดูเหมือนกรวย ฉันควรนำไปใช้อย่างไร ฉันมีข้อเสนอแนะที่นี่ แต่ฉันสามารถใช้คำแนะนำ: แบ่งกระสุนเป็นกระสุนเล็ก ๆ น้อย ๆ ที่สร้างความเสียหายน้อยกว่าด้วยตัวเอง แต่บินไปในทิศทางที่คล้ายกัน ไม่ใช้กระสุน - แค่มีเอฟเฟกต์อนุภาคของปืนลูกซองและคำนวณความเสียหายที่ศัตรูได้รับตามตำแหน่ง / ทิศทาง ฯลฯ มีกระสุนขนาดใหญ่ที่มองไม่เห็น (ตัวอย่างเช่นลูกบาศก์) ที่ทำลายสิ่งต่าง ๆ รวมถึงเอฟเฟกต์ของอนุภาคที่จะทำให้ดูเหมือนว่าจริง ๆ แล้วเป็นปืนลูกซอง ขอบคุณล่วงหน้า!
14 c#  unity 

2
หน่วยงาน / ระบบส่วนประกอบและ UI“ นิติบุคคล”
ฉันยังคงเป็นมิตรกับระบบนิติบุคคล / ส่วนประกอบ ฉันพบว่าเนื่องจากฉันมีส่วนประกอบที่มีประโยชน์สำหรับการวาด sprites (หรือ spritesheets) และการจัดการอินพุต (การคลิกเมาส์ / สัมผัส) ฉันจึงต้องการนำสิ่งเหล่านี้มาใช้ใหม่เพื่อสร้างส่วนประกอบ UI (เช่นปุ่มเช่นหน้าจอเลือกระดับ) สิ่งนี้ทำให้ฉันประหลาดอย่างมาก ฉันมักเข้าใจสิ่งต่าง ๆ ว่า "รูปแบบเกม" เช่นผู้เล่นศัตรูการเพิ่มพลัง ฯลฯ ในทางกลับกันจากมุมมองการใช้รหัสซ้ำการใช้ compnents ใหม่สำหรับ UI นั้นเหมาะสมมาก UI / GUI เกี่ยวข้องกับระบบ / ส่วนประกอบอย่างไร (และที่ไหน) (หมายเหตุ: คำถามนี้เป็นผู้ไม่เชื่อเรื่องพระเจ้าแพลตฟอร์มเพราะมันใช้กับหลายแพลตฟอร์ม / ภาษา)

2
บัฟเฟอร์เวอร์เท็กซ์ขนาดใหญ่เทียบกับการดึงสายหลายครั้ง
ฉันเพิ่งเริ่มใช้งาน OpenGL และฉันพยายามจะใช้มันเพื่อสร้างเกม 2D ในเกมนี้ฉันมีตารางหกเหลี่ยมที่ประกอบไปด้วยรูปหกเหลี่ยมสีที่แตกต่างกันมาก ในฐานะโปรแกรมเมอร์มือใหม่ OpenGL ฉันเห็นวิธีวาดตารางนี้สองวิธี: การใช้จุดสุดยอดบัฟเฟอร์กับข้อมูลสำหรับรูปหกเหลี่ยมเดียวจากนั้นใช้ค่าออฟเซ็ตสม่ำเสมอและวนซ้ำบน CPU เพื่อวาดโปรแกรมเดียวกันหลาย ๆ ครั้งจนกว่าฉันจะมีกริด การสร้างบัฟเฟอร์จุดสุดยอดที่มีการคำนวณล่วงหน้าขนาดใหญ่มากซึ่งดึงรูปหกเหลี่ยมทั้งหมดในการโทรครั้งเดียว วิธีใดมีประสิทธิภาพมากที่สุด มีวิธีที่ดีกว่าในการทำเช่นนี้?
14 opengl  shaders 

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


5
ฉันสามารถลดความไม่เท่าเทียมกันของ "ระยะทาง (p1, p2) <distance (p1, p3) ได้หรือไม่?"
ฉันกำลังทำงานกับลอจิกแบบเวกเตอร์เพื่อถามว่า: ฉันสามารถประหยัดเวลาตัวประมวลผลโดยทำให้ความไม่เท่าเทียมนี้ลดความซับซ้อนลง: distance(vector1, vector2) &lt; distance(vector1, vector3) ฉันเห็นว่าvector1มีการทำซ้ำในทั้งสองกรณี
14 vector 

3
อะไรทำให้เกม“ ไม่เป็นทางการ”
ฉันเคยเห็นคำว่า "ไม่เป็นทางการ" ที่ใช้อธิบายเกมในบางครั้งและเคยเห็นคนพูดถึงตัวเองหรือคนอื่น ๆ ว่าเป็น "นักเล่นเกมทั่วไป" เกม "ธรรมดา" คืออะไร? มีความแตกต่างที่แท้จริงระหว่างพวกเขาและเกมปกติหรือไม่? ถ้าเป็นเช่นนั้นอะไรทำให้เกม "ไม่เป็นทางการ"

1
การนำ skybox ไปใช้กับ GLSL เวอร์ชัน 330
ฉันกำลังพยายามให้สกายบ็อกซ์ทำงานกับ OpenGL 3.3 และ GLSL เวอร์ชัน 330 ฉันไม่สามารถค้นหาการสอน OGL skybox ที่ทันสมัยได้อย่างสมบูรณ์ที่ใดก็ได้บนเว็บดังนั้นฉันจึงทำให้รุ่นเก่า (ใช้glVertexAttribPointer()แทนgl_Vertexจุดยอดเป็นต้น) ส่วนใหญ่ใช้งานได้ แต่สำหรับ 2 รายละเอียดหลัก กล่องสกายนั้นเหมือนรูปสามเหลี่ยมบนท้องฟ้าและพื้นผิวนั้นบิดงอไม่ดีและยืดออก (มันควรจะเป็นทุ่งหญ้าดาวฉันได้รับขณะที่เส้นบนพื้นหลังสีดำ) ฉันแน่ใจ 99% ว่านี่เป็นเพราะฉันไม่ได้ทำการสอนแบบเก่าอย่างสมบูรณ์ นี่คือคลาส skybox ของฉัน: static ShaderProgram* cubeMapShader = nullptr; static const GLfloat vertices[] = { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, …
14 c++  opengl  glsl  cubemap  skybox 

2
GLSL Shader - เปลี่ยน Hue / Saturation / Brightness
ฉันพยายามเปลี่ยนเฉดสีของภาพโดยใช้ตัวแยกส่วน GLSL ฉันต้องการบรรลุสิ่งที่คล้ายกับเลเยอร์ Hue / Saturation Adjustment ของ Photoshop ในภาพต่อไปนี้คุณสามารถเห็นสิ่งที่ฉันได้รับจนถึง ฉันต้องการเปลี่ยนสีของสี่เหลี่ยมสีเขียวเพื่อให้ดูเหมือนว่าสี่เหลี่ยมสีแดงด้านขวา แต่ด้วย shader นี้ฉันได้ครึ่งสี่เหลี่ยมสีชมพูครึ่งสีแดง (สี่เหลี่ยมตรงกลาง) สิ่งที่ฉันทำในตัวแบ่งส่วนคือการแปลงสีของพื้นผิวเป็น HSV จากนั้นฉันเพิ่มสี HSV ที่ฉันได้รับจากจุดยอดสุดยอดไปยังมันและฉันแปลงสีกลับเป็น RGB ผมทำอะไรผิดหรือเปล่า? ชิ้นส่วน shader: precision mediump float; varying vec2 vTextureCoord; varying vec3 vHSV; uniform sampler2D sTexture; vec3 convertRGBtoHSV(vec3 rgbColor) { float r = rgbColor[0]; float g = rgbColor[1]; float b …

2
เพราะเหตุใด 90 ° horz / 60 °จัดตำแหน่งมุมมอง FPS เริ่มต้น
เท่าที่ฉันเข้าใจมันควรปรับมุมมองแนวตั้งเป็น: fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen); นั่นคือ Field of View ควรจับคู่ระยะห่างและขนาดของหน้าจอของผู้ใช้ ใน FPS จำนวนมากมีค่าเริ่มต้น 90 °สำหรับ FoV แนวนอนหรือ 60 °สำหรับ FoV แนวตั้ง (สมมติว่า 16: 9) ตัวอย่างหนึ่งคือ CryEngine แต่สำหรับหน้าจอขนาด 16: 9 20 "(แนวทแยงของพื้นที่ที่มองเห็นคือประมาณ 40 ซม. x 25 ซม.) ค่าเริ่มต้นนี้จะกำหนดให้ผู้ใช้ต้องมีตา 20 ซม. จากหน้าจอเพื่อให้ได้มุมมองที่ถูกต้อง ดังนั้นฉันจึงทำผิดพลาดในการคำนวณของฉันหรือต้องมีเหตุผลว่าทำไมคุณถึงเลือกค่า FoV ที่ไม่เหมาะสม อะไรคือสาเหตุของค่าเริ่มต้นของ FoV 90 ° …
14 3d  camera  perspective 

1
แรเงาหรือแสงสว่างคืออะไร?
การแรเงาหรือแสงคืออะไร มันแตกต่างจากตูนแรเงาหรือเป็นแนวคิดเดียวกันหรือไม่ specularity ถูกคำนวณแตกต่างกันอย่างไรสำหรับการแรเงาบนทางลาดเทียบกับ blinn-phong หรือ lambert
14 shaders  lighting 

3
การตรวจจับการชนกันเป็น O เสมอ (n ^ 2)
เครื่องยนต์ฟิสิกส์สามารถลดความซับซ้อนนั้นได้หรือไม่โดยการจัดกลุ่มวัตถุที่อยู่ใกล้กันและตรวจสอบการชนภายในกลุ่มนี้แทนที่จะเทียบกับวัตถุทั้งหมดหรือไม่ (ตัวอย่างเช่นวัตถุที่อยู่ไกลสามารถลบออกจากกลุ่มโดยดูที่ความเร็วและระยะทางจากวัตถุอื่น) ถ้าไม่นั่นทำให้เกิดการปะทะกันเล็กน้อยสำหรับทรงกลม (ใน 3d) หรือดิสก์ (เป็น 2d) หรือไม่ ฉันควรสร้างวงคู่หรือสร้างอาร์เรย์ของคู่แทน? แก้ไข: สำหรับเครื่องยนต์ฟิสิกส์เช่นกระสุนและ box2d การตรวจจับการชนยังคงเป็น O (N ^ 2) หรือไม่

2
การวางแผนตระเวนดินแดน
ฉันกำลังพัฒนาเกม / จำลองสถานการณ์ที่ตัวแทนกำลังต่อสู้เพื่อดินแดน ฉันมีสถานการณ์ที่แสดงในภาพด้านล่าง: สิ่งมีชีวิตเหล่านี้กำลังเดินไปรอบ ๆ และครอบครองผืนดินที่พวกเขาเหยียบหากพวกเขาเป็นอิสระ เพื่อทำให้สิ่งนี้น่าสนใจยิ่งขึ้นฉันต้องการแนะนำพฤติกรรม "การลาดตระเวน" ซึ่งเจ้าหน้าที่กำลังเดินไปรอบ ๆ ดินแดนของพวกเขาเพื่อลาดตระเวนจากผู้บุกรุกที่อาจต้องการใช้มัน ในด้านเทคนิคแต่ละสแควร์จะแสดงเป็นx,yตำแหน่งเช่นเดียวกับมิติที่แสดงความยาวด้าน นอกจากนี้ยังมีข้อมูลเกี่ยวกับผู้ที่ครอบครองตาราง ArrayListสี่เหลี่ยมทั้งหมดจะถูกเก็บไว้ใน ฉันจะแนะนำพฤติกรรมการลาดตระเวนได้อย่างไร สิ่งที่ฉันต้องการคือให้แต่ละหน่วยลาดตระเวนส่วนหนึ่งของพื้นที่ (พวกเขาแบ่งระหว่างพวกเขาซึ่งพวกเขาจะลาดตระเวนในพื้นที่) ปัญหาหลักที่ฉันพบมีดังนี้: พื้นที่ของที่ดินนั้นสุ่มมากดังที่เห็นในภาพ มันค่อนข้างยากที่จะเข้าใจว่าขอบเขตอยู่ในแต่ละทิศทาง ตัวแทนควรแบ่งภูมิภาคเป็นหน่วยลาดตระเวนอย่างไร พื้นที่ของที่ดินอาจไม่ต่อเนื่องจากทีมตรงข้ามอาจเข้ายึดครองดินแดนกลาง ฉันมีความคิดที่จะนำสี่เหลี่ยมจัตุรัสที่ไกลที่สุดในแต่ละทิศทางปฏิบัติต่อพวกมันให้เป็นขอบเขตของพื้นที่และแบ่งพื้นที่ตามขอบเขตเหล่านั้น แต่อาจรวมถึงที่ดินที่ไม่เกี่ยวข้องจำนวนมาก ฉันจะแก้ไขปัญหานี้ได้อย่างไร
14 java  ai  grid 

2
กราฟิกไม่ถูกแสดงบน OUYA
ฉันหวังว่ามันจะยังเร็วเกินไปที่จะถามคำถาม OUYA dev แต่ฉันเพิ่งได้รับอุปกรณ์ dev และฉันต้องการให้เกมของฉันทำงานเร็วที่สุด! ฉันใช้ LibGDX เป็นเฟรมเวิร์กสำหรับเกมของฉันและเปิดตัวแบ็กเอนด์ Android บน OUYA ดูเหมือนว่าทุกอย่างจะดียกเว้นว่าไม่มีการแสดงกราฟิกของฉัน! ฉันบอกได้แค่ว่าเกิดอะไรขึ้นเพราะ DebugDraw ของ Box2D แสดงฟิสิกส์ของฉัน ฉันใช้ Spritebatch และ OpenGL ES 2.0 ของ LibGdx ทุกอย่างทำงานอย่างสมบูรณ์บนเดสก์ท็อปของฉันและแบ็กเอนด์ Android (โทรศัพท์) ฉันกำลังทำสิ่งผิดปกติกับการจัดการทรัพยากรของฉันสำหรับ OUYA หรือไม่ มีปัญหาอะไร อาจเป็นเพราะฉันเก็บกราฟิกไว้ในโฟลเดอร์สินทรัพย์แทนที่จะเป็น / res? แก้ไข: นี่คือผลลัพธ์ของ logcat: http://pastebin.com/BbPyPCcR
14 java  android  libgdx  ouya 

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