การพัฒนาเกม

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

3
การสร้างเครือข่ายในเกมกลยุทธ์แบบเรียลไทม์
ปัจจุบันเกมการวางแผนกลยุทธ์แบบเรียลไทม์ในปัจจุบันคืออะไร? ฉันดูเหมือนจะจำได้ว่าไม่กี่ปีที่ผ่านมาบางชื่อ AAA ส่งเฉพาะอินพุตของผู้เล่น (Starcraft 1, Age of Empires) เนื่องจากสิ่งนี้ทำให้คุณต้องรักษาทุกสิ่งไว้อย่างสมบูรณ์มันจึงเป็นตัวเลือกที่เหมาะสมหรือไม่? การซิงโครไนซ์ตัวสร้างเลขสุ่มนั้นเป็นไปได้ แต่สิ่งที่เกี่ยวกับความแตกต่างเล็กน้อยในการใช้งาน FPU ฯลฯ .. หรือเกมกลยุทธ์ใช้สิ่งที่ใกล้กับเครือข่ายเกมแอ็คชั่นมากขึ้นโดยที่แต่ละเอนทิตีถูกส่งแทน (ด้วยรูปแบบการทำนายและการบีบอัด (เดลต้า)) ถ้าเป็นเช่นนั้นไอเท็มที่ระเหยได้ง่ายเช่นกระสุนปืนจะได้รับการปฏิบัติอย่างไร ไคลเอ็นต์ / เซิร์ฟเวอร์กับเพียร์ทูเพียร์คืออะไร ฉันเดาว่าทั้งหมดนี้เกี่ยวข้องกันอย่างมาก ขอขอบคุณสำหรับเวลาของคุณ!

1
อัลกอริทึมสำหรับเครื่องมือในการสร้างทฤษฎียานบนพื้นฐานของเกม (League of Legends)
ฉันต้องการสร้างแบบจำลอง (โดยทั่วไปสำหรับการทดสอบ) สำหรับเกม (League of legends) พื้นฐานของเกม: คุณมีฮีโร่ที่มีสถิติ: จุดสุขภาพ โจมตีความเสียหาย ความเร็วโจมตี เกราะ การเจาะเกราะ ความเร็วในการเคลื่อนที่ ฮีโร่สามารถมี 4 ทักษะ (คุณจะได้รับหนึ่งแต้มทักษะในแต่ละระดับ) (พวกมันถูกเปิดใช้งานด้วยตนเองเกือบตลอดเวลามีคูลดาวน์ดาเมจอัตราส่วนโจมตีต่อพลังโจมตี / การโจมตีระดับโจมตีและระดับทักษะ) + ทักษะแบบพาสซีฟ คุณสามารถฆ่าฮีโร่ศัตรูหรือสัตว์ประหลาดที่เป็นกลางพวกเขามีสถิติเดียวกัน: จุดสุขภาพ โจมตีความเสียหาย ความเร็วโจมตี เกราะ สิ่งที่ฉันต้องการจะทำ: สร้างเครื่องมือเพื่อทดสอบว่ามีไอเท็มใดบ้างหรือการเพิ่มค่าสเตตัสโดยเฉพาะจะเพิ่มความเร็ว / ความเร็วในการฆ่าของคุณหรือไม่ แผนที่: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg ตัวอย่างสถิติ: แรงม้า: 420 โฆษณา: 55 AttackSpeed: 0.613 (การโจมตี / s -> การโจมตีทุกครั้งที่ 1 / 0.613 s) …
10 algorithm 

3
วิธีที่มีประสิทธิภาพในการแสดงภูมิประเทศขนาดใหญ่ใน XNA
ฉันกำลังสร้างเกม XNA ที่ต้องการพื้นที่ขนาดใหญ่สำหรับผู้เล่น ขณะนี้แผนที่ความสูงทดสอบที่ฉันใช้คือ 4096x4096 และบันทึกเป็น BMP 4 บิต สิ่งที่ฉันพยายามจะทำคือนำไฟล์ heightmap ขนาดใหญ่มาแสดงในเกม ปัญหาที่ฉันพบคือความจริงที่ว่ามันไม่มีประสิทธิภาพในการโหลดภูมิประเทศทั้งหมดไปยังหน่วยความจำในครั้งเดียวเนื่องจากมันจะใช้หน่วยความจำส่วนใหญ่ที่มีอยู่ ปัญหาอีกประการหนึ่งที่ฉันพบคือฉันไม่สามารถทำให้ภูมิประเทศทั้งหมดเป็นแบบดั้งเดิมได้เนื่องจากมีการ จำกัด ฮาร์ดภายใน XNA จากที่กล่าวมาฉันได้เจอวิธีแก้ปัญหาหลายอย่างซึ่งทั้งหมดได้ระบุไว้ด้านล่าง: การแสดงผลขึ้นอยู่กับตำแหน่งของผู้ใช้ปัจจุบัน - โดยทั่วไปจะวาดสี่เหลี่ยมรอบผู้ใช้ไม่ว่าจะวางแนวใดในโลก นี่ไม่ใช่สิ่งที่ฉันต้องการอย่างแน่นอนเพราะคุณยังคงแสดงพื้นที่ที่ผู้ใช้ไม่เห็น การแสดงผลขึ้นอยู่กับการวางแนวและตำแหน่งของผู้ใช้ - ฉันพบสูตรเพื่อดึงสามเหลี่ยมที่ควรมีพิกเซลของความสูงแผนที่ที่จะแสดง แต่สิ่งนี้พิสูจน์แล้วว่าเป็นเรื่องยากมาก แบ่งภูมิประเทศออกเป็นหลาย ๆ ชิ้นและเรนเดอร์ที่ใกล้เคียงกับผู้ใช้มากที่สุด - ยังไม่มีประสิทธิภาพมากนักเนื่องจากคุณยังคงแสดงผลชิ้นส่วนที่ผู้คนไม่เห็น และมันก็ต้องใช้ความพยายามสูงเพราะฉันต้องแบ่งส่วนสูงออกเป็นหลายส่วนและความสามารถในการปรับขยายได้กลายเป็นปัญหาใหญ่ หลังจากลองใช้วิธีแก้ปัญหาเหล่านี้แล้วฉันก็ยังใหม่จากแนวคิดที่จะทำ ฉันได้รับคำตอบบางอย่างที่ผู้คนบอกให้ฉันทำอัลกอริทึมที่ซับซ้อนเหล่านี้ แต่ฉันก็ไม่รู้ว่าจะทำอย่างไร โดยพื้นฐานแล้วฉันกำลังขอวิธีที่เรียบง่ายตรงไปตรงมาในการแสดงภูมิประเทศที่มีความเป็นมนุษย์ใน XNA ด้วยประสิทธิภาพสูงสุด ฉันค่อนข้างใหม่สำหรับการพัฒนาเกมโดยทั่วไป แต่ฉันยินดีที่จะทำการวิจัยหากดูเหมือนว่ามีแนวโน้ม อัปเดต 1:หลังจากค้นคว้าวิธีการ geoclipmapping ฉันเริ่มโค้ดด้วยวิธีนั้น ฉันทำคณิตศาสตร์ทั้งหมดเสร็จแล้วและเกมทำงาน อย่างไรก็ตามมันไม่มีประสิทธิภาพอย่างยิ่ง - ซึ่งอาจเป็นรหัสที่ไม่ดีในส่วนของฉัน มันทำงานที่ 2FPS …
10 c#  xna 

2
ระบบเรขาคณิตของประชากร: การเริ่มต้น [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันต้องการพัฒนาเกมอย่าง Populous: The Beginning กับเพื่อนของฉัน แต่เราไม่สามารถหารูปทรงเรขาคณิตที่พวกเขาใช้สำหรับโลกนี้ได้ เรารู้ว่า - ไพ่ทั้งหมดมีขนาดเท่ากัน - ไพ่ทั้งหมดเป็นสี่เหลี่ยม ดังนั้น .. มันไม่สามารถเป็นอิโคซาเฮดรอนได้เพราะมีรูปสามเหลี่ยมและไม่สามารถเป็นรูปทรงกลมทรงมาตรฐานได้เพราะไม่ใช่ว่าทุกแผ่นมีขนาดเท่ากัน มีคนช่วยฉันได้ไหม
10 3d  geometry 

3
การสร้างแผนที่แบบสุ่ม - กลยุทธ์สำหรับการกระจาย / การรวมโหนดแบบสุ่ม
ฉันกำลังเล่นเกมกลยุทธ์ 4X ง่ายๆในอวกาศที่แต่ละโหนดเป็นจุดสนใจ (ดาวเคราะห์ดาวเคราะห์น้อยและอื่น ๆ ) ในการสร้างแผนที่แบบสุ่มฉันจะทำตามขั้นตอนด้านล่าง ตัดสินใจว่าจะมีกี่โหนดในแต่ละแผนที่ (อาจจะบอกว่ามีดาวเคราะห์คล้ายโลก 5 ดวงหรือดาวเคราะห์ที่แห้งแล้ง 10 ดวงเป็นต้น) วางแต่ละโหนดบนแผนที่ สำหรับขั้นตอนที่ 2 ฉันต้องการที่จะมีการแพร่กระจายของแต่ละโหนดประเภท ตัวอย่างเช่นฉันจะเริ่มต้นด้วยการวางดาวเคราะห์คล้ายโลกทั้งหมด ถ้าฉันทำแรนด์ (map.width, map.height) เพื่อกำหนดตำแหน่งฉันอาจจะรวมดาวเคราะห์คล้ายโลกทั้งหมดเข้าด้วยกันซึ่งจะให้ประโยชน์กับผู้เล่นที่เริ่มต้นในพื้นที่นั้น มีวิธีการใดบ้างเช่นการใช้ฟังก์ชั่นกราฟที่แตกต่างกันหรือฟังก์ชั่นเสียงรบกวนซึ่งสามารถสร้างลำดับของ (x, y) พิกัดซึ่งกระจายออกจากกัน มีวิธีใดบ้างในการสร้างพิกัดที่ใกล้เคียงกัน?

2
ฉันจะสร้างระบบอิสระความละเอียดได้อย่างไร
ฉันกำลังยุ่งกับสิ่งนี้ ฉันสามารถยึดสิ่งของไว้ที่ขอบซึ่งจะทำให้ความละเอียด UI ของฉันเป็นอิสระ ... จนกว่ามันจะเปลี่ยนไปมากจนกราฟิกนั้นเล็กเกินไป ฉันจะปรับขนาดอย่างเหมาะสมเมื่อใดก็ตามที่จำเป็นได้อย่างไร ฉันจะเก็บกราฟิกของฉันในสัดส่วนที่เหมาะสมในขณะที่ปรับขนาดได้อย่างไร ฉันไม่ต้องการให้พวกมันยืดออกหากความละเอียดมีสัดส่วนต่างกันเช่น 16:10 ซึ่งต่างกับสิ่งอื่น มีวิธีการจริงและผ่านการทดสอบมาแล้วหรือไม่? เครื่องเล่นวิดีโอแสดงขอบดำเนื่องจากปัญหานี้สิ่งนี้ไม่สามารถแก้ไขได้อย่างถูกต้องหรือไม่?
10 xna  resolution 

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

1
Enum เทียบกับ จำนวนเต็มสำหรับค่าทักษะ
ฉันใช้ทักษะพื้นฐานและระบบคุณลักษณะแม้ว่าฉันจะมีความคิดที่สองเกี่ยวกับวิธีที่ฉันควรจะไปเกี่ยวกับมัน ตัวอย่างเช่นฉันสามารถใช้ Dictionary / HashMap ซึ่งใช้ SkillType enums เพื่อเป็นตัวแทนของคีย์และค่าจำนวนเต็มแทนค่า แต่ฉันควรทำเช่นนี้? public class Skills { public IDictionary<StatType, Int> skills; //StatType is enum, being the key; the int //is the value. } vs. public class Skills { public int LongBlade, Armor, Marksman; //...etc } ฉันต้องการทราบถึงประโยชน์ของการรักษาความปลอดภัยของประเภทที่นี่ไม่ใช่แค่การใช้จำนวนเต็มพื้นฐาน คำแนะนำใด ๆ
10 c# 

2
ฉันจะจ่ายเงินให้คนที่ทำงานในโครงการพัฒนาเกมของฉันได้อย่างไร
วิธีที่เหมาะสมในการจ่ายทีมของคุณสำหรับโครงการพัฒนาเกมคืออะไร? ตัวอย่างเช่นคุณจะจ่ายให้กับศิลปินกราฟิกหรือนักดนตรีในการทำงานได้อย่างไรโดยเฉพาะอย่างยิ่งในบริบทของตลาดแอพในปัจจุบันเช่น Apple App Store หรือ Android Market มันเป็นการดีกว่าที่จะจ่ายล่วงหน้าหรือแบ่งปันรายได้ตามสัดส่วนเมื่อแอพประสบความสำเร็จ?

1
ฉันควรให้ตัวละครแต่ละตัวเป็น VBO ของตัวเองหรือฉันควรจะนำพวกเขาไปเป็น VBO ตัวเดียว?
ฉันทำเกม 3D คนแรก ฉันควรให้ตัวละครแต่ละตัวเป็น VBO ของตัวเองหรือฉันควรจะรวบรวมตัวละครทั้งหมดเป็น VBO ตัวเดียวหรือไม่? ข้อดี / ข้อเสียคืออะไร?
10 opengl  vbo 

3
ระบบเอนทิตีส่วนประกอบ - อัปเดตและคำสั่งโทร
เพื่อให้ส่วนประกอบสามารถอัปเดตทุกเฟรม (และปล่อยให้ฟังก์ชันนี้ออกจากส่วนประกอบที่ไม่จำเป็นต้องใช้) ฉันมีแนวคิดที่จะสร้างคอมโพเนนต์ UpdateComponent ส่วนประกอบอื่น ๆ เช่นMovableComponent(ซึ่งมีความเร็ว) จะสืบทอดมาจากIUpdatableคลาสนามธรรม กองกำลังนี้MovableComponentจะใช้Update(gametime dt)วิธีการและอื่น ๆRegisterWithUpdater()ที่จะช่วยให้ชี้ไปUpdateComponent MovableComponentส่วนประกอบจำนวนมากสามารถทำสิ่งนี้ได้และUpdateComponentสามารถเรียกใช้Update(gametime dt)วิธีการทั้งหมดได้โดยไม่ต้องสนใจว่าเขาเป็นใครหรืออะไร คำถามของฉันคือ: สิ่งนี้ดูเหมือนจะเป็นสิ่งที่ปกติหรือเคยถูกใช้โดยทุกคนหรือไม่ ฉันไม่พบสิ่งใดในหัวข้อ ฉันจะรักษาคำสั่งซื้อส่วนประกอบเช่นฟิสิกส์แล้วเปลี่ยนตำแหน่งได้อย่างไร มันจำเป็นหรือไม่ มีวิธีอื่นใดในการประกันว่าส่วนประกอบที่ควรประมวลผลทุกเฟรมกำลังดำเนินการในความเป็นจริง แก้ไข ฉันคิดว่าฉันจะให้ความสำคัญกับรายการประเภทที่สามารถอัปเดตได้ จากนั้นองค์ประกอบทั้งหมดของประเภทนั้นสามารถอัปเดตได้มากกว่าการจัดการมันต่อเอนทิตี (ซึ่งเป็นเพียงดัชนีในระบบของฉัน) ยังคง คำถามของฉันยังคงใช้ได้สำหรับฉัน ฉันไม่รู้ว่านี่เป็นเหตุผล / ปกติหรือสิ่งที่คนอื่นมักจะทำ นอกจากนี้ผู้คนที่อินซอมเนียก็ยอดเยี่ยมมาก! / แก้ไข ตัวอย่างโค้ดก่อนหน้านี้: class IUpdatable { public: virtual void Update(float dt) = 0; protected: virtual void RegisterAsUpdatable() = 0; }; class …

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

3
ทรัพยากรที่ยอดเยี่ยมและมีประโยชน์สำหรับเกม Isometric ที่สร้างบน XNA Framework คืออะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ขณะนี้ฉันกำลังทำงานในเกมภาพสามมิติโดยใช้ Microsoft XNA Framework ฉันกำลังมองหาแหล่งข้อมูลที่จะใช้ในการทำให้โครงการนี้ประสบความสำเร็จเช่นไอโซเมตริกเอนจิ้นฟิสิกส์ฟิสิกส์เอ็นจิ้นสไปรต์ (สำหรับเกมไอโซโทป) ตัวจัดการเหตุการณ์สำหรับ ... การป้อนข้อมูลใด ๆ จะได้รับการชื่นชมอย่างมาก

1
มีวิธีการใช้ XNA + Xbox 360 กับทีวี 3D รุ่นปัจจุบันหรือไม่?
ฉันสนใจที่จะเล่นกับ 3D บนโทรทัศน์ Sony 3D ใหม่ (แสงโพลาไรซ์มากกว่าแว่นตาสีแดง / เขียว / น้ำเงิน) เป็นไปได้ด้วย XNA บน XBox 360 ปัจจุบันหรือไม่ หรือไม่ก็ดูเหมือนว่าจะมี PS3 dev เล็กน้อย ทางออกของ XNA ในตอนนี้ฉันสนใจ XNA และ 360 ความนับถือ,
10 xna  3d  xbox360 

9
จะใช้เวลาเดินทางเข้าเกมอย่างไร?
ฉันสงสัยว่าจะนำการเดินทางข้ามเวลาไปใช้ในเกมอย่างไร ไม่มีอะไรซับซ้อนเป็นพิเศษเพียงแค่ย้อนเวลากลับคืนเหมือนใน Braid ที่ผู้ใช้สามารถย้อนกลับ / ไปข้างหน้าอย่างรวดเร็ว 30 วินาทีหรืออะไรก็ตาม ฉันค้นหาในเว็บเป็นจำนวนมาก แต่โดยทั่วไปแล้วผลลัพธ์ของฉันจะเรียกว่าใช้เวลาเหมือนกับ "มันคือ 3:00" หรือมีการจับเวลา สิ่งเดียวที่ฉันคิดได้ก็คือการใช้ 2 อาร์เรย์หนึ่งสำหรับตำแหน่ง x ของผู้เล่นและอีกหนึ่งสำหรับตำแหน่ง y ของผู้เล่นแล้ววนซ้ำผ่านอาร์เรย์เหล่านั้นและวางอักขระที่ตำแหน่งนั้นเมื่อพวกเขาย้อนกลับ / ไปข้างหน้าอย่างรวดเร็ว สามารถใช้งานได้ ถ้ามันใช้งานได้อาร์เรย์จะต้องใหญ่ขนาดไหนและฉันควรเก็บ x และ y ของผู้เล่นบ่อยแค่ไหน? หากไม่ได้ผลฉันจะลองทำอะไรได้อีก ขอบคุณล่วงหน้า!

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