การพัฒนาเกม

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

3
การจำลองการทอยลูกเต๋าจำนวนมากโดยไม่ต้องวนซ้ำอย่างแม่นยำหรือไม่
ตกลงดังนั้นหากเกมของคุณหมุนลูกเต๋าจำนวนมากคุณสามารถโทรหาตัวสร้างตัวเลขสุ่มในลูป แต่สำหรับลูกเต๋าชุดใดที่มีการกลิ้งบ่อยครั้งพอคุณจะได้เส้นโค้งการกระจาย / ฮิสโตแกรม ดังนั้นคำถามของฉันคือมีการคำนวณอย่างง่ายดีฉันสามารถเรียกใช้ที่จะให้ฉันหมายเลขที่เหมาะกับการกระจายนั้น เช่น 2D6 - คะแนน -% ความน่าจะเป็น 2 - 2.77% 3 - 5.55% 4 - 8.33% 5 - 11.11% 6 - 13.88% 7 - 16.66% 8 - 13.88% 9 - 11.11% 10 - 8.33% 11 - 5.55% 12 - 2.77% ดังนั้นการรู้ข้างต้นคุณสามารถหมุน d100 เดี่ยวและหาค่า 2D6 ที่ถูกต้องได้ แต่เมื่อเราเริ่มต้นด้วย …

4
เซิร์ฟเวอร์ซ็อกเก็ตและเซิร์ฟเวอร์เกมควรแยกกระบวนการหรือไม่
สมมติว่าเกมไคลเอนต์ / เซิร์ฟเวอร์มาตรฐานที่เรียบง่าย สำหรับเซิร์ฟเวอร์มันคุ้มค่าหรือไม่ที่จะมีกระบวนการแยกต่างหากที่รับฟังการเชื่อมต่อและข้อความจากไคลเอนต์และส่งข้อมูลผ่านซ็อกเก็ตท้องถิ่นหรือ stdin ไปยังกระบวนการอื่นที่รันเซิร์ฟเวอร์เกมจริง อีกทางเลือกหนึ่งคือให้ทำทั้งสองอย่างในขั้นตอนเดียว การจัดคิวข้อความขาเข้าและดำเนินการตามลำดับที่ถูกต้องไม่ควรมีปัญหาการหยุดชะงัก ฉันสงสัยว่าทรัพยากรพิเศษที่จะแยก "กิจกรรม" สองรายการนั้นคุ้มค่าหรือไม่ ฉันควรตัดสินใจอย่างไร ฉันต้องการได้ยินข้อดี / ข้อเสียใด ๆ

1
อัลกอริทึม Simple Stupid Funnel ทำงานอย่างไร
การทำงานกับอัลกอริทึมช่องทางที่แสดงใน Digesting Duckฉันไม่แน่ใจว่าการตรวจจับของช่องทางทำงานอย่างไร บางคนสามารถอธิบายวิธีการให้ฉันอย่างชัดเจนหรือแนะนำวิธีการอื่นในการตรวจหาช่องทางและหากด้านข้างของช่องทางซ้อนทับกัน

4
ฉันจะติดตามตำแหน่งเรียลไทม์ของผู้เล่นใน MMO ได้อย่างไร
คุณติดตามตำแหน่งของผู้เล่นใน MMORPG ได้อย่างไร? ฉันอ่านว่าคุณสามารถใช้ฐานข้อมูลหรือคุณสามารถเก็บพิกัดในไฟล์ ฉันลองใช้ฐานข้อมูล แต่มันก็ช้า ไฟล์จะถูกใช้เพื่อติดตามตำแหน่งของผู้เล่นได้อย่างไร?

3
การสร้างขั้นตอนของระบบดาวเคราะห์กึ่งถูกต้อง
ดังนั้นมีแหล่งข้อมูลมากมายที่คุณสามารถค้นหาผ่าน Google หรือใช้การค้นหาที่นี่เกี่ยวกับวิธีการสร้างกาแลคซีทั้งหมด แต่ฉันไม่สามารถหาแหล่งข้อมูลที่ดีเกี่ยวกับวิธีสร้างระบบดาวเคราะห์ที่เป็นไปตามเกณฑ์เหล่านี้: ระบบไม่จำเป็นต้องเป็นการจำลองวงโคจรที่แม่นยำ แต่ควรอยู่ใกล้กับวงโคจรที่น่าเชื่อถือ ฉันไม่สนใจเกี่ยวกับการจำลองใด ๆ ที่สนใจว่าระบบจะมองอย่างไรใน 200 พันปีปีวงโคจรอาจจะแข็งกระด้าง ปัญหาหลักที่ฉันเผชิญคือวิธีการสร้างระบบแบบสุ่มที่น่าจะเป็นไปได้ สิ่งนี้จะน่าสนใจเป็นพิเศษเมื่อคุณมีระบบที่มีดาวคู่ เพียงแค่การสร้างวงโคจรโดยการสุ่มจะไม่สร้างระบบที่น่าเชื่อถือคุณจะพบกับวงโคจรที่ไม่ทำงาน ใช่ฉันตระหนักถึงปัญหาของร่างกาย N :) แต่นี่ไม่ได้ช่วยฉันอย่างน้อยฉันก็คิดอย่างนั้นเพื่อแก้ปัญหาการสร้างระบบที่น่าเชื่อถือได้? ฉันคิดว่าคุณสามารถสุ่มวางไข่ดาวเคราะห์บนวงโคจรของพวกเขาและให้มวลกับพวกมันแล้วใช้คณิตศาสตร์ N-body เพื่อคำนวณว่าพวกมันถูกต้องหรือไม่ถ้าไม่เริ่มต้นและสุ่มสร้างวงโคจรใหม่จนกว่าคุณจะได้สิ่งที่ตรงกัน แต่นี่จะไม่มีประสิทธิภาพมาก

5
ทำไมต้องรวมกันมากกว่าการสะสม?
ฉันเริ่มเรียนรู้วิธีการทำฟิสิกส์แบบ DIY และฉันมีคำถามเกี่ยวกับการนำการบูรณาการมาใช้ในระดับพื้นฐานที่สุด (เช่นนี่ไม่ใช่คำถามของออยเลอร์กับ RK4) เกือบทุกตัวอย่างที่ฉันเจอมีintegrate()ฟังก์ชั่นบางอย่างที่ได้รับการประทับเวลาตั้งแต่การอัปเดตครั้งล่าสุดและอัปเดตการเร่งความเร็ว (และ / หรือความเร็วและ / หรือตำแหน่ง) ตั้งแต่การอัปเดตครั้งล่าสุด ในรูปแบบที่ง่ายที่สุด: position += velocity * deltaTime แต่ผมไม่เข้าใจว่าทำไมมันสะสมเช่นนี้เมื่อมันสามารถได้อย่างง่ายดายเพียงได้รับอากาศโดยเปลี่ยนฟังก์ชั่น ตัวอย่างเช่น: getPosition = makeNewFunction()ซึ่งสามารถคืนสิ่งที่มีลายเซ็นTime -> Positionและผลงานภายในของฟังก์ชันนั้นถูกสร้างขึ้นผ่านสูตรทางคณิตศาสตร์ที่เหมาะสม ด้วยวิธีนี้ไม่มีการสะสม ... เมื่อใดก็ตามที่ต้องได้รับตำแหน่งมันจะเรียกฟังก์ชันนั้นตามเวลาปัจจุบัน การทำความเข้าใจเกี่ยวกับมือใหม่ของฉันคือการที่จะหลีกเลี่ยงข้อผิดพลาดที่เกิดจากการสะสม ... ดังนั้นทำไมมันไม่ทำงานฉันจะพลาดอะไร (fwiw ฉันได้รวบรวมหลักฐานพื้นฐานของแนวคิดของความคิดนี้ - แม้ว่ามันจะทดสอบสิ่งอื่น ๆ ในเวลาเดียวกันดังนั้นมันจึงไม่ใช่ตัวอย่างที่สะอาดที่สุด: https://github.com/dakom/ball-bounce-frp ) แก้ไข 1:ดังที่กล่าวไว้ในความคิดเห็นอาจเป็นสิ่งสำคัญที่ชี้ให้เห็นว่าฉันยังไม่ได้เรียนรู้เกี่ยวกับการเปลี่ยนการเร่งความเร็วหรือการจัดการกับกระตุกและสิ่งอื่น ๆ ที่ต้องมีการรวมลำดับสูงกว่าเร่งความเร็วคงที่ แก้ไข 2:นี่คือตัวอย่างโค้ดพื้นฐานของแนวคิดและไวยากรณ์ javascript หลอก - โปรดทราบว่าgetKinematicPositionมีการใช้งานบางส่วนดังนั้นจึงส่งคืนฟังก์ชันใหม่ในเวลาเพียง -> …

1
การสุ่มตัวอย่างหลายครั้งมีประโยชน์หรือไม่
ดังนั้นฉันจึงเจอเว็บไซต์นี้และคุณสามารถเห็นบรรทัดเหล่านี้ในวรรคแรกและสอง: สำหรับเอฟเฟกต์ที่หยาบ แต่ง่ายให้วาดส่วนที่สว่างของฉาก (เช่นแหล่งกำเนิดแสง) ลงใน FBO จากนั้น ตัวอย่างด้วย GL_LINEAR minification หลาย ๆ ครั้งหลายต่อหลายครั้ง สำหรับการเรนเดอร์ขั้นสุดท้ายเพียงแค่รวมฉากดั้งเดิมเข้ากับ FBO ที่ลดขนาดลง ในตัวอย่างต่อไปฉากเดิมคือ 128 x 128 และdownsampled 3 ครั้ง สิ่งนี้ต้องมีวัตถุเฟรม 4 ตัวตัว ฉากดั้งเดิมจะแสดงที่มุมบนซ้ายและการเรนเดอร์สุดท้ายที่มุมขวาบน มีเหตุผลใดบ้างที่ฉันควรจะลดตัวอย่างหลาย ๆ ครั้ง (128 -> 64 -> 32 -> 16) แทนที่จะเป็นตัวอย่างหนึ่งครั้ง (128 -> 16) หากคุณเลื่อนลงมามากขึ้นพวกเขาจะลดลงอย่างเช่น 9 ครั้ง (128 -> ... -> 16 -> …
14 opengl  graphics  bloom 

1
ฉันจะใช้ Kinect เป็นไมโครโฟนใน Linux ได้อย่างไร
ฉันใช้อูบุนตู 14.04 LTS และกล้อง Kinect Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensorมีประเภท ฉันสามารถเข้าถึงกล้องของ Kinect ได้จากโปรแกรม Linux ที่ฉันเขียน แต่ฉันต้องการใช้ไมโครโฟนเพื่อการสื่อสารด้วยเสียง ฉันจะทำสิ่งนั้นได้อย่างไร
14 linux  kinect  voice 

2
หน้าจอการโหลดที่ราบรื่นระหว่างฉาก
ฉันสร้างหน้าจอการโหลดเพื่อแสดงภาพเคลื่อนไหวขณะโหลดฉากถัดไป ฉันโหลดฉากถัดไปแบบอะซิงโครนัสด้วย: yield return SceneManager.LoadSceneAsync(scene,LoadSceneMode.Additive); และยังตั้งApplication.backgroundLoadingPriority = ThreadPriority.Low;ให้ แต่พฤติกรรมยังคงเหมือนเดิมกับการโหลดในระดับปกติ ฉันพลาดอะไรไปรึเปล่า? พฤติกรรมที่คาดหวัง: ระดับทางออกและจางหายไป หน้าจอกำลังโหลดปรากฏขึ้น เมื่อโหลดเสร็จแล้วหน้าจอการโหลดจะจางหายไป จางหายไปในฉากต่อไป เกิดอะไรขึ้น: ระดับทางออกและจางหายไป หน้าจอโหลดปรากฏขึ้นเป็นน้ำแข็ง ทันใดนั้นฉากใหม่ก็จางหายไป เมื่อโหลดเริ่มเกมจะหยุดเช่นเดียวกับโหลดฉากปกติ ฉันอ่านว่าคุณต้องตั้งค่าallowSceneActivation = falseเพื่อให้คุณสามารถจางหน้าจอการโหลดออกไปแล้วตั้งtrueให้เป็นอันหนึ่งอันเดียวกันให้เสร็จสิ้นการโหลด แต่การทำเช่นนี้จะทำให้เกมของฉันค้างเหมือนกับที่การดำเนินการ async ไม่เคยโหลดเสร็จ

4
การใช้ทรัพย์สินที่มีลิขสิทธิ์เพื่อการศึกษาเป็นเรื่องดีหรือไม่?
เพื่อนและฉันต้องการสร้างแบบจำลองการต่อสู้ของโปเกมอนในคลาสพัฒนามือถือของเราเป็นโครงการสุดท้ายของเรา แต่มีความกังวลว่าจะอนุญาตภายใต้ "การใช้งานที่เหมาะสม" เพื่อการศึกษาหรือไม่ เราไม่มีแผนที่จะทำอะไรกับเกมหลังเลิกเรียนและการนำเสนอแอพของเราเราแค่อยากจะโคลนส่วนพื้นฐานบางอย่างของมันลงบน Android แก้ไข: ฉันอยู่ในสหรัฐอเมริกา

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

3
ฉันจะควบคุมการคำนวณใดที่ทำบน CPU และที่จะทำบน GPU ได้อย่างไร
ความเข้าใจปัจจุบันของฉันคือสิ่งที่ทำในไฟล์ shader ทำบน GPU และสิ่งที่ทำในโค้ดของฉัน (Java ในกรณีของฉัน) ทำบนซีพียู นี่เป็นคำอธิบายที่ถูกต้องหรือไม่?
14 shaders  gpu 

4
ความแตกต่างระหว่างวิธีการอัปเดตและคงที่ใน Unity หรือไม่
ฉันเริ่มที่จะเรียนรู้ Unity3d และเป็นหนึ่งในความสับสนที่ฉันได้รับคือความแตกต่างระหว่างและUpdate()FixedUpdate() ฉันกำลังติดตามการพัฒนาเกม Lynda Unity 2D อยู่ที่นั่นผู้สอนใช้Updateวิธีการผู้เล่นมีส่วนประกอบ RigidBody2D และกล่อง Collider เขาใช้Updateวิธีการแปลผู้เล่น แต่เมื่อฉันทำเช่นเดียวกันในUpdateผู้เล่นจะไม่ย้าย แต่เมื่อฉันทำ มันอยู่ในFixedUpdateงานทุกอย่าง เขากำลังให้การสอนจาก Unity 4.3 และฉันกำลังเรียนใน Unity 4.6 ฉันควรใช้ที่ไหนUpdateและFixedUpdate?

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

1
อัปโหลดเกมไปยัง Steam โดยไม่ต้อง Greenlight หรือไม่
ฉันได้รับการทำงานในเกมเล็ก ๆ น้อย ๆ (ซึ่งไม่มีที่ไหนเลยใกล้แล้วเสร็จ) และอยากจะรู้ว่าเมื่อฉันเสร็จแล้วถ้าผมจะมีความสามารถที่จะปล่อยมันลงบนไอน้ำได้โดยไม่ต้องได้รับมันสีเขียว เหตุผลที่เป็นเช่นนี้คือฉันได้จ่ายเงินสำหรับเครื่องมือและบรรณาธิการสำหรับสร้างเกมของฉันแล้วและไม่ต้องการจ่ายอีก $ 100 เพื่อปล่อยเกมของฉัน เป็นไปได้ไหม
14 game-maker  steam 

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