การพัฒนาเกม

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

4
ต้องจ่ายเท่าไหร่สำหรับอาร์ตเวิร์คในเกมอินดี้? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นนักพัฒนาอินดี้และฉันต้องการงานศิลปะที่มีรายละเอียด มีค่าใช้จ่ายเท่าไหร่ในการจ่ายศิลปินสำหรับการออกแบบตัวละคร 20 ตัว ฉันรู้ว่ามันขึ้นอยู่กับทักษะของศิลปิน ฯลฯ แต่ฉันสงสัยว่าจะคาดหวังอะไรเพื่อที่ฉันจะได้งบประมาณ แก้ไข: สมมติว่าการ์ตูนเป็นศิลปะ ( ตัวอย่าง - ไม่จำเป็นต้องอยู่ในรายละเอียดในระดับนั้น แต่เป็นรูปแบบศิลปะการ์ตูน) ไม่มีการสร้างแบบจำลอง 3 มิติ - ศิลปะจะถูกใช้เป็นภาพนิ่งในเกมและเพื่อการโฆษณา ฉันจะให้การออกแบบฐานผีสางสำหรับพวกเขาเพื่อขยายและรายละเอียด นอกจากนี้ตัวเลขบางอย่างก็ดี - ฉันชอบตัวเลข แม้แต่ช่วงก็มีประโยชน์ ไลค์: คาดว่าจะใช้จ่าย $ x2 ~ $ x1 เพื่อคุณภาพสูงสุดและ $ y2 ~ $ y1 เพื่อคุณภาพที่ดี ฉันเข้าใจว่าฉันสามารถถามได้ที่เว็บไซต์ช่วยเหลืออินดี้ แต่ถ้าศิลปินพูดอะไรบางอย่างเช่น $ 1,000 สำหรับงานออกแบบ …
14 art  costs 

2
ฉันจะทำอัลฟ่าโปร่งใสอย่างถูกต้องใน XNA 4.0 ได้อย่างไร
โอเคฉันได้อ่านบทความบทช่วยสอนและคำถามเกี่ยวกับเรื่องนี้แล้ว ส่วนใหญ่ชี้ไปที่เทคนิคเดียวกันซึ่งไม่ได้แก้ปัญหาของฉัน ฉันต้องการความสามารถในการสร้างสไปรต์แบบกึ่งโปร่งใส (ของ texture2D จริงๆ) และให้สไปรต์ซ้อนทับอีก ฉันสามารถทำได้โดยใช้ตัวอย่างโค้ดที่ฉันพบ แต่ฉันไม่พอใจกับผลลัพธ์และฉันรู้ว่ามีวิธีในการทำเช่นนี้ ในการเขียนโปรแกรมมือถือ (BREW) เราทำมันเป็นโรงเรียนเก่าและตรวจสอบแต่ละพิกเซลเพื่อความโปร่งใสก่อนการเรนเดอร์ ในกรณีนี้ดูเหมือนว่าจะทำให้เทพดาด้านล่างมันผสมกับอัลฟาด้านบน นี่อาจเป็นสิ่งประดิษฐ์ของวิธีที่ฉันแสดงพื้นผิว แต่อย่างที่ฉันพูดไปก่อนหน้านี้ทุกตัวอย่างชี้ไปที่เทคนิคนี้ ก่อนที่ฉันจะไปเพิ่มเติมฉันจะไปข้างหน้าและวางรหัสตัวอย่างของฉัน public void Draw(SpriteBatch batch, Camera camera, float alpha) { int tileMapWidth = Width; int tileMapHeight = Height; batch.Begin(SpriteSortMode.Texture, BlendState.AlphaBlend, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone, null, camera.TransformMatrix); for (int x = 0; x < tileMapWidth; x++) { …
14 xna  2d  c#  rendering  transparency 

6
ฉันจะจัดการการตรวจจับการชนกันของภาพสามมิติได้อย่างไร
ฉันต้องการสร้าง platformer สไตล์กระโดดมีมิติเท่ากัน ผู้เล่นควรจะสามารถกระโดดขึ้นไปบนแพลตฟอร์มเหนือพื้นตีด้านข้างของวัตถุ ฯลฯ ฉันจะใช้เอ็นจิ้นเกม 2D ดังนั้นฉันไม่ต้องการเลียนแบบการชนกันของภาพสามมิติแบบเต็มสำหรับมิติที่ฉันไม่ได้ใช้ ฉันคิดว่าควรวางวัตถุในเกมโดยใช้: X, Y, ความกว้างความสูงและ Z สำหรับความลึก การใช้ค่าเหล่านั้นฉันจะตรวจจับการชนได้อย่างไร

1
ฉันจะลบหน้าจอเริ่มต้นของ Godot ได้อย่างไร
ฉันเริ่มใช้ Godot เมื่อเร็ว ๆ นี้ (ส่วนใหญ่เป็นเพราะตัวแก้ไขสนับสนุน Linux) มีสิ่งหนึ่งที่รบกวนจิตใจฉัน: หน้าจอ Godot splash ฉันรู้ว่าฉันสามารถเอาออก (อย่างใด) และฉันเห็นบางอย่างเกี่ยวกับ C แต่ฉันไม่แน่ใจ มีวิธีลบออกไหม หรืออาจเป็นเฉพาะในเครื่องมือแก้ไขและเมื่อคุณส่งออกเกมมันจะหายไป?
14 godot 

3
ฉันจะย้อนกลับผลกระทบของเมทริกซ์การแปลงได้อย่างไร
ฉันเพิ่งทำงานเกมโดยใช้ OpenGL และ C ++ ผ่าน GLFW ในเกมฉันมีเรือบินพร้อมป้อมปืนติดตั้งอยู่ เรือเหาะเคลื่อนที่ไปรอบ ๆ ในพิกัดอวกาศโลกและป้อมปราการ 'ตาม' มัน ป้อมปืนมีพื้นที่ประสานงานเป็นของตัวเองสำหรับทิศทางการมอง / เล็ง โดยทั่วไปเมื่อป้อมปืนมุ่งไปในทิศทาง(0,0,1)มันจะมุ่งขนานไปกับทิศทางการเคลื่อนที่ของเรือบิน เพื่อให้เป้าหมายอวกาศของป้อมปืนฉันมีเมทริกซ์ที่ใช้พิกัดอวกาศของโลกและเปลี่ยนสิ่งเหล่านี้เป็นพิกัดอวกาศของป้อมปืน เมื่อป้อมยิงฉันต้องการให้ลูกกระสุนออกมาในอวกาศโลกมีวิธีที่ดีในการใช้เมทริกซ์การแปลงของฉันเพื่อแปลงพิกัดของป้อมปืนกลับสู่อวกาศโลกหรือไม่? วิธีทั่วไปมากขึ้นของการถามคำถามที่อาจจะ: ถ้าฉันมีเมทริกซ์Mที่ใช้พิกัดจากพื้นที่ไปยังพื้นที่A Bมีวิธีง่าย ๆ ในการใช้MพิกัดจากBถึงAหรือไม่?

7
จะเปลี่ยน Gravity ไปยังวัตถุบางอย่างใน Unity ได้อย่างไร
ฉันมีสองทรงกลมในความสามัคคี หนึ่งคือ 1,000x ในขนาดอื่น ๆ คือ 1x ในขนาด ดังนั้นฉันต้องการให้รูปทรงกลมขนาดเล็กลงดึงดูดให้เป็นทรงกลมที่ใหญ่กว่า ดังนั้นฉันจะทำอย่างไร ฉันรู้ว่ามันสามารถลดลงผ่านแรงโน้มถ่วงโดยใช้ร่างกายที่แข็ง แต่ฉันจะเปลี่ยนมุมโน้มถ่วงไปสู่ทรงกลมขนาดใหญ่ได้อย่างไร
14 c#  unity  sphere 

3
การชนวัตถุขนาดเล็กและความเร็วสูง: หลีกเลี่ยงการขุดอุโมงค์
แก้ไข / อัปเดต:คำถามที่ใหญ่ที่สุดของฉันตอนนี้คือสมการของ t = ... ที่ว่าเป็นขั้นตอนที่ 3 หรือไม่เป็นวิธีที่ดีกว่า ปัญหาอื่น ๆ ส่วนใหญ่ได้รับการแก้ไขเพียงบางส่วนหรือทั้งหมด แต่ไม่มีความคิดเห็นหรือคำตอบใด ๆ ที่สัมผัสกับปัญหานี้ได้ อาจต้องใช้วิธีการวิเคราะห์อีกครั้งความเร็วและระยะทางมีขนาดใหญ่เกินไปและวัตถุนั้นเล็กเกินไปสำหรับการแก้ปัญหาแบบวนซ้ำ / แบบเรียกซ้ำ (recursive solution) ใด ๆ วิธีแก้ปัญหาแบบวนซ้ำ / แบบวนซ้ำที่จะจัดการกับสถานการณ์ประเภทนี้ได้ดีแล้วฉันก็เปิดรับแน่นอน) ขอบคุณมากสำหรับความช่วยเหลือของคุณทุกคนยอดเยี่ยมและฉันซาบซึ้งในความคิดและความช่วยเหลือของคุณ! ฉันพยายามตรวจหาการชนกันระหว่างวัตถุขนาดเล็กและความเร็วสูง นี่เป็นสถานการณ์ที่การขุดอุโมงค์อาจเกิดขึ้นได้ง่ายมากแม้ในความเร็วต่ำ เรย์แคสต์จะไม่ทำงานเนื่องจากนี่เป็นการตรวจจับการชนกันระหว่างวัตถุความเร็วสูงสองชิ้นไม่ใช่ระหว่างวัตถุหนึ่งกับผนังนิ่ง (ถ้าฉันไม่เข้าใจผิดว่าการส่งสเรย์?) ประสิทธิภาพเป็นสิ่งที่ต้องพิจารณาอย่างมาก ถ้าเป็นไปได้ทั้งหมดฉันต้องการหลีกเลี่ยงการตีที่ยิ่งใหญ่ ฉันมี quadtree ใช้งานได้ดีและมีประสิทธิภาพมาก ( http://en.wikipedia.org/wiki/Quadtree ) ดังนั้นฉันจะแก้ไขและใช้ตามที่อธิบายไว้ด้านล่าง แก้ไข: การลดช่วงเวลาจะไม่ทำงาน ความเร็วที่สูงเกินไปสำหรับการแก้ปัญหานี้ซึ่งหมายความว่าฮิตประสิทธิภาพการทำงานจะดีเกินไปในขณะที่ยังขาดหายไปส่วนใหญ่ของชนอุโมงค์ (ตัวอย่างเช่นฉันอาจมีวัตถุที่มีขนาดประมาณ 1 หน่วยไปด้วยความเร็วที่วัดได้ในหน่วยล้านต่อช่วงเวลา ... ) โซลูชั่นที่เสนอ: ขั้นตอนที่ 1: …

2
ฉันจะจำลองเอฟเฟกต์ doppler ในเกมได้อย่างไร
ฉันพยายามจำลองลักษณะของดอปเลอร์ในเกม (เกมแข่งรถ) ฉันไม่ได้ใช้ไลบรารี่เสียงเฉพาะที่จำลองเอฟเฟกต์ฉันมีฟังก์ชั่นโทรกลับเฉพาะที่ฉันผสมข้อมูล ฉันหาวิธีเปลี่ยนความถี่ของตัวอย่างในฟังก์ชั่นมิกเซอร์แล้ว สิ่งที่ฉันไม่รู้ก็คือความถี่ควรเปลี่ยนไปตามตำแหน่งของผู้เล่นและตัวส่งและความเร็ว นี่คือสิ่งที่ฉันมีในเกม: //player vec3 p.pos; vec3 p.vel; //emitter vec3 e.pos; vec3 e.vel; 1) ตามวิกิพีเดียความสัมพันธ์ระหว่างความถี่ที่ปล่อยออกมาและความถี่ที่สังเกตได้นั้นได้รับจาก: float f = (c + vr) / (c + vs) * fo โดยที่cคือค่าคงที่ความเร็วในสื่อกลาง (โดยทั่วไปจะเป็นจำนวนมาก) vsและvrเป็นความเร็วของแหล่งกำเนิดและตัวรับที่สัมพันธ์กับสื่อ ดังนั้นฉันเดา: float vr = p.vel.length; //player speed float vs = e.vel.length; //emitter speed แต่ฉันคิดว่ามันผิดมันจะไม่ก่อให้เกิดการเปลี่ยนแปลงใด ๆ ในความถี่เช่น: ถ้าvr …

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

2
บทแนะนำที่ดีสำหรับ Lua และLÖVE [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันต้องการสร้างเกม 2 มิติที่เรียบง่ายและได้อ่านสิ่งดีๆมากมายเกี่ยวกับLÖVEฉันจึงอยากลองดู อย่างไรก็ตามฉันไม่สามารถหาบทเรียนที่ดีได้ อันที่อยู่ในหน้าLÖVEนั้นค่อนข้างไม่มีโครงสร้างและอีกอันที่ฉันพบโดย Mathew Casperson นั้นไม่ค่อยมีประโยชน์ ไม่มีใครรู้กวดวิชาที่ดีขึ้น?
13 lua  love2d 

2
ความล้มเหลวในการดำเนินงานของไฟล์ในเกมล้มเหลว / ฆ่าโดย OS / ผู้ใช้ใน Android
เกมของฉันบันทึกสถานะหลังจากช่วงเวลาคงที่ในไฟล์ในที่เก็บข้อมูลภายในเกม / แอพ เมื่อเกมของฉันถูกฆ่าหรือล้มเหลวโดยผู้ใช้หรือระบบปฏิบัติการตามลำดับเราจะเขียนสถานะเกมปัจจุบันลงในไฟล์นั้น การเขียนไฟล์หลังจากช่วงเวลาการแก้ไขทำงานได้ดี แต่เมื่อเกมหยุดทำงาน / ถูกฆ่าโดยระบบปฏิบัติการหรือผู้ใช้การดำเนินการเขียนไฟล์ล้มเหลว ความล้มเหลวในการดำเนินงานส่งผลให้สถานะเกมไม่สมบูรณ์หรือสถานะเกมว่างเปล่าเช่นไม่มีข้อมูลที่เขียนลงไฟล์เลย ฉันได้ลองใช้วิธีแก้ไขปัญหาหลายอย่างโดยใช้บริการ android ในกรณีที่บริการไม่ใช่บริการที่เหนียวติดกับแอป ในทางกลับกันถ้าบริการติดแล้วมันจะเริ่มต้นใหม่ แต่ความตั้งใจที่แนบมากับบริการเป็นโมฆะหรือใหม่ คำถามคือฉันจะบันทึกข้อมูลของฉัน (อาจ ~ 2-3MB) ในไฟล์ในที่จัดเก็บข้อมูลภายในอย่างสมบูรณ์เมื่อผู้ใช้ / ระบบปฏิบัติการของเกม / แอพถูกฆ่าตาย?
13 unity  android 

3
นักออกแบบเกมสร้างรูปแบบการสั่นสะเทือนได้อย่างไร
ฉันอยากรู้เกี่ยวกับการสร้างและการใช้รูปแบบการสั่นสะเทือนสำหรับตัวควบคุมคอนโซล (สำหรับตัวควบคุม PS4 หากสร้างความแตกต่าง) มีความล่าช้าและพารามิเตอร์ความเร็วของมอเตอร์ใช่ไหม? แต่เราสามารถจางหายไปจากมอเตอร์ซ้ายไปขวาหรือทำให้มันทำงานร่วมกันได้ .... มีวิธีมาตรฐานในการสร้างรูปแบบเหล่านั้นหรือไม่ ตัวอย่างเช่นฉันคิดเกี่ยวกับการสร้างพวกเขาด้วยระบบเสียงสเตอริโอ wav ในโปรแกรมแก้ไขเสียงและอ่านไฟล์ wav ในรหัสของฉันเพื่อแปลงให้เป็นความล่าช้าและความเร็ว สิ่งนี้จะเกิดขึ้นได้อย่างไรในอุตสาหกรรมเกม

1
วิธีการใช้กลไกของความเครียด / ความเครียดในภูมิประเทศ voxel?
ฉันอยู่ในขั้นตอนการพัฒนาโลกที่เหมือน Minecraft ซึ่งภูมิประเทศแบ่งออกเป็น voxels อย่างไรก็ตามฉันยังต้องการให้การกำหนดค่าของภูมิประเทศที่ไม่เสถียรลดลงอย่างไม่แน่นอน ยกตัวอย่างเช่นแขวนที่หนักเกินไปจะแตกหักและทำลายปิดที่ชุ 'ความเครียดสูง'ราวกับจะก่อเสาที่มีฐานการกัดเซาะไม่สมมาตร ฉันกำลังคิดที่จะเพิ่มฟิลด์ 'stress vector' ลงในแต่ละ voxel ในภูมิประเทศและทำสิ่งต่อไปนี้ (pseudocode): foreach voxel in terrain foreach neighbor in voxel.neighbor_voxels() if magnitude(voxel.stress - neighbor.stress) > stressThreshold detach_voxels(voxel, neighbor) แต่ปัญหาคือฉันไม่รู้ว่าจะคำนวณความเค้นเหล่านี้อย่างไร มีอัลกอริธึมที่ใช้ FEA แบบพิเศษสำหรับการแยกย่อยด้วย voxel ที่ฉันสามารถใช้ในการคำนวณความเค้นบนพื้นฐานของต่อ voxel หรือไม่? หรือฉันกำลังเข้าใกล้สิ่งนี้ผิดทั้งหมดและมีวิธีอื่นที่จะทำเช่นนี้?

3
Unity coroutine กับเธรด
ความแตกต่างระหว่าง coroutine และเธรดคืออะไร? มีข้อดีของการใช้อย่างใดอย่างหนึ่งมากกว่าอื่น ๆ ?
13 unity 

3
เครือข่าย P2P ซ่อนตำแหน่ง?
ฉันทำงานกับสถาปัตยกรรม P2P เพื่อการเล่นเกมที่ปลอดภัยและฉันได้แบ่งปัญหาออกเป็นห้าปัญหาย่อย: การดัดแปลงสถานะของเกมที่ส่งมาอย่างผิดกฎหมาย วางขี้โกงอย่างแม่นยำ ยอมรับสถานะเกม หลีกเลี่ยงการโกง "มองไปข้างหน้า" ซ่อนข้อมูลที่ละเอียดอ่อนจากฝ่ายตรงข้าม สี่คนแรกที่ฉันได้รับการแก้ไขทั้งหมดสวยมาก แต่มันเป็นคนสุดท้ายที่ฉันมีปัญหากับ ก่อนที่ฉันจะลงรายละเอียดฉันแค่อยากถามว่ามีอะไรที่ฉันไม่ได้ทำในรายการทำเครือข่าย p2p "cheat proof" หรือไม่ ฉันไม่สนใจกลโกงเช่นการใช้ aimbots ฉันแค่สนใจที่จะทำให้เครือข่าย p2p ปลอดภัยเหมือนเซิร์ฟเวอร์ส่วนกลาง ดังนั้นในความพยายามของฉันจนถึงการซ่อนข้อมูลที่ละเอียดอ่อนฉันได้มุ่งเน้นไปที่ตำแหน่งของผู้เล่นในเกมที่ไม่ทราบตำแหน่งของฝ่ายตรงข้ามเสมอ ปัญหาก็จะกลายเป็นวิธีการตรวจสอบว่าคุณควรส่งตำแหน่งให้คู่ต่อสู้ของคุณโดยไม่ทราบตำแหน่งของฝ่ายตรงข้าม ฉันได้ตัดวิธีการเช่นฝ่ายตรงข้ามที่ส่งตำแหน่งเท็จหลายตำแหน่งเพื่อเปรียบเทียบคุณเช่นกันเนื่องจากฝ่ายตรงข้ามของคุณสามารถใช้ระบบดังกล่าวได้อย่างง่ายดายเนื่องจากเขาจะได้ตำแหน่งของคุณหากตำแหน่งเท็จปรากฏขึ้นจากตำแหน่งของคุณ วิธีที่ฉันมุ่งเน้นไปที่สิ่งที่คุณได้รับ "สนามภาพ" จากฝ่ายตรงข้ามของคุณและสามารถกำหนดได้ว่าคุณควรส่งตำแหน่งของคุณหรือไม่ อย่างไรก็ตามนี่เป็นปัญหาในเกมเช่น League of Legends ซึ่งข้อมูลการมองเห็นของฝ่ายตรงข้ามเป็นข้อมูลที่มีความอ่อนไหวสูง ฉันได้พยายามแก้ปัญหานี้โดยเปลี่ยนฟิลด์ภาพโดยใช้เมทริกซ์เอกพจน์หมายความว่าคุณไม่สามารถเปลี่ยนจาก Visual Field ที่แปลงแล้วกลับไปเป็นเวอร์ชันดั้งเดิมได้ แต่เนื่องจากเป็นการแปลงเชิงเส้นคุณจึงสามารถทราบได้ว่าตำแหน่งของคุณอยู่ภายในหรือไม่ เขตข้อมูลภาพหรือไม่ อย่างไรก็ตามนี่ไม่ได้ผลอย่างสมบูรณ์สนามภาพที่แน่นอนไม่สามารถเรียกคืนได้หลังจากการเปลี่ยนแปลง แต่ข้อมูลเกี่ยวกับ "ความลาด" ในเขตข้อมูลภาพ (เขตข้อมูลภาพถูกสร้างขึ้นโดยหลายบรรทัดและสามารถกำหนดความลาดชันของแต่ละบรรทัด) คืนค่าและสิ่งนี้สามารถใช้เพื่อสร้างฟิลด์ภาพต้นฉบับที่ค่อนข้างใหม่ ในสาระสำคัญสิ่งที่ฉันต้องการก็คือฟังก์ชั่นที่สามารถตัดสินได้ว่าตำแหน่งนั้นเป็น "ที่มองเห็นได้" หรือไม่และการสร้างฟังก์ชั่น / ฟิลด์ภาพขึ้นมาใหม่นั้นจำเป็นต้องมีการคำนวณแบบเรียกร้อง เกมในการดำเนินการ …

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