การพัฒนาเกม

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

1
แสดงผลน้ำมัน / น้ำเสีย?
ตัวช่วยสร้าง shader ใด ๆ ออกไปมีความคิดว่าจะทำเอฟเฟกต์น้ำที่มันหรือมีมลภาวะได้อย่างไรเช่นนี้: ตามหลักการแล้วน้ำจะไม่เป็นน้ำมันอย่างสม่ำเสมอ แต่สามารถสร้างน้ำมันได้จากแหล่งกำเนิดบางแหล่ง (เช่นท่อระบายน้ำเสียจากโรงงานเคมี) จากนั้นกระจายไปทั่วร่างกายน้ำ ความคิดของฉันสำหรับส่วนนี้คือการเก็บ "แผนที่น้ำมัน" เป็นพื้นผิว 2D ที่กำหนดความหนาแน่นของน้ำมันในแต่ละจุดบนผิวน้ำ มันจะกระจายและเคลื่อนที่ตามธรรมชาติด้วย water vel; ocity ณ จุดนั้น (ฉันมีการจำลองอนุภาคคลื่นสำหรับคลื่นแบบไดนามิกและฉันกำลังทำสิ่งที่คล้ายกับโฟมบนผิวน้ำ) อย่างไรก็ตามฉันไม่แน่ใจว่าร่างกายจะถูกต้องอย่างไรเนื่องจากน้ำมันอาจไม่เคลื่อนที่ด้วยความเร็วเท่ากับน้ำ และฉันก็ไม่รู้ว่าจะทำสี trippy เหล่านั้นได้อย่างไร :-) คิด?

4
มีอันตรายในการมีการวนลูปเกมหลักที่ควบคุมไม่ได้?
ฉันสงสัยว่ามีอันตรายใด ๆ ที่เป็นไปได้หรือไม่เมื่อลูปเกมของฉันทำงานเร็วเท่าที่ระบบอนุญาต ขณะนี้ฉันมีลูปซึ่งโดยการวัดเวลาที่ผ่านไปในหน่วยนาโนวินาทีเรียกใช้ตรรกะของเกมและตรรกะการเรนเดอร์ด้วยความเร็วที่กำหนดไว้ล่วงหน้าโดยไม่มีปัญหา ในความเป็นจริงตรรกะใด ๆ ที่ฉันทำในการวนซ้ำนั้นถูกโอเวอร์คล็อกไปที่การโทรในแต่ละวินาที การวนซ้ำตัวเองนั้นวิ่งได้เร็วเท่าที่มันชอบซึ่งมีประมาณ 11.7 ล้านลูปต่อวินาทีในเครื่องของฉัน วน (pseudocode ง่าย): while(!isGameOver){ if(canPollInputs){ pollInputs() } while(canStepLogic){ stepLogic() } if(canRender){ render() } } คำถามของฉันนั้นก็คือถ้าลูปแบบง่ายนั้นถ้ามันไม่ทำงานด้วยความเร็วที่ควบคุมสามารถทำอันตรายต่อระบบได้หรือไม่? แก้ไข: นั่นหมายความว่าตรรกะของฉันทำงาน 30 ครั้งต่อวินาที (30 tps), เครื่องมือแสดงภาพของฉันทำงานที่ 60 fps, ฉันสำรวจสัญญาณอินพุต 100 ครั้งต่อวินาทีและยังมีตรรกะบางอย่างที่จะรับมือกับตรรกะหรือการแสดงผลนานกว่าที่คาดไว้ . แต่ห่วงไม่ได้ควบคุมปริมาณ แก้ไข: การใช้Thread.sleep()เช่น Throttle การวนลูปหลักลงไปที่ 250 ลูปต่อวินาทีนำไปสู่การลดลง แต่ลูปทำงานที่ประมาณ 570 ลูปต่อวินาทีแทนที่จะเป็น 250 ที่ต้องการ …

13
วิธีการรักษาในเกมสำรวจที่น่าสนใจ
ฉันกำลังสร้างเกมที่เน้นการสำรวจเป็นอย่างมากถึงแม้ว่าฉันจะสูญเสียการรักษาบ้าง ปัญหาคือฉันไม่ชอบความคิดของศัตรูที่ปล่อยพลังชีวิตแบบสุ่มเพราะจะส่งผลให้มีการบดเมื่อมีสุขภาพต่ำและไม่อยู่ใกล้กับสถานีบำบัด (Metroid, Axiom Verge) และฉันไม่ต้องการคัดลอกวิญญาณ / ระบบโฟกัสจาก Hollow Knight (ระบบการต่อสู้ถูกขโมยไปแล้วโดยฉัน: 3) แต่ Hollow Knight เป็นเกมเดียวที่ฉันได้เล่นโดยเน้นการสำรวจที่ทำให้การรักษาน่าสนใจ ฉันเคยคิดที่จะสร้างระบบอัตโนมัติขึ้นมาใหม่ แต่ก็สามารถนำไปสู่ผู้เล่นที่ขี้ขลาดในระหว่างการต่อสู้ของบอสในขณะที่พวกเขารักษาและนั่นจะทำให้การเล่นเกมหยุดชะงักลง ฉันได้พิจารณาบางสิ่งเช่นการตีศัตรูรักษา 1 / 8th ของจุดสุขภาพ แต่สิ่งนี้นำไปสู่ผู้เล่นรู้สึกเครียดน้อยลงหลังจากที่พวกเขาได้รับ 1 / 8th ซึ่งจะทำให้พวกเขาตายจากการถูกตีอีกครั้งและมัน ทำให้เกมรู้สึกเหมือนเป็นการกระทำผิดกฎหมายและการป้องกันเพียงเล็กน้อย ฉันยังคิดว่าไอเท็มเข้าใกล้ที่ผู้เล่นจะต้องกินอะไรหรือดื่มอะไรเพื่อรักษา แต่จริงๆแล้วมันไม่ได้กระตุ้นให้เกิดการรักษาเมื่อคุณหมดไอเท็มคุณไม่สามารถรักษาได้อีกต่อไปจนกว่าคุณจะได้รับมากขึ้น (ตำนาน ของ Zelda) ฉันยังไม่ได้รับการรักษาเลย แต่ฉันสังเกตเห็นว่าเมื่อสำรวจแล้วคุณจะตีเป็นใบ้ต่อหน้าเจ้านายอย่างหนักหรือเป็นคนใบ้ก่อนที่หัวหน้าจะได้รับความยากลำบาก ( ไอ Cuphead กระแอม ) ผู้เล่นจะกระทำอย่างใดอย่างหนึ่ง การฆ่าตัวตายหรือวิ่งกลับไปที่สถานีบำบัด ฉันจะทำอย่างไรเพื่อให้การรักษาน่าสนใจและไม่ทำลายการไหลของการเล่นเกม? นี่เป็น platformer 2D และการกระโดดเป็นสิ่งสำคัญในการต่อสู้

2
อะไรคือข้อแตกต่างระหว่างคลาสสไปรต์ของ Unity และ Texture2D
ความสามัคคีมีทั้งTexture2Dชั้นเรียนและSprite(ที่เกี่ยวข้องSpriteRenderer) อะไรคือความแตกต่างระหว่างสองคลาสนี้? ทั้งสองเป็นตัวแทนภาพสำหรับเกม 2D ฉันควรจะชอบเกมอื่นมากกว่าหนึ่งเกมหรือไม่? ความแตกต่างหลักระหว่างสองอย่างที่ใช้Spriteฉันไม่ต้องการสร้าง "บิลบอร์ด" รูปสี่เหลี่ยมตัวเองหรือไม่? และนั่นSpriteจะแสดงผลโดยตรงกับกล้องเสมอ?
19 2d  unity 

4
วิธีการป้องกัน“ การมองเห็นใต้น้ำ” ในเกม
ในหลาย ๆ เกมที่ผู้เล่นสามารถลงไปใต้น้ำได้ดูเหมือนว่าเมื่อคุณดูว่าครึ่งบนของหน้าจออยู่ในอากาศและครึ่งล่างของหน้าจออยู่ในน้ำมันเกือบจะเหมือนไม่มีน้ำและ ผู้เล่นคือ ... บินช้าพร้อมเสียงน้ำ? มีวิธีตรรกะในการแก้ปัญหานี้หรือไม่? อัลกอริทึม? ดูเหมือนจะยังไม่มีวิธีแก้ปัญหาใด ๆ เกิดขึ้นเนื่องจากหลาย ๆ เกมยังมีสิ่งนี้ ฉันไม่ต้องการทำผิดพลาดเหมือนกัน

1
ฟีเจอร์ใดเป็นของเอ็นจิ้นและอันไหนของเกม
ตอนนี้ฉันพบว่าตัวเองกำลังใช้งานและทดสอบคุณสมบัติใหม่สำหรับเอนจิ้นเกม 2D ของฉันโดยการเขียนโค้ดลงในเอ็นจิ้นโดยตรง ในขณะเดียวกันฉันมีเกมโชว์ที่มีการสนับสนุนการเขียนสคริปต์ซึ่งควรเรียกฟังก์ชั่นเอ็นจิ้น ฉันแนบเช่นการเคลื่อนไหวไทล์ถาวรกับคลาส Entity ในเอ็นจินแทนที่จะเขียนสคริปต์นี้โดยเฉพาะสำหรับเกม นี่เป็นการทำลายแนวคิดของเอ็นจิ้นทั่วไปที่ใช้สำหรับเกมมากกว่าหนึ่งเกม มีแนวทางปฏิบัติที่ดีที่สุดเพื่อมุ่งเน้นการใช้งานที่ถูกต้องในส่วนที่ถูกต้อง (นั่นคือเครื่องยนต์กับเกม) หรือไม่?

5
เมทริกซ์หมายถึงอะไร
ฉันเริ่มเรียนรู้ OpenGL เมื่อเร็ว ๆ นี้และฉันมีปัญหาในการมองเห็นว่าเมทริกซ์คืออะไรและบทบาทของพวกเขาในคอมพิวเตอร์กราฟิก รับแม่แบบของเมทริกซ์ 4x4 แบบนี้ ฉันคิดว่าแต่ละเมทริกซ์เช่นนี้เป็นพิกัดของจุดยอดในอวกาศโลก และหลายคนรวมตัวกันและให้ร่มเงาให้วัตถุ? แต่ทำไมจึงมีความXxเป็นXyและXz? ฉันอ่านว่าแกนที่แตกต่าง (ขึ้น, ซ้าย, ไปข้างหน้า) แต่ก็ยังไม่สามารถทำให้หัวหรือก้อยของความสำคัญ
19 opengl  matrix 

2
วิธีที่ดีที่สุดในการรับประสบการณ์การทำงาน C ++ สำหรับงานในเกม (มาจาก C #) [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นนักพัฒนาซอฟต์แวร์ที่มีประสบการณ์กับ C # (ประสบการณ์ 5 ปี) พร้อมกับภาษาอื่น ๆ "งานในฝัน" ของฉันทำงานในวิดีโอเกมในฐานะนักพัฒนาซอฟต์แวร์ งานส่วนใหญ่ต้องการความรู้เกี่ยวกับ C ++ ซึ่งฉันยังไม่มีในขณะนี้ (ยกเว้นพื้นฐานบางอย่าง) ฉันได้ดูไปรอบ ๆ และ บริษัท เกมใหญ่ ๆ ส่วนใหญ่ต้องการบางสิ่งในช่วง 3-5 ปีที่ผ่านมาของ C ++ คำถามของฉันคือ - อะไรจะเป็นเส้นทางที่ดีในการรับตัวเองสู่ระดับประสบการณ์ที่จำเป็นนี้มาจาก C # ฉันคิดถึงวิธีที่เป็นไปได้ที่จะทำ: รับความรู้เพิ่มเติมเกี่ยวกับ C ++ จากหนังสือ เข้าร่วมในโครงการโอเพนซอร์ซที่เขียนด้วย C ++ อะไรจะเป็นวิธีที่ดีที่สุดในการเรียนรู้ C ++ …

1
ต้นไม้พฤติกรรม :: การกระทำที่ใช้เวลานานกว่าหนึ่งขีด
จากสิ่งที่ฉันเข้าใจในต้นไม้พฤติกรรมพฤติกรรมแต่ละอย่างควรเป็นเป้าหมายสั้น ๆ ที่สามารถทำได้ในการทำซ้ำสองสามครั้ง ตัวอย่างเช่นด้านล่างเป็นรูปภาพของแผนผังพฤติกรรม: ตอนนี้ให้เราสมมติว่าพฤติกรรมDrive To Enemyใช้เวลามากกว่าสองสามซ้ำในต้นไม้ ดังนั้นในการขับผ่านไปยังศัตรูแต่ละครั้งจะถูกเรียกเพราะตอนนี้อยู่ในสถานะ ใช้งาน ปัญหาคือฉันต้องการเรียกEvade Enemyหาก Enemy อยู่ใกล้ ๆ และการพิจารณาว่าDrive To Enemyมักถูกเรียกว่าฉันไม่เคยได้รับโอกาสที่จะเรียกEvade Enemy ( ควรเรียกว่าหลีกเลี่ยงศัตรู ) ฉันควรสำรวจ Tree EACHผ่านไม่ว่า Action จะทำงานอะไร ฉันจะทำในสิ่งที่ถูกต้องหรือไม่ วิธีที่เหมาะสมในการจัดการพฤติกรรมดังกล่าวคืออะไร? ตอนแรกถูกถามใน Stackoverflow ความคิดที่นี่น่าจะเหมาะกว่าที่จะถามคำถามนี้
19 ai  game-loop  behavior 

5
วิธีบีบอัดเฟรมเกมตามภาพเคลื่อนไหวเฟรมให้น้อยที่สุดบนดิสก์
ฉันพัฒนาเกมเช่น Age of Empire (อาคารบนแผนที่) และสำหรับอาคารทุกหลังฉันมีแผ่นสไปรต์สำหรับภาพเคลื่อนไหว ฉันใช้ภาพเคลื่อนไหวแบบเฟรมต่อเฟรมเพื่อทำให้สิ่งมีชีวิตเคลื่อนไหว (ไม่ทราบวิธีอื่นใด) ฉันสังเกตเห็นว่าโฟลเดอร์ทรัพยากรของฉันมีขนาดใหญ่มากเนื่องจากภาพที่ฉันใส่เข้าไป เกมเช่น CoC และ Age of Empires มีขนาด apk ต่ำกว่า 50 Mg อย่างไร ฉันขาดอะไรบางอย่างที่นี่เมื่อพูดถึงการพัฒนาเกม ขอขอบคุณ แก้ไข: ข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่ฉันกำลังเผชิญ ฉันมีอนิเมชั่นที่วาดได้เป็นจำนวนมาก ฉันเลือกวิธีนี้เพราะมันเร็วที่สุดและได้ผลลัพธ์ตามที่ฉันต้องการ โดยพื้นฐานทุกสิ่งปลูกสร้างเป็นภาพเคลื่อนไหวที่วาดได้ซึ่งไฟล์ xml ของมันหมายถึง 8 ภาพวาด (8 ภาพ = 8 ไฟล์) พวกเขาทั้งหมดเป็น PNG เนื่องจากความโปร่งใส เนื่องจากฉันมีภาพมากกว่า 200 ภาพขนาด apk คือ 120 MB (และฉันยังไม่ได้ทำการคัดลอกไฟล์ครึ่งหนึ่ง) นั่นคือสิ่งที่พรอมต์จะต้องมีวิธีการแก้ปัญหา กรุณาช่วยพัฒนาเพื่อน

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

4
ตั้งค่าสตูดิโอเกมอินดี้ (สหราชอาณาจักร) ได้อย่างไร
ฉันอาศัยในสหราชอาณาจักรและกำลังมองหาที่จะตั้งสตูดิโอเกมของตัวเอง - โดยหลักแล้วตัวฉันเองทำงานจากที่บ้าน ฉันต้องการถามพวกคุณว่าขั้นตอนหรือกระบวนการที่ฉันต้องผ่านและทำเพื่อให้เกิดขึ้นโดยเฉพาะด้านกฎหมายของสิ่งต่าง ๆ จะเป็นการดีที่จะได้ยินจากคนที่เคยผ่านสิ่งนี้มาด้วยตัวเอง! จำเป็นต้องลงทะเบียนกับ HRMC เนื่องจากอาชีพอิสระเป็นสิ่งเดียวที่ฉันรู้ว่าฉันต้องทำ แต่มีอะไรอีกบ้าง: ฉันต้องลงทะเบียน / เครื่องหมายการค้าชื่อ บริษัท / สตูดิโอของตัวเองหรือไม่? ถ้าเป็นเช่นนั้นฉันจะทำสิ่งนี้และเสียค่าใช้จ่ายหรือไม่ หรือฉันจะเพียงแค่เริ่มใช้ชื่อตามที่เป็นอยู่หรือไม่? ฉันต้องทำเช่นนี้กับเกม / แอพใด ๆ ที่ฉันทำหรือไม่ ลิขสิทธิ์จะถูกสมมติขึ้นโดยอัตโนมัติหรือไม่ ฉันรวมตัวกันทำหน้าที่เป็นผู้ค้ารายเดียวเหมาะสมกว่าในขั้นตอนนี้หรือไม่ ฉันควรพิจารณาย้ายที่ตั้ง บริษัท จริงหรือไม่ ณ จุดใด? คุณควรเปิดบัญชีธนาคารใหม่สำหรับธุรกิจนี้หรือไม่? ฉันคิดว่าแผนของฉันเป็นเพียง: 1. ค้นหาชื่อโดเมนที่เหมาะสมและสร้างเว็บไซต์ตามชื่อ บริษัท ของฉัน - สมมติว่ามีและแตกต่างจากชื่อคู่แข่งที่คล้ายกันมากพอ 2. ลงทะเบียนด้วยตนเองที่มี HRMC 3. ขายเกมของฉันใน app store และนั่นมัน! สิ่งนี้ใช้ได้หรือไม่ฉันต้องพิจารณาสิ่งอื่น ๆ ด้วยเช่นคำถามด้านบนหรือไม่ ขอบคุณสำหรับการอ่านและคำแนะนำใด …
19 legal  business 

4
การแสดงแผนที่ทรงกลม
เกมล่าสุดของฉันจะเกิดขึ้นบนดาวเคราะห์น้อยขนาดเล็ก ฉันกำลังมองหาโครงสร้างข้อมูลที่ดีสำหรับการแสดงเซลล์บนพื้นผิวของทรงกลม สามเหลี่ยม, สี่เหลี่ยม, เพนตากอน, รูปหกเหลี่ยม? อันไหนที่ย่อเล็กสุดยืดได้มากที่สุดและสร้างกระเบื้องได้ดีที่สุด? การแมปทรงกลมนั้นง่ายที่สุด แต่การยืดที่เสานั้นไม่สามารถยอมรับได้ การทำแผนที่คิวบ์นั้นค่อนข้างง่าย แต่ก็ยังคงมีอยู่ใกล้กับมุมลูกบาศก์ การแบ่งย่อยของ icosahedron นั้นดูดีที่สุดในแง่ของการยืด แต่มีปัญหาในการทำดัชนีอาร์เรย์แบบสามเหลี่ยมจำนวนมากและการค้นหาเซลล์ใกล้เคียงที่ขอบเขตนั้นอาจเป็นเรื่องยาก ฉันเดาว่าฉันสามารถใช้อาเรย์แบบเชิงเส้นเดียวที่เป็นตัวแทนของ N-gons แต่ละอันมีดัชนีของเพื่อนบ้าน N แต่ดูเหมือนว่าจะเสียพื้นที่จำนวนมาก เกมดังกล่าวมีองค์ประกอบ RTS ดังนั้นฉันจะจัดเก็บสิ่งต่าง ๆ เช่นแผนที่มีอิทธิพลและการแสดง A * pathfinding และ convolution ดังนั้นการแสดงจึงต้องมีประสิทธิภาพ
19 maps  sphere 

5
OpenGL: ทำไมฉันต้องตั้งค่าปกติด้วย glNormal
ฉันกำลังเรียนรู้พื้นฐานของ OpenGL แต่ฉันสงสัยว่าทำไมมีการเรียกglNormalให้ตั้งค่าจุดยอดนิยมตามปกติ ถ้าฉันสร้างสามเหลี่ยมอย่างง่ายเช่นนี้: glBegin(GL_TRIANGLES); glVertex3f(0,0,0); glVertex3f(1,0,0); glVertex3f(0,1,0); glEnd(); ไม่ควรกำหนดบรรทัดฐานโดยปริยายโดยชนิดของเรขาคณิตดั้งเดิม? หากฉันไม่ได้ตั้งค่าปกติ OpenGL จะคำนวณหรือไม่
19 opengl  normals 

4
ทำไมต้อง Y ในหลาย ๆ เกม
ฉันเรียนที่โรงเรียนว่าแกน z หมดแล้ว มันเหมือนกันในซอฟต์แวร์การสร้างแบบจำลองเช่น Blender อย่างไรก็ตามในหลาย ๆ เกมแกน y นั้นเพิ่มขึ้น เหตุผลคืออะไร

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