การพัฒนาเกม

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

3
ทำไม XNA ไม่ถือเป็นเอ็นจิ้นเกม
ฉันแค่สงสัยว่า XNA หายไปอะไรเพื่อที่จะถูกพิจารณาเป็นเอ็นจิ้นเกม มันทำทุกสิ่งที่เอ็นจิ้นเกมควรทำ (ยกเว้นส่วนของฟิสิกส์) มันยังมีการสนับสนุนด้านที่กำหนดไว้ในบทความวิกิพีเดียในทุกเครื่องเกม ทำไม XNA ไม่ถือเป็นเอ็นจิ้นเกม
13 xna 

4
จะรวมเกม HTML5 JavaScript เป็นแอปพลิเคชัน Windows ดั้งเดิมได้อย่างไร
เมื่อเว็บเบราว์เซอร์วิวัฒนาการการพัฒนาเกม HTML5 ด้วย JavaScript, Canvas, webgl จึงเป็นที่นิยมมากขึ้นเรื่อย ๆ ข้อได้เปรียบของเกมบนเว็บเมื่อเทียบกับแอพพื้นฐานคือพวกมันทำงานบนหลายแพลตฟอร์มและคุณไม่ต้องเล่นซอกับไลบรารีเฉพาะของ OS หรือสภาพแวดล้อมการเขียนโปรแกรม คุณสามารถขายเกมบนเว็บของคุณผ่านทางChrome เว็บสโตร์ได้แล้ว แต่ฉันคิดว่ามันไม่เป็นที่นิยมสำหรับการทำกำไรสำหรับนักพัฒนาเกมอินดี้ ฉันคิดว่าคุณอาจเข้าถึงผู้คนจำนวนมากด้วยการขายเกมของคุณที่ Mac App Store หรือ Steam แต่คุณต้องรวมมันเป็นแอปพลิเคชันแบบสแตนด์อโลน สำหรับ mac คุณสามารถรวมเกม HTML5 ของคุณเป็นแอพเนทีฟโดยใช้ส่วนประกอบ WebView ของ Apple นี่คือตัวอย่างเกี่ยวกับวิธีการทำเช่นนั้น ตอนนี้ฉันสงสัยว่า: มีวิธีที่เทียบเท่าสำหรับแพลตฟอร์ม Windows?
13 html5 

6
วิธีจัดการกับอินพุตของเมาส์ใน XNA
ฉันกำลังพัฒนาการ์ดเกมใน XNA มีOnClickเหตุการณ์ใดใน XNA สำหรับวัตถุหรือไม่ ฉันพยายามที่จะทำให้ไพ่เคลื่อนที่เมื่อผู้เล่นคลิกที่ไพ่ ในโครงการนี้มีคลาส Sprite ที่วาดการ์ด แต่ฉันติดอยู่เล็กน้อยเพราะฉันไม่รู้วิธีใช้OnClickเหตุการณ์หรืออะไรทำนองนั้น
13 xna  c#  input  mouse 

3
เครือข่าย 3G กำหนด IP ให้กับสมาร์ทโฟนได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังเล่นเกมบนเครือข่าย 3G โดยใช้ Android หรือ Iphone สมมติว่าฉันย้ายจากเซลล์หนึ่งไปอีกเซลล์หนึ่ง; ที่อยู่ IP จะเปลี่ยนแปลงหรือไม่ ถ้าใช่ฉันจะเล่นเกมต่อไปได้อย่างไรในขณะที่เปลี่ยนสถานีฐานเนื่องจากที่อยู่ IP ของฉันลงทะเบียนในเซิร์ฟเวอร์เกมแล้ว มี DHCP บางอย่างหรือไม่

1
การปรับใช้เครือข่ายให้ราบรื่น
เรากำลังทำนักกีฬาคนแรกที่ทวีคูณ ลูกค้าส่งตำแหน่งไปยังเซิร์ฟเวอร์ในอัตราคงที่ (ปัจจุบันอยู่ที่ 10Hz) เซิร์ฟเวอร์จะส่งข้อความเดียวที่เกี่ยวข้องกับตำแหน่งของผู้เล่นทุกคนในอัตราเดียวกัน (10Hz) ตามที่คาดไว้การเคลื่อนไหวค่อนข้างเร็วเนื่องจากเกม 60fps ได้รับการอัพเดทเพียง 10 ครั้งต่อวินาที วิธีที่ดีที่สุดในการทำให้การเคลื่อนไหวนี้ราบรื่นคืออะไร? วิธีที่ชัดเจนที่สุดคือการสอดแทรกระหว่างสองแพ็กเก็ตล่าสุดเพื่อให้การแก้ไขเสร็จสิ้นเมื่อเรารับแพ็กเก็ตใหม่ แต่สิ่งนี้จะเพิ่มความล่าช้า 100ms ทันทีสำหรับผู้เล่นทุกคน อีกวิธีหนึ่งคือใช้ความเร็วและความเร่งที่อนุมานจากแพ็คเก็ตสุดท้ายเพื่อทำนายว่าผู้เล่นอยู่ที่ไหนก่อนที่แพ็กเก็ตต่อไปจะมาถึงอย่างไรก็ตามหากการทำนายผิดผู้เล่นจะมีแนวโน้มที่จะกระโดดทันทีที่แพ็กเก็ตใหม่ได้รับ . ไม่มีใครรู้ว่าชื่อ AAA แก้ปัญหานี้ได้อย่างไร

4
การเขียนโปรแกรมลำดับการต่อสู้ในเกมสวมบทบาท
ฉันพยายามเขียน "เกม" สั้น ๆ ที่ผู้เล่นไปรอบ ๆ และต่อสู้กับสัตว์ประหลาด แต่ฉันไม่รู้ว่าจะจัดการกับการต่อสู้ได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันมี "นักรบ" และ "หมุนรอบ" ทั้งสองต่อสู้กันอย่างไร ฉันรู้ว่าฉันสามารถทำอะไรบางอย่างเช่น Conan = Warrior.new(); CaveTroll = Troll.new(); Conan.attack(CaveTroll); CaveTroll.attack(Conan); แต่ส่วนใดของเกมที่ควบคุมสัตว์ประหลาด? ฉันเพียงแค่ติดลำดับข้างต้นในลูปจนกว่าหนึ่งในนั้นจะตาย? หรือ "เครื่องมือ" เกมจำเป็นต้องมีส่วนที่เกี่ยวข้องกับการต่อสู้โดยเฉพาะหรือไม่? หรือนี่คือแง่มุมของปัญญาประดิษฐ์ของ Troll ที่ต้องดูแลการกระทำของมัน? ใครเป็นผู้ตัดสินการกระทำของสัตว์ประหลาด? บางทีโทรลล์อาจทุบตีเตะกัดเสกคาถาดื่มยาใช้สิ่งของวิเศษ เอ็นจิ้นของเกมเป็นตัวกำหนดสิ่งที่ Troll ใช้หรือเป็นสิ่งที่คลาส Troll จัดการหรือไม่ ขออภัยฉันไม่สามารถระบุได้มากขึ้น แต่ฉันต้องการคำแนะนำเกี่ยวกับทิศทางที่จะไปกับสิ่งนี้

1
XNA จับการคลิกเมาส์เมื่อเกมไม่มีโฟกัส
หากฉันแท็บ alt และทำสิ่งต่าง ๆ นอกหน้าต่างเกมเกมยังคงจับการคลิกเมาส์ (ทั้งคลิกซ้ายและขวา) เกมดังกล่าวไม่ได้ "กิน" การคลิกเนื่องจากจะถูกส่งไปยังแอปพลิเคชันที่มีโฟกัส แต่มันค่อนข้างน่ารำคาญที่จะได้ยินเสียงปืนทุกครั้งที่คุณคลิกในอินเทอร์เน็ตเบราว์เซอร์ของคุณ ... นอกจากนี้ปัญหายังเกิดขึ้นแม้ว่าเกมจะถูกตั้งเป็นเต็มหน้าจอ
13 xna 

5
การตรวจจับการชนเชือก 2D
ฉันต้องการสร้างเชือกที่สามารถชนกับวัตถุอย่างในวิดีโอ youtube ต่อไปนี้: เชือกฟิสิกส์เกม 2 มิติ ฉันคิดว่าคุณใช้การรวม verlet ซึ่งใช้จุดและเชื่อมต่อจุดเหล่านี้กับเส้น ฉันกำลังพยายามหาว่าคุณจะใช้การตรวจจับการชนประเภทใดกับเชือกเพื่อให้ได้ผลในวิดีโอ ฉันคิดว่าคุณจะต้องทำซีดีให้แต่ละจุด ฉันต้องการใช้ box2D ดังนั้นฉันสงสัยว่าแต่ละจุดจะทำงานอย่างมีประสิทธิภาพหรือไม่ คำแนะนำใด ๆ ที่จะได้รับการชื่นชม.

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

5
โครงการเกมที่รู้สึกเหมือนเป็นเกม“ ของคุณ” คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา คำถามนี้อาจดูเหมือนคลุมเครือ แต่มันยากที่จะกำหนดอย่างถูกต้อง ฉันจะพยายามอย่างดีที่สุดเท่าที่จะทำได้ ดังนั้นที่นี่ไป ... เป็นเวลาหลายปีที่ฉันพยายามสร้างเกม แต่ฉันยังไม่สามารถจัดการให้เสร็จแม้แต่เกมเดียว เหตุผลหลักคือกระบวนการสร้างเกมไม่ได้ให้ความสำคัญ ไม่เคยมีวิสัยทัศน์ที่ชัดเจนของสิ่งที่ฉันพยายามสร้าง ตอนนี้ฉันรู้ว่าฉันมักจะต้องการสร้างเกมที่คล้ายกับเกมอื่น ๆ ที่ฉันเพิ่งเล่นและชอบ ดูเหมือนว่ามีหลายเกมที่ฉันอยากจะทำ แต่ไม่มีใครที่ฉันจะเห็นว่าเป็นเกมที่ฉันต้องการสร้าง (หรือหนึ่งในเกม THE) ฉันต้องการสร้างบางสิ่งที่ฉัน (และหวังว่าคนอื่น ๆ ด้วย) จะชอบและภูมิใจในตัวเอง แต่ฉันมีเวลายากที่จะค้นพบว่ามันคืออะไร ไม่จำเป็นต้องเป็นเรื่องใหญ่กราฟิกที่ยอดเยี่ยมหรืออะไรทำนองนั้น มันควรเป็นสิ่งที่ฉันสนุกและมีแรงบันดาลใจในการสร้าง ดังนั้นคนอื่นที่นี่มีปัญหาเดียวกันหรือคล้ายกัน? คุณพบวิธีที่จะเอาชนะมันได้หรือไม่? คุณค้นพบเกม "ของคุณ" แล้วหรือยัง? ถ้าเป็นเช่นนั้นสิ่งที่แตกต่างจากเกมอื่น ๆ ที่คุณพยายามสร้างคืออะไร? แก้ไข: ขอบคุณสำหรับคำตอบทั้งหมดของคุณ แค่ต้องการชี้แจงบางสิ่งเล็กน้อย ... ก่อนที่จะถามคำถามนี้ฉันได้อ่านคำถามที่มีอายุมากกว่าเกี่ยวกับสิ่งต่าง ๆ เช่นการทำต้นแบบการกำหนดเวลารายการที่ต้องทำ สิ่งที่ฉันต้องการทราบเพิ่มเติมโดยการถามคำถามนี้ไม่ใช่วิธีการสร้างเกมโดยทั่วไป แต่จะค้นหาโครงการที่รู้สึกเหมือนสิ่งที่คุณต้องการจะทำอย่างไร ตัวอย่างเช่นฉันเล่นเกมแข่งรถน้อยมาก แต่บางครั้งฉันอาจเล่นเกมบางเกมที่ค่อนข้างสนุกและได้รับความคิดเกี่ยวกับการสร้างเกมแข่งรถด้วยตัวเอง …
13 motivation 

1
การปะทะกันบนต้นไม้รูปสี่เหลี่ยม / ตาราง - นำตรรกะไปปฏิบัติ
ก่อนอื่นฉันเพิ่งเขียนตรรกะเกมของตัวเองในระยะเวลาหนึ่งดังนั้นฉันต้องขออภัยถ้าสิ่งนี้อาจดูตรงไปตรงมา ฉันอ่านเกี่ยวกับต้นไม้สี่ต้นและการตรวจจับการชนกันของกริดเป็นอย่างมาก ฉันเข้าใจตรรกะ - โดยทั่วไปจะไม่ตรวจสอบการชนยกเว้นว่าวัตถุอยู่ใกล้พื้น แต่มันก็ไม่เคยถูกกล่าวถึงว่ามันใช้งานจริงอย่างไร ฉันมีวิธีที่เป็นไปได้สองสามอย่างในหัว แต่ก็ไม่แน่ใจว่าวิธีไหนดีที่สุด การทดสอบการชนทั่วไป - ไม่มีการเพิ่มประสิทธิภาพ for(var i:int = 0; i < objects.length; i++){ //find object A var objectA = objects[i]; for(var j:int = i + 1; j < objects.length; j++){ //find object B var objectB = objects[j]; if(objectA.collidesWith(objectB){ //handle collision logic } } เก็บเพื่อนบ้าน …

3
เอาชนะการตรวจจับและ FFT
ฉันกำลังทำงานกับเกม platformer ซึ่งรวมถึงเพลงที่มีการตรวจจับจังหวะ ขณะนี้ฉันกำลังตรวจจับการเต้นด้วยการตรวจสอบว่าแอมพลิจูดปัจจุบันเกินกว่าตัวอย่างในอดีตหรือไม่ มันใช้งานไม่ได้กับแนวเพลงเช่นร็อคที่มีแอมพลิจูดค่อนข้างคงที่ ดังนั้นฉันจึงค้นหาเพิ่มเติมและพบอัลกอริทึมที่แยกเสียงออกเป็นหลาย ๆ วงโดยใช้ FFT ... จากนั้นฉันก็พบอัลกอริทึม Cooley-Tukey FFt ปัญหาเดียวที่ฉันมีคือฉันค่อนข้างใหม่กับเสียงและฉันไม่รู้ว่าจะใช้มันอย่างไรเพื่อแยกสัญญาณออกเป็นสัญญาณหลาย ๆ สัญญาณ ดังนั้นคำถามของฉันคือ: คุณจะใช้ FFT เพื่อแยกสัญญาณออกเป็นหลายแบนด์ได้อย่างไร? สำหรับคนที่สนใจนี่คืออัลกอริทึมของฉันใน c #: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = …

2
ฉันจะย้ายจากกระแสหลักไปสู่การพัฒนาแบบอินดี้ได้อย่างไร
ฉันเป็นโปรแกรมเมอร์เกมสำหรับนักพัฒนาและผู้จัดจำหน่ายระดับ AAA ซึ่งฉันรู้ว่าอยู่ในหมวดหมู่ 'ปัญหาที่ดีที่จะมี' อย่างไรก็ตามฉันกลายเป็นไม่แยแสกับทิศทางของทั้ง บริษัท และส่วน AAA ของอุตสาหกรรมโดยรวม ฉันต้องการทำสิ่งที่แตกต่างกันโดยพื้นฐาน ดูเหมือนว่าตลาดจะไม่ดีไปกว่านี้สำหรับโครงการขนาดเล็กและฉันชอบที่จะกระโดดลงไป (และฉันได้ทำการสาธิตเล็ก ๆ สำหรับ Android และเริ่มขุดลงใน iOS) แต่เห็นได้ชัดว่าฉันไม่สามารถกำจัดอะไรได้ ขณะที่ฉันทำงานให้ บริษัท ฉันกังวลว่าฉันไม่ควรพัฒนาอะไรมากมายในเวลาว่างกับทุกสิ่งที่ฉันต้องการปลดปล่อยด้วยตัวเอง ในเวลาเดียวกันฉันมักจะออกจากงานด้วยเหตุผลที่ชัดเจนโดยเฉพาะอย่างยิ่งไม่มีแผนเฉพาะเจาะจง มีใครบ้างที่มีประสบการณ์กับ 'going indie' จากงานหลัก? คุณมีคำแนะนำเฉพาะเกี่ยวกับวิธีการที่ดีที่สุดและควรคำนึงถึงหรือระมัดระวังเป็นพิเศษหรือไม่?
13 career  business 

5
ไลบรารีที่แนะนำสำหรับการใช้ Lua จาก C ++ คืออะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ขณะนี้ฉันกำลังวางแผนที่จะรวมการเขียนสคริปต์ Lua ใน 2D Game Engine ของฉันและฉันต้องการไปยังทางออกที่เหมาะสมที่สุดสำหรับการเรียน C ++ และวัตถุต่างๆ ฉันได้อ่านสิ่งนี้แล้ว (ถ้ามันช่วยคุณได้): http://lua-users.org/wiki/BindingCodeToLua หากคุณมีภาษาสคริปต์ที่ดีกว่าที่จะแนะนำอีกครั้งให้ไป; D ยินดีต้อนรับทุกความช่วยเหลือฉันต้องการวิธีที่ดีที่สุดในการเริ่มต้นใช้งานขอบคุณ
13 c++  lua 

2
การเล่นเพลงทำให้ WP7 ขัดข้องทางโทรศัพท์ แต่ไม่ใช่ในอีมูเลเตอร์
ฉันพยายามใช้เพลงเป็นเกมที่เริ่มเล่นและวนซ้ำอย่างต่อเนื่องบน Windows Phone 7 ผ่าน XNA 4.0 บนอีมูเลเตอร์สิ่งนี้ใช้ได้ดี แต่เมื่อนำไปใช้กับโทรศัพท์มันจะให้หน้าจอสีดำก่อนกลับไปที่หน้าจอหลัก นี่คือรหัสโกงในคำถามและการแสดงความคิดเห็นรหัสนี้ทำให้แอปทำงานได้ดีบนโทรศัพท์: // in the constructor fields private Song song; // in the LoadContent() method song = Content.Load<Song>("song"); // in the Update() method if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing) { MediaPlayer.Play(song); } ไฟล์เพลงนั้นมีความยาว 2:53, 2.28mb .wma ที่ 106kbps บิตเรต อีกครั้งนี้ทำงานได้อย่างสมบูรณ์แบบบนโปรแกรมจำลอง แต่ไม่ทำงานเลยบนโทรศัพท์ ขอบคุณสำหรับความช่วยเหลือใด …

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