การพัฒนาเกม

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

4
จะสร้างเกมที่ไม่มี OOP ได้อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังศึกษาการพัฒนาเกมและฝึกทำเกม ฉันใช้ OOP เป็นจำนวนมากในเกมของฉัน ตัวอย่างเช่นขีปนาวุธแต่ละตัวที่ถูกยิงเป็นตัวอย่างของMissileวัตถุและเพิ่มเข้าไปในรายการของMissileวัตถุ รถถังแต่ละคันในเกมนั้นเป็นTankวัตถุ เป็นต้น การออกแบบทั้งหมดของโปรแกรมขึ้นอยู่กับสิ่งนี้ ยกตัวอย่างเช่นการมีรายการของMissileวัตถุทำให้ฉันทุกเฟรมสามารถเคลื่อนย้ายขีปนาวุธดึงพวกมันได้ ฯลฯ และการมีตัวอย่างของTankวัตถุสำหรับรถถังทุกคันทำให้ฉันสามารถตรวจสอบแต่ละถังถ้ามันชนกับสิ่งอื่น ๆ มันยากสำหรับฉันที่จะจินตนาการว่าเกม (ซึ่งซับซ้อนกว่า Pac-Man) สามารถตั้งโปรแกรมในภาษาที่ไม่ใช่ OO (ไม่มีการดูหมิ่นผู้เขียนโปรแกรมที่ไม่ใช่ OO แน่นอน) ไม่เพียง แต่จะใช้เวลานานแค่ไหน แต่ส่วนใหญ่ในแง่ของวิธีการออกแบบเกมด้วยวิธีนี้ ฉันไม่สามารถจินตนาการถึงการออกแบบเกมโดยไม่ใช้การเขียนโปรแกรมเชิงวัตถุเพราะความเข้าใจของฉันทั้งหมดเกี่ยวกับวิธีการออกแบบโปรแกรมเกมนั้นใช้ OOP ฉันต้องการถาม: วันนี้มีเกมที่ไม่ได้ตั้งโปรแกรมโดยใช้ OOP ในลักษณะที่คุ้นเคยกับสิ่งที่ฉันอธิบายไว้ข้างต้นหรือไม่ มีเกมใด ๆ 'วิชาชีพ' ที่ไม่ได้ใช้ OOP เป็นปัจจัยสำคัญในกระบวนการพัฒนาหรือไม่? ถ้าเป็นเช่นนั้นคุณช่วยให้ฉันทราบได้อย่างไรตัวอย่างเช่นการตรวจจับการชนระหว่างรถถังและขีปนาวุธ N สามารถทำได้โดยไม่ต้องใช้ OOP?

6
ทำไมคนเราถึงมี“ คลื่น” ในแต่ละด่านของเกมป้องกันหอคอย
ตัวอย่างเช่นใน Plants vs Zombies พวกซอมบี้จะโบกสะบัด ถ้าฉันจำได้ว่ามีคลื่นอย่างน้อยสองคลื่นเสมอ คลื่นลูกแรกและง่ายกว่าและเมื่อคุณได้รับ 90% ผ่านด่านจะมี "คลื่นสุดท้าย" ซึ่งสั้นกว่ายากกว่าและมีซอมบี้จำนวนมากมาพร้อมกัน คำถามของฉันคือทำไมเกมตัดสินใจที่จะประกาศเมื่อคุณเปลี่ยนจากคลื่นหนึ่งไปเป็นคลื่นถัดไป พวกเขาสามารถให้ระดับความคืบหน้าตั้งแต่ต้นจนจบโดยที่ไม่มีสิ่งนี้ถ้าพวกเขาต้องการ สิ่งนี้ทำให้เกมสนุกขึ้นด้วยเหตุผลบางอย่างหรือไม่? ฉันจะเรียนรู้เพิ่มเติมเกี่ยวกับเทคนิคนี้ได้ที่ไหน (เช่น: มีชื่อ)

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

3
ฉันสามารถกระโดดจาก A ถึง B ได้หรือไม่
ฉันกำลังทำ AI พื้นฐานสำหรับนักเลื่อนด้านข้างของฉันและฉันจำเป็นต้องรู้ว่าหน่วย AI สามารถเข้าถึงจุด B จากจุด A ได้ง่ายๆหรือไม่โดยการกระโดด เที่ยวบินวิถีของตัวละครของฉันเป็นบิตผิดปกติเพราะพวกเขาสามารถใช้บังคับในกลางอากาศ (เช่นในแจ๊ส Jackrabbit 2 ตัวอย่าง) ดังนั้นจึงแตกต่างจากวิถีดั้งเดิมของกระสุนปืนซึ่งเป็นเรื่องเกี่ยวกับ ... เส้นทางที่กระสุนปืนโยนหรือเปิดตัวจะใช้เวลา (... ) โดยไม่มีแรงขับ ... ฉันคิดว่าปัญหาของฉันเป็นเรื่องเกี่ยวกับกระสุนปืนด้วยการขับเคลื่อน (เช่นจรวด) เพื่อแสดงให้เห็นว่านี่เป็นลักษณะที่โค้งของเที่ยวบินสำหรับตัวละครของฉันถ้าฉันกระโดดและกดปุ่ม "ซ้าย" อย่างต่อเนื่อง (มันดูแตกต่างกันที่ปลายด้านซ้ายนี่คือจุดที่ฉันสร้าง manuevers กลางอากาศ): แรงที่กระทำระหว่างการบินจะขนานกับแกน X เสมอดังนั้นมันจึงเป็นF = (-f, 0)ถ้าฉันถือ "ซ้าย" และมันคือF = (f, 0)ถ้าฉันถือ "ขวา" เขาสามารถเคลื่อนไหวได้เหมือนนักเล่นสกี: ดังนั้นมันจึงแตกต่างจากวิถีคลาสสิกซึ่งเป็นเพียงพาราโบลา (ที่มา: วิกิพีเดีย ): เพื่อให้ยากขึ้นฉันกำลังจำลองการต้านทานอากาศอย่างง่ายเพื่อให้ตัวละครของฉันสามารถเร่งความเร็วได้สูงสุดถึงค่าความเร็วสูงสุดเท่านั้น ทำได้โดยใช้แรงเล็กน้อยในทิศทางตรงกันข้ามของการเดินทาง : b2Vec2 …

2
วิธีการตรวจสอบว่าห้องที่ใช้ voxel 3D ถูกปิดผนึกอย่างมีประสิทธิภาพ
ฉันเคยมีปัญหาบางอย่างกับการพิจารณาว่าห้องขนาดใหญ่ถูกผนึกในห้อง 3D แบบ voxel หรือไม่ ฉันอยู่ในจุดที่ฉันพยายามอย่างหนักที่สุดในการแก้ปัญหาโดยไม่ขอความช่วยเหลือ แต่ไม่พยายามให้มากพอฉันจึงขอความช่วยเหลือ เพื่อชี้แจงให้ชัดเจนว่าเป็นสิ่งที่ไม่มีรูในห้อง มีเครื่องซีลออกซิเจนซึ่งตรวจสอบว่าห้องถูกปิดผนึกหรือไม่และขึ้นอยู่กับระดับของออกซิเจน ตอนนี้นี่เป็นวิธีที่ฉันทำ: เริ่มต้นที่บล็อกด้านบนกระเบื้องจับแมวน้ำ (ช่องระบายอากาศอยู่ที่ใบหน้าด้านบนของเครื่องปิดผนึก) วนซ้ำวนซ้ำในทั้ง 6 ทิศทางที่อยู่ติดกัน หากไทล์ที่อยู่ติดกันเป็นไทล์แบบไม่มีการดูดให้ดำเนินการต่อผ่านลูป หากแผ่นที่อยู่ติดกันไม่เต็มหรือเป็นแผ่นสูญญากาศให้ตรวจสอบว่ามีบล็อกที่อยู่ติดกันหรือไม่ ทุกครั้งที่มีการตรวจสอบไพ่ให้ลดจำนวนตัวนับ หากการนับมีค่าเป็นศูนย์หากบล็อกสุดท้ายอยู่ติดกับแผ่นสูญญากาศให้ส่งคืนพื้นที่ที่ถูกปิดผนึก หากจำนวนการเข้าศูนย์เป็นศูนย์และบล็อกสุดท้ายไม่ใช่แผ่นสูญญากาศหรือลูปวนซ้ำจะสิ้นสุดลง (ไม่มีแผ่นสูญญากาศเหลืออยู่) ก่อนที่ตัวนับจะเป็นศูนย์พื้นที่จะถูกปิดผนึก หากพื้นที่ไม่ได้ปิดผนึกให้เรียกใช้การวนซ้ำอีกครั้งด้วยการเปลี่ยนแปลงบางอย่าง: ตรวจสอบบล็อกที่อยู่ติดกันสำหรับแผ่น "อากาศระบายอากาศ" แทนแผ่นสูญญากาศ แทนที่จะใช้ตัวนับลดระดับให้ทำต่อไปจนกว่าจะไม่พบแผ่น "อากาศระบายอากาศ" ที่อยู่ติดกัน เมื่อวนรอบเสร็จแล้วให้ตั้งค่าบล็อกที่เลือกแต่ละบล็อกเป็นแผ่นสูญญากาศ นี่คือรหัสที่ฉันใช้: http://pastebin.com/NimyKncC ปัญหา: ฉันใช้การตรวจสอบนี้ทุก 3 วินาทีบางครั้งเครื่องซีลจะต้องวนซ้ำหลายร้อยบล็อกและโลกขนาดใหญ่ที่มีเครื่องปิดผนึกออกซิเจนหลายวงวนซ้ำแบบวนซ้ำเหล่านี้ทุกสองสามวินาทีอาจเป็นเรื่องยากมากสำหรับซีพียู ฉันสงสัยว่าใครที่มีประสบการณ์เกี่ยวกับการเพิ่มประสิทธิภาพสามารถให้มือฉันหรืออย่างน้อยก็ชี้ให้ฉันไปในทิศทางที่ถูกต้อง ขอบคุณมัด
10 java  voxels  recursion 

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

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

1
การนำอัลกอริธึมมาใช้ผ่านการคำนวณเฉดสีกับค่าเฉดสีไปป์ไลน์
ด้วยความพร้อมของการคำนวณเฉดสีสำหรับ DirectX และ OpenGL ตอนนี้เป็นไปได้ที่จะใช้อัลกอริธึมมากมายโดยไม่ต้องผ่านขั้นตอนการแรสเตอร์และแทนที่จะใช้การคำนวณเอนกประสงค์บน GPU เพื่อแก้ปัญหา สำหรับอัลกอริธึมบางสิ่งนี้ดูเหมือนจะเป็นวิธีแก้ปัญหาแบบ canonical ที่ใช้งานง่ายเพราะพวกมันไม่ใช่ rasterization based และ shaders ที่ใช้ rasterization ดูเหมือนจะเป็นวิธีแก้ปัญหาในการควบคุมพลังงาน GPU (ตัวอย่างง่าย ๆ : การสร้างพื้นผิวของเสียง ) มีอัลกอริทึมที่สามารถใช้งานได้ทั้งสองวิธีมีประโยชน์ด้านประสิทธิภาพการทำงานทั่วไป (ที่มีศักยภาพ) มากกว่าการใช้ตัวประมวลผลร่วมกับเส้นทางปกติหรือไม่ มีข้อเสียที่เราควรระวัง (ตัวอย่างเช่นมีค่าใช้จ่ายที่ผิดปกติบางอย่างเพื่อเปลี่ยนจาก / เป็นคำนวณเฉดสีที่รันไทม์)? อาจมีประโยชน์หรือข้อเสียอื่น ๆ ที่ควรพิจารณาเมื่อเลือกระหว่างสองรายการนี้หรือไม่?

2
UDP ที่ไม่บล็อกหรือแยกเธรดสำหรับรับ
ฉันกำลังสร้างเกมผู้เล่นหลายคน (สำหรับผู้เล่นอายุต่ำกว่า 64 ปี) ฉันตัดสินใจที่จะมีเธรดแยกต่างหากสำหรับลูปเครือข่าย แต่ฉันสงสัยว่ามันจะดีกว่าถ้าจะสร้างเธรดพิเศษสำหรับรับ UDP หรือตั้งซ็อกเก็ตการรับบนการไม่บล็อก (ไม่มีเธรดพิเศษ) หรือจะเป็นการดีกว่าถ้าใช้วิธีอื่นเช่น Asynchronous Sockets ยินดีต้อนรับวิธีการที่ดีกว่าเสมอ!

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

4
อะไรทำให้เอฟเฟกต์เสียงเกม“ ดี”?
ฉันกำลังสร้างเกมเล็ก ๆ และพบเอฟเฟกต์เสียงฟรีที่ฉันต้องการใช้ ปัญหาคือฉันไม่สามารถรับเอฟเฟกต์เสียงเหมือนที่พวกเขา "เป็น" ในเกมของฉัน ฉันไม่รู้ว่าจะมองหาอะไรที่สามารถทำให้เอฟเฟกต์เสียงเข้ากับสไตล์เกมที่เหลือของฉัน ฉันมีความคิดบางอย่างเกี่ยวกับสิ่งที่มีผลต่อการประกบของเสียงกับกราฟิก ตัวอย่างเช่นฉันรู้สึกว่า SFX ปัจจุบันฉันอาจ "สมจริง" เกินไปสำหรับสไตล์กราฟิกของฉันซึ่งเป็นการ์ตูนที่ค่อนข้างสวย นอกจากนี้ยังมีมาตรฐานทองคำสำหรับสิ่งที่ปริมาณ SFX ต่างๆควรอยู่ที่? (ตัวอย่างเช่นฉันคิดว่าเสียงฝีเท้าหรือเสียงทั่วไปอื่น ๆ ควรอยู่ในระดับเสียงที่แทบจะไม่ได้ยินในขณะที่ศัตรูเสียชีวิตหรือบางสิ่งที่เป็น "เรื่องใหญ่" ควรดังกว่านี้) ฉันพบคำถามที่คล้ายกันเกี่ยวกับกราฟิกฉันกำลังมองหาการตอบสนองที่คล้ายกันกับเอฟเฟกต์เสียง

1
ฉันสามารถใช้ไอคอนปุ่มควบคุมของ Playstation ในเกมของฉันได้หรือไม่?
ขณะนี้ฉันกำลังทำงานกับเกมที่จะวางจำหน่ายบนพีซีที่มีตัวควบคุมคอนโทรลเลอร์และฉันพยายามหาวิธีแสดงไอคอนตัวควบคุมที่ดีที่สุดในเกม ฉันสมมติว่าฉันไม่สามารถใช้ไอคอนควบคุมของ Playstation หรือ Xbox ในเกมของฉันได้โดยไม่ต้องมีใบอนุญาตบางรูปแบบก่อน (ใช่ไหม) ดังนั้นจะเป็นการดีที่สุดที่จะถ่ายทอดบางสิ่งเช่น 'กด X เพื่อโต้ตอบ' ในเกมพีซีสำหรับตัวควบคุม

3
ค้นหาการเคลื่อนไหวที่เป็นไปได้สำหรับเอนทิตีในเกม 2d ที่เรียงต่อกัน
ฉันมีปัญหาที่จะเกิดขึ้นกับคำค้นหาที่เฉพาะเจาะจงสำหรับเรื่องนี้ แต่จะมีวิธีการอย่างไรในการค้นหาความเคลื่อนไหวที่เป็นไปได้ในเกมวางแผนกลยุทธ์แบบเลี้ยว 2 มิติ (เช่น FF: Tactics, Fire Emblem, Advance Wars) ฉันไม่ได้คิดมากเกี่ยวกับภูมิประเทศ (หรือแม้แต่การปะทะกัน) ณ จุดนี้ ฉันแค่สงสัยว่าอัลกอริธึมที่ฉันสามารถใช้เพื่อหาว่าเอนทิตี X สามารถย้าย 5 ไทล์และโจมตี 2 ไทล์ไกลกว่านั้น ฉันรู้ว่าฉันสามารถใช้บางอย่างเช่น Dijkstra เพื่อค้นหาระยะห่างระหว่างจุดสองจุด การนำไปใช้งานอย่างหนึ่งที่เป็นไปได้คือเริ่มต้นที่ตำแหน่งของผู้เล่นแล้วแยกออกจากที่นั่นจนกระทั่งระยะทางที่ Dijkstra กลับมามีค่ามากกว่าจำนวนการย้าย แค่สงสัยว่ามีใครบางคนชี้ให้ฉันในทิศทางที่ถูกต้อง (เช่นชื่อของอัลกอริทึมเทคนิคบทความ ฯลฯ )

4
การมอบหมายงาน
ใน RTS ที่คนงานได้รับมอบหมายเช่นสร้างกำแพงคนงานจะตัดสินใจได้อย่างไรว่าจะสร้างกำแพงแบบใด ผู้เล่นตัดสินใจว่าจะสร้างกำแพงที่ไหน แต่พวกเขาไม่ได้กำหนดคนงานแต่ละคนให้กับผนังห้องสี่เหลี่ยม ในเกม RTS หลาย ๆ เกมคนงานทำงานที่อยู่ใกล้พวกเขา แต่ใน RTS ของฉันฉันต้องการใช้กลยุทธ์ในการทำภารกิจที่ชัดเจนในช่องสี่เหลี่ยมเฉพาะเป็นกลยุทธ์หลักดังนั้นฉันจึงไม่ต้องการให้คนโง่ทำงานเป็นกลุ่มและออกจากงานต่อไป ออกไปไม่ได้ทำ ฉันใช้ตัวอย่างผนังอาคาร มันอาจเป็นเหมืองหินทำถนนเก็บไม้หรืออะไรก็ตาม สิ่งสำคัญคือผู้ใช้เลือกที่ แต่ไม่ใช่ใคร คนงานสามารถทำงานกับสี่เหลี่ยมที่อยู่ติดกับสี่เหลี่ยมที่เข้าถึงได้เท่านั้น สี่เหลี่ยมที่พวกเขาทำงานด้วยตนเองอาจไม่สามารถใช้ได้จนกว่างานจะเสร็จสมบูรณ์ คนงาน 1 และ 2 ได้รับคำสั่งให้ขุดสี่เหลี่ยม A, B, C และ D พวกเขาสามารถเคลื่อนย้ายหนึ่งตารางต่อเกมติ๊กและการขุดหนึ่งตารางใช้เวลา 10 เห็บ คุณจะตัดสินใจได้อย่างไรว่าคนงานเหมืองคนไหนทำเหมืองสี่เหลี่ยม ดูเหมือนว่าตัวเองชัดเจนว่า 1 ควรเป็นของฉันและ 2 ควรเป็นของฉัน 1 คือ 4 สี่เหลี่ยมห่างจาก A ดังนั้นจะทำการขุดเสร็จใน 14 เห็บ 1 ควรจะไปที่ไหนต่อไปและทำไม? และถ้ามีอีกสี่เหลี่ยมจัตุรัส …
10 ai 

3
การลงทะเบียนของ UK Indie studio
ฉันมาจากสหราชอาณาจักรและฉันเพิ่งสร้างเกมอินดี้จนเสร็จและมีความสนใจจากผู้ค้าปลีกออนไลน์หลายรายที่ขายเกม ฉันต้องกรอกสัญญาขั้นพื้นฐาน ฉันแค่ผู้ชายคนหนึ่งที่ทำงานจากที่บ้านเป็นงานอดิเรกฉันไปตามชื่อสตูดิโอสำหรับเกมของฉันเพียงอย่างเดียวเพราะนั่นเป็นบรรทัดฐาน ฉันต้องลงทะเบียนชื่อ 'บริษัท ' ของฉันก่อนที่ฉันจะไปได้อีกหรือไม่? แก้ไข: ฉันได้ลงทะเบียนเป็นลูกจ้างของตนเองจากงานก่อนหน้าในสาขาอื่นแล้ว
10 business 

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