การพัฒนาเกม

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

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

3
จะค้นหาเส้นทางผ่านสิ่งกีดขวางได้อย่างไร
วิธีแสดงสถานการณ์ต่อไปนี้ดีที่สุด - agent ( @) จำเป็นต้องไปถึงเป้าหมาย ( $) เส้นทางถูกบล็อกโดยคูเมือง ( ~~~) มีคราด (หรืออุปกรณ์อื่น ๆ เช่นรองเท้าบูทน้ำ) ที่จะทำให้สามารถข้ามสิ่งกีดขวางได้ .....~~~... . ground ...=.~~~... = rake .....~~~.$. ~ water .@...~~~... @ agent .....~~~... $ goal วิธีการหาเส้นทางอย่างถูกต้องจาก@ไปยังที่$ระบุไม่มีเส้นทางที่พร้อมใช้งานทันทีหรือไม่ เส้นทางของฉันควรมีค่าใช้จ่ายไม่เพียง แต่ยังจำเป็นต้องมี? UPD : ปัญหาคือเป้าหมายไม่สามารถเข้าถึงได้และเรคเป็นเพียงหนึ่งในวัตถุที่เป็นไปได้มากมายบนแผนที่ คำถามคือ "ทำอย่างไรให้ตัวแทนเข้าใจว่าต้องการคราด"
10 ai  path-finding 

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

4
กลไกการย้อนเวลาในเกม
ฉันสงสัยว่ากลไกการจัดการเวลาในเกมได้รับการออกแบบโดยทั่วไปอย่างไร ฉันมีความสนใจเป็นพิเศษในการย้อนเวลา (เรียงลำดับเหมือนใน SSX ล่าสุดหรือ Prince of Persia) เกมดังกล่าวเป็นเกมยิงจากบนลงล่าง 2D กลไกที่ฉันพยายามออกแบบ / นำไปใช้มีข้อกำหนดดังต่อไปนี้: 1) การกระทำของเอนทิตีนอกเหนือจากตัวละครของผู้เล่นนั้นกำหนดขึ้นอย่างสมบูรณ์ การกระทำที่เอนทิตีทำจะขึ้นอยู่กับเฟรมที่ดำเนินไปตั้งแต่ระดับเริ่มต้นและ / หรือตำแหน่งของผู้เล่นบนหน้าจอ หน่วยงานจะเกิดในเวลาที่กำหนดในระหว่างระดับ 2) Time reverse ใช้งานได้โดยย้อนกลับแบบเรียลไทม์ การกระทำของผู้เล่นจะถูกย้อนกลับมันจะย้อนกลับในสิ่งที่ผู้เล่นทำ ผู้เล่นไม่มีการควบคุมในช่วงเวลาถอยหลัง ไม่มีการ จำกัด เวลาที่ใช้ในการย้อนกลับเราสามารถย้อนกลับไปจนถึงจุดเริ่มต้นของระดับได้ถ้าต้องการ ตัวอย่างเช่น: เฟรม 0-50: ผู้เล่นเคลื่อนที่ foward 20 หน่วยในเวลานี้ศัตรู 1 วางไข่ที่เฟรม 20 ศัตรู 1 ย้ายซ้าย 10 หน่วยระหว่างเฟรม 30-40 ผู้เล่นยิงกระสุนที่เฟรม 45 กระสุนเดินทาง 5 foward (45-50) …

2
การใช้แผนที่ / ภูมิประเทศแบบเรียงต่อกันที่มีความสูงแตกต่างกันของแผ่นกระเบื้องข้างเคียง
Ahoy! ฉันกำลังมองหาข้อมูลบางอย่างเกี่ยวกับแผนที่ย่อยหรือค่อนข้างที่เรียกว่าแผนที่ประเภทเฉพาะ ฉันสนใจชนิดของการใช้งานที่ใช้ในเกม tycoon หรือเกมการขนส่งที่มีผู้ประกอบการและได้รับการดูลงในภูมิประเทศเวกเตอร์ฟิลด์และภูมิประเทศแผนที่ความสูง แต่ฉันไม่แน่ใจว่าพวกเขาเหมาะสมกับสิ่งที่ฉันต้องการ พัฒนา. มันเป็นการยากที่จะหาข้อมูลที่เหมาะสมเพราะคนส่วนใหญ่อ้างถึงเป็นแผนที่เรียงภาพสามมิติ แต่ฉันต้องการสร้างบางสิ่งในรูปแบบสามมิติด้วยมุมมองแบบออโธกราฟแบบคงที่ ฉันเข้าใจว่าที่เก็บข้อมูลพื้นฐานของแผนที่ย่อยไม่มีส่วนเกี่ยวข้องกับวิธีการแสดงผล แต่ฉันไม่ต้องการสร้างแผนที่ย่อยแบบสองมิติเช่นเกมโปเกมอน / เกมเซลด้าของโรงเรียนเก่ามากขึ้นตามแนวของ diablo ที่มีความสามารถในการรวม หน้าผาที่ยื่นออกมาและภูมิประเทศที่ลาดชัน ฉันแค่พยายามค้นหาคำศัพท์ที่เหมาะสมเพื่อค้นหา google และ stackoverflow เพื่อหาแหล่งข้อมูลเพื่อช่วยฉันตัดสินใจเลือกเส้นทางที่จะดำเนินการต่อไป จนถึงตอนนี้ฉันได้จัดการแผนที่แบบพื้นฐานโดยไม่ใช้ส่วนประกอบความสูง / y ที่เก็บไว้ใน VBO และแสดงผลเป็นแบบโครงลวด สิ่งนี้ดูดีมาก แต่ฉันคิดว่าฉันจะพบปัญหาเมื่อพยายามใช้จุดสุดยอดเดียวเพื่อสร้างหน้าผาและเนินเขาโดยไม่กระทบกับกระเบื้องข้างเคียง มีการใช้งานเฉพาะประเภทที่ฉันควรพิจารณาหรือไม่ ฉันคิดว่าฉันแคร็กมันเมื่อฉันพบว่ามีจำนวนที่ยุติธรรมถ้าข้อมูลในพื้นที่ทุ่งเวกเตอร์ แต่ฉันไม่แน่ใจว่าสิ่งนี้จะให้ผลลัพธ์ที่ถูกต้องเช่นกัน หากใครก็ตามที่สามารถปลดปล่อยแสงนี้ให้ฉันได้โปรดความช่วยเหลือจะได้รับการชื่นชมอย่างมาก :) ปรับปรุง ฉันได้รวมรูปภาพเพื่อการชี้แจงเพิ่มเติมเกี่ยวกับสิ่งที่ฉันต้องการบรรลุ: ภาพที่ยืมมาจากวิธีสร้างภาพวาดสามมิติแบบเอียง (สูง) ภาพนี้แสดงประเภทของภูมิประเทศที่ฉันต้องการสร้าง แต่ไม่รวมถึง "หน้าผา" หรือภูมิประเทศที่ยื่นออกมาที่ฉันสนใจในการสร้างแบบจำลอง อย่างไรก็ตามจะเพิ่มคำถามอื่นอีกสองสามข้อที่ฉันไม่ได้พิจารณาคือ 'เลเยอร์' เช่นน้ำ (มุมบนซ้ายของภาพ) จะถูกจัดการอย่างไรเพื่อรวมพื้นดินที่มองเห็นใต้น้ำ "ขอบ" ของแผนที่จะได้รับการจัดเตรียมอย่างไรเพื่อที่ว่าโลก / …

2
กลยุทธ์สำหรับการย้ายตรรกะการเรนเดอร์ออกจากคลาส GameObject
เมื่อสร้างเกมคุณมักจะสร้างวัตถุเกมต่อไปนี้ซึ่งหน่วยงานทั้งหมดได้รับมา: public class GameObject{ abstract void Update(...); abstract void Draw(...); } ดังนั้นในการอัพเดทลูปคุณวนซ้ำทุกออบเจ็กต์เกมและให้โอกาสพวกเขาเปลี่ยนสถานะจากนั้นในการวาดลูปถัดไปให้คุณวนซ้ำอีกครั้งกับออบเจ็กต์เกมทั้งหมดและให้โอกาสพวกเขาวาดตัวเอง แม้ว่าวิธีนี้จะทำงานได้ค่อนข้างดีในเกมง่ายๆที่มีตัวเรนเดอร์แบบง่ายมันมักจะนำไปสู่วัตถุเกมขนาดยักษ์สองสามตัวที่จำเป็นต้องจัดเก็บแบบจำลองพื้นผิวที่หลากหลายและแย่ที่สุดของวิธีการวาดไขมันทั้งหมด กลยุทธ์การเรนเดอร์ปัจจุบันและคลาสการเรนเดอร์ใด ๆ ที่เกี่ยวข้อง ถ้าฉันจะเปลี่ยนกลยุทธ์การเรนเดอร์จากไปข้างหน้าเป็นการเลื่อนออกไปฉันจะต้องอัปเดตออบเจกต์เกมจำนวนมาก และวัตถุเกมที่ฉันทำไม่สามารถนำกลับมาใช้ใหม่ได้อย่างที่ควรจะเป็น แน่นอนว่าการสืบทอดและ / หรือการแต่งเพลงสามารถช่วยฉันต่อสู้กับการทำสำเนารหัสและทำให้มันง่ายขึ้นเล็กน้อยในการเปลี่ยนการใช้งาน แต่ก็ยังรู้สึกขาด วิธีที่ดีกว่าอาจจะเป็นการลบวิธีการดึงออกจากคลาส GameObject ทั้งหมดและสร้างคลาส Renderer GameObject ยังคงต้องมีข้อมูลบางอย่างเกี่ยวกับการมองเห็นของมันเช่นสิ่งที่รูปแบบที่จะเป็นตัวแทนด้วยและสิ่งที่ควรจะทาสีพื้นผิวในรูปแบบ แต่วิธีการทำจะถูกปล่อยให้แสดง อย่างไรก็ตามมีกรณีชายแดนจำนวนมากในการเรนเดอร์ดังนั้นแม้ว่านี่จะเป็นการลบการเชื่อมต่ออย่างแน่นหนาจาก GameObject ไปยัง Renderer Renderer จะยังคงต้องรู้เกี่ยวกับวัตถุทั้งหมดของเกมซึ่งจะทำให้อ้วนทุกคนรู้และ แน่นคู่ สิ่งนี้จะละเมิดแนวปฏิบัติที่ดีไม่กี่อย่าง บางที Data-Oriented-Design อาจทำเรื่องหลอกลวงได้ วัตถุในเกมจะเป็นข้อมูลแน่นอน แต่ตัวแสดงผลจะได้รับแรงผลักดันจากสิ่งนี้อย่างไร ฉันไม่แน่ใจ. ดังนั้นฉันจึงสูญเสียและไม่สามารถคิดทางออกที่ดีได้ ฉันพยายามใช้หลักการของ MVC และในอดีตฉันมีความคิดบางอย่างเกี่ยวกับวิธีการใช้สิ่งนั้นในเกม แต่เมื่อเร็ว ๆ นี้ดูเหมือนจะไม่เหมาะสมเท่าที่ฉันคิด …

2
Unity Occlusion Portals: อะไรและอย่างไร
(ที่นี่ฉันกินคำของฉันใน Meta เกี่ยวกับการโพสต์คำถาม Unity ใน Unity Answers ... เนื่องจากไซต์นั้นตอบสนองน้อยกว่านี้) Unity นำเสนอ Culling บนพื้นฐานของเซลล์ (ผ่าน Umbra ฉันเชื่อว่า) อย่างไรก็ตามฟีเจอร์ใหม่ที่รองรับคือ Occlusion Portals คำถามคือหากการเลือกสรรการบดเคี้ยวที่ใช้ BSP เป็นคุณสมบัติของ Unity อยู่แล้วพอร์ทัลจะเพิ่มอะไรและอย่างไร PS คำถามนี้ไม่ใช่ "พอร์ทัลคืออะไร" - ฉันตระหนักถึงพอร์ทัลลักษณะ Quake BSP ดั้งเดิมซึ่งเป็นส่วนหนึ่งที่ฉันพบแนวคิดของพอร์ทัลที่ชัดเจนใน Unity คี่เนื่องจากมันใช้ BSP อยู่ดี


1
สิ่งที่จะเป็นตัวกรองที่ดีในการสร้าง 'แม่เหล็ก deformers' จากแผนที่เชิงลึก?
ในโครงการของฉันฉันกำลังสร้างระบบสำหรับการเปลี่ยนรูปแบบตาข่ายที่มีรายละเอียดสูง (เสื้อผ้า) เพื่อให้พอดีกับตาข่ายนูน ในการทำเช่นนี้ฉันใช้แผนที่ความลึกของรายการและ 'ฮัลล์' เพื่อพิจารณาว่าจุดใดในอวกาศโลกที่เกิดการเบี่ยงเบนและขอบเขต เพียงแค่เปลี่ยนจุดยอดที่เกิดขึ้นทั้งหมดให้เป็นความลึกตามที่กำหนดโดย 'ฮัลล์' นั้นมีประสิทธิภาพพอสมควรและมีประสิทธิภาพที่ดี แต่มันประสบปัญหาในการไม่รักษาคุณสมบัติของตาข่ายและต้องการการคัดที่กว้างขวางเพื่อหลีกเลี่ยง ฉันต้องการสร้างจากแผนที่เบี่ยงเบนเชิงลึกชุด 'deformers' ที่เรียบง่ายซึ่งจะ 'ดัน' * จุดยอดทั้งหมดของตาข่ายที่ผิดรูปออกไปด้านนอก (ในอวกาศโลก) ด้วยวิธีนี้คุณสมบัติทั้งหมดของตาข่ายจะได้รับการเก็บรักษาไว้และไม่จำเป็นต้องมีฮิวริสติกแบบซับซ้อนเพื่อกำจัดจุดยอดที่ไม่เหมาะสม ฉันไม่แน่ใจว่าจะทำอย่างไรเกี่ยวกับการสร้างชุด deformer นี้ ฉันจินตนาการถึงบางสิ่งบางอย่างเช่นอัลกอริทึมที่พยายามจับคู่พื้นผิวทรงกลมกับแต่ละส่วนของการเบี่ยงเบนที่ต่อเนื่องกันในช่วงที่กำหนด แต่ไม่รู้ว่าจะเริ่มทำสิ่งนี้ได้ที่ไหน ใครสามารถแนะนำตัวกรองหรืออัลกอริทึมที่เหมาะสมสำหรับการสร้างตัวเปลี่ยนรูป? หรือจะใช้วิธีการ 'บีบอัด' แผนที่เชิงลึกอีกวิธีหนึ่ง (* กดเนื่องจากการปรับให้พอดีกับรูปร่างมนุษย์นูน 'ดังนั้น' การแปลงมีแนวโน้มที่จะเป็น 'ทรงกลม' จากมุมมองของพื้นผิว) แก้ไข:นี่คือภาพ / แผนภาพแนะนำอย่างถูกต้องที่แสดงให้เห็นถึงสิ่งที่ฉันพยายามที่จะบรรลุ นอกจากนี้ฉันควรพูดตั้งแต่คำถามนี้ถูกโพสต์ฉันทำงานมากขึ้นเกี่ยวกับปัญหานี้และแม้ว่าฉันไม่เคยแก้ไขวิธีการรับ deformers ที่ฉันได้ในที่สุดตัดสินใจว่าแผนที่เชิงลึกสำหรับสิ่งนี้ไม่เหมาะสมเป็น: หากตาข่ายที่ผิดรูปไม่สมบูรณ์เป็นไปได้ที่จะรับข้อความในแผนที่ที่มีความหมายว่าอยู่อีกด้านหนึ่งของตาข่ายนูน (เพราะไม่ถูกบดบังโดยผู้ที่อยู่ใกล้กับกล้องในด้านที่ถูกต้อง) ประสิทธิภาพไม่สูงอย่างที่ฉันหวังไว้เพราะต้องการแผนที่ 6 แผนที่ต่อการเปลี่ยนรูป ไม่ใช่ว่าสิ่งเหล่านี้จะแก้ไม่ตก แต่โซลูชันอื่น ๆ ซึ่งเกี่ยวข้องกับการทดสอบการชนกันของเมล็ดที่ทำงานบน GPU ทำให้ได้ผลลัพธ์ที่มีคุณภาพสูงกว่าและง่ายกว่ามากแม้ว่ามันอาจจะไม่เร็วก็ตาม …

3
การคำนวณความเฉื่อยเทนเซอร์
คำถามที่ซับซ้อนและยาวนิดหน่อยที่ฉันจะยอมรับฉันยังไม่ค่อยเข้าใจดีนักดังนั้นฉันจะพยายามอธิบายให้ดีที่สุดเท่าที่จะทำได้ เวอร์ชั่นย่อ:มีสูตร c ++ / physx ทั่วไปที่นั่นเพื่อคำนวณแรงเฉื่อยเทนเซอร์ตามรูปร่างของวัตถุหรือไม่? รุ่นยาว: สำหรับฟิสิกส์ของเราเราต้องระบุเทนเซอร์แรงเฉื่อย x, y และ z ในปัจจุบันวิธีที่เราทำมันก็แค่อัตราส่วนตามมวล ดังนั้นหากวัตถุยาวบนแกน X และบางบน Y และ Z และมวลเป็น 10,000 เราจะตั้งค่า Z และ Y เป็น 7000 และ X ถึง 3000 (นี่ไม่แน่นอน แต่เพื่อให้ความคิด) วิธีนี้ใช้งานได้ค่อนข้างดี แต่ปัญหาที่ใหญ่ที่สุดของเราคือเมื่อมีความไม่แน่นอนของข้อต่อบางแห่งเราต้องคาดเดาที่เทนเซอร์จนกว่าเราจะรู้ว่าอะไรดีที่สุด สิ่งนี้อาจใช้เวลานานมากหากเรามีการจำลองทางฟิสิกส์ที่ยิ่งใหญ่มากและข้อต่อหนึ่งใน 20 ข้อทำให้ผู้อื่นเสียเสถียรภาพ สิ่งที่ฉันกำลังทำคือฟังก์ชั่นที่จะใช้กล่องขอบเขตของวัตถุและหวังว่าจะคำนวณเมตริกซ์ที่ค่อนข้างแม่นยำ ฉันใช้คณิตศาสตร์บางส่วนจากhttp://en.wikipedia.org/wiki/List_of_moment_of_inertia_tensorsและสร้างฟังก์ชั่นที่ทำงานคล้ายกับการหมุนข้างล่างนี้ หรือถ้าการหมุนสิ้นสุดแล้วเช่นนี้ ดังนั้นนี่ดูเหมือนจะให้ผลลัพธ์ที่คล้ายกับวิธีที่เราทำ แต่ฉันไม่ต้องการเปลี่ยนมาใช้วิธีนี้โดยไม่ทำให้แน่ใจว่ามันจะใช้งานได้ทั่วไป ด้านล่างเป็นรหัสสำหรับฟังก์ชั่นของฉันตามภาพแรกที่มีลูกบาศก์และเดือยกลาง NxVec3 CalculateInertiaTensor( VisBoundingBox_cl boundingBox, float …

3
ความรู้เกี่ยวกับกลไกการแฮ็คจำเป็นสำหรับ MMO หรือไม่?
บอกว่าฉันกำลังวางแผนในอนาคต (ไม่ใช่ตอนนี้มีมากฉันต้องเรียนรู้ก่อน) มองการมีส่วนร่วมในโครงการกลุ่มที่จะทำให้เกมออนไลน์หลายผู้เล่นจำนวนมาก (mmo) และงานของฉันจะเป็นเครือข่าย ส่วน. ฉันไม่คุ้นเคยกับการเขียนโปรแกรมเครือข่าย (ฉันได้อ่านหนังสือพื้นฐานมากเกี่ยวกับ PHP, MySQL และฉันยุ่งกับWAMPเล็กน้อย) ในช่วงที่ฉันเรียน PHP และ MYSQL ฉันควรจะดูแฮ็คไหม การแฮ็กในการสแกนพอร์ตการแฮ็กเราเตอร์ ฯลฯ ใน MMO ผู้คนมักจะพยายามโกงบอทและสถานการณ์เช่นนี้ แต่สถานการณ์ที่เลวร้ายที่สุดคือการมีคนแฮ็คฐานข้อมูล นี่เป็นเพียงความคิดของฉันในเรื่องนี้ฉันไม่รู้จริงๆ ฉันเข้าใจเครือข่ายค่อนข้างดีเช่น subnetting / ports / IP's (local / global) / etc ในความเห็นของคุณ (ถ้าคุณเข้าใจในหัวข้อ, ให้ความรู้แก่ฉัน) ฉันควรเรียนรู้เกี่ยวกับสิ่งเหล่านี้เพื่อตอบโต้ความเป็นไปได้ของเหตุการณ์นี้หรือไม่? นอกจากนี้จากสิ่งที่ฉันพูดถึง (การสแกนพอร์ตการแฮ็คเราเตอร์) มีอะไรอีกบ้างที่เกี่ยวข้องกับการแฮ็คที่ฉันควรพิจารณา ฉันไม่คุ้นเคยกับด้านที่เป็นอันตราย / ความปลอดภัยของระบบเครือข่าย และหมายเหตุ: ฉันไม่ใช่เด็กที่พยายามเรียนรู้วิธีแฮ็ก ฉันต้องการเรียนรู้ให้มากที่สุดก่อนที่ฉันจะไปโรงเรียนและฉันจำเป็นต้องรู้จริงๆว่าฉันต้องเรียนหรือไม่

2
ฉันจำเป็นต้องใช้การสนับสนุน IPv6 สำหรับเกมของฉันหรือไม่
ฉันจะใช้คุณสมบัติเครือข่ายสำหรับเกมที่ฉันกำลังทำงานอยู่ตอนนี้ฉันสงสัยว่าถ้าฉันต้องใช้การสนับสนุน IPv6 หรือเพียงแค่มีการสนับสนุน IPv4 ก็เพียงพอแล้ว
10 networking 

1
วิธีสร้าง shader พิกเซลแบบ "ย้อนยุค" สำหรับสไปรต์ 2D แบบเปลี่ยนรูปซึ่งรักษาความเที่ยงตรงของพิกเซลได้อย่างไร
ภาพด้านล่างแสดงสไปรต์สองรายการที่มีการสุ่มตัวอย่างแบบจุดบนพื้นหลัง: กะโหลกศีรษะด้านซ้ายไม่มีการหมุน / การปรับสเกลดังนั้นทุกพิกเซลจึงเข้ากันกับพื้นหลังอย่างสมบูรณ์ กะโหลกศีรษะด้านขวาจะหมุน / ปรับขนาดและผลในพิกเซลขนาดใหญ่ที่ไม่ได้แกนชิด ฉันจะพัฒนาตัวสร้างพิกเซลที่จะแสดงสไปรต์ที่ถูกแปลงทางด้านขวาด้วยพิกเซลที่จัดเรียงตามแนวแกนที่มีขนาดเท่ากับส่วนที่เหลือของฉากได้อย่างไร สิ่งนี้อาจเกี่ยวข้องกับวิธีการนำสไปรต์สเกลมาใช้ในเกมเก่า ๆ เช่น Monkey Island เพราะนั่นเป็นเอฟเฟกต์ที่ฉันพยายามจะทำ แต่มีการเพิ่มการหมุน แก้ไข ตามคำแนะนำของ kaoD ฉันพยายามที่จะแก้ไขปัญหาว่าเป็นกระบวนการหลังการขาย วิธีที่ง่ายที่สุดคือการเรนเดอร์ไปยังเป้าหมายการเรนเดอร์แยกต่างหากก่อน (ลดขนาดลงเพื่อให้ตรงกับขนาดพิกเซลที่ต้องการ) จากนั้นเพิ่มขนาดเมื่อทำการเรนเดอร์ครั้งที่สอง มันตอบสนองความต้องการของฉันด้านบน ครั้งแรกที่ฉันลองทำมันLinear -> Pointและผลลัพธ์ก็คือ: ไม่มีการบิดเบือน แต่ผลลัพธ์ดูเบลอและเสียสีส่วนใหญ่ไป ในความคิดของฉันมันแบ่งดูย้อนยุคที่ฉันต้องการ ครั้งที่สองที่ฉันลองPoint -> Pointและผลลัพธ์คือ: แม้จะมีการบิดเบือน แต่ฉันคิดว่ามันอาจจะดีพอสำหรับความต้องการของฉันถึงแม้ว่ามันจะดูดีกว่าในรูปภาพนิ่งมากกว่าในการเคลื่อนไหว ในการสาธิตนี่เป็นวิดีโอของเอฟเฟกต์ถึงแม้ว่า YouTube จะกรองพิกเซลออกจากมัน: http://youtu.be/hqokk58KFmI อย่างไรก็ตามฉันจะเปิดคำถามทิ้งไว้อีกสองสามวันในกรณีที่มีใครบางคนที่มาพร้อมกับวิธีการสุ่มตัวอย่างที่ดีกว่าที่รักษารูปลักษณ์ที่คมชัดในขณะที่ลดจำนวนการบิดเบือนเมื่อเคลื่อนไหว

3
จะเพิ่มเสียงที่ AI ศัตรูสามารถได้ยินได้อย่างไร?
ได้รับ: เกม 2D จากบนลงล่าง ไทล์จะถูกเก็บไว้ในอาร์เรย์ 2 มิติ กระเบื้องทุกแผ่นมีคุณสมบัติ - รองรับ (ดังนั้นอิฐอาจจะเป็น -50db, อากาศอาจเป็น -1) จากนี้ฉันต้องการเพิ่มมันเพื่อสร้างเสียงที่จุด x1, y1 และ "กระเพื่อม" ภาพด้านล่างแสดงความคิดเห็นได้ดีกว่า เห็นได้ชัดว่าเป้าหมายสุดท้ายคือศัตรู AI สามารถ "ได้ยิน" เสียง - แต่ถ้ากำแพงปิดกั้นเสียงจะไม่เดินทางไกล สีแดงเป็นผนังซึ่งมีการรองรับ 50db ฉันคิดว่าในเกมที่ 3 ฉันรู้สึกสับสนกับคณิตศาสตร์ อะไรจะเป็นวิธีที่ดีที่สุดในการดำเนินการนี้

2
การเรนเดอร์แผนที่ 2D สกปรก
ฉันได้ยินคนพูดถึง "การเรนเดอร์สกปรก" เมื่อพูดถึงการเรนเดอร์แผนที่สำหรับ HTML5 ฉัน Googled และค้นหา GameDev เกี่ยวกับเรื่องนี้ แต่ก็มีไม่มาก มันคืออะไรกันแน่? วิธีการใช้อย่างถูกต้อง?

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