การพัฒนาเกม

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

2
ฉันจะฉายจุด 3D ลงบนเส้น 3D ได้อย่างไร
สมมุติว่าฉันมีเส้นตรงที่กำหนดโดยสองจุดAและBทั้งสองอยู่ในรูปแบบ(x, y, z)ทั้งในรูปแบบจุดเหล่านี้แสดงบรรทัดในพื้นที่ 3 มิติ ฉันยังมีประเด็น Pกำหนดในรูปแบบเดียวกันนั่นไม่ได้อยู่ในบรรทัด ฉันจะคำนวณเส้นโครงของจุดนั้นบนเส้นตรงได้อย่างไร ฉันตระหนักถึงวิธีการทำเช่นนี้ในแบบ 2D แต่ 3D ดูเหมือนว่าจะมี bugger ทรัพยากรทั้งหมดอยู่ในนั้น

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

9
วิธีทำเกมให้สำเร็จ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปัญหาของฉันคือเมื่อใดก็ตามที่ฉันเริ่มเขียนโปรแกรมโคลนเกม (สำหรับฝึกซ้อม) หรือเกมของตัวเองหรือปัญหาอื่น ๆ ฉันหยุดที่ใดที่หนึ่งในระหว่างการพัฒนาเพราะฉันหมดความสนใจ คุณติดตามความสนใจในการพัฒนาเกมหรือพัฒนาโดยทั่วไปอย่างไร?

6
ฟังก์ชั่นลดเสียงรบกวน 3 มิติใช้เพื่อสร้างภูมิประเทศอย่างไร
ฉันสามารถพันหัวของฉันไปรอบ ๆ โดยใช้ฟังก์ชั่นเสียงรบกวน 2d perlin เพื่อสร้างมูลค่าความสูง แต่ฉันไม่เข้าใจว่าทำไมฟังก์ชั่นเสียงรบกวน 3d perlin จะถูกนำมาใช้ ในบล็อกของ Notch http://notch.tumblr.com/post/3746989361/terrain-generation-part-1เขากล่าวถึงการใช้ฟังก์ชั่นลดเสียงรบกวน 3 มิติสำหรับการสร้างภูมิประเทศบน Minecraft ไม่มีใครรู้วิธีการที่จะทำและทำไมมันจะมีประโยชน์หรือไม่ หากคุณผ่านค่า x, y, และ z นั่นไม่ได้หมายความว่าคุณมีความสูงอยู่แล้ว?

4
Python 3D engine ที่ดีที่สุดคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการเอ็นจิ้น Python 3d แบบตรงซึ่งหาได้ง่ายสำหรับ linux และใช้งานง่าย Soya3D ล้มเหลวสำหรับฉันเนื่องจากการขาดเอกสาร ฉันควรโหลดโมเดล 3 มิติทั่วไปได้โดยไม่มีปัญหา
20 3d  python 

7
สำหรับเกม 2D มีเหตุผลใดที่จะไม่ใช้ 3D API เช่น Direct3D หรือ OpenGL?
ฉันออกจากงานอดิเรกพัฒนาเกมมาระยะหนึ่งแล้ว ย้อนกลับไปเมื่อฉันทำมันคนส่วนใหญ่ใช้ Direct Draw เพื่อสร้างเกม 2D เมื่อถึงเวลาที่ผู้คนหยุดพูดว่า OpenGL หรือ Direct3D ด้วยการฉายภาพฉากฉากเป็นวิธีที่จะไป ฉันกำลังคิดที่จะกลับไปสู่การสร้างเกม 2 มิติโดยเฉพาะบนโทรศัพท์มือถือ แต่อาจเป็นบนแพลตฟอร์ม XNA เช่นกัน เพื่อให้บางสิ่งบางอย่างโดยใช้ OpenGL ฉันมีเส้นโค้งการเรียนรู้ขนาดเล็ก (ที่หวัง) เพื่อทำให้ฉันคุ้นเคยกับการพัฒนา 3D มีเหตุผลใดที่จะข้ามไปและทำงานกับเฟรมเวิร์ก 2D ที่ฉันเพิ่งมีบัฟเฟอร์เฟรมความกว้าง x ความสูงฉันต้องเติมพิกเซล?
20 2d  opengl  directx 

5
ฉันมีช่างเกม“ อะมีบา” มีความคิดเกี่ยวกับวิธีการใช้งานหรือไม่
นอกเหนือจากtetris clone , ปืนจากบนลงล่าง 2D เส็งเคร็งและบางสิ่งที่ยุ่งเหยิงไปกับสิ่งต่าง ๆ เช่น Unity และ Flixel ฉันรู้ว่าฉันยังไม่ได้ทำเกมเดี่ยวที่ขัดเงาระฆังและเสียงนกหวีด ฉันต้องการเปลี่ยนสิ่งนี้และฉันมีความคิดสำหรับโครงการต่อไปของฉัน ความคิดคือคุณเป็นอะมีบา อะมีบามีแกนคล้ายตาเหล่านี้ (หรืออะไรทำนองนั้นฉันไม่รู้ชีววิทยา) และคุณมีสองส่วน คุณสามารถควบคุมหนึ่งWASDและอื่น ๆ IJKLที่มี จะต้องมีรัศมีของสิ่งต่างๆ รอบ ๆ แต่ละแกน: และพื้นที่ของอะมีบาจะต้องคงที่ ดังนั้นหากคุณย้ายแกนกลางในทิศทางเดียวคุณจะเพิ่มพื้นที่ของอะมีบา แต่การเพิ่มขึ้นนั้นถูกชดเชยโดยการลดลงที่อื่น: เอาเป็นว่าฉันอยากจะใช้ช่างตกปลา คุณดูดซับสิ่งต่าง ๆ โดยการกลืนพวกมันเหมือนเจ้านาย อาจเป็นแกนเสริมหรือเข็มที่โผล่ออกมาและทำให้สิ่งของภายในทั้งหมดของคุณเริ่มพุ่งออกมา: แต่นี่คือปัญหา: ฉันไม่รู้จะทำอย่างไร อย่างไรก็ตามฉันต้องการความคิดบางอย่างเกี่ยวกับวิธีการใช้งาน ฉันควรสำรวจห้องสมุดฟิสิกส์เช่น Box2D หรือไม่ หรืออาจเป็นสิ่งที่เกี่ยวข้องกับฟิสิกส์ของเหลว? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก PS รู้สึกฟรีที่จะขโมยความคิดนี้ ฉันมีความคิดมากมาย ถ้าคุณทำโปรดบอกฉันว่าคุณทำมันได้อย่างไรเพื่อที่ฉันจะได้ลองเอง

2
โครงร่างสีขาวแปลก ๆ รอบตัวแบบ
ฉันกำลังทำงานกับเกมใน XNA 4 และฉันเพิ่งเปลี่ยนไปใช้การแรเงาที่รอการตัดบัญชีตามคู่มือนี้ มีโครงร่างสีขาวแปลก ๆ ปรากฏขึ้นในแบบจำลองของฉันในตอนนี้และฉันไม่แน่ใจว่าเกิดจากอะไร ฉันคิดว่าบางทีการขาดความแม่นยำของเป้าหมายการเรนเดอร์ปกติหรือการเรนเดอร์เป้าหมายแบบลึก แต่การเพิ่มพวกมันเป็น 64 บิต (Rgba64) แทนที่จะเป็น 32 (สี) ไม่ได้ช่วยอะไรเลย ฉันก็คิดว่ามันอาจจะมีปัญหากับการคำนวณแบบ specular ดังนั้นฉันจึงลองตั้ง specular เป็น 0 แต่นั่นก็ไม่ได้ช่วยเช่นกัน การดีบักพิกเซลใน PIX แสดงว่าค่าการกระจายกำลังถูกคำนวณเป็นสีขาวเกือบสำหรับพิกเซลนั้น ความคิดใด ๆ ฉันรวมรูปภาพของปัญหาไว้ด้านล่างแล้วจะเห็นได้ง่ายขนาดเต็ม Pixel Shader: float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 { input.ScreenPosition.xy /= input.ScreenPosition.w; float2 texCoord = 0.5f * (float2(input.ScreenPosition.x, -input.ScreenPosition.y) + 1) - …
19 xna  hlsl 

5
ผู้ใช้ iOS ใช้ปุ่ม Facebook และ Twitter ในเกมหรือไม่
ไม่มีใครมีข้อมูลเชิงลึกหรือประสบการณ์ใด ๆ ในความสำเร็จของการวางปุ่ม "แชร์" บน Facebook หรือ Twitter ในเกม iOS หรือไม่? ตัวอย่างเช่นเมื่อผู้ใช้ได้รับคะแนนสูงนำเสนอพวกเขาด้วยตัวเลือกในการแบ่งปันคะแนนของพวกเขาผ่านทาง Facebook หรือ Twitter การจองของฉัน / อคติกับการรวมปุ่ม Facebook หรือ Twitter ในเกมของฉันคือ: ความไม่ไว้วางใจของปุ่มที่โพสต์อัตโนมัติโดยไม่ให้โอกาสหนึ่งในการจัดรูปแบบข้อความด้วยตัวคุณเอง ฉันไม่ได้ใช้ตัวเองเพราะฉันมักจะสร้างทวีตหรือโพสต์บนผนัง Facebook ด้วยตัวเอง ในทางกลับกันประโยชน์ที่อาจเกิดขึ้นจากปุ่มดังกล่าวสามารถเห็นได้อย่างชัดเจน คำถามคือ: ผู้ใช้ iOS ใช้ปุ่มดังกล่าวจริงหรือไม่?

1
เกิดอะไรขึ้นกับ coroutine respawn ของฉัน?
ฉันกำลังสร้างเกม 2D Platformer ซึ่งหากผู้เล่นตกลงจากฐาน / พื้นดินฉันต้องการให้ผู้เล่นเกิดที่จุดตรวจที่ใกล้ที่สุด อย่างไรก็ตามฉันต้องการให้มีความล่าช้าระหว่างผู้เล่นล้มลงจากพื้นและเกิดใหม่ นี่คือส่วนของรหัสของฉันเพื่อให้บรรลุเป้าหมายนี้: private void OnTriggerEnter2D(Collider2D collision) { Debug.Log(collision.tag); if (collision.tag.Equals("Kill")) { StartCoroutine("Respawn"); } else if(collision.tag.Equals("Checkpoint")) { Animator flag = collision.GetComponent<Animator>(); if (!flag.GetBool("hasCrossed")) { flagCounter++; flag.SetBool("hasCrossed", true); checkpoint = collision.gameObject.transform.position; } } } IEnumerator Respawn() { yield return new WaitForSeconds(respawnDelay); transform.position = checkpoint; } วิธีนี้ใช้งานได้ดีสำหรับการเกิดใหม่ล่าช้าประมาณ …
19 unity  coroutines 

1
ฉันจะแสดงเกม 3 มิติของฉันในรูปแบบ ASCII ได้อย่างไร
ฉันพยายามสร้างไข่อีสเตอร์สำหรับเกมสามมิติใน Unity3D ฉันต้องการทำให้เกมของฉันกลายเป็น ASCII ได้ไม่นาน ความคิดแรกของฉันคือการสร้าง shader ให้ทำ แต่ฉันไม่แน่ใจว่ามันเป็นวิธีที่ถูกต้องหรือไม่
19 unity  shaders 

5
มีคำอื่น ๆ สำหรับการเล่นเกมย้อนกลับหรือไม่?
Gamificationเป็นกระบวนการของการใช้กลไกเกมกับบริบทที่ไม่ใช่เกม Reverse gamificationเป็นกระบวนการของการใช้บริบทที่ไม่ใช่เกมหรือกลไกที่ไม่ใช่เกมในเกม ตัวอย่างเช่น: Gamification - คุณสามารถเรียนรู้รหัสการจราจรพร้อมลีดเดอร์บอร์ดป้าย ฯลฯ ย้อนกลับ gamification - คุณสามารถสร้างเกม (เช่น gta) เพื่อสอนรหัสการจราจรภายใน มีคำใดที่ดีกว่าสำหรับเรื่องนี้หรือไม่?

3
ทำไมการแก้ไขหน่วยความจำของลูกค้าใน MMO บางประเภททำให้พวกเขาโกง?
ทำไมการแก้ไขหน่วยความจำของไคลเอนต์เกมจึงใช้งานได้? ทำไมเครื่องมือ "การป้องกันการแฮ็ก" จำนวนมากจึงมากับลูกค้า ถ้าฉันออกแบบเกมไคลเอนต์เซิร์ฟเวอร์ทุกอย่างจะเกิดขึ้นที่เซิร์ฟเวอร์ (การจำลองโลกเกม) และลูกค้าจะเป็นเพียงผู้บริโภคที่ได้รับการอัพเดทสถานะของส่วนหนึ่งของโลกที่อยู่ใกล้ตัวละครส่งข้อมูลบางอย่างเช่น คำสั่ง keystrokes หรือ move / action บางทีฉันอาจจะพลาดอะไรบางอย่างที่นี่ แต่ด้วยการออกแบบนั้นการแฮ็กอย่างเช่นการเพิ่ม STR ของฉันด้วย 200 ในหน่วยความจำไคลเอนต์ (ถ้ามีค่าอยู่เลย) ก็จะไม่มีผล คำอธิบายเดียวที่ฉันคิดได้ก็คือเกมที่การแก้ไขหน่วยความจำให้ส่วนต่างๆของการจำลองทำงานในไคลเอนต์และเซิร์ฟเวอร์จากนั้นก็ซิงโครไนซ์ไคลเอนต์ทั้งหมดเป็นระยะ ฉันสามารถเข้าใจการออกแบบสำหรับเกม Real Time Strategy ที่มีจำนวนผู้เล่นที่แน่นอนเมื่อมีการกำหนดค่าการแข่งขัน แต่ทำไมใน MMORPG มันเป็นกลยุทธ์ในการลดโหลดเซิร์ฟเวอร์หรือไม่

4
ฉันจะใช้การซ่อนหลายผู้เล่นด้วยภาพที่ต่อต้านการแฮ็กฝั่งไคลเอ็นต์ได้อย่างไร
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันคิดว่าจะใช้การซ่อนตัวในเกมแบบผู้เล่นหลายคน เป็นเกมสไตล์ MOBA ดังนั้นให้คิดถึง League of Legends (LoL) และ Heroes of the Storm (HotS) ไคลเอนต์หลายคนเชื่อมต่อกับเซิร์ฟเวอร์เดียวซึ่งออกอากาศสถานะเกมกับลูกค้าทั้งหมด ลูกค้าส่งข้อมูลอินพุตไปยังเซิร์ฟเวอร์ซึ่งอาจปฏิเสธเมื่อพบคำสั่งที่ไม่ถูกต้องจึงทำให้การโกงเป็นไปไม่ได้ (ในทางทฤษฎี) ตอนนี้ฉันพูดถึงเกมเหล่านี้อย่างตั้งใจเพราะทั้งคู่ใช้การลักลอบต่างกัน LoL มีการลักลอบที่มีสองสถานะที่เป็นไปได้: คุณสามารถมองเห็นได้อย่างสมบูรณ์หรือมองไม่เห็นอย่างสมบูรณ์ ในทางกลับกัน HotS ใช้การลักลอบในลักษณะที่คุณสามารถบอกได้โดยระยับในอากาศ: ฉันคิดว่านี่เป็นกลไกที่เรียบร้อยเพราะมันส่งเสริม / ให้รางวัลกับสภาพแวดล้อมของคุณ อย่างไรก็ตามนี่เป็นเกมที่มีผู้เล่นหลายคนทำให้ฉันรู้ว่านี่อาจพิสูจน์ได้ว่าเป็นประโยชน์อย่างง่ายดาย เมื่อคุณใช้การซ่อนตัวด้วยวิธี 'LoL' คุณสามารถหยุดส่งพิกัดผู้เล่นไปยังไคลเอนต์อื่น เมื่อตัวละครของผู้เล่นแตกตัวลงเซิร์ฟเวอร์จะสามารถถ่ายทอดตำแหน่งได้อีกครั้ง อย่างไรก็ตามด้วยโมเดล HotS สามารถเห็นระยับในอากาศที่ตัวละครเคลื่อนไหว ซึ่งหมายความว่าเซิร์ฟเวอร์จะต้องส่งตำแหน่งของผู้เล่นไปยังไคลเอนต์อื่น ซึ่งหมายความว่าผู้เล่นที่เปลี่ยนพื้นผิวหรือรูปแบบหรือแม้แต่รหัสเกมเองก็สามารถทำให้กลไกเสื้อคลุมไร้ประโยชน์ได้ นี่คือกระทู้ในบอร์ด HotS เกี่ยวกับเรื่องนี้ คำถามของฉันคือไม่ว่าจะมีวิธีใดบ้างที่จะใช้การปิดบัง (ด้วย 'ชิมเมอร์', à la HotS) โดยไม่มีปัญหาที่ผู้เล่นมีฝีมือสามารถแก้ไขเกม …

7
ฉันจะตรวจจับผู้เล่นที่ถูกบดขยี้ในแพลตฟอร์ม 2 มิติได้อย่างไร
ฉันกำลังตรวจสอบการชนกันของตัวละคร platformer ดังที่แสดงใน # 1 จุดสีแดงคือพิกเซลที่ถูกเลือกและเส้นสีเทาแสดงถึงแกนที่เกี่ยวข้อง ฉันชอบผลลัพธ์ที่ฉันได้รับจากการตรวจสอบการชนกันด้วยวิธีนี้ (เทียบกับพูดกล่อง จำกัด ) ทุกอย่างทำงานตรงตามที่ฉันต้องการยกเว้นหนึ่งปัญหา: การตรวจจับความสนใจ ในภาพต่อไปนี้กล่องสีฟ้าอ่อนหมายถึงพื้นดินกล่องสีส้มเป็นวัตถุและลูกศรแสดงทิศทางการเคลื่อนไหว วิธีง่ายๆในการตรวจจับเมื่อผู้เล่นถูกบดขยี้คือการดูว่าจุดปะทะที่อยู่ฝั่งตรงข้ามกำลังกระตุ้น หากพวกเขาเป็นผู้เล่นจะถูกบดขยี้ ใน # 2 คุณสามารถเห็นสถานการณ์ความสนใจปกติ ผู้เล่นถูกต่อสายดินและจุดชนบนสุดจะตัดกับวัตถุที่ตกลงมา สิ่งนี้ทำให้เกิดความสนใจ # 3, 4 และ 5 นำเสนอสถานการณ์ที่เป็นปัญหา ใน # 3 ผู้เล่นกำลังเคลื่อนไปทางวัตถุซึ่งกำลังขยับขึ้น จุดปะทะด้านขวากำลังชนวัตถุทำให้เกิดการชนและหยุดเครื่องเล่น ตอนนี้ถ้าวัตถุยังคงเลื่อนขึ้นและผู้เล่นยังคงเลื่อนไปทางขวา (ดังที่แสดงใน # 4) วัตถุจะล้างจุดปะทะด้านขวาของผู้เล่นและผู้เล่นจะเลื่อนไปทางขวา แต่ตอนนี้เมื่อทำเช่นนั้นแล้ววัตถุกำลังตัดกันจุดปะทะด้านบนทำให้เกิดรอยย่นในแนวตั้งที่ไม่ต้องการ สถานการณ์ที่คล้ายกันจะแสดงใน # 5 วัตถุสองชิ้นนั้นอยู่ห่างกันมากพอที่จุดปะทะด้านล่างจะชัดเจนช่วยให้ผู้เล่นตกลงมา แต่ไม่ถึงขนาดยอมให้จุดปะทะด้านข้างนั้นชัดเจนทำให้เกิดแนวนอนที่ไม่ต้องการ ฉันคิดวิธีแก้ปัญหา แต่ก็ไม่มีอะไรที่ฉันคิดขึ้นมาทำงานได้ดีเป็นพิเศษดังนั้นฉันจึงสงสัยว่ามีใครมีความคิดหรือความเข้าใจในวิธีการแก้ปัญหาเหล่านี้หรือไม่ เพื่อกำจัดความสับสนจุดปะทะสีแดงจะอยู่ในสไปรต์และมีการใช้เส้นสีเทาเพื่อแสดงถึงแกนที่เกี่ยวข้องสำหรับแต่ละจุดปะทะกัน ตัวอย่างเช่นถ้าผีสางของตัวละครเป็นสี่เหลี่ยมสีเขียวง่าย ๆ จุดการชนจะมีลักษณะดังนี้:

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