การพัฒนาเกม

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

1
ฉันจะรู้ได้อย่างไรว่าหน่วยความจำไม่ได้จัดการอย่างถูกต้อง?
ดูเหมือนว่ารอยเท้าหน่วยความจำของเกมของฉัน (2D) จะเพิ่มขึ้นทุกครั้งที่ฉันโหลดพื้นผิวเช่นเมื่อฉันเริ่มเกมจะใช้ RAM ส่วนตัว 30 MB หลังจากข้ามไฟล์พื้นหลัง ~ 367mb ดังนั้นใน RAM ในบางจุดมันเพิ่มขึ้นเป็น RAM ส่วนตัว 54 mb สิ่งเดียวกันเกิดขึ้นหลังจากไปในระยะทางเดียวกัน แต่กลับไปมาระหว่างจุดสองจุดซ้ำ ๆ กัน อย่างไรก็ตามการอ่านของฉันแสดงว่าโปรแกรมเรียก glDeleteTextures อย่างถูกต้องประมาณหนึ่งวินาทีหลังจากหน้าจอพื้นผิวดับลง และ valgrind ไม่พบรอยรั่วใด ๆ ฉันจะรู้ได้อย่างไรว่าฉันควรจะกังวลเกี่ยวกับเรื่องนี้หรือถ้ามันเป็นเพียงการเล่นโวหารของหน่วยความจำหน้า OS?
12 opengl  memory 

1
ตัวเลขที่คาดหวังสำหรับการมีส่วนร่วมของผู้ใช้
ฉันเล่นเกมออนไลน์เล่นฟรีที่เกี่ยวข้องกับการรวบรวมสิ่งมีชีวิตและเพียงคลิกที่ปุ่มเพื่อให้ EXP จำนวนเล็กน้อยแก่พวกเขา ความคิดคือการทำสิ่งนี้ให้กับคนอื่นและพวกเขามีแนวโน้มที่จะตอบแทนความโปรดปรานและช่วยให้คุณก้าวหน้าด้วยตนเอง บทแนะนำเบื้องต้นจะแนะนำคุณเกี่ยวกับแนวคิดพื้นฐานจนกว่าคุณจะได้งานปาร์ตี้ครบ 6 คนก่อนที่จะนำคุณไปยังอุปกรณ์ของคุณเพื่อสร้างวัตถุประสงค์และสิ่งของของคุณเอง ฉันสังเกตเห็นว่าผู้เล่นที่ทำผ่านการกวดวิชามีแนวโน้มที่จะมีส่วนร่วมกับเกมมาก แต่ฉันก็พบว่าตัวเลขเหล่านี้: 25% ของผู้ใช้เข้าร่วม แต่ไม่เคยทำตามขั้นตอนแรกของการสอนนั่นคือพวกเขาไม่เคยฟักไข่ตัวแรก ผู้ใช้อีก 25% เลื่อนออกจากเกมก่อนที่จะจบบทช่วยสอนดังนั้นจึงมีฟักไข่เพียง 1-5 ฟอง ผู้ใช้ที่ลงทะเบียนเกือบ 50% เพิ่งผ่านการอบรมจนจบ ปัญหาคือฉันไม่เคยเล่นเกมประเภทนี้มาก่อน นี่เป็นโครงการจริงครั้งแรกของฉัน แต่ตอนนี้ผ่านไปหลายปีแล้ว ฉันไม่มีพื้นฐานใด ๆ กับตัวเลขที่คาดหวัง ฉันสามารถจินตนาการถึงเหตุผลได้ในตอนนี้เท่านั้นเช่นมันเป็นเรื่องที่ค่อนข้างจะกระทบกระเทือนต่อผู้คนเพื่อให้พวกเขาก้าวหน้าพวกเขาจะต้องช่วยผู้อื่นให้ก้าวหน้าและหวังว่าพวกเขาจะได้รับความโปรดปราน ดังนั้นเรามีผู้ใช้ประมาณครึ่งหนึ่งออกไปก่อนที่การสอนจะเสร็จสิ้น สิ่งนี้เป็นเรื่องปกติหรือไม่? ฉันกังวลมากเกินไปเกี่ยวกับเรื่องนี้หรือไม่?

3
ฉันจะทำให้รูปแบบสัญลักษณ์แสดงหัวข้อย่อยขยายได้อย่างไร
ฉันต้องการสร้างชุดของรูปแบบสัญลักษณ์แสดงหัวข้อย่อยที่มีรูปร่างเช่นสี่เหลี่ยมจตุรัสสามเหลี่ยมเป็นต้นตัวอย่างของสิ่งที่ฉันหลังจากสามารถเห็นได้ในวิดีโอต่อไปนี้ซึ่งเมื่อดวงดาวถูกรวบรวมกระสุนระเบิดในรูปของ ดาวฤกษ์ที่กำลังขยายตัว: https://youtu.be/7JGcuTWYdvU?t=2m41s
12 java  libgdx 

3
การระบุเนื้อหาในเครื่องมือสร้างเกม?
ฉันต้องการระบุเนื้อหาที่โหลด แต่ไม่ทราบว่าควรเลือกแบบใด มี 2 ​​ตัวเลือก: ชื่อ (สตริง) นี่เป็นวิธีที่ง่ายที่สุดและรวดเร็วด้วย unordered_map (O (1)) แต่วิธีที่ช้ากว่านั้นใช้จำนวนเต็ม เข้าใจได้ง่ายในรหัส จำนวนเต็ม ที่เร็วที่สุด ไม่เข้าใจในโค้ด ฉันรู้ว่าสายไม่ปลอดภัยหรือเร็ว แต่มันแย่ขนาดนั้นหรือนับว่าแย่ในชื่อ AAA เท่านั้น? ฉันสามารถสร้าง enums ใช้จำนวนเต็ม แต่ถ้าฉันโหลดฉากสินทรัพย์ ฯลฯ จากไฟล์ตอนรันไทม์ฉันไม่สามารถใช้ enums ได้ มีวิธีทำให้จำนวนเต็มเหล่านี้สามารถอ่านได้ถ้าพวกเขาจะถูกสร้างขึ้นที่ runtime? ฉันรู้ว่าปัญหานี้มีเธรดไม่กี่ทั่วอินเทอร์เน็ต แต่ฉันไม่สามารถหาวิธีที่สำคัญในกรณีนี้

1
Shader เพื่อดูเงาผ่านสไปรต์อัลฟ่า
ฉันต้องการที่จะบรรลุในเอกภาพเห็นผ่านผลเหมือนในตัวอย่างเหล่านี้: ในสถานการณ์เฉพาะของฉันมีข้อกำหนดสองสามข้อ: สไปรท์กำลังใช้การผสมแอลฟาและสไปรท์มีพื้นที่โปร่งใส มีองค์ประกอบ 2 ชนิดที่ปิดอักขระ หนึ่งควรสร้างเอฟเฟกต์ภาพเงาและอีกภาพหนึ่งควรทำงานเหมือนปกติ สำหรับการปิดองค์ประกอบที่สร้างภาพเงาฉันเปิดใช้งาน ZWrite และปิดการใช้งานองค์ประกอบที่ไม่มี สำหรับตัวละครฉันพยายามตั้งค่าคิวของ shader เป็น transparent + 1 และเพิ่มรหัสผ่านนี้: Pass { ZTest Greater Lighting Off Color [_Color] } และผลงานบางส่วน: ภาพเงาถูกดึงดูดไปทั่วตัวละครแม้กระทั่งส่วนที่โปร่งใส ส่วนที่โปร่งใสไม่ควรสร้างภาพเงา ภาพเงาถูกสร้างขึ้นเมื่อตัวละครอยู่ด้านหลังเทพดาแม้ว่าส่วนหนึ่งของผีสางนั้นจะโปร่งใส การอยู่ด้านหลังของสไปรต์ไม่ควรสร้างภาพเงา ตัวละครจะปรากฏต่อหน้าองค์ประกอบที่เหลือแม้ว่ามันจะอยู่ข้างหลังก็ตาม ฉันเดาว่าเป็นเพราะการตั้งค่าคิวเป็น Transparent + 1 แต่ถ้าฉันปล่อยให้มันเป็นแบบโปร่งใสตัวละครจะถูกวาดตามลำดับที่ถูกต้อง แต่ภาพเงานั้นไม่เคยเห็น ฉันพยายามปฏิบัติตามคำแนะนำเหล่านี้ที่มีคนให้ แต่ฉันไม่สามารถใช้งานได้: 1) ออกบัตรผ่านที่แสดงผลสไปรต์ตามที่เป็นอยู่ 2) เพิ่มรหัสผ่านที่เขียนไปยังบัฟเฟอร์ z แต่มี shader ที่ใช้คลิป () เพื่อทิ้งพิกเซลตามอัลฟา …

2
ปรับขนาด platformer ศิลปะพิกเซลของฉันจาก 720p เป็น 1080p
ฉันกำลังพัฒนา platformer 2D เป็นพิกเซลแบบอาร์ตสำหรับพีซีและสมาร์ทโฟน แต่ฉันติดอยู่กับปัญหาทางเทคนิค ฉันเลือกที่จะมีความละเอียดไทล์ 32x32 และความละเอียดสไปรต์ตัวอักษร 64x64 ระดับจะแบ่งออกเป็นส่วนต่าง ๆ ที่ฉันเรียกว่า "หน้าจอ" และในแต่ละหน้าจอฉันมีแผ่นกระเบื้อง 40x22.5 ประมาณโดยประมาณ 40x23 ดังนั้นความละเอียดต่ำสุดคือ 1280x720 ในเกมฉันมีกลไกการกระโดดสองครั้งดังนั้นฉันจึงต้องมีมุมมองแนวตั้งที่ดีในแต่ละ "หน้าจอ" ปัญหามาที่นี่: 1280x720 ไม่ใช่ความละเอียดสูงมาก บนจอภาพ HD หน้าต่างจะไม่ใหญ่และถ้าฉันเพิ่มความละเอียดขึ้น 2 เท่าจะเป็น 2560x1440 และหน้าต่างจะใหญ่กว่าจอ HD จริงมาก หากฉันลองขนาดระหว่าง 1280x720 ถึง 2560x1440 กราฟิกจะเริ่มติดอ่างหรือมีรูปร่างผิดปกติ ฉันจะแก้ปัญหานี้ได้อย่างไร มีวิธีการแก้ปัญหาที่ไม่ต้องการให้ฉันวาดกระเบื้องและสไปรต์ทั้งหมดในรูปแบบ 16x16 หรือไม่?

1
Oculus Rift บนแพลตฟอร์ม Motion Simulator
ปัจจุบันฉันพัฒนาสภาพแวดล้อม VR สำหรับแพลตฟอร์มจำลองการเคลื่อนไหวขนาดใหญ่ที่มีอยู่ ผู้ใช้สามารถนั่งบนแพลตฟอร์มการเคลื่อนไหวนี้และได้รับการเร่งและเอียงเพื่อกระตุ้นความรู้สึกของการเคลื่อนไหวในสภาพแวดล้อมจำลองรถวิจัย ตัวติดตามตำแหน่ง Oculus Rift ติดตั้งอยู่แล้วบนแพลตฟอร์มเคลื่อนที่ต่อหน้าผู้ใช้เช่นเดียวกับที่คุณทำบนพีซีของคุณ เอ็นจิ้น 3 มิติที่ฉันใช้ในปัจจุบันคือ Unity 5.3 มุมการหมุนและการเร่งความเร็วเชิงเส้นของแพลตฟอร์มนั้นได้รับการป้อนเข้าสู่ Unity แล้ว ผลลัพธ์ไม่ใช่สิ่งที่ฉันมุ่งหวัง ในขณะที่การชดเชยการหมุนทำงานได้ดีตราบใดที่เราเอียงแพลตฟอร์มเมื่อความเร็วเชิงมุมลดลงเป็นศูนย์ตัวติดตามจะถูกรีเซ็ตโดยไม่ถูกเรียกโดยฉันหรือใช้ยิงเหตุการณ์ที่มันทำ การชดเชยความเร่งเชิงเส้นจะกระวนกระวายใจรอบ ๆ จุดพักจริงเสมอ ฉันได้ลองใช้การติดตั้ง Unity VR และปลั๊กอิน Oculus แล้ว อย่างไรก็ตามฟิวชั่นเซ็นเซอร์ไม่สามารถใช้ได้ในระดับนี้ ฟอรัม Oculus มีหลายหัวข้อเกี่ยวกับปัญหานี้ แต่ฉันไม่สามารถหาวิธีแก้ไขได้ มีทางเลือกอื่นที่อาจลองใช้ Oculus บนแพลตฟอร์มเคลื่อนที่หรือไม่? สิ่งที่ฉันต้องการจะทำคือการลบการเคลื่อนไหวที่เหนี่ยวนำออกจากข้อมูลเซ็นเซอร์ Oculus ก่อนที่จะดำเนินการต่อไป ฉันพิจารณาการปะแก้แล้วเช่น LibOVR แต่ฉันไม่สามารถหาฟังก์ชั่นที่เกี่ยวข้องกับฟิวชั่นเซ็นเซอร์ที่เป็นประโยชน์ได้เช่นกัน
12 unity  motion  oculus 

2
การจัดเก็บพิกัดของทุกวัตถุในฝั่งเซิร์ฟเวอร์ใน MMO
ใน MMORPG: เป็นเรื่องปกติหรือเป็นไปได้หรือไม่ที่จะเก็บพิกัดของต้นไม้ทุกต้นพุ่มไม้ ฯลฯ ในฝั่งเซิร์ฟเวอร์เพื่อตรวจจับการชนกันของข้อมูล? ถ้าเป็นเช่นนั้นจะมีวิธีใดในการจัดเก็บพิกัดจำนวนมาก (โครงสร้างข้อมูลและการจัดการปัญหาด้านประสิทธิภาพ) ถ้าไม่การตรวจจับการชนกันประเภทนี้ทำได้โดยสิ้นเชิงในฝั่งไคลเอ็นต์โดยที่เซิร์ฟเวอร์ไม่ได้ทำการตรวจสอบเลยหรือไม่? หรือมีพื้นกลางกับลูกค้าตรวจสอบการชนกันและการตรวจสอบเซิร์ฟเวอร์? ถ้าเป็นเช่นนั้นเซิร์ฟเวอร์จะตรวจสอบวิธีเดียวกันโดยไม่เก็บพิกัดไว้ในเซิร์ฟเวอร์ด้วยหรือไม่

1
OpenGL ผูกพันและความสัมพันธ์ระหว่างหน่วยงาน
นี่เป็นคำถามเกี่ยวกับเอกสารส่วนใหญ่ ฉันหวังว่านี่เป็นสถานที่ที่เหมาะสมในการถามและไม่เช่นโปรแกรมเมอร์หรือสแต็คโอเวอร์โฟลว์ ฉันไม่ได้อ่านข้อกำหนด OpenGL แต่จากหนังสือ (Red Book) และบทช่วยสอนต่าง ๆ ฉันไม่สามารถเข้าใจได้ว่าวัตถุและส่วนต่างๆของ API โต้ตอบและเชื่อมโยงกันอย่างไร ตัวอย่างเช่นฉันรู้ว่าถ้า VAO ถูกผูกไว้แล้วผูก VBO และการตั้งค่าคุณลักษณะจะส่งผลให้ VBO ถูกผูกไว้กับ VAO แต่มีวัตถุมากมายความสัมพันธ์ของพวกเขาอาจแตกต่างกันไป ตัวอย่างเช่น VAO ไม่เกี่ยวข้องอย่างสมบูรณ์กับโปรแกรมการแรเงาปัจจุบัน แต่ผลลัพธ์ของการดำเนินการวาดอาจขึ้นอยู่กับทั้งสองอย่าง ในบรรดาองค์ประกอบต่างๆของ OpenGL ฉันสามารถเห็นความสัมพันธ์บางอย่างเช่น A-binds-to-B หรือ A-and-B-are-by-C ความสัมพันธ์ทั้งหมดเหล่านี้เห็นพ้องกันในการพิจารณาว่าใครสามารถเปลี่ยนแปลงสถานะของบริบทวิธีที่จะเปลี่ยนแปลงสิ่งต่าง ๆ จะบันทึกสิ่งต่าง ๆ เข้าด้วยกันและปรับให้เหมาะสมได้อย่างไร ฉันกำลังมองหาทรัพยากรอธิบายเพียงความสัมพันธ์เหล่านี้ เช่นเดียวกับแผนภาพ UML กราฟหรือแม้แต่เอกสารข้อความที่ไม่ได้มุ่งเน้นไปที่การโทร แต่อธิบายอย่างกระชับว่าองค์ประกอบ OpenGL ต่างๆมีการโต้ตอบและเชื่อมโยงซึ่งกันและกัน คุณรู้หรือไม่ว่าจะหาแหล่งข้อมูลนั้นได้จากที่ไหน?

4
เกมที่เรื่องราวดำเนินต่อไปโดยลูกหลาน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ใน Phantasy Star III: Generations of Doom สำหรับ Sega Genesis คุณแต่งงานเป็นระยะ ๆ จากนั้นเรื่องราวจะดำเนินต่อไปโดยผ่านลูกชาย / ลูกสาวของคุณ ใน Rogue Legacy เมื่อคุณตายคุณจะเล่นอีกครั้งในเกม Decendents (IIRC) ฉันทำงานเกี่ยวกับเกม RPG และกำลังคิดเกี่ยวกับแนวคิดที่คล้ายกันสำหรับช่างเครื่อง ฉันต้องการตายเพื่อให้บางอย่างของคุณยกเค้า / ทักษะการส่งต่อไปยังลูกหลานของคุณที่สามารถรับที่คุณซ้าย (มากหรือน้อย) อะไรคือข้อผิดพลาดในการออกแบบที่อาจเกิดขึ้นในการใช้กลไกดังกล่าว สิ่งหนึ่งที่ฉันเห็นอยู่แล้วคือถ้าฉันลงโทษมันมากเกินไปผู้เล่นจะกลับไปสู่การประหยัดครั้งสุดท้ายไม่ลงโทษมากพอและพวกเขาจะตายโดยเจตนา คะแนนโบนัสสำหรับการอ้างอิงเกมที่มีอยู่ (นอกเหนือจากที่ฉันกล่าวถึงสอง)

1
ขนาดพื้นผิวที่ดีที่สุดคืออะไร?
ฉันเพิ่งเพิ่มตัวจัดรูปแบบพื้นผิวให้กับโครงการของฉันซึ่งจะบรรจุพื้นผิวจำนวนหนึ่งไว้ในอันเดียวเช่นนี้ ตัวอย่างเช่นอันนี้มีขนาด 582x1023 พิกเซล เป้าหมายของการเพิ่มพื้นผิวที่อัดแน่นเหล่านี้คือการปรับปรุงประสิทธิภาพดังนั้นฉันจึงต้องการค้นหาขนาดพื้นผิวที่เหมาะสมที่สุดสำหรับพื้นผิว OpenGL (โดยใช้ LWJGL) สิ่งที่ผมพบว่าพบว่ามีขนาดพื้นผิวสูงสุดการสนับสนุนอย่างกว้างขวางน่าจะเป็น 1024x1024 ตามนี้ตัวอย่างเช่น สิ่งนี้ทำให้ฉันประหลาดเพราะเห็นได้ชัดว่าพื้นผิวเพียงอย่างเดียวจะใหญ่กว่านั้นดังนั้นจะเกิดอะไรขึ้นกับสิ่งเหล่านั้น ฉันค่อนข้างมั่นใจว่าการ์ดกราฟิกส่วนใหญ่สนับสนุนพื้นผิวที่ใหญ่กว่านั้น ฉันสามารถคาดหวังให้การ์ดกราฟิกส่วนใหญ่รองรับเช่นพื้นผิว 4096x4096 (หรืออาจใหญ่กว่านั้นได้หรือไม่) มาถึงจุดที่สองของฉัน (ฉันหวังว่านี่ยังนับเป็นหนึ่งคำถาม แต่โดยพื้นฐานแล้วมันจะต้องเดือดร้อนในประเด็นเดียวกัน): พื้นผิวควรมีขนาดเท่ากับกำลัง 2 (256x256, 512x512, 1024x1024, 2048x2048, .. ) และควร ฉันอัดแผ่นพื้นผิวที่เล็กกว่านั้นไปสู่พลังต่อไปของ 2? ตามคำถามนี้จาก 2011 มันไม่จำเป็นต้อง แต่สามารถปรับปรุงประสิทธิภาพการทำงานและหลีกเลี่ยงข้อบกพร่องเล็ก ๆ น้อย ๆ และคนนี้จาก 2012 บอกว่าคุณแน่นอนควรพื้นผิวแผ่น ดังนั้นฉันจึงรู้ว่าคำถามเหล่านี้เคยถูกถามมาก่อน แต่คำถามเหล่านั้นลงวันที่อย่างสมเหตุสมผลเพื่อให้คำตอบเปลี่ยนไปและพวกเขาแต่ละคนตอบคำถามของฉันเพียงบางส่วน โครงการอื่น ๆ / จัดการกับสิ่งนี้ได้อย่างไร TL; DR:ขนาดพื้นผิวใดที่ฉันสามารถคาดหวังให้การ์ดกราฟิกส่วนใหญ่จัดการได้ ขนาดพื้นผิวที่เหมาะสมที่สุด (หรือมี) …

2
การปลดล็อกอัตราเฟรมใน XNA / MonoGame จะบอกฉันว่ารหัสของฉันมีประสิทธิภาพหรือไม่
ฉันได้ปลดล็อกอัตราเฟรมใน MonoGame ผ่านทาง: this.graphics.SynchronizeWithVerticalRetrace = false; base.IsFixedTimeStep = false; และใช้เป็นพื้นฐานสำหรับการปรับปรุงและวาดภาพในเกมอย่างมีประสิทธิภาพ ที่ความละเอียด240 x 160โดยไม่มีการวาดหรืออัปเดตใด ๆ ยกเว้นตัวนับเฟรมฉันจะได้รับค่า FPS 9,000ถึง11,000 FPS หากฉันเพิ่มรหัสทั้งหมดของฉันลงไปมันจะลดลงเหลือประมาณ1,100 FPS นี่เป็นตัวบ่งชี้ที่ดีว่ารหัสของฉันทำให้ GPU ช้าลงอย่างมาก (10x) และฉันควรจะกังวลไหม? เกมจะวิ่งที่ 60 FPS ดังนั้นฉันก็ยังค่อนข้างห่างไกลจากจุดนั้น แต่ควรจะกังวลเกี่ยวกับอัตราเฟรมที่ปลดล็อคที่จุดใด GPU: AMD FirePro W5000 (FireGL V)

4
MMORPG ขนาดใหญ่อัพเดตฟิสิกส์บ่อยแค่ไหน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เท่าที่ฉันเข้าใจเกมใหญ่ส่วนใหญ่ใช้การประทับเวลาคงที่เพื่อให้มีการจำลองที่เสถียร เกี่ยวกับเซิร์ฟเวอร์เกมพวกเขากำหนดอัตราเฟรมหรือไม่ หรือพูดอีกวิธีหนึ่งพวกเขามักจะใช้การประทับเวลาคงที่ในเวลาใด ฉันรู้ว่าหลายคนจะพูดว่า: "เร็วเท่าที่พวกเขาสามารถหนีไปได้" ฉันต้องการทราบว่ารวดเร็วแค่ไหนหากคุณมีประสบการณ์ตรงในการสร้าง MMORPG

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

2
ทำไมเราต้องการพิกัดที่สี่เพื่อหารด้วย z
ฉันอ่านคำตอบที่นี่: กราฟิกการ์ดทำหน้าที่อย่างไรกับองค์ประกอบที่สี่ของเวกเตอร์เป็นตำแหน่งสุดท้าย "องค์ประกอบที่สี่เป็นกลอุบายในการติดตามการฉายภาพเปอร์สเปคทีฟเมื่อคุณฉายภาพเปอร์สเปคทีฟคุณต้องการหารด้วย z: x '= x / z, y' = y / z แต่นี่ไม่ใช่การดำเนินการที่ สามารถดำเนินการได้โดยเมทริกซ์ 3x3 ที่ทำงานบนเวกเตอร์ของ x, y, z เคล็ดลับที่กลายเป็นมาตรฐานสำหรับการทำเช่นนี้คือการผนวกพิกัดที่สี่, w, และประกาศว่า x, y, z จะถูกหารด้วย w เสมอ หลังจากการแปลงทั้งหมดถูกนำไปใช้และก่อนการแรสเตอร์ แต่ฉันไม่เข้าใจว่าทำไมเราจึงหารด้วย z ด้วยเมทริกซ์ 3x3 ไม่ได้? เราไม่สามารถคูณด้วย 1/z 0 0 0 1/z 0 0 0 1/z เพื่อรับ [x/z y/z 1] …

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