คำถามติดแท็ก architecture

รหัสมีโครงสร้างอย่างไร สำหรับคำถามเกี่ยวกับการออกแบบภายในของเอ็นจิ้นเกม

1
อะไรคือบทบาทของ“ ระบบ” ในสถาปัตยกรรมเอนทิตีที่อิงองค์ประกอบ
ฉันได้อ่านเกี่ยวกับองค์ประกอบและระบบเอนทิตีและได้คิดว่าความคิดของเอนทิตีที่เพิ่งเป็น ID นั้นค่อนข้างน่าสนใจ อย่างไรก็ตามฉันไม่ทราบวิธีการทำงานอย่างสมบูรณ์กับองค์ประกอบด้านหรือด้านระบบ ส่วนประกอบเป็นเพียงวัตถุข้อมูลที่จัดการโดยระบบที่เกี่ยวข้อง ระบบการชนใช้ BoundsComponent ร่วมกับโครงสร้างข้อมูลเชิงพื้นที่เพื่อพิจารณาว่ามีการชนกันหรือไม่ ดีมากจนถึงตอนนี้ แต่ถ้าระบบหลาย ๆ ระบบต้องการเข้าถึงส่วนประกอบเดียวกัน ข้อมูลควรอยู่ที่ไหน ระบบอินพุตสามารถแก้ไขเอนทิตี BoundsComponent แต่ระบบฟิสิกส์ต้องการการเข้าถึงองค์ประกอบเดียวกันเช่นเดียวกับระบบการเรนเดอร์บางระบบ นอกจากนี้นิติบุคคลจะสร้างอย่างไร ข้อดีอย่างหนึ่งที่ฉันได้อ่านมามากคือความยืดหยุ่นในการสร้างเอนทิตี ระบบเชื่อมโยงกับส่วนประกอบอย่างแท้จริงหรือไม่? หากฉันต้องการแนะนำส่วนประกอบใหม่บางอย่างฉันต้องแนะนำระบบใหม่หรือแก้ไขส่วนประกอบที่มีอยู่ด้วยหรือไม่? อีกสิ่งที่ฉันได้อ่านบ่อยๆก็คือ 'ประเภท' ของเอนทิตีถูกอนุมานด้วยส่วนประกอบที่มันมี หากเอนทิตีของฉันเป็นเพียง ID ฉันจะรู้ได้อย่างไรว่าเอนทิตีโรบ็อตของฉันต้องถูกย้ายหรือเรนเดอร์และทำการแก้ไขโดยระบบบางระบบ ขออภัยสำหรับการโพสต์ยาว (หรืออย่างน้อยก็ดูเหมือนจากหน้าจอโทรศัพท์ของฉัน)!

8
เหตุใด MVC & TDD จึงไม่ได้ใช้งานสถาปัตยกรรมเกมมากขึ้น? [ปิด]
ฉันจะนำหน้าสิ่งนี้โดยบอกว่าฉันไม่ได้ดูแหล่งเกมเป็นจำนวนมากหรือไม่ได้สร้างในแบบของเกม แต่มาจากการพยายามใช้วิธีการเข้ารหัส 'องค์กร' ในเว็บแอปดูที่ซอร์สโค้ดของเกมทำให้เจ็บอย่างรุนแรง: "มุมมองนี้ทำอะไรกับตรรกะทางธุรกิจหรือไม่นี่จำเป็นต้องมีการปรับโครงสร้างใหม่ ... " สิ่งนี้ทำให้ฉันกังวลขณะที่ฉันกำลังจะเริ่มโครงการเกมและฉันไม่แน่ใจว่าพยายาม mvc / tdd กระบวนการ dev จะขัดขวางเราหรือช่วยเราเพราะฉันไม่เห็นตัวอย่างเกมมากมายที่ใช้สิ่งนี้ หรือผลักดันให้มีการปฏิบัติงานสถาปัตยกรรมที่ดีขึ้นในชุมชน ต่อไปนี้เป็นสารสกัดจากบทความที่ยอดเยี่ยมเกี่ยวกับเกมต้นแบบแต่สำหรับฉันแล้วดูเหมือนว่าทัศนคติที่ผู้พัฒนาเกมส่วนใหญ่ใช้ในการเขียนรหัสเกม ความผิดพลาด # 4: การสร้างระบบไม่ใช่เกม ... หากคุณพบว่าตัวเองกำลังทำงานบางอย่างที่ไม่ได้เดินหน้าต่อไปให้หยุดตรงนั้น ในฐานะโปรแกรมเมอร์เรามีแนวโน้มที่จะพยายามทำให้รหัสของเราเป็นแบบทั่วไปและทำให้มันดูสง่างามและสามารถรับมือกับทุกสถานการณ์ได้ เราพบว่าคันอย่างหนักไม่เกา แต่เราต้องเรียนรู้วิธี ฉันใช้เวลาหลายปีกว่าจะรู้ตัวว่ามันไม่เกี่ยวกับรหัส แต่มันเกี่ยวกับเกมที่คุณจัดส่งในตอนท้าย อย่าเขียนระบบองค์ประกอบของเกมที่หรูหราข้ามตัวแก้ไขไปอย่างสมบูรณ์และทำให้สถานะเป็นรหัสไม่ติดขัดหลีกเลี่ยงการใช้ข้อมูลการแยกวิเคราะห์ตัวเองความบ้าคลั่งของ XML และโค้ดสิ่งที่ถูกสาป ... รับของบนหน้าจอให้เร็วที่สุดเท่าที่จะทำได้ และไม่เคยใช้อาร์กิวเมนต์ "ถ้าเราใช้เวลาเพิ่มเติมและทำสิ่งนี้ในวิธีที่ถูกต้องเราสามารถนำมันกลับมาใช้ใหม่ได้ในเกม" EVER เป็นเพราะเกม (ส่วนใหญ่) มีการมุ่งเน้นการมองเห็นดังนั้นจึงสมเหตุสมผลว่าโค้ดจะถูกถ่วงน้ำหนักอย่างหนักในมุมมองดังนั้นประโยชน์ใด ๆ จากการเคลื่อนย้ายสิ่งของออกไปยังตัวแบบ / คอนโทรลเลอร์นั้นค่อนข้างน้อยดังนั้นทำไมต้องกังวล? ฉันได้ยินข้อโต้แย้งว่า MVC แนะนำค่าใช้จ่ายด้านประสิทธิภาพ แต่ดูเหมือนว่าฉันจะเพิ่มประสิทธิภาพก่อนวัยอันควรและมีประเด็นปัญหาด้านประสิทธิภาพที่สำคัญกว่าที่จะแก้ไขก่อนที่คุณจะกังวลเกี่ยวกับค่าใช้จ่าย MVC (เช่นเรนเดอร์ไลน์ การข้ามผ่าน ฯลฯ …

3
ฉันจะเขียนลูปของเกมหลักได้อย่างไร [ปิด]
ฉันจะเขียนลูปของเกมหลักได้อย่างไร คุณควรทำอะไรในเกมลูปและบางสิ่งที่คุณไม่ควรทำในเกมลูป ฉันเขียนมันมากมาย แต่ฉันไม่เคยอ่านบนลูปของเกมเลย ฉันแน่ใจว่าฉันสามารถปรับปรุงได้อย่างมาก แต่ฉันไม่แน่ใจว่าจะทำอย่างไร

9
การสื่อสารแบบเอนทิตีทำงานอย่างไร
ฉันมีสองกรณีผู้ใช้: จะentity_Aส่งtake-damageข้อความถึงentity_Bอย่างไร HP จะentity_Aค้นหาด้วยวิธีentity_Bใด นี่คือสิ่งที่ฉันได้พบ: คิวข้อความ entity_Aสร้างtake-damageข้อความและโพสต์ไปentity_Bที่คิวข้อความของ entity_Aสร้างข้อความและโพสต์ไปยัง query-hp ในการกลับมาสร้างข้อความและโพสต์ไปยังentity_Bentity_Bresponse-hpentity_A เผยแพร่ / สมัครสมาชิก entity_Bสมัครรับtake-damageข้อความ (อาจเป็นไปได้ว่ามีการกรองบางอย่างเพื่อให้ส่งเฉพาะข้อความที่เกี่ยวข้องเท่านั้น) entity_Aผลิตข้อความที่อ้างอิงtake-damageentity_B entity_Aสมัครรับupdate-hpข้อความ (อาจถูกกรอง) ทุกเฟรมentity_Bออกอากาศupdate-hpข้อความ สัญญาณ / สล็อต ??? entity_Aเชื่อมตupdate-hpสล็อตentity_B's update-hpสัญญาณ มีอะไรที่ดีกว่านี้ไหม? ฉันมีความเข้าใจที่ถูกต้องหรือไม่ว่าโครงร่างการสื่อสารเหล่านี้จะผูกเข้ากับระบบเอนทิตีของเอ็นจิ้นเกมได้อย่างไร

11
แหล่งข้อมูลที่ดีสำหรับการเรียนรู้เกี่ยวกับสถาปัตยกรรมเกม? [ปิด]
มีแหล่งข้อมูลที่ดีสำหรับการเรียนรู้เกี่ยวกับสถาปัตยกรรมเกมหรือไม่? ฉันกำลังมองหาภาพรวมระดับสูงของสถาปัตยกรรมที่แตกต่างกัน ฉันมักจะหาข้อมูลเกี่ยวกับชิ้นส่วนต่าง ๆ ของเกมเช่นเอนทิตีเอนจิ้นเอนจิ้นฟิสิกส์สคริป ฯลฯ แต่ไม่เกี่ยวกับวิธีนำชิ้นส่วนทั้งหมดมารวมกัน โบนัสประเภทของเกมมีผลกับเรื่องนี้อย่างไร ตัวอย่างเช่น platformer และ MMO จะมีความแตกต่าง
104 architecture 

8
ทำไมเกมไม่มากขึ้นใช้ภาพเวกเตอร์? [ปิด]
สำหรับเวกเตอร์อาร์ตนั้นมีประสิทธิภาพมากกว่าในแง่ของทรัพยากร / ความสามารถในการปรับขยายได้ อย่างไรก็ตามในกรณีส่วนใหญ่ฉันได้เห็นศิลปินที่ใช้บิตแมป / rasterized art นี่เป็นข้อ จำกัด ของศิลปินที่เขียนโดยนักเขียนโปรแกรม / นักออกแบบเกมหรือไม่? ในฐานะโปรแกรมเมอร์ฉันคิดว่าเวคเตอร์อาร์ตน่าจะเหมาะกว่าเพราะมันช่วยให้ขยายความละเอียดได้โดยไม่ต้องสร้างงานศิลปะขึ้นมาใหม่การสร้างกราฟิกขนาดใหญ่จริง ๆ หรือทำให้กราฟิคเบลอ คำถาม: ทำไมผู้คนไม่ใช้ SVG / AI มากกว่านี้เพื่อสร้างเกมอาร์ต 2D มันจะเป็นที่ต้องการจริง ๆ หรือไม่ (และใครที่ชอบ) กราฟิกบิตแมปเป็นมาตรฐานหรือข้อ จำกัด (หรืออาจไม่มี) แบ็คกราวน์: ฉันทำงานกับเครื่องยนต์และฉันมีไอเดียเจ๋ง ๆ สำหรับกราฟิกแบบเวกเตอร์ แต่ฉันไม่ต้องการที่จะฉี่ศิลปินในอนาคต ฉันเดาว่านี่เป็นคำถามที่มีศูนย์กลางอยู่ที่การปฏิบัตินิยมและการพัฒนาเกม

11
วิธีการออกแบบระบบเล่นซ้ำ
ดังนั้นฉันจะออกแบบระบบเล่นซ้ำได้อย่างไร คุณอาจรู้จักเกมบางเกมเช่น Warcraft 3 หรือ Starcraft ที่คุณสามารถดูเกมได้อีกครั้งหลังจากเล่นไปแล้ว คุณจบด้วยไฟล์รีเพลย์ที่ค่อนข้างเล็ก ดังนั้นคำถามของฉันคือ: จะบันทึกข้อมูลได้อย่างไร? (รูปแบบกำหนดเองหรือไม่) (ขนาดเล็ก) อะไรจะถูกบันทึกไว้? จะทำให้เป็นเรื่องทั่วไปได้อย่างไรเพื่อให้สามารถใช้ในเกมอื่นเพื่อบันทึกช่วงเวลา (และไม่ใช่ตัวอย่างที่ตรงกันทั้งหมด) ทำให้สามารถส่งต่อและย้อนกลับได้ (WC3 ไม่สามารถย้อนกลับได้เท่าที่ฉันจำได้)

1
ความแตกต่างระหว่างต้นไม้การตัดสินใจและต้นไม้พฤติกรรมสำหรับเกม AI
อะไรคือความแตกต่างระหว่างต้นไม้การตัดสินใจและต้นไม้พฤติกรรมสำหรับการพัฒนาเกม AI? สำหรับแอปพลิเคชันใดที่คุณจะใช้หนึ่งแอป

8
การสื่อสารที่ขับเคลื่อนด้วยเหตุการณ์ใน Game Engine: ใช่หรือไม่ใช่
ฉันกำลังอ่านGame Coding Completeและผู้เขียนแนะนำให้ใช้การสื่อสาร Event Drivenระหว่างวัตถุและโมดูลเกม โดยพื้นฐานแล้วนักแสดงเกมที่มีชีวิตทุกคนควรสื่อสารกับโมดูลหลัก (Physics, AI, Game Logic, Game View, ฯลฯ ) ผ่านระบบการส่งข้อความเหตุการณ์ภายใน ซึ่งหมายความว่าต้องออกแบบผู้จัดการเหตุการณ์ที่มีประสิทธิภาพ ระบบที่ออกแบบมาไม่ดีจะกินซีพียูเป็นวงรอบ นี่เป็นแนวทางที่ได้รับการพิสูจน์แล้วหรือไม่? ฉันจะตัดสินใจได้อย่างไรว่าจะใช้หรือไม่

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

8
ฉันจะหลีกเลี่ยงการมีซิงเกิลตันมากมายในสถาปัตยกรรมเกมของฉันได้อย่างไร
ฉันใช้โปรแกรมเกม cocos2d-x เพื่อสร้างเกม เครื่องยนต์ใช้ซิงเกิลตันหลายตัวอยู่แล้ว หากมีคนใช้มันพวกเขาควรคุ้นเคยกับบางคน: Director SimpleAudioEngine SpriteFrameCache TextureCache EventDispatcher (was) ArmatureDataManager FileUtils UserDefault และอื่น ๆ อีกมากมายโดยรวมประมาณ 16 ชั้นเรียน คุณสามารถค้นหารายการที่คล้ายกันในหน้านี้: วัตถุ Singleton ใน Cocos2d-html5 v3.0แต่เมื่อฉันต้องการที่จะเขียนฉันเกมฉันต้องการ Singletons มากขึ้น: PlayerData (score, lives, ...) PlayerProgress (passed levels, stars) LevelData (parameters per levels and level packs) SocialConnection (Facebook and Twitter login, share, friend list, …

7
ฉันจะตั้งกรอบงานที่ยืดหยุ่นเพื่อจัดการกับความสำเร็จได้อย่างไร
โดยเฉพาะอย่างยิ่งวิธีที่ดีที่สุดในการใช้ระบบความสำเร็จนั้นมีความยืดหยุ่นเพียงพอที่จะจัดการกับความสำเร็จทางสถิติอย่างง่ายๆเช่น "ฆ่าxศัตรู" ฉันกำลังมองหาบางสิ่งที่แข็งแกร่งกว่าระบบที่อิงกับสถิติและสิ่งที่จัดระเบียบและบำรุงรักษาได้ดีกว่า "hardcode ทั้งหมดเป็นเงื่อนไข" ตัวอย่างบางอย่างที่เป็นไปไม่ได้หรือไม่แน่นอนในระบบที่ใช้สถิติ: "ฝานแตงโมหลังจากสตรอเบอร์รี่", "ลงไปในท่อในขณะที่อยู่ยงคงกระพัน" ฯลฯ

10
สถานะเกม 'สแต็ค'?
ฉันกำลังคิดเกี่ยวกับวิธีใช้สถานะเกมในเกมของฉัน สิ่งสำคัญที่ฉันต้องการคือ: รัฐชั้นนำกึ่งโปร่งใสสามารถดูผ่านเมนูหยุดชั่วคราวเพื่อเกมที่อยู่เบื้องหลัง บางสิ่งบางอย่าง OO- ฉันพบว่าการใช้และเข้าใจทฤษฎีนี้ง่ายขึ้นรวมถึงการรักษาองค์กรและการเพิ่มมากขึ้น ฉันวางแผนที่จะใช้รายการที่เชื่อมโยงและถือว่าเป็นสแต็ก ซึ่งหมายความว่าฉันสามารถเข้าถึงสถานะด้านล่างเพื่อความโปร่งใสกึ่ง แผน: ให้สถานะสแต็กเป็นรายการเชื่อมโยงของตัวชี้ไปยัง IGameStates สถานะบนสุดจะจัดการคำสั่งอัพเดตและอินพุตของตัวเองจากนั้นมีสมาชิก isTransparent เพื่อตัดสินใจว่าควรดึงสถานะที่อยู่ภายใต้ จากนั้นฉันก็ทำได้: states.push_back(new MainMenuState()); states.push_back(new OptionsMenuState()); states.pop_front(); เพื่อเป็นตัวแทนของผู้เล่นที่โหลดจากนั้นไปที่ตัวเลือกแล้วเมนูหลัก นี่เป็นความคิดที่ดีหรือ ... ฉันควรมองอย่างอื่นไหม ขอบคุณ

5
จะหลีกเลี่ยงวัตถุ GameManager god ได้อย่างไร?
ฉันเพียงแค่อ่านคำตอบสำหรับคำถามเกี่ยวกับโครงสร้างรหัสเกม มันทำให้ฉันสงสัยเกี่ยวกับGameManagerคลาสที่แพร่หลายและบ่อยครั้งที่มันจะกลายเป็นปัญหาในสภาพแวดล้อมการผลิต ให้ฉันอธิบายสิ่งนี้ อย่างแรกคือการสร้างต้นแบบ ไม่มีใครสนใจเกี่ยวกับการเขียนโค้ดที่ยอดเยี่ยมเราเพียงแค่พยายามทำให้บางสิ่งบางอย่างทำงานเพื่อดูว่าการเล่นเกมเพิ่มขึ้นหรือไม่ แล้วมี Greenlight GameManagerและในความพยายามที่จะทำความสะอาดสิ่งขึ้นบางคนเขียน อาจเป็นไปได้ที่จะถือมัดGameStatesอาจจะเก็บไม่กี่GameObjectsไม่มีอะไรใหญ่จริงๆ ผู้จัดการเล็ก ๆ น้อย ๆ ที่น่ารัก ในดินแดนที่สงบสุขก่อนการผลิตเกมกำลังก่อตัวขึ้นอย่างสวยงาม โคเดอร์มีคืนนอนหลับที่เหมาะสมและมีไอเดียมากมายในการสร้างสถาปัตยกรรมด้วยรูปแบบการออกแบบที่ยอดเยี่ยม จากนั้นการผลิตจะเริ่มขึ้นและในไม่ช้าแน่นอนว่าจะมีเวลาที่ จำกัด อาหารที่สมดุลหายไปนานแล้วตัวติดตามบั๊กแตกกับปัญหาผู้คนเครียดและเกมต้องได้รับการปล่อยตัวเมื่อวานนี้ ณ จุดนั้นโดยปกติแล้วสิ่งGameManagerนี้จะเป็นระเบียบขนาดใหญ่ที่แท้จริง (เพื่อให้สุภาพ) เหตุผลที่ง่าย หลังจากที่ทุกเมื่อเขียนเกมดี ... ทุกรหัสที่มาเป็นจริงที่นี่เพื่อจัดการเกม ง่ายเพียงเพิ่มคุณสมบัติพิเศษเล็ก ๆ น้อย ๆ นี้หรือแก้ไขข้อบกพร่องในGameManagerที่ซึ่งทุกอย่างจะถูกจัดเก็บอยู่แล้ว เมื่อเวลากลายเป็นปัญหาไม่มีวิธีการเขียนชั้นแยกต่างหากหรือแยกผู้จัดการยักษ์รายนี้เป็นผู้จัดการย่อย หลักสูตรนี้เป็นคลาสสิกต่อต้านรูปแบบที่: วัตถุพระเจ้า มันเป็นสิ่งที่ไม่ดีความเจ็บปวดที่จะผสานความเจ็บปวดที่จะรักษาความเจ็บปวดที่จะเข้าใจความเจ็บปวดที่จะเปลี่ยนแปลง คุณอยากแนะนำอะไรให้ป้องกันไม่ให้สิ่งนี้เกิดขึ้น แก้ไข ฉันรู้ว่ามันเป็นการล่อลวงที่จะตำหนิการตั้งชื่อ แน่นอนว่าการสร้างGameManagerชั้นเรียนไม่ได้เป็นความคิดที่ยอดเยี่ยม แต่สิ่งเดียวกันนี้สามารถเกิดขึ้นได้กับสิ่งที่สะอาดGameApplicationหรือGameStateMachineหรือGameSystemกลายเป็นที่ชื่นชอบของท่อเทปในตอนท้ายของโครงการ ไม่ว่าคุณจะตั้งชื่ออะไรคุณมีคลาสนั้นในรหัสเกมของคุณมันเป็นเพียงตัวอ่อนในตอนนี้คุณแค่ไม่รู้ว่ามันจะกลายเป็นมอนสเตอร์ตัวไหน ดังนั้นฉันจึงไม่คาดหวังคำตอบ "ตำหนิการตั้งชื่อ" ฉันต้องการวิธีที่จะป้องกันไม่ให้สิ่งนี้เกิดขึ้นเอกสารการเข้ารหัสและ / หรือกระบวนการที่ทีมสามารถติดตามได้โดยรู้ว่าสิ่งนี้จะเกิดขึ้นในบางช่วงของการผลิต เป็นเรื่องที่แย่เกินกว่าจะพูดได้ว่าหนึ่งเดือนของการแก้ไขข้อบกพร่องและคุณสมบัติในนาทีสุดท้ายเพียงเพราะพวกเขาทั้งหมดอยู่ในผู้จัดการที่ไม่มีใครสามารถจัดการได้

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

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