การพัฒนาเกม

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

2
สถาปัตยกรรมเซิร์ฟเวอร์ที่ดีที่สุดสำหรับเกมเรียลไทม์คืออะไร
ฉันกำลังพัฒนาเกมแบบเรียลไทม์ซึ่งควรมีผู้เล่นหลายพันคนในแบบเรียลไทม์ (FPS เช่นความล่าช้าสูงสุด 1 วินาที) อะไรจะเป็นโครงสร้างพื้นฐานที่ดีที่สุดสำหรับสิ่งนี้ ความคิดของฉันคือการใช้ 2 เซิร์ฟเวอร์คลัสเตอร์ - หนึ่งสำหรับเซิร์ฟเวอร์สิ้นสุด (ด้านการคำนวณทั้งหมด) และอีกหนึ่งสำหรับปลายฐานข้อมูลที่ load balancer เป็น "รับผิดชอบ" สำหรับแต่ละคลัสเตอร์ เซิร์ฟเวอร์หลักหนึ่งตัวจะได้รับการร้องขอจากผู้ใช้และส่งที่อยู่ IP ของเซิร์ฟเวอร์ที่เกี่ยวข้องที่ผู้ใช้สามารถทำงานได้ คลัสเตอร์ฐานข้อมูลจะใช้การจำลองแบบฐานข้อมูลเพื่อความสอดคล้องระหว่างฐานข้อมูล ควรมีตัวโหลดบาลานซ์เชิงภูมิศาสตร์ด้วยดังนั้นจึงจะกำหนดตัวโหลดบาลานซ์ระดับภูมิภาคให้กับผู้ใช้แต่ละรายเพื่อการตอบสนองที่ดีที่สุด ฉันใช้. NET + MSSQL สำหรับเกม ขอบคุณ!


3
แสงสว่างในโลก Minecraftian
Minecraft เป็นเกมที่มีพื้นฐานมาจากความสูงและใช้ข้อมูล heigtmap เพื่อทำให้โลกสว่าง จากความเข้าใจของฉันจุดสูงสุดในแผนผังความสูงคือจุดสิ้นสุดของพื้นที่ที่ได้รับผลกระทบจากแสงแดด ทุกสิ่งที่อยู่ด้านบนนั้นสว่างไสวด้วยแสงแดดทุกอย่างด้านล่างที่เพิ่งได้รับอิทธิพลจากแสงใกล้เคียงในรัศมี 8 ช่วงตึก ดังนั้นหากคุณมีเกาะลอยอยู่ด้านบนของโลกของคุณทุกอย่างด้านล่างที่จะถูกมองว่าเป็นถ้ำ เมื่อแสงสองดวงมีอิทธิพลต่อจุดเดียวกันแสงที่สว่างกว่าจะเป็นฝ่ายชนะ (ไม่แน่ใจเกี่ยวกับเรื่องนั้น) ทั้งสองวิธีมีปัญหาสองสามอย่างเกี่ยวกับรูปแบบการจัดแสง minecrafts: อย่างแรกเลยถ้าโลกของคุณไม่มีแผนผังความสูงมันจะยากกว่าที่จะคิดออกว่าควรจะปล่อยแสงแดดออกมาอย่างไร วิธีง่าย ๆ คือสมมติว่าโลกนี้ (ในกรณีของฉัน) เป็นหินลอยและจากนั้นสำรวจแต่ละแกนจากทั้งสองทิศทางและหาจุดที่หินเริ่มต้นและสิ้นสุด แต่สิ่งนี้ไม่ได้ขจัดปัญหาอย่างเต็มที่เนื่องจากรอยบุบในหินไม่ควรอยู่ในความมืด Minecraft นั้นจะทำการแคชข้อมูลแสงในส่วนของมันพร้อมกับข้อมูลเกี่ยวกับเนื้อหาของบล็อก ดังนั้นถ้าโลกมีการปรับเปลี่ยนแสงจะต้องมีการปรับปรุง น่าเสียดายที่กระบวนการยังค่อนข้างช้าในการอัปเดตและเมื่อมีการเปลี่ยนแปลงของแสงอย่างรวดเร็วคุณจะเห็นความล่าช้าของแสงด้านหลัง โดยเฉพาะอย่างยิ่งหากมีการเปลี่ยนแปลงบล็อกจำนวนมาก (ภายหลังพระอาทิตย์ตก ฯลฯ ) และคุณไม่ได้ใช้คอมพิวเตอร์ที่เร็วที่สุด (หรือ Java บน Mac) จากความเข้าใจที่ จำกัด ของฉันเกี่ยวกับแสงกราฟิก 3D โลกอย่าง Minecraft ไม่ควรเป็นปัญหาที่ใหญ่ที่สุด คุณจะจัดการกับปัญหาอย่างไร ฉันคิดว่าข้อกำหนดขั้นพื้นฐานสำหรับการให้แสงในโลก voxel น่าจะเป็น อัปเดตเร็วพอที่จะเกิดขึ้นในเฟรมเดียว หนึ่งอาจทำแสงสว่างในอุปกรณ์กราฟิกและดาวน์โหลดข้อมูลแสงที่เปลี่ยนแปลงไปยัง RAM หลัก ข้อมูลแสงจะต้องพร้อมใช้งานอย่างรวดเร็วสำหรับตรรกะของเกมหลักดังนั้นจึงไม่ได้ขึ้นอยู่กับอุปกรณ์กราฟิกทั้งหมด: การให้เหตุผล: …
10 opengl  maps  lighting 

2
มันคุ้มค่าไหมถ้าใช้ Bullet สำหรับฟิสิกส์ 2D แทนที่จะเป็น Box2D เพื่อการเรียนรู้ Bullet?
ไม่มีคำถามอีกมาก ฉันไม่ได้กังวลเกี่ยวกับค่าใช้จ่ายเนื่องจากฉันแน่ใจว่าพวกเขาทั้งคู่ดีสำหรับวัตถุประสงค์ของฉัน โดยพื้นฐานแล้วฉันคุ้นเคยกับแนวคิด Box2D เนื่องจาก Farseer Physics Engine แต่ฉันต้องการใช้ Bullet เมื่อฉันข้ามไปยังเนื้อหา 3 มิติ Bullet อาจมีค่าการศึกษาสำหรับฉันแม้แต่ในขอบเขต 2D หรือไม่? คำถามรุ่นทั่วไปคือฉันควรใช้เครื่องมือฟิสิกส์ 3 มิติสำหรับเกม 2 มิติถ้าฉันวางแผนที่จะใช้เครื่องมือฟิสิกส์ 3 มิติในอนาคต หรือเป็นการเสียเวลาซึ่งจะไม่ให้ค่าการศึกษา?

2
'Zoning' พื้นที่บนแผนที่ขนาดใหญ่เช่นเดียวกับดันเจี้ยน
เกมของฉันมีแผนที่เหมือนของ Minecraft ในลักษณะที่เป็น pseudoinfinite และสร้างแบบสุ่ม และใหญ่ สมมติว่าผู้ใช้สำรวจโซน 1000x1000 (2D ที่นี่) นั่นคือ 1,000,000 แผ่น เห็นได้ชัดว่าฉันจะไม่สามารถเก็บมันไว้ในความทรงจำได้ และฉันไม่ต้องการเพิกเฉยทุกอย่างออกจากไพ่ 10 ใบหรือรัศมีใด ๆ - ทั้งคู่จะไม่มีอะไรอัปเดต (NPC ทั้งหมดอาจเป็นกระเบื้องปฏิกิริยา) และฉันจะต้องทำงานกับตำแหน่งที่น่าอึดอัดใจเช่น 1382,12918 ดังนั้นถ้าฉันจะแบ่งมันออกเป็นชิ้น ๆ หรือโซนหรืออะไรก็ตามที่บอกว่าเป็น 64x64 แผ่นฉันจะต้องเก็บแต่ละตำแหน่งของวัตถุและวัตถุเช่น: ก้อน a, b ตำแหน่ง x, y แต่ถ้าฉันต้องการดันเจี้ยนและสิ่งที่คล้ายในแผนที่ของฉัน กระเบื้องเดี่ยวที่อาจนำไปสู่ดันเจี้ยน 40 ชั้นแต่ละอันมีพื้นที่ 40x40 ฉันไม่สามารถเก็บพวกมันไว้ในแผนที่เดียวกันได้ และมีด้านความจำ ฉันสามารถเก็บหน่วยความจำในเวลาเดียวกันได้มากเท่าไหร่ ฉันสามารถเรียงต่อกันตาม ID ได้อย่างง่ายดายและมีอาร์เรย์ 2D ปกติอยู่ที่นั่น หรืออีกครั้งมีวิธีแก้ปัญหาที่มีประสิทธิภาพมากกว่าการมีไฟล์ข้อมูลประเภทไทล์หรือไม่ ดังนั้นสำหรับ …

4
ภูมิประเทศขั้นตอนในแบบ 3 มิติ: สิ่งที่ได้ทำ มีสามัญและ / หรือทฤษฎีเกี่ยวกับมันหรือไม่? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา นอกเหนือจากการเขียนโปรแกรมการสร้างแบบจำลองสภาพแวดล้อมใช้เวลาอย่างมาก ฉันไม่รู้เกี่ยวกับเวลาทำงานที่เกี่ยวข้องเช่นในดันเจี้ยนระดับ WoW หรือเมืองที่สวยงามสภาพแวดล้อมในอนาคตป่าจินตนาการ ฯลฯ แต่งานประเภทนี้สร้างขึ้นโดยศิลปิน เทคนิคใดบ้างที่เกี่ยวข้องกับเครื่องมือสุ่มระดับ TorchLight และชื่ออื่นมีความคล้ายคลึงกับสิ่งนี้หรือไม่? มีชื่อสกุลสำหรับเทคนิคดังกล่าวหรือไม่?

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

2
การออกแบบระดับในเกมด้วย XNA
ฉันสงสัยเกี่ยวกับการออกแบบระดับในเกม สถานการณ์ปัจจุบันของฉันหมุนรอบ Tiled - ฉันมีเลเยอร์ต่าง ๆ ที่มีประเภทของวัตถุต่าง ๆ (สำหรับทุกคนที่ไม่คุ้นเคยกับ Tiled วัตถุจะไม่มีอะไรมากไปกว่าการประสานงานกับคุณสมบัติตามอำเภอใจที่กำหนดไว้) ขณะนี้ฉันกำลังรวบรวมเกมใหม่ทุกครั้งที่ฉันทำการเปลี่ยนแปลงเล็กน้อยกับไฟล์แผนที่เพื่อดูว่าทุกอย่างอยู่ในตำแหน่งที่เหมาะสมหรือไม่ มีวิธีใดบ้างที่ฉันจะให้เกมโหลดระดับโดยอัตโนมัติหากตรวจพบการเปลี่ยนแปลงไฟล์แผนที่ XNA อนุญาตให้ทำสิ่งนี้ได้หรือไม่หรือวิธีการทำงานของท่อส่งเนื้อหาไม่อนุญาตให้มีเนื้อหาแบบไดนามิกในลักษณะดังกล่าวหรือไม่? ยินดีต้อนรับเคล็ดลับหรือคำแนะนำใด ๆ
10 xna-4.0  tiles 

6
ภาพลวงตา 3 มิติของพื้นผิวโลก 2 มิติ
หลายปีที่ผ่านมาฉันได้ยินเทคนิคที่ให้ภาพลวงตาของดาวเคราะห์หมุนรอบตัวโดยใช้พื้นผิว 2D ระบุว่าผู้ใช้ไม่สามารถเปลี่ยนตำแหน่งหรือวิวพอร์ตได้ เทคนิคนี้ชื่ออะไร
10 2d  3d  terminology  planet 

3
จะจ้างนักออกแบบกราฟิกสำหรับเกมมือถือได้ที่ไหน
ฉันต้องการหาคนที่มีความสามารถในการสร้างชุดของกราฟิก 2 มิติ a la cart สำหรับเกมมือถือของฉัน กราฟิกของฉันไม่น่าประทับใจเพียงพอ แต่การเล่นเกมนั้นแข็งแกร่งและสนุก นี่เป็นคำถามแบบหลายส่วน: ฉันจะหาคนจากที่ไหน? สิ่งที่ฉันคาดหวังว่าจะจ่ายให้กับ Sprite และพื้นหลังที่กำหนดเอง ฉันควรใช้คำศัพท์ประเภทใดดังนั้นฉันจะได้รับเอกสิทธิ์โดยไม่มีค่าลิขสิทธิ์เป็นเจ้าของผลงานศิลปะเมื่อเสร็จแล้ว

1
ไม่สนับสนุนการใช้คอลเลกชันในการพัฒนาเกมของ Android?
ในขณะที่ทำงานในโครงการเกมสำหรับ Android ฉันกำลังขุดหาข้อมูลบางอย่างเกี่ยวกับการเพิ่มประสิทธิภาพการทำงานสำหรับรหัสเกม และฉันก็รู้ว่าการใช้ Java Collectionsเช่น List, Arraylist และอื่น ๆ ไม่ได้รับการสนับสนุนในรหัสเกมถึงแม้ว่าการรวบรวมเป็นเครื่องมือที่มีประโยชน์ในการเขียนโปรแกรม Java ทำไมถึงเป็นเช่นนั้น ฉันต้องการทราบรายละเอียดทางเทคนิคมากน้อยเพียงใดที่ Framework ของ Collection มีผลกระทบต่อระบบ Android และทำไม ความช่วยเหลือในเรื่องนี้จะดีมาก
10 android 

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

3
เอ็นจิ้นเกมกระดานออนไลน์ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการสร้างเกมกระดานออนไลน์ ฉันสามารถใช้เครื่องมืออะไรในการเขียนเกมและทำให้คนจำนวนมากเข้าถึงได้ง่ายที่สุดเท่าที่จะทำได้? ฉันต้องการให้สามารถเข้าถึงได้อย่างกว้างขวางที่สุดเท่าที่จะทำได้ดังนั้นจึงเป็นการดีที่สุดหากส่วนต่อประสานผู้ใช้จะทำงานในเบราว์เซอร์ไม่ใช่ในแอปที่ดาวน์โหลดแยกต่างหาก ในทำนองเดียวกันควรข้ามแพลตฟอร์มไม่ จำกัด เพียงแพลตฟอร์มเดียว JavaScript / HTML ล้วนๆจะดีที่สุดเพราะจะช่วยให้สามารถใช้งานบน iPad ได้เช่นกันแม้ว่า Flash หรือ Java อาจยอมรับได้ Silverlight ไม่มีส่วนแบ่งการตลาด (ตัวอย่างเช่นฉันไม่ได้ติดตั้ง) และ XNA นั้นมี จำกัด มากเกินไป คุณสมบัติอื่น ๆ ที่น่าจะเป็นคุณสมบัติการแชทและสังคมที่ดี (หรือการรวมเข้ากับระบบแชทหรือโซเชียลเน็ตเวิร์คอื่น ๆ ), ลีดเดอร์บอร์ดหรือระบบทัวร์นาเมนต์และการรวมบอทเพื่อให้คู่ต่อสู้ AI ในกรณีที่มีผู้เล่นไม่พอ ตัวจับเวลาของเกมเพื่อให้ผู้คนเคลื่อนไหวในอัตราที่สมเหตุสมผลก็จะดีเช่นกัน การบันทึกเรคคอร์ดของเกมและการอนุญาตให้ผู้เล่นเล่นซ้ำและตรวจสอบบันทึกเพื่อการศึกษาก็ดีเช่นกัน แต่ฉันก็ไม่ได้คาดหวังมากนักเนื่องจากฟีเจอร์ประเภทเหล่านั้นมักจะปรากฏในเอนจิ้นที่สร้างขึ้นเฉพาะสำหรับเกมเช่นหมากรุกหรือโก การเป็นซอฟต์แวร์เสรี / โอเพนซอร์ซนั้นเป็นข้อดีอย่างมากดังนั้นฉันจึงสามารถขยายได้ด้วยตัวเองถึงแม้ว่าโซลูชั่นแบบปิดหรือโฮสต์อาจยอมรับได้หากพวกเขามีคุณสมบัติดังกล่าวเพียงพอหรือจัดหาวิธีการบางอย่างในการขยาย มีระบบใดที่ตรงกับความต้องการของฉันหรือไม่? หรือสิ่งใดก็ตามที่ใกล้เคียงกันแม้ว่าจะไม่ตรงกันทั้งหมด ระบบที่คล้ายกันซึ่งไม่ตรงกับความต้องการของฉันจะรวมถึง: …

1
เครื่องมือสำหรับการพัฒนาเกม C64
แค่สงสัยว่าผู้คนในปัจจุบันใช้พัฒนาเกม Commodore 64 ได้อย่างไร? ฉันมีคู่มืออ้างอิงของโปรแกรมเมอร์ซึ่งมีรายละเอียดทั้งหมด แต่ในยุคสมัยใหม่ฉันคิดว่าฉันจะไม่ต้องทำการพัฒนาบน C64 จริงหรือไม่ มีเครื่องมือที่ทำงานบน Windows หรือ Mac OS X ซึ่งเป็นเหมือน IDE ที่ให้ความช่วยเหลือและมีสิ่งอำนวยความสะดวกในการดีบัก (เช่นเชื่อมต่อเข้ากับ Emulator) หรือบรรจุภัณฑ์ง่าย ๆ ลงในดิสก์อิมเมจ. d64 หรือไม่? 6502 Assembler เป็นภาษาที่เลือกหรือไม่และการพัฒนา C เป็นไปได้หรือไม่ (ไม่สนใจพื้นฐานที่นี่)
10 tools 

4
การแมปเงาและ Quads โปร่งใส
การแมปเงาใช้บัฟเฟอร์ความลึกเพื่อคำนวณตำแหน่งที่ควรวาดเงา ปัญหาของฉันคือฉันต้องการล่ามที่มีพื้นผิวกึ่งโปร่งใสบางส่วนเพื่อฉายเงา - ตัวอย่างเช่นต้นไม้ป้ายโฆษณา เนื่องจากค่าความลึกจะถูกตั้งค่าในทุกส่วนของรูปสี่เหลี่ยมและไม่ใช่เฉพาะส่วนที่มองเห็นได้เท่านั้นมันจะสร้างเงารูปสี่เหลี่ยมซึ่งไม่ใช่สิ่งที่ฉันต้องการ ฉันจะทำให้ quads โปร่งใสของฉันส่งเงาที่ถูกต้องโดยใช้การทำแผนที่เงาได้อย่างไร

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