คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 16
ถ้าอยากจะสร้างเกม ให้โฟกัสไปที่วิธีที่จะทำเกมให้สำเร็จ แล้วนั่งพิจารณาว่า เรามีต้นทุนอะไรแล้วบ้าง ยังขาดอะไร-จะหาสิ่งที่ขาดได้จากไหน คิดว่าใช้เวลาเท่าไหร่
ตัวอย่าง เกมสามมิติ ตัวละคร 1 ตัว ศัตรู 1 ตัว สู้กันในฉาก 1 จอ - ลองคิดดูครับว่าจะทำยังไงให้สำเร็จ
1. เขียน Game Design Document ขึ้นมา ว่าในเกมเราต้องการให้เป็นอย่างไร พยายามลงรายละเอียด"ที่จำเป็น" ในการพัฒนาให้มากและละเอียดที่สุด
( ยกตัวอย่าง : Player เป็นตัวละครอัศวินผู้ชาย (ภาพร่าง) เดินได้ 4 ทิศ ถืออาวุธเป็นดาบ การโจมตีเป็นการฟันลงตรงๆ / Enemy เป็นสไลม์สีเขียว โจมตีโดยการพุ่งชน / ฉากเป็นป่า มีต้นไม้ ก้อนหิน พื้นสีเขียวสลับน้ำตาล ล้อมกรอบ 4 ด้าน) กรณีมีทีมทำหลายคนยิ่งต้องละเอียด
2. โปรแกรมตัวเกม ผ่าน Game Engine/ Development tools
2.1 สร้างฉากว่างๆขึ้นมา กรณีเกม 3มิติ มีการกำหนดแกน x,y,z สำหรับอ้างอิง object ต่างๆ
2.2 วางกล่องแทนตัวละคร player เขียน script input ควบคุม เดินไปเดินมา / โจมตี
2.3 วางกล่องแทนตัวละคร Enemy เขียน script AI เดินไปเดินมา random หรือวิ่งหาจุดที่ player อยู่
2.4 กำหนด object property ขอบฉาก เดินชนแล้วสุด ไม่ทะลุไป , Player , Enemy HP = 10.
2.5 เขียน script เช็ค collision จุดที่ดาบ Player ฟันลงมา โดน Body Enemy และ จุดการโจมตีของ Enemy โดน Body Player คำนวนเดเมจ
2.6 damage calculator ลด HP hit ละ 1 / HP น้อยกว่า 0 จบเกม ( ถ้ามีเวลาก็เพิ่มสูตรคำนวน ATK/DEF เอา)
2.7 UI/UX Script การแสดงผล บนหน้าจอ, HP bar / เลข damage / ข้อความ Player / Enemy ตาย
3.3D Character , Animation
3.1 ขึ้นรูป model Player / Enemy
3.2 ทำ texture Player / Enemy
3.3 ทำ animation ของ player / enemy ( ยืน / วิ่ง / เดิน / โจมตี / บาดเจ็บ / ตาย )
3.4 Object วัสดุประกอบฉาก ต้นไม้ ก้อนหิน ขอบฉาก(พุ่มไม้)
4.Level design / SFX เอฟเฟค แสงสีเสียง
4.1 นำวัสดุจาก 3.4 มาทำเป็นฉากตามที่ออกแบบไว้
4.2 ใส่เอฟเฟคเพื่อให้เกมน่าเล่นยิ่งขึ้น
5. เอางานทั้งหมดมายำรวมกัน ให้ออกมาเป็นเกมส์ ตามที่ออกแบบไว้จาก GDD ตามข้อ 1
5.1 export ออกมาให้คนเล่นกัน PC / Web / Android .apk .. etc
จากข้างต้น ถ้าดูแล้วทุกขั้นตอนทำเองได้หมด ก็ทำเลย / ถ้าไม่ ก็หาข้อมูลเพิ่ม หรือจะลองทำเป็นส่วนๆดูก็ได้
ถ้าทำแล้ว ให้มาดูว่า ใช้เวลาในส่วนไหน มากน้อยยังไง / คุณภาพงานเป็นแบบไหน / รู้สึกว่าง่ายหรือยาก และประเมินดูว่า อันไหนที่เราใช้เวลาเยอะหรือไม่ถนัด ถ้าเราใช้ตัวช่วย(ทีมงาน / asset) มาช่วย จะทำให้เรามีเวลาไปใช้ในการปรับปรุงงานที่เราถนัดได้ดีขึ้นรึเปล่า
ส่วนที่ต้องศึกษาในขั้นสูงต่อไป
Multiplayer : การเขียนแบบ Client/Server การใช้ Network API ในการส่งข้อมูล การอัพเดทการแสดงผลของ player แต่ละคน
Open world : การคำนวนการแสดงผล รอบตัวผู้เล่น - ตัด object นอกระยะสายตา การส่งผ่านตัวละครจาก map หนึ่งไปยังอีก map หนึ่ง ให้รู้สึกว่าเป็น map เดียวกัน
Server และการให้บริการ ผู้ให้บริการมีหน้าที่ดูแล services ที่เราเปิดใช้และการเชื่อมต่อให้เข้าไปใช้เท่านั้น เป็นหน้าที่ของเราเองที่จะออกแบบการวาง game sv, DB sv, การดูแล traffic ต่างๆให้พอกับการใช้งาน
แต่ละหัวข้อย่อย ก็มีเทคนิคการเขียนย่อยออกไปอีก
ตัวอย่าง เกมสามมิติ ตัวละคร 1 ตัว ศัตรู 1 ตัว สู้กันในฉาก 1 จอ - ลองคิดดูครับว่าจะทำยังไงให้สำเร็จ
1. เขียน Game Design Document ขึ้นมา ว่าในเกมเราต้องการให้เป็นอย่างไร พยายามลงรายละเอียด"ที่จำเป็น" ในการพัฒนาให้มากและละเอียดที่สุด
( ยกตัวอย่าง : Player เป็นตัวละครอัศวินผู้ชาย (ภาพร่าง) เดินได้ 4 ทิศ ถืออาวุธเป็นดาบ การโจมตีเป็นการฟันลงตรงๆ / Enemy เป็นสไลม์สีเขียว โจมตีโดยการพุ่งชน / ฉากเป็นป่า มีต้นไม้ ก้อนหิน พื้นสีเขียวสลับน้ำตาล ล้อมกรอบ 4 ด้าน) กรณีมีทีมทำหลายคนยิ่งต้องละเอียด
2. โปรแกรมตัวเกม ผ่าน Game Engine/ Development tools
2.1 สร้างฉากว่างๆขึ้นมา กรณีเกม 3มิติ มีการกำหนดแกน x,y,z สำหรับอ้างอิง object ต่างๆ
2.2 วางกล่องแทนตัวละคร player เขียน script input ควบคุม เดินไปเดินมา / โจมตี
2.3 วางกล่องแทนตัวละคร Enemy เขียน script AI เดินไปเดินมา random หรือวิ่งหาจุดที่ player อยู่
2.4 กำหนด object property ขอบฉาก เดินชนแล้วสุด ไม่ทะลุไป , Player , Enemy HP = 10.
2.5 เขียน script เช็ค collision จุดที่ดาบ Player ฟันลงมา โดน Body Enemy และ จุดการโจมตีของ Enemy โดน Body Player คำนวนเดเมจ
2.6 damage calculator ลด HP hit ละ 1 / HP น้อยกว่า 0 จบเกม ( ถ้ามีเวลาก็เพิ่มสูตรคำนวน ATK/DEF เอา)
2.7 UI/UX Script การแสดงผล บนหน้าจอ, HP bar / เลข damage / ข้อความ Player / Enemy ตาย
3.3D Character , Animation
3.1 ขึ้นรูป model Player / Enemy
3.2 ทำ texture Player / Enemy
3.3 ทำ animation ของ player / enemy ( ยืน / วิ่ง / เดิน / โจมตี / บาดเจ็บ / ตาย )
3.4 Object วัสดุประกอบฉาก ต้นไม้ ก้อนหิน ขอบฉาก(พุ่มไม้)
4.Level design / SFX เอฟเฟค แสงสีเสียง
4.1 นำวัสดุจาก 3.4 มาทำเป็นฉากตามที่ออกแบบไว้
4.2 ใส่เอฟเฟคเพื่อให้เกมน่าเล่นยิ่งขึ้น
5. เอางานทั้งหมดมายำรวมกัน ให้ออกมาเป็นเกมส์ ตามที่ออกแบบไว้จาก GDD ตามข้อ 1
5.1 export ออกมาให้คนเล่นกัน PC / Web / Android .apk .. etc
จากข้างต้น ถ้าดูแล้วทุกขั้นตอนทำเองได้หมด ก็ทำเลย / ถ้าไม่ ก็หาข้อมูลเพิ่ม หรือจะลองทำเป็นส่วนๆดูก็ได้
ถ้าทำแล้ว ให้มาดูว่า ใช้เวลาในส่วนไหน มากน้อยยังไง / คุณภาพงานเป็นแบบไหน / รู้สึกว่าง่ายหรือยาก และประเมินดูว่า อันไหนที่เราใช้เวลาเยอะหรือไม่ถนัด ถ้าเราใช้ตัวช่วย(ทีมงาน / asset) มาช่วย จะทำให้เรามีเวลาไปใช้ในการปรับปรุงงานที่เราถนัดได้ดีขึ้นรึเปล่า
ส่วนที่ต้องศึกษาในขั้นสูงต่อไป
Multiplayer : การเขียนแบบ Client/Server การใช้ Network API ในการส่งข้อมูล การอัพเดทการแสดงผลของ player แต่ละคน
Open world : การคำนวนการแสดงผล รอบตัวผู้เล่น - ตัด object นอกระยะสายตา การส่งผ่านตัวละครจาก map หนึ่งไปยังอีก map หนึ่ง ให้รู้สึกว่าเป็น map เดียวกัน
Server และการให้บริการ ผู้ให้บริการมีหน้าที่ดูแล services ที่เราเปิดใช้และการเชื่อมต่อให้เข้าไปใช้เท่านั้น เป็นหน้าที่ของเราเองที่จะออกแบบการวาง game sv, DB sv, การดูแล traffic ต่างๆให้พอกับการใช้งาน
แต่ละหัวข้อย่อย ก็มีเทคนิคการเขียนย่อยออกไปอีก
แสดงความคิดเห็น
ถ้าจะสร้างเกมแนว Open World ต้องทำยังไง
เป็นแบบโอเพ่นเวิลด์
เดาว่าอย่างต่ำ 40GB
จุคนได้ซัก 20คนก่อน ตอนนี้ทุนไม่หนาพอ ถ้าหัวข้อนี้ผ่าน ก็จะเริ่มทำโปรเจคจริงจัง
ถ้าจะจับ UE4 มาทำเกม ต้องหาอะไรมาโคกับUE4 ให้ได้เกมที่สมบูรณ์แบบได้บ้าง
ถ้าทั้งหมดนี้ ทำได้ด้วยตัวคนเดียว คิดว่าไงครับ
ถ้าเราสามารถทำระบบแปลกๆที่เปลี่ยนแนวการเล่น MMO จะเป็นไงครับ
พอจะมีเครื่องเซิฟเวอร์ที่มีบริษัท บริการหลังขายแบบดีๆมั้ยครับ
ตอนนี้ก็ได้แต่คิดนะครับว่าจะทำ ต้องหาความเป็นไปได้ก่อน เพราะถ้าจะทำจริงจะทุ่มเทให้สุดๆไปเลย
คิดได้ แต่ถ้าทำขอเวลา 1~3ปี เนื่องจากแค่เอาเวลาชีวิตมาเผาเล่นกับการออบแบบก็กินเวลาชีวิตมากมาย 555
ขอบคุณทุกความเห็นครับ