การพัฒนาเกม

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

4
วิธีการใช้พื้นที่ขอบนุ่มกับอนุภาค
เกมของฉันสร้างขึ้นโดยใช้ Phaser แต่คำถามตัวเองนั้นไม่เชื่อเรื่องพระเจ้า ในเกมของฉันฉันมีสภาพแวดล้อมหลายอย่างโดยทั่วไปพื้นที่รูปหลายเหลี่ยมที่ตัวละครผู้เล่นสามารถย้ายเข้ามาและได้รับผลกระทบจาก ตัวอย่างเช่นน้ำแข็งไฟพิษ ฯลฯ องค์ประกอบกราฟิกของพื้นที่เหล่านี้คือพื้นที่รูปหลายเหลี่ยมที่เติมสีนั้นและอนุภาคของประเภทที่เหมาะสม (ในตัวอย่างเศษน้ำแข็ง) นี่คือวิธีที่ฉันใช้งานในปัจจุบัน - ด้วยหน้ากากรูปหลายเหลี่ยมที่ครอบคลุมกระเบื้องที่มีรูปแบบอนุภาค: ขอบแข็งดูไม่ดี ฉันต้องการปรับปรุงโดยการทำสองสิ่ง: 1. ทำให้พื้นที่เติมรูปหลายเหลี่ยมมีขอบที่อ่อนนุ่มและผสมผสานเป็นพื้นหลัง 2. ให้เศษบางส่วนออกจากพื้นที่รูปหลายเหลี่ยมเพื่อไม่ให้ถูกตัดตรงกลางและพื้นที่ไม่มีเส้นตรง ตัวอย่าง (mockup): ฉันคิดว่า 1 สามารถทำได้โดยการทำให้รูปหลายเหลี่ยมเบลอ แต่ฉันไม่แน่ใจว่าจะทำอย่างไรกับ 2 คุณจะดำเนินการเกี่ยวกับเรื่องนี้อย่างไร?

1
ฉันจะเข้าถึงเทพดาเดี่ยวโดยทางโปรแกรมได้อย่างไรเมื่อโหมด Sprite เป็นหลาย ๆ
Unity 4.3 เพิ่งนำความสามารถในการตัดแผ่นสไปรต์มาเป็นสไปรต์แต่ละอัน สิ่งนี้มีประโยชน์เนื่องจากคุณต้องการเพียงแค่สปีชีตหลัก แต่ก็ยังได้รับการอ้างอิงถึงสไปรต์แต่ละรายการ มันทำโดยการตั้งค่าโหมดสไปรท์ไปหลาย Sprite ทั้งหมดที่สร้างจากไฟล์ต้นแบบสามารถเข้าถึงได้ทางโปรแกรมจาก Unity Sprite Editor หรือไม่? ตัวอย่างเช่นฉันมีสไปรต์แผ่นชีทพร้อมกริดสไปรต์ 50x50 การใช้ความสามัคคีสไปรท์, Editor ตอนนี้ผมมี 250 spritesheet_0, spritesheet_1, ..., spritesheet_249สไปรท์: ฉันจะจัดการได้spritesheet_102โดยไม่ต้องลากและวางด้วยตนเองในเครื่องมือแก้ไข Unity ได้อย่างไร

3
C # และ UnityScript แตกต่างกันอย่างไรในการพัฒนา Unity [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา นอกเหนือจากความแตกต่างทางภาษาที่ชัดเจนแล้ว UnityScript และ C # แตกต่างกันอย่างไรเมื่อพัฒนาเกมใน Unity3D มีความแตกต่างด้านประสิทธิภาพที่เห็นได้ชัดเจนหรือไม่? รหัส UnityScript ถูกทำแพคเกจตามที่เป็นอยู่หรือไม่? ถ้าใช่สิ่งนี้จะช่วยให้การดัดแปลงเกมทำได้หรือไม่? เป็นไปได้ไหมที่จะใช้ห้องสมุดที่พัฒนาขึ้นสำหรับภาษาหนึ่งขณะที่พัฒนาในอีกภาษาหนึ่ง? สามารถผสมสองภาษาในโครงการ Unity เดียวกันได้หรือไม่ การเขียนโค้ดบางส่วนใน C # และอื่น ๆ ใน UnityScript?

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

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

4
มุมมอง“ คนที่สอง” จะประกอบด้วยอะไร?
เรื่องเล่าดั้งเดิมมีหนึ่งในสามของมุมมอง: คนแรก ( I fought the monster) บุคคลที่สอง ( You fought the monster) บุคคลที่สาม ( He/She/It fought the monster) มุมมองบุคคลที่หนึ่งและบุคคลที่สามมีความแพร่หลายมากในวิดีโอเกม แต่ฉันต้องสงสัยว่ามุมมองบุคคลที่สองจะเป็นอย่างไร คนแรก ( 'I' am the character, seeing through 'my' eyes) บุคคลที่สอง (???) บุคคลที่สาม ( He/She/It is the character, seen through a third party's eyes) สิ่งเดียวที่ฉันคิดได้ก็คือเกมที่มุมมองเป็นตัวละครที่คุณไม่ได้ควบคุมโดยตรงซึ่งมักจะเป็น (เสมอ?) ดูตัวละครที่คุณเป็น แต่นั่นจะแตกต่างจากมุมมองบุคคลที่สามด้วยกล้องที่มีข้อ จำกัด …

2
ฉันจะจัดการกับทรัพยากรที่ขาดหายไปได้อย่างไร
เกมของคุณคาดว่าจะโหลดเนื้อหาบางอย่าง แต่ไม่พบ สถานการณ์ควรจัดการอย่างไร? ตัวอย่างเช่น: Texture* grassTexture = LoadTexture("Grass.png"); // returns NULL; texture not found Mesh* car = LoadMesh("Car.obj"); // returns NULL; 3D mesh not found อาจถูกลบโดยผู้ใช้โดยไม่ได้ตั้งใจเสียหายหรือสะกดผิดในระหว่างการพัฒนา คำตอบที่เป็นไปได้: ยืนยัน (นึกคิดเฉพาะในระหว่างการพัฒนา) ออกจากเกมอย่างสง่างาม โยนข้อยกเว้นและพยายามจัดการ วิธีไหนดีที่สุด

5
ประโยชน์ของการกำหนดเฟรมต่อวินาทีคืออะไร (ถ้ามี)
ฉันกำลังทำงานกับเกมง่ายๆใน OpenGL โดยใช้ SDL สำหรับการเริ่มต้นการแสดงผลและการป้อนข้อมูลและปรากฏในแง่ของเวลาที่ฉันมีสองตัวเลือกให้ฉัน หมายเลขหนึ่งที่กำลังนอนหลับสำหรับ optimTimePerFrame - theTimeTakenToRender, เมื่อ optimTimePerFrame ในวินาที = 1 / theFramerateCap (ฉันไม่แน่ใจว่าสิ่งนี้จำเป็นหรือไม่เพราะมันเทียบเท่ากับการใช้ vsync ซึ่งอาจแม่นยำกว่านี้ถ้าการสันนิษฐานของฉันถูกต้องกรุณาบอกฉันทีว่า SDL + OpenGL มี vsync เป็นค่าเริ่มต้นหรือไม่อย่างไร เพื่อเปิดใช้งาน) ส่วนอีกอันคือการวัดเวลาตั้งแต่เฟรมสุดท้ายแสดงผลและปรับการเคลื่อนไหวตามนั้น (เวลาที่สั้นลงในการเรนเดอร์เฟรมจะทำให้เอนทิตีน้อยเคลื่อนไปในเฟรมนั้น) ในแง่ของประสิทธิภาพและการลดการสั่นไหว ฯลฯ ข้อดีและข้อเสียของสองวิธีนี้คืออะไร
13 opengl  sdl  frame-rate  vsync 

3
วิธีสร้างเส้นทางที่ดูเป็นธรรมชาติด้วย A * บนกริด
ฉันได้อ่านสิ่งนี้แล้ว: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html แต่มีบางสิ่งที่ฉันไม่เข้าใจตัวอย่างเช่นบทความบอกว่าใช้สิ่งนี้เพื่อการตัดเส้นด้วยการเคลื่อนไหวในแนวทแยง: function heuristic(node) = dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * max(dx, dy) ฉันไม่รู้ว่าจะตั้งค่า D ให้เป็นเส้นทางที่ดูเป็นธรรมชาติได้อย่างไรในบทความฉันตั้งค่า D เป็นต้นทุนที่ต่ำที่สุดระหว่างสี่เหลี่ยมที่อยู่ติดกันอย่างที่มันบอกไว้และฉันไม่รู้ว่าพวกเขาหมายถึงอะไรเกี่ยวกับฮิวริสติก เป็น 4 * D ที่ดูเหมือนจะไม่เปลี่ยนแปลงอะไร นี่คือฟังก์ชันฮิวริสติกของฉันและฟังก์ชั่นย้าย: def heuristic(self, node, goal): D = 5 dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return …

2
ฉันควรจะใช้สไปรต์ฮีตเพราะรูปภาพจำนวนมากมายของฉันหรือไม่?
ฉันกำลังพัฒนาเกม 2D และฉันมีสไปรต์มากมาย ฉันใช้ภาพเคลื่อนไหวและโมเดล 3 มิติเพื่อแสดงเป็น 2D เพื่อให้พวกเขาเห็นว่า "Fallout" หรือ "Diablo" นอกจากนี้ยังง่ายกว่าการวาดด้วยมือฮ่า ๆ ฉันต้องลดอัตราเฟรมลงเหลือ 15 เฟรมต่อวินาทีซึ่งต่ำที่สุดที่ฉันสามารถลดได้โดยไม่ทำให้พวกเขาดูขาด ๆ หาย ๆ อย่างไรก็ตามมันเป็นเรื่องน่าเศร้าเนื่องจากมี 24 เฟรมที่ดูราบรื่น มีสองเหตุผลที่ฉันทำสิ่งนี้: 1) ลดพื้นที่ HDD ยิ่งภาพน้อยลงเท่าไหร่เกมของฉันก็ยิ่งเล็กลงเท่านั้น 2) ลดปริมาณการใช้ RAM ยิ่งฉันโหลดภาพน้อยลงเท่าไหร่ฉันก็ยิ่งมีแนวโน้มที่จะหลีกเลี่ยงปัญหาที่ทำให้เกิดข้อ จำกัด RAM ของฉันมากขึ้นเท่านั้น อย่างไรก็ตามหากมีวิธีการบีบอัดภาพในพื้นที่ HDD และ RAM ฉันจะทำเช่นนั้น ฉันได้ทำการทดสอบมาก่อนและส่วนใหญ่ไม่ได้รับการเปลี่ยนแปลงคุณภาพใด ๆ เมื่อให้จาก RGBA8888 เป็น RGBA5555 และมีการเข้าชมเพียงเล็กน้อยเมื่อแปลงเป็น RGBA4444 ในโปรแกรม TexturePacker ของฉัน …

6
ทำไมฉันถึงห้ามการซื้อขายด้วยเงินจริงใน MMO ของฉัน
ฉันกำลังจะเปิดเผยสู่สาธารณะในเกม MMO และขณะนี้ฉันกำลังเขียนข้อกำหนดการใช้งานฉันคาดว่าผู้เล่นจะติดตาม (ไม่สบถไม่มีสแปมไม่มีการโกง ... คุณเข้าใจแล้ว) เกมของฉันอนุญาตให้ผู้เล่นแลกเปลี่ยนไอเท็มหายากซึ่งกันและกัน ฉันสังเกตเห็นว่าเกือบทุกเกมออนไลน์ที่มีการซื้อขายมักจะมีประโยคในเงื่อนไขการใช้งานที่ห้ามผู้เล่นทำการซื้อขายไอเท็มในเกมหรือใช้เงินในสกุลเงินจริง ฉันสงสัยเกี่ยวกับเหตุผลของกฎนี้ ทำไมคุณควรแบนการซื้อขายด้วยเงินจริงใน MMO

1
การบัญชีสำหรับคลื่นเมื่อทำการสะท้อนระนาบ
ฉันได้ศึกษาตัวอย่างของ Nvidia จาก SDK โดยเฉพาะโครงการIsland11และฉันพบบางสิ่งที่อยากรู้เกี่ยวกับรหัส HLSL ชิ้นหนึ่งซึ่งแก้ไขการสะท้อนขึ้นและลงตามสถานะความสูงของคลื่น โดยธรรมชาติหลังจากตรวจสอบย่อหน้าสั้น ๆ ของรหัส: // calculating correction that shifts reflection up/down according to water wave Y position float4 projected_waveheight = mul(float4(input.positionWS.x,input.positionWS.y,input.positionWS.z,1),g_ModelViewProjectionMatrix); float waveheight_correction=-0.5*projected_waveheight.y/projected_waveheight.w; projected_waveheight = mul(float4(input.positionWS.x,-0.8,input.positionWS.z,1),g_ModelViewProjectionMatrix); waveheight_correction+=0.5*projected_waveheight.y/projected_waveheight.w; reflection_disturbance.y=max(-0.15,waveheight_correction+reflection_disturbance.y); การคาดเดาครั้งแรกของฉันคือมันชดเชยการสะท้อนภาพถ่ายเมื่อถูกก่อกวนในแนวดิ่ง (คลื่น) ขยับเรขาคณิตที่สะท้อนกลับไปยังจุดที่ไม่มีอะไรเกิดขึ้นและน้ำจะปรากฏขึ้นราวกับว่าไม่มีอะไรอยู่หรือแค่ท้องฟ้า: ทีนี้, นั่นคือท้องฟ้าที่สะท้อนให้เห็นซึ่งเราควรเห็นการสะท้อนสีเขียว / เทา / เหลืองของภูมิประเทศที่ lerped กับแนวของน้ำ ปัญหาของฉันคือตอนนี้ฉันไม่สามารถระบุได้ว่าอะไรคือตรรกะที่อยู่เบื้องหลัง การคาดการณ์ตำแหน่งอวกาศของโลกที่แท้จริงของจุดของรูปคลื่น / น้ำแล้วคูณด้วย -.5f …

3
สร้างลุคแบบแบนราบนี้ใหม่
ฉันจะทำให้มันสั้น เราจะบรรลุผลที่ปรากฎในภาพด้านล่างได้อย่างไร? เป็นไปได้ไหมที่จะทำแบบเรียลไทม์? มันดูเรียบง่ายหลอกลวง แต่อาจไม่ใช่ มีคำหลักใดบ้างที่ฉันสามารถค้นหาเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการเขียนโปรแกรม shaders เพื่อให้ได้ลักษณะนี้ ขอบคุณ

3
วัตถุของอาร์เรย์หรืออาร์เรย์ของวัตถุ?
ฉันกำลังสร้างเกมซิมการจัดการบางอย่างตามแนวของ Roller Coaster Tycoon ฉันต้องการทราบว่าวิธีที่ดีที่สุดในการจัดโครงสร้างวัตถุในโลกของฉันคืออะไรเพื่อเพิ่มประสิทธิภาพ สมมติว่าฉันมี 5,000 คนในเกมของฉันฉันสามารถ: ทำวัตถุและเก็บไว้ในอาร์เรย์อย่างนั้น class person() { this.x = 0; this.y = 0; this.thirst = 15; this.hunger = 15; // etc.. add methods: public findPath(int destX, int destY) { // and so on } people = new person[5000]; for (int = 0; i < 5000; …

1
กระบวนการสร้างเกม PS4 เป็นอย่างไร
ตอนนี้ Sony ได้กล่าวว่า devs สามารถเผยแพร่ด้วยตนเองสำหรับ PS4 ได้ฉันพนันได้ว่าผู้คนจำนวนมากจะสนใจผลิตเกมสำหรับแพลตฟอร์มนั้น กระบวนการรับ SDK เอกสารและสภาพแวดล้อมการทดสอบสำหรับ PS4 เป็นอย่างไร

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