การพัฒนาเกม

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

1
การค้นหาว่าการคลิกเมาส์แบบเรียงต่อกันใด
ฉันกำลังทำงานกับเกมที่มีตารางแบบสามมิติและฉันประสบปัญหาในการพยายามเชื่อมโยงการคลิกเมาส์จากผู้ใช้กับไทล์ ฉันสามารถแยกปัญหาออกเป็น 2 ส่วน: การค้นหาสี่เหลี่ยมผืนผ้าที่ล้อมรอบไทล์ (ซึ่งฉันทำได้) การหาจากสี่เหลี่ยมผืนผ้าที่มีการคลิกที่ไทล์ (ทำให้ฉันนิ่งงัน) นี่คือตัวอย่างของสี่เหลี่ยมผืนผ้าที่มีแผ่นกระเบื้องด้านใน: สี่เหลี่ยมผืนผ้ามีความยาว 70px และสูง 30px ดังนั้นถ้าฉันใช้อินพุทที่พูดว่า 30x (บนสุด) / 20y (ซ้าย) ฉันจะดูได้อย่างไรว่ากระเบื้องตัวใดที่ตกลงมา?

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

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

4
เอ็นจินเหมือนกับเอ็นจิ้นกระบวนการซอร์สอย่างไร
ใน Source engine (และเป็นผู้บุกเบิก, goldsrc, quake's) วัตถุของเกมจะถูกแบ่งออกเป็นสองประเภทโลกและเอนทิตี โลกคือรูปทรงเรขาคณิตของแผนที่และเอนทิตีคือผู้เล่น, อนุภาค, เสียง, คะแนน, ฯลฯ (สำหรับ Source Engine) ทุกหน่วยงานมีฟังก์ชั่นการคิดซึ่งทำทุกตรรกะสำหรับเอนทิตีนั้น ดังนั้นหากทุกอย่างที่ต้องประมวลผลมาจากคลาสพื้นฐานพร้อมฟังก์ชันคิดเครื่องมือสร้างเกมสามารถเก็บทุกอย่างไว้ในรายการและในทุก ๆ เฟรมวนรอบมันและเรียกฟังก์ชันนั้น ในตอนแรกความคิดนี้มีเหตุผล แต่อาจใช้ทรัพยากรมากเกินไปถ้าเกมมีเอนทิตีจำนวนมาก .. ดังนั้นเอ็นจินเช่น Source ดูแล (กระบวนการอัปเดตวาด ฯลฯ ) ของวัตถุในเกมอย่างไร

2
ปรับขนาดไฟล์ภาพพิกเซลของฉันเมื่อออกแบบหรือเมื่อแสดงผล?
หากฉันสร้างไฟล์ภาพพิกเซลที่ต้องปรับขนาดบนหน้าจอในภายหลังเพื่อให้พิกเซลเดียวกลายเป็นกล่องขนาด 4 พิกเซล ฉันควรสร้างพิกเซลงานศิลปะของฉันด้วย 2x2 พิกเซลหรือฉันควรสร้างด้วยพิกเซล 1x1 เพื่อให้ฉันสามารถปรับขนาด 1: 2 ในภายหลังใน XNA เป็น 2x2 พิกเซลได้หรือไม่ ฉันมักจะเชื่อว่า 1: 1 จะให้รายละเอียดมากเกินไปมากกว่าเอฟเฟกต์พิกเซลดังนั้นฉันต้องการผลลัพธ์สุดท้ายในสไตล์ 2: 1 โดยที่ 1x1 พิกเซลของสไปรต์ที่ฉันตั้งใจจะใช้ 2x2 พิกเซลบนหน้าจอ
9 xna  c#  sprites 

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

2
ปัญหาการข้ามแพลตฟอร์มด้วยการชน AABB
ดูแผนภาพแรก: เมื่อเอนจิน AABB ฟิสิกส์ของฉันแก้ไขการตัดกันมันจะทำเช่นนั้นโดยการค้นหาแกนที่การแทรกซึมมีขนาดเล็กลงจากนั้น "ผลัก" เอนทิตีบนแกนนั้น พิจารณาตัวอย่าง "การย้ายที่กำลังกระโดดซ้าย" ถ้า velocityX ใหญ่กว่า velocityY AABB จะผลักเอนทิตีออกไปบนแกน Y แล้วหยุดการกระโดดได้อย่างมีประสิทธิภาพ (ผลลัพธ์: ผู้เล่นหยุดกลางอากาศ) ถ้า velocityX มีขนาดเล็กกว่า velocitY (ไม่แสดงในแผนภาพ) โปรแกรมทำงานตามที่ตั้งใจไว้เพราะ AABB ผลักเอนทิตีออกไปบนแกน X ฉันจะแก้ปัญหานี้ได้อย่างไร รหัสแหล่งที่มา: public void Update() { Position += Velocity; Velocity += World.Gravity; List<SSSPBody> toCheck = World.SpatialHash.GetNearbyItems(this); for (int i = 0; i < …

1
Cubing Marching - Legalities?
ฉันรู้ว่านี่ไม่ใช่เว็บไซต์ "เป็นกฎหมายหรือไม่" แต่เนื่องจาก Marching Cubes เป็นวิชาที่มีขนาดใหญ่ในการพัฒนาเกมและไม่เกี่ยวกับกราฟิก / ไอเท็มเฉพาะมันจะผ่าน ... ถึงจุด! ไม่มีใครรู้ว่าลูกบาศก์เดินได้รับอนุญาตในเกมเชิงพาณิชย์หรือไม่? ถ้าเป็นเช่นนั้นฉันต้องทำอะไร? เครดิตคน / บริษัท ฯลฯ ? ไชโย
9 legal 

2
พื้นฐานเกมมัลติเพลเยอร์ออนไลน์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังทำงานกับเกมมัลติเพลเยอร์ออนไลน์ ac # แบบเรียลไทม์ จุดมุ่งหมายคือการมีการเชื่อมต่อลูกค้า / เซิร์ฟเวอร์โดยใช้โปรโตคอล UDP จนถึงตอนนี้ฉันใช้ UDP สำหรับการเคลื่อนไหวของผู้เล่นและ TCP สำหรับกิจกรรม (ผู้เล่นยิงผู้เล่นเสียชีวิต) เพราะฉันต้องแน่ใจว่าข้อมูลดังกล่าวจะมาถึงผู้เล่นทุกคนที่เชื่อมต่อกับเซิร์ฟเวอร์ ฉันรู้ว่า UDP ถูกกล่าวว่า 'ไม่น่าเชื่อถือ' และแพ็คเก็ตบางอย่างอาจสูญหายได้ แต่ฉันได้อ่านทุกที่เพื่อไม่ผสม TCP และ UDP เพราะอาจส่งผลต่อการเชื่อมต่อ คำถามหลักคือฉันจะจัดระเบียบเครือข่ายของฉันได้อย่างไร UDP ไม่มีการเชื่อมต่อฉันจะบันทึกว่าใครเป็นใครได้อย่างไร ฉันควรบันทึกที่อยู่ ip ของลูกค้าในรายการหรือไม่ ฉันควรใช้ TCP สำหรับเหตุการณ์สำคัญหรือใช้ UDP หรือไม่ ถ้าฉันต้องการใช้ UDP ฉันจะแน่ใจได้อย่างไรว่าข้อมูลจะไม่สูญหาย …

4
ในเกมแบบ 2d ที่ใช้วิธีการเลื่อนแบบไหนดี?
ฉันใช้ Direct3D กับ wrapper D3DXSPRITE เพื่อวาดแผ่นกระเบื้องไปที่หน้าจอ ฉันมีคลาสกระเบื้องที่ประกอบด้วยสมาชิกเช่นชนและประเภทกระเบื้องแล้วฉันมีอาร์เรย์ของกระเบื้องเช่น ตารางไทล์ [256] [256]; ซึ่งจะเป็นวิธีที่ดีกว่า วาดผู้เล่นที่อยู่ตรงกลางของหน้าจอและชดเชยที่แผนที่วาด - เคลื่อนย้ายเครื่องเล่นโดยใช้กล้องต่อไปนี้ ฉันใช้วิธีแรก แต่มันซับซ้อนขึ้นมากเมื่อคุณไปถึงขอบด้านซ้ายบนของแผนที่และเมื่อผู้เล่น / ศัตรูคนอื่นอยู่บนแผนที่และเคลื่อนที่ในเวลาเดียวกัน ถ้าฉันทำให้กล้องติดตามผู้เล่นฉันจะต้องเรียก spriteBatch-> Draw (... ) สำหรับไทล์กริดเดี่ยวทุกแผ่นแม้ว่าจะมีเพียงไม่กี่คนที่สามารถวางบนหน้าจอได้หรือไม่?
9 c++  directx  directx9 

3
ไฟล์ฟอร์แมทที่ดีสำหรับการจัดเก็บแผนที่ย่อยแบบสองมิติที่สามารถเติบโตได้ไม่ จำกัด ในทิศทางใด?
ฉันกำลังสร้างเอ็นจิ้นแผนที่ง่าย ๆ ที่จะขยายไปในทุกทิศทางโดยอัตโนมัติด้วยเนื้อหาที่สร้างขึ้นตามขั้นตอนตามต้องการ เป็นวิธีที่ดีในการจัดเก็บข้อมูลแผนที่ยึดที่ต้นกำเนิด 0,0 เพื่อให้สามารถโหลดชุดย่อยของข้อมูลแผนที่เป็นรูปสี่เหลี่ยมผืนผ้าได้อย่างรวดเร็วและมีประสิทธิภาพจากทุกจุดบนแผนที่คืออะไร? ฉันมีความคิดว่าบางทีฉันควรทำให้แผนที่เป็นภาคที่แตกต่างกันและใช้รูปแบบส่วนหัวบางส่วนเพื่อระบุตำแหน่งที่เก็บเซกเตอร์เฉพาะในไฟล์ นี่เป็นเทคนิคที่ดีหรือมีเทคนิคที่ดีกว่าและมีประสิทธิภาพมากกว่าที่ฉันสามารถดูได้หรือไม่
9 tiles  maps 

5
ฉันจะสร้างวงสวิงในเกม platformer ได้อย่างไร?
ฉันกำลังพัฒนาเกมที่ผู้เล่นสามารถใช้เชือกในการแกว่ง (เช่นเดียวกับที่ Spiderman หรือBionic Commandoทำ) และฉันมีปัญหาในการใช้พฤติกรรมนี้ ทุกคนสามารถช่วยฉันได้อย่างไรฉันหมายถึงสูตรฟิสิกส์และอื่น ๆ จนถึงตอนนี้ฉันมี 3 แนวคิด มีใครใช้สปริง แต่ก็กินเวลาเยอะและบางครั้งก็น่ากลัว อีกสองคนกำลังพยายามคำนวณขั้นตอนต่อไป (อันหนึ่งผ่านการคำนวณพลังงานที่มีศักยภาพและอีกอันผ่านการคำนวณแรงบิด) และทั้งคู่ก็เกือบจะชนกันทุกครั้งที่นักแสดงพยายามแกว่ง นี่คือรหัสที่ฉันเขียนเพื่อคำนวณแรงบิด: float dx = Runner->getPosition().x - ancher.x; float dy = Runner->getPosition().y - ancher.y; float t0 = atan2(dy,dx); //my current angle float k = ((dy) *vx - (dx) * vy) / (dx * dx+dy * …

4
มีการใช้ BDD (Behavior Driven Development) ในเกมหรือไม่
ฉันอ่านเกี่ยวกับ BDD - การพัฒนาพฤติกรรมขับเคลื่อนมาระยะหนึ่งแล้วและฉันคิดว่ามันง่ายและมีประโยชน์ในการแปลงคุณสมบัติให้เป็นรหัส ผู้ใช้ BDD มักจะเรียกมันว่า TDD ถูกต้องแล้ว BDD เป็นเครื่องมือสำหรับการออกแบบซอฟต์แวร์จากภายนอกสู่ภายในจากค่า bussiness (หรือค่าการเล่นเกม) ไปยังรหัส แดนเหนือแนะนำ BDD คุณรู้จักแหล่งข้อมูลเกี่ยวกับ BDD และเกมอื่นนอกเหนือจากนี้หรือไม่?

1
มีหนังสือดีๆเกี่ยวกับการเขียนโปรแกรมกราฟิกไหม?
ฉันกำลังมองหาหนังสือที่ใช้วิธีการแบบ bottom-up สำหรับการเขียนโปรแกรมกราฟิก ดังนั้นสิ่งที่เริ่มต้นด้วยการกรองแบบ 2d อาจจะย้ายไปที่การทำแผนที่ปกติจากนั้นการบดเคี้ยวโดยรอบ ฯลฯ ฉันถามเพราะฉันขี้เกียจไม่กี่ปีที่ผ่านมาในการพัฒนาเกมและใช้เครื่องมือที่จัดการสิ่งนี้ ฉันต้องการเริ่มต้นการเขียนเฉดสีให้กับเกมของฉันแทนที่จะพึ่งคนที่คลุมเครือที่ฉันยืมมาในอดีต ฉันคิดว่าความรู้ที่แข็งแกร่งมากในเรื่องนี้จะช่วยได้และฉันเป็นผู้เรียนแบบล่างขึ้นบนดังนั้นโปรดช่วยฉันด้วย! ฉันรู้ว่าชุด GPU Gems นั้นยอดเยี่ยม แต่พวกเขาดูเหมือนจะเป็นตำราอาหารมากกว่าวิธีการจากล่างขึ้นบนที่ฉันต้องการ คุณมักจะได้รับทฤษฎีที่กระจัดกระจายจากตำราอาหารมากกว่าการสร้างทฤษฎีจากบทก่อนหน้า แก้ไข: สิ่งที่คุณอ่านโดยเฉพาะ! ฉันสามารถค้นหาสิ่งนี้ได้จาก amazon แต่ก็ยากที่จะได้รับการตรวจสอบอย่างเป็นกลาง

2
คุณจะกำหนดวัตถุ / พื้นผิวของผู้ใช้ที่ชี้ด้วย lwjgl ได้อย่างไร
ชื่อเรื่องสวยมากพูดทุกอย่าง ฉันกำลังทำงานกับโครงการ 'ให้คุ้นเคยกับ lwjgl' อย่างง่ายเกี่ยวกับการจัดการกับลูกบาศก์ของรูบิคและฉันไม่สามารถหาวิธีที่จะบอกว่าด้านใด / สี่เหลี่ยมของผู้ใช้ที่ชี้ไปที่

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