การพัฒนาเกม

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

3
อัลกอริธึมการสร้างประวัติทำงานอย่างไร
ฉันได้ยินเกี่ยวกับเกม Dwarf Fortress แต่ตอนนี้มีเพียงหนึ่งคนที่ฉันติดตามบน Youtube ได้ให้ความเห็นเกี่ยวกับเรื่องนี้ ... ฉันประหลาดใจยิ่งกว่าเมื่อฉันสังเกตเห็นว่า Dwarf Fortress สร้างประวัติศาสตร์ให้โลกได้อย่างไร! ตอนนี้อัลกอริทึมเหล่านี้ทำงานอย่างไร พวกเขามักจะทำอะไรเป็นอินพุตยกเว้นความยาวของการจำลอง? พวกเขาจะมีความเฉพาะเจาะจงได้อย่างไร? และที่สำคัญกว่านั้น พวกเขาสามารถทำใน Javascript หรือ Javascript ช้าเกินไป? (ฉันเดาว่าสิ่งนี้ขึ้นอยู่กับความลึกของการจำลอง แต่ยกตัวอย่างป้อมปราการคนแคระ)

8
การกำหนดแฮนด์โป๊กเกอร์
ฉันได้ทำเกม Texas Hold'Em เป็นส่วนหนึ่งของการประเมินและฉันครุ่นคิดถึงวิธีการตรวจสอบไพ่ที่มีอยู่ทั้ง 7 ใบและตัดสินว่ามือมีอยู่จริงหรือไม่ วิธีเดียวที่เป็นไปได้ที่ฉันคิดได้คือเรียงไพ่เป็นตัวเลขจากนั้นตรวจสอบกลุ่มที่เป็นไปได้ 5 ใบและตรวจสอบว่าตรงกับรายการของมือที่เป็นไปได้ทุกใบหรือไม่ ซึ่งจะใช้เวลานาน snd จะเป็นไปได้สำหรับการหาคู่เท่านั้นเนื่องจากชุดไม่เกี่ยวข้อง ไพ่แต่ละสายประกอบด้วยตัวเลข / a / j / q / k และชุดสูท(char)3(ที่ทำสัญลักษณ์โพดำเล็กน้อย) ไม่มีใครมีคำแนะนำสูตรหรือลิงก์ที่ฉันสามารถใช้เพื่อช่วยสร้างระบบการวิเคราะห์ด้วยมือได้หรือไม่? ไม่ต้องกังวลเกี่ยวกับการจัดอันดับมือซึ่งกันและกันนั่นคือปลากาต้มน้ำที่แตกต่างกัน
19 c++  card-game  poker 

3
การออกแบบเกมเทิร์นเบสที่การกระทำมีผลข้างเคียง
ผมเขียนรุ่นคอมพิวเตอร์ของเกมการปกครอง มันเป็นเกมไพ่เทิร์นเบสที่การ์ดแอคชั่นการ์ดขุมทรัพย์และการ์ดแต้มชัยชนะจะถูกสะสมไว้ในเด็คส่วนบุคคลของผู้เล่น ฉันมีโครงสร้างของชั้นเรียนที่พัฒนาค่อนข้างดีและฉันเริ่มออกแบบตรรกะของเกม ฉันใช้หลามและฉันอาจเพิ่ม GUI อย่างง่ายด้วย pygame ในภายหลัง ลำดับการหมุนของผู้เล่นนั้นควบคุมโดยกลไกของรัฐที่ง่ายมาก หมุนตามเข็มนาฬิกาและผู้เล่นไม่สามารถออกจากเกมก่อนที่จะจบ การเล่นของเทิร์นเดี่ยวยังเป็นกลไกของรัฐ โดยทั่วไปผู้เล่นจะผ่าน "ขั้นตอนการกระทำ", "ขั้นตอนการซื้อ" และ "ขั้นตอนการทำความสะอาด" (ตามลำดับ) ตามคำตอบของคำถามวิธีการใช้เอ็นจิ้นเกมเทิร์นเบส เครื่องสถานะเป็นเทคนิคมาตรฐานสำหรับสถานการณ์นี้ ปัญหาของฉันคือในระหว่างขั้นตอนการกระทำของผู้เล่นเธอสามารถใช้การ์ดแอคชั่นที่มีผลข้างเคียงไม่ว่าจะด้วยตัวเองหรือกับผู้เล่นคนอื่นอย่างน้อยหนึ่งคน ตัวอย่างเช่นการ์ดแอคชั่นหนึ่งใบอนุญาตให้ผู้เล่นทำการเลี้ยวที่สองทันทีตามข้อสรุปของเทิร์นปัจจุบัน การ์ดการกระทำอีกใบหนึ่งทำให้ผู้เล่นคนอื่น ๆ ทิ้งการ์ดสองใบจากมือของพวกเขา อีกหนึ่งการ์ดแอคชั่นไม่ทำอะไรเลยสำหรับเทิร์นปัจจุบัน แต่อนุญาตให้ผู้เล่นวาดการ์ดพิเศษในเทิร์นถัดไปของเธอ เพื่อให้สิ่งต่าง ๆ มีความซับซ้อนยิ่งขึ้นมีการขยายเกมใหม่ ๆ เพิ่มการ์ดใหม่บ่อยครั้ง สำหรับฉันแล้วดูเหมือนว่าการเขียนโค้ดผลลัพธ์ของแอ็คชั่นการ์ดทุกใบลงในเครื่องสถานะของเกมจะน่าเกลียดและไม่สามารถปรับเปลี่ยนได้ คำตอบของTurn-based Strategy Loop ไม่เข้าสู่ระดับรายละเอียดที่เน้นการออกแบบเพื่อแก้ไขปัญหานี้ ฉันควรใช้รูปแบบการเขียนโปรแกรมประเภทใดเพื่อครอบคลุมข้อเท็จจริงที่ว่ารูปแบบทั่วไปสำหรับการเลี้ยวสามารถแก้ไขได้ด้วยการกระทำที่เกิดขึ้นภายในเทิร์น? วัตถุของเกมควรติดตามผลของการ์ดทุกใบหรือไม่ หรือหากการ์ดควรใช้เอฟเฟ็กต์ของตนเอง (เช่นโดยใช้อินเทอร์เฟซ) จำเป็นต้องมีการตั้งค่าใดเพื่อให้มีพลังงานเพียงพอ ฉันคิดวิธีแก้ปัญหานี้เล็กน้อย แต่ฉันสงสัยว่ามีวิธีมาตรฐานในการแก้ปัญหาหรือไม่ โดยเฉพาะฉันต้องการทราบว่าวัตถุ / คลาส / อะไรก็ตามที่รับผิดชอบในการติดตามการกระทำที่ผู้เล่นทุกคนจะต้องทำตามผลของการ์ดแอ็คชั่นที่กำลังเล่นและวิธีการที่เกี่ยวข้องกับการเปลี่ยนแปลงชั่วคราวในลำดับปกติของ เครื่องเปลี่ยนสถานะ

1
ฉันจะจัดโครงสร้างระบบโหลดสินทรัพย์ที่ขยายได้อย่างไร
สำหรับเอนจิ้นเกมอดิเรกใน Java ฉันต้องการโค้ดเครื่องมือจัดการทรัพยากร / ทรัพยากรที่เรียบง่าย แต่มีความยืดหยุ่น เนื้อหาคือเสียงรูปภาพแอนิเมชั่นโมเดลพื้นผิวและอื่น ๆ หลังจากผ่านไปสองสามชั่วโมงของการค้นหาและการทดสอบโค้ดฉันยังไม่แน่ใจว่าจะออกแบบสิ่งนี้อย่างไร โดยเฉพาะฉันกำลังมองหาวิธีที่ฉันสามารถออกแบบผู้จัดการในลักษณะเพื่อให้เป็นนามธรรมว่ามีการโหลดประเภทสินทรัพย์ที่เฉพาะเจาะจงและการโหลดเนื้อหาที่ไหน ฉันต้องการให้สามารถรองรับทั้งระบบไฟล์และที่เก็บ RDBMS โดยไม่ต้องใช้โปรแกรมอื่น ๆ ที่จำเป็นต้องรู้ ในทำนองเดียวกันฉันต้องการเพิ่มเนื้อหาคำอธิบายภาพเคลื่อนไหว (FPS เฟรมที่จะแสดงภาพอ้างอิงภาพสไปรต์และอื่น ๆ ) นั่นคือ XML ฉันควรจะสามารถเขียนคลาสสำหรับสิ่งนี้ด้วยฟังก์ชันการทำงานเพื่อค้นหาและอ่านไฟล์ XML และสร้างและส่งคืนAnimationAssetคลาสด้วยข้อมูลนั้น ฉันกำลังมองหาการออกแบบที่ขับเคลื่อนด้วยข้อมูล ฉันสามารถค้นหาข้อมูลจำนวนมากเกี่ยวกับสิ่งที่ผู้จัดการสินทรัพย์ควรทำ แต่ไม่เกี่ยวกับวิธีการทำ ข้อมูลทั่วไปที่เกี่ยวข้องดูเหมือนจะส่งผลให้บางรูปแบบของการเรียนลดหลั่นกันหรือบางรูปแบบของผู้ช่วย อย่างไรก็ตามฉันไม่ได้เห็นตัวอย่างที่ชัดเจนที่ไม่เหมือนกับแฮ็กส่วนตัวหรือเป็นฉันทามติ

4
เหตุใดอุตสาหกรรมจึงเปลี่ยนจาก C เป็น C ++ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ก่อนอื่นฉันต้องการคำตอบที่แท้จริงฉันพยายามหาข้อมูลเพิ่มเติมจากแหล่งข้อมูลและบทความต่าง ๆ เสมอและเมื่อฉันอ่านสิ่งต่าง ๆ เช่นC ++ ช้าเพราะมีฟังก์ชั่นเสมือนจริงและเพราะC นี้ดีกว่าฉันจริงๆ ไม่รู้จะพูดอะไรและคิดว่าเป็นมนุษย์ด้วยสมอง ดังนั้นโปรดหลีกเลี่ยงระดับนี้ในคำตอบ / s ของคุณ คำถามของฉันเกี่ยวกับการเปลี่ยนเป็น C ++ ขนาดใหญ่ที่เสร็จสมบูรณ์ไม่มากก็น้อยเมื่อใช้ Doom 3 สิ่งที่น่าสนใจสำหรับฉันก็คือว่าก่อนที่จะก้าวนี้ส่วนใหญ่ของเกมเครื่องมือและเกมของตัวเองถูกเขียนใน C เช่นเดียวกับที่มันเป็นมาตั้งแต่ยุคยวบ เป็นที่น่าสนใจที่จะทราบว่าซอฟต์แวร์ ID ตัดสินใจที่จะเขียนรหัสฐานใหม่สำหรับ IdTech 4 ใน C ++ ซึ่งเป็นงานที่มีจำนวนมหาศาลซึ่งโดยสุจริตฉันไม่สามารถเข้าใจได้หากไม่มีเหตุผลที่ดี ฉันมุ่งเน้นไปที่ Doom 3 เพราะฉันสนใจในโลกของ OpenGL เป็นส่วนใหญ่และในการเดินทางของฉันฉันพยายามจดจ่อกับหัวข้อนี้ดังนั้นฉันจึงอ่านมากเกี่ยวกับเรื่องนี้ แต่ฉันคิดว่าคำถามเช่นนั้นสามารถทำให้เป็น API ได้ - ปราศจากปัญหามากเกินไป ทำไมในช่วงเวลาหนึ่งอุตสาหกรรมจึงเปลี่ยนมาใช้ …
19 c++  c 

3
ฉันจะสร้างทะเลสาบและแม่น้ำสุ่มในเกมของฉันได้อย่างไร
ฉันมีเกมสร้างบล็อก 2 มิติและพยายามสร้างทะเลสาบและแม่น้ำที่สร้างแบบสุ่ม ฉันได้ดูอัลกอริธึมสัญญาณรบกวนของ Perlin แล้ว แต่ฉันไม่สามารถสร้างผลลัพธ์ที่ดีและสุ่มได้ ฉันพยายามใช้ห้องสมุดเสียงหลามแต่ก็ไม่ได้สร้างแผนที่แบบสุ่มมาก มีฟังก์ชั่นของเมล็ดพันธุ์ที่ฉันขาดหายไปในห้องสมุดนั้นเพื่อให้สุ่มขึ้นหรือไม่? ฉันจะเปลี่ยนแปลงตัวแปรใดหากฉันต้องการให้สุ่มเพิ่มขึ้น? ถ้าเป็นไปได้ให้คำตอบทางเทคนิคกับฉันน้อยลงโดยใช้คณิตศาสตร์น้อยลง แผนที่เป็นแผนที่เรียงต่อกันแบบสองมิติ นี่คือตัวอย่างบางส่วนของการไม่สุ่มของอัลกอริทึมอื่น ๆ รหัสต่อไปนี้ถูกเอาท์พุท 3 ครั้งในแถว ฉันสุ่มอ็อกเทฟและความถี่ด้วยสิ่งนี้:freq = 16.0 * random.randint(1, 500000) * 0.000001 + 0.5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

4
Opcodes ใดเร็วกว่าในระดับ CPU [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ในทุกภาษาการเขียนโปรแกรมมีชุดของรหัสที่แนะนำให้คนอื่น ฉันพยายามที่จะแสดงรายการไว้ที่นี่ตามลำดับความเร็ว bitwise การบวก / การลบจำนวนเต็ม การคูณ / การหารจำนวนเต็ม การเปรียบเทียบ การควบคุมการไหล การเพิ่ม / ลบลอย การคูณ / หารลอย ในกรณีที่คุณต้องการรหัสประสิทธิภาพสูง C ++ สามารถปรับให้เหมาะกับมือในการประกอบใช้คำสั่ง SIMD หรือการควบคุมการไหลที่มีประสิทธิภาพมากขึ้นประเภทข้อมูล ฯลฯ ดังนั้นฉันจึงพยายามที่จะเข้าใจว่าประเภทข้อมูล (int32 / float32 / float64) หรือ การดำเนินงานที่ใช้ ( *, +, &) ส่งผลกระทบต่อผลการดำเนินงานในระดับซีพียู CPU จะช้าลงกว่าการเพิ่มหรือไม่ …

5
คำนวณคะแนนสุ่ม (พิกเซล) ภายในวงกลม (รูปภาพ)
ฉันมีรูปภาพที่มีวงกลมที่ตำแหน่งเฉพาะและเส้นผ่านศูนย์กลางเฉพาะ สิ่งที่ฉันต้องทำก็คือสามารถคำนวณคะแนนสุ่มภายในวงกลมจากนั้นจัดการพิกเซลที่บอกว่ามีความสัมพันธ์กับจุดนั้น ฉันมีรหัสต่อไปนี้แล้ว: private Point CalculatePoint() { var angle = _random.NextDouble() * ( Math.PI * 2 ); var x = _originX + ( _radius * Math.Cos( angle ) ); var y = _originY + ( _radius * Math.Sin( angle ) ); return new Point( ( int )x, ( int )y …
19 c#  algorithm 

2
ฉันสามารถขายเกม XNA ที่ทำด้วย Visual C # Express Edition ได้อย่างถูกกฎหมายหรือไม่?
ฉัน dowloaded Visual C # Express Edition และเมื่อมันเริ่มทำงานแจ้งว่า "เพื่อการประเมินผลเท่านั้น" สิ่งนี้หมายความว่า? นี่หมายความว่าฉันต้องซื้อเวอร์ชันเต็มเพื่อขายเกมของฉันตามกฎหมายใช่ไหม หรือฉันจะใช้รุ่นด่วนฟรีได้ไหม? ฉันไม่ต้องการทำเกมแล้วพบว่าฉันขายมันไม่ได้
19 xna  c#  legal 

5
ฉันจะบอกได้อย่างไรว่าวัตถุกำลังเคลื่อนไหว CW หรือ CCW รอบ ๆ เส้นทางที่เชื่อมต่อหรือไม่
ให้บอกว่าเรามีรูปร่างขรุขระ: และสิ่งมีชีวิตสองอย่างที่เคลื่อนไหวตามโครงร่าง จากนั้นเราปรับรูปร่างให้เรียบโดยการดึงมุมออกมา เราได้รับสิ่งนี้: ตอนนี้เป็นเรื่องง่ายที่จะเห็นว่า Orange กำลังเคลื่อนไหว CW และ CCW สีเขียว ฉันจะบอกได้อย่างไรว่าทิศทางใดที่พวกเขาเคลื่อนไหวโดยไม่ทำให้รูปร่างเรียบ ภาพใหม่
19 geometry 

6
ฉันควรใช้รหัส OpenGL เวอร์ชันใดพิจารณาถึงความเข้ากันได้และประสิทธิภาพ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว เมื่อข้อมูลจำเพาะ OpenGL อัปเดตพวกเขาจะเพิ่มคุณสมบัติเท่านั้น ดังนั้นตามทฤษฎีแล้วฮาร์ดแวร์ล่าสุดและยิ่งใหญ่ที่สุดที่รองรับโปรไฟล์ Core และ Compatibility ควรเรียกใช้โค้ด OpenGL1.1 ที่เก่ามาก สิ่งนี้กลายเป็นจริง ฉันใช้เวลา 12 เดือนในการเรียนรู้ OpenGL1.1 และเข้าใจอย่างเป็นธรรม ฉันได้อ่านไม่กี่บทของหนึ่งในหนังสือ OpenGL4.2 ใหม่ที่แปลกใหม่ คุณสมบัติเกือบทั้งหมดที่ฉันเชื่อถือได้เลิกใช้แล้ว (เช่นรายการดิสเพลย์) ซึ่งให้ฉันคิดว่ามีวิธีที่ดีกว่าในการทำสิ่งเหล่านี้ทั้งหมด ให้พิจารณาว่า 1.1 มีแนวโน้มที่จะได้รับการสนับสนุนโดยฮาร์ดแวร์ทันสมัยทั้งหมด 1.1 ได้รับการปล่อยตัวในปี 1992 ผมไม่ได้เข้ารหัสวิธีที่ยากเพียงแค่ให้การสนับสนุนเครื่องคอมพิวเตอร์อายุ 20 ปี :-p ฉันคิดว่ามันสมเหตุสมผลที่จะสมมติว่านักเล่นเกมส่วนใหญ่ใช้ฮาร์ดแวร์ที่พื้นในช่วงกลางอายุประมาณ 5 ปี ฉันคิดว่าวิธีการที่ใหม่กว่านั้นได้รับการออกแบบมาให้เป็นหนึ่งในสองสิ่งที่เป็นสากล: ประสิทธิภาพที่ดีขึ้นหรือง่ายต่อการเขียนโค้ด ฉันอ่านบางที่มันไม่เคยทั้งสอง! XD OpenGL …
19 opengl 

2
การทำเอฟเฟกต์ SNES Mode 7 (เลียนแบบการแปลง) ใน pygame
มีคำตอบสั้น ๆ เกี่ยวกับการทำเอฟเฟกต์โหมด 7 / mario kart ใน pygame หรือไม่? ฉันได้ทำ Google อย่างครอบคลุมเอกสารทั้งหมดที่ฉันสามารถหาได้มีหลายสิบหน้าในภาษาอื่น (asm, c) ที่มีสมการที่ดูแปลก ๆ มากมาย เป็นการดีที่ฉันต้องการค้นหาสิ่งที่อธิบายเพิ่มเติมเป็นภาษาอังกฤษมากกว่าในแง่คณิตศาสตร์ ฉันสามารถใช้ PIL หรือ pygame เพื่อจัดการภาพ / พื้นผิวหรืออะไรก็ตามที่จำเป็น ฉันต้องการบรรลุผลโหมด 7 ใน pygame แต่ฉันดูเหมือนใกล้ถึงจุดสิ้นสุดของปัญญา ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก แหล่งข้อมูลหรือคำอธิบายใด ๆ ก็ตามที่คุณสามารถจัดหาได้นั้นยอดเยี่ยมแม้ว่ามันจะไม่ง่ายอย่างที่ฉันต้องการ ถ้าฉันสามารถหาได้ฉันจะเขียนวิธีการทำโหมด 7 สำหรับหน้ามือใหม่ แก้ไข: โหมด 7 doc: http://www.coranac.com/tonc/text/mode7.htm
19 pygame 

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

7
คุณมีความสำคัญต่อความปลอดภัยของข้อยกเว้นในรหัส C ++ ของคุณหรือไม่
ทุกครั้งที่ฉันพิจารณาที่จะสร้างรหัสของฉันอย่างยิ่งยกเว้นที่ปลอดภัยฉันจะไม่ทำเพราะมันจะใช้เวลามาก ลองพิจารณาตัวอย่างข้อมูลที่ค่อนข้างง่าย: Level::Entity* entity = new Level::Entity(); entity->id = GetNextId(); entity->AddComponent(new Component::Position(x, y)); entity->AddComponent(new Component::Movement()); entity->AddComponent(new Component::Render()); allEntities.push_back(entity); // std::vector entityById[entity->id] = entity; // std::map return entity; ในการใช้การรับประกันข้อยกเว้นพื้นฐานฉันสามารถใช้ตัวชี้ที่กำหนดขอบเขตบนการnewโทร วิธีนี้จะป้องกันการรั่วไหลของหน่วยความจำหากมีการเรียกใด ๆ ที่จะทำให้เกิดข้อยกเว้น อย่างไรก็ตามสมมติว่าฉันต้องการใช้การรับประกันข้อยกเว้นที่รัดกุม อย่างน้อยฉันจะต้องใช้ตัวชี้ที่ใช้ร่วมกันสำหรับบรรจุของฉัน (ฉันไม่ได้ใช้ Boost) nothrow Entity::Swapสำหรับการเพิ่มส่วนประกอบอะตอมและการจัดเรียงบางส่วนของสำนวนสำหรับอะตอมเพิ่มทั้งและVector Mapสิ่งเหล่านี้ไม่เพียงใช้เวลานานในการติดตั้ง แต่ยังมีราคาแพงเนื่องจากต้องใช้การคัดลอกมากกว่าโซลูชันที่ไม่ปลอดภัยยกเว้น ในที่สุดฉันรู้สึกเหมือนว่าเวลาที่ใช้ในการทำทั้งหมดนั้นจะไม่ถูกต้องเพียงเพื่อให้CreateEntityฟังก์ชั่นที่เรียบง่ายนั้นปลอดภัยอย่างยิ่งยกเว้น ฉันอาจต้องการให้เกมแสดงข้อผิดพลาดและปิดที่จุดนั้นต่อไป คุณใช้เวลานานแค่ไหนในโครงการเกมของคุณเอง? โดยทั่วไปเป็นที่ยอมรับได้หรือไม่ในการเขียนรหัสที่ไม่ปลอดภัยสำหรับโปรแกรมที่อาจผิดพลาดเมื่อมีข้อยกเว้น

3
มีวิธีใช้จำนวนไฟโดยพลการในชิ้นส่วน shader?
มีวิธีการส่งผ่านจำนวนสถานที่แสง (และสี) โดยพลการสำหรับชิ้นส่วน shader และวนรอบพวกเขาใน Shader? ถ้าไม่เช่นนั้นไฟหลายดวงควรถูกจำลองอย่างไร? ตัวอย่างเช่นในแง่ของการกระจายแสงทิศทางคุณไม่สามารถส่งผ่านน้ำหนักรวมสำหรับ shader ได้
19 lighting  webgl 

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