SlideShare uma empresa Scribd logo
1 de 27
การพัฒนาเกมคอมพิวเตอร์ 3 มิติ
3D COMPUTER GAME DEVELOPMENT



ทฤษฎีที่เกี่ยวข้อง
2.1 ตรรกศาสตร์คลุมเครือ (Fuzzy Logic)
2.1.1 ความหมายของตรรกศาสตร์คลุมเครือ
ตรรกศาตร์คลุมเครือพัฒนาจากทฤษฏีเซตวิภัชนัย (Fuzzy
set) โดยเป็นการใช้เหตุผลแบบประมาณ ซึ่งแตกต่างจาก
การใช้เหตุผลแบบเด็ดขาดในลักษณะ ถูกผิด, ใช่ไม่ใช่
ของตรรกศาตร์แบบฉบับ (Classical Logic) ตรรกศาตร์คุ
ลมเครือนั้นสามารถถือเป็นการประยุกต์ใช้งานเซตวิภัชนัย
เพื่อจ าลองการตัดสินใจของผู้เชี่ยวชาญต่อปัญหาที่ซับ
ซ้อน
ตรรกศาสตร์คลุมเครือนั้นสามารถระบุความเป็นสมาชิกของ
เซต (Set membership values) ด้วยค่าระหว่าง 0 และ 1
ท าให้เกิดระดับกึ่งในลักษณะของสีเทา นอกจากขาวและ
ด า ซึงมีประโยชน์ในการจ าลองระดับ ซึ่งสามารถระบุด้วย
      ่
ค าพูด “เล็กน้อย” “ค่อนข้าง” “มาก” โดยใช้ค่าความเป็น
สมาชิกของเซตบางส่วน ตรรกศาสตร์คลุมเครือนี้มีความ
สัมพันธ์กับเซตวิภัชนัยและทฤษฎีความเป็นไปได้
(Possibility theory) ซึงคิดค้นขึ้นในปี ค.ศ.1965 โดย
                       ่
ศาสตราจารย์ ลอตฟี ซาเดห์ (Lotfi Zadeh) แห่ง
มหาวิทยาลัยแคลิฟอร์เนีย เบิร์กเลย์
2.1.2 หลักการของตรรกศาสตร์คลุมเครือ
ตรรกศาสตร์คลุมเครือต้องการตัวแปรที่เป็นตัวเลขมากกว่า
เพื่อการแสดงความส าคัญของข้อผิดพลาดและให้ความส
าคัญเกี่ยวกับอัตราการเปลี่ยนแปลงใช้ได้ดีในระบบควบคุม
หลายๆ ประเภท ขั้นตอนการด าเนินการของตรรกศาสตร์
คลุมเครือนั้นประกอบไปด้วย 3 ขั้นตอนดังรูปต่อไปนี้
รูปที่ 2.1 Fuzzy rule-based inference
4
Crisp sets คือ หลักของคณิตศาสตร์ที่สอนในโรงเรียน
โดยมีนิยามว่า “Object แต่ละอันต้องเป็นของ set ใด set
หนึ่ง หรืออาจไม่เป็นอย่างแน่นอน” ซึ่งใช้ได้ส าหรับ
หลายๆปัญหาเพราะหลายๆ object สามารถจัดเข้าพวกได้
อย่างถูกต้อง เช่น เสียมก็ต้องเป็นเสียม มันไม่มีทางที่บาง
ส่วนจะเป็นเสียม บางส่วนจะเป็นกรรไกรตัดหญ้า เป็นต้น
Crisp sets ถูกใช้เป็นประโยชน์ แต่ก็เกิดปัญหาในหลาย
ครั้ง เช่น universe ของ IQ โดยก าหนด set เป็น Dumb,
Average, and Clever:
Dumb = {70, 71, 72, … 89}
Average = {90, 91, 92, … 109}
Clever = {110, 111, 112, … 129}
แสดงกราฟเส้นดังรูปที่ โดย Degree of membership มี
ค่าเป็น 0 หรือ 1
รูปที่ 2.2 Degree of membership ของ IQ
2.1.2.1 Fuzzification
ขั้นตอนแรกของกระบวนการที่เรียกว่า fuzzification นั้น
เป็นการแปลงข้อมูลอินพุทที่ชัดเจนให้เป็นข้อมูลอินพุท
แบบฟัซซี่ รวมไปถึงการหา Degree of membership ของ
ข้อมูลที่ชัดเจน ในเซตของฟัซซี่ที่ได้ก าหนดเอาไว้
ตัวอย่างเช่น หากให้น้ าหนักของคนๆหนึงในหน่วยปอนด์
                                       ่
เราสามารถหา degree ได้ว่า คนๆนี้มีน้ าหนักต่ ากว่า
มาตรฐาน มีน้ าหนักเกิน หรือมีน้ าหนักมาตรฐานได้
อินพุทที่เข้ามายังระบบฟัซซี่นั้นอยู่ในรูปของตัวเลขที่
ชัดเจน เป็นเลขจ านวนจริงที่บอกถึงปริมาณ ตัวอย่างเช่น
คนหนัก 185.3 ปอนด์หรือ คนสูง 6 ฟุต 1 นิ้ว เป็นต้น ใน
กระบวนการ fuzzification นั้นจะท าการเทียบข้อมูลที่
ชัดเจนให้เป็น Degrees of membership ใน Qualitative
fuzzy sets ตัวอย่างเช่น 185.3 ปอนด์จะถูกเทียบให้เป็น
“น้ าหนักค่อนข้างเกิน”, 6 ฟุต 1 นิ้ว ถูกเทียบให้เป็น “สูง”
การเทียบนี้จะใช้ Membership functions หรือเรียกอีกชื่อ
หนึ่งว่า Characteristic functions
5
Membership Functions
Membership Functions จะเทียบอินพุตให้เป็น Degree
of membership โดยถ้า Degree of membership มีค่า
เป็น 1 จะบอกได้ว่า อินพุทเป็นจริงโดยสิ้นเชิง ถ้า Degree
of membership มีค่าเป็น 0 จะบอกได้ว่า อินพุทเป็นเท็จ
โดยสิ้นเชิง และถ้า Degree of membership มีค่าระหว่าง
0 และ 1 จะบอกได้ว่า อินพุทเป็นจริงในระดับหนึ่ง
Membership functions จะเทียบให้ว่าระดับเท่าไหร่
รูปที่ 2.3 Grade membership function
รูปที่ 2.4 Triangular membership function
รูปที่ 2.5 Reverse grade membership function
6
รูปที่ 2.6 Trapezoid membership function
รูปที่ 2.7 Seven fuzzy sets
รูปที่ 2.8 Membership functions อื่นๆ
รูปที่ 2.9 Fuzzy set
7
จากรูปที่ 2.9 สามารถค านวณหา Degree of
membership ในเซตต่างๆ ได้เป็น น้ าหนักต่ ากว่า
มาตรฐานมีดีกรีเท่ากับ 0 น้ าหนักมาตรฐานมีดีกรีเท่ากับ
0.75 น้ าหนักเกินมาตรฐานมีดีกรีเท่ากับ 0.15
2.1.2.2 Fuzzy Rules
ตัวด าเนินการทางตรรกะของฟัซซี่นั้นแตกต่างไปจากปกติ
โดยตัวด าเนินการต่างๆถูกนิยามเอาไว้ดังนี้
Truth (A OR B) = MAX(Truth(A),Truth(B))
Truth (A AND B) = MIN(Truth(A),Truth(B))
Truth (NOT A) = 1-Truth(A)
Truth (A) หมายถึง Degree of membership ของ A
ในฟัซซี่เซต เป็นเลขจ านวนจริงที่มีค่าอยู่ระหว่าง 0 และ 1
ตัวอย่างเช่น สมมุติให้คนๆหนึ่ง น้ าหนักเกินเป็นดีกรี 0.7,
สูงเป็นดีกรี 0.3 จะได้เป็น
น้ าหนักเกิน AND สูง = MIN (0.7, 0.3) =0.3
น้ าหนักเกิน OR สูง = MAX (0.7, 0.3) =0.7
NOT น้ าหนักเกิน = 1-0.7 = 0.3
NOT น้ าหนักเกิน = 1-0.7 = 0.3
NOT สูง = 1-0.3= 0.7
NOT (น้ าหนักเกิน AND สูง) =1-MIN (0.7, 0.3)
=1-0.3=0.7
Rule Evaluation
ในระบบฟัซซี่กฎทุกกฎจะถูกประเมินเพื่อหา Degree of
membership ของกฎนั้นๆ ซึงวิธีเลือกเอาท์พุทแบบง่าย
                            ่
ที่สุดก็คือให้เลือกเอาท์พุทของกฎที่มี Degree of
membership สูงสุดเป็นเอาท์พุทของฟัซซี่ตัวอย่าง
รูปที่ 2.10 Input variable membership
functions
8
สมมุติ ระบบฟัซซี่มีกฎอยู่ดังนี้
If(in melee range AND uninjured)AND NOT hard
then attack
If(NOT in melee range) AND uninjured then do
nothing
If(NOT out of range AND NOT uninjured)AND( NOT
wimp) then flee
เมื่อค านวณหา Degree of membership ในเซตต่างๆ
จากอินพุทที่รับเข้ามา สมมุติได้เอาท์พุทเป็น
Attack ดีกรี 0.2 Do nothing ดีกรี 0.4 Flee ดีกรี 0.7
ดังนั้น เอาท์พุทจึงเป็น Flee
2.1.2.3 Defuzzification
Defuzzification เป็นกระบวนการหาเอาท์พุทที่ชัดเจนออก
มาเป็นตัวเลข ซึงมีหลายเทคนิคที่สามารถน ามาใช้งาน มี
                  ่
เทคนิคหนึ่งที่ชื่อ singleton output membership
functions เป็นเทคนิคที่มีประสิทธิภาพเทคนิคหนึง
                                             ่
เนื่องจากไม่ต้องใช้การประมวลผลมากนัก โดยการค า
นวณโดยใช้สูตรดังต่อไปนี้
เอาท์พุท = (2.1)
โดย คือ Degree of membership, คือค่าเอาท์พุทที่
ชัดเจนของแต่ละเอาท์พุท ตัวอย่างเช่น
Flee Do nothing Attack
= -10 =1 =10
รูปที่ 2.11 Output fuzzy sets
จากตัวอย่างก่อนหน้านี้ สามารถค านวณหาเอาท์พุทเป็น
ตัวเลขได้เป็น
เอาท์พุท =
ซึ่งอาจจะใช้เอาท์พุทที่ได้เป็นอัตราเร็วของการหนี (Flee)
เป็น -2.5 (อัตราเร็วการหนีสูงสุด -10)
9
2.2 Finite State Machine
Finite state machine เกิดขึ้นจาก เซต 2 เซต ได้แก่
    1.   1. เซตของสถานะ (States) ที่แสดงถึงเหตุการณ์ที่เป็นไปได้ที่จะเกิดขึ้นทั้งหมด
2.   2. เซตของการเปลี่ยนแปลง (Transitions) เป็นเงื่อนไขที่เชื่อมต่อระหว่างสถานะ 2 สถานะ ที่ติดกัน


โดยสามารถพิจารณาการเปลี่ยนแปลงระหว่างสถานะด้วย
If-Then Conditionals เพื่อตรวจสอบเงื่อนไขหรือกฎ
เกณฑ์ที่วางไว้
รูปที่ 2.12 ตัวอย่าง Finite State Machines
ข้อดีของการใช้ Finite State Machine ในการออกแบบ
โมเดลเกม มีดงต่อไปนี้
            ั
1. Coding ได้ง่ายและรวดเร็ว
2. สะดวกในการท า Debugging
3. ไม่เปลืองทรัพยากรในการประมวลผล
2.3 การสร้างโมเดล 3 มิตและการสร้างแอนนิเมชัน
                       ิ
2.3.1 การออกแบบและกระบวนการสร้างโมเดลตัว
ละครภายในเกม
โมเดลตัวละครในงาน 3 มิติ สามารถสร้างได้หลายวิธี เช่น
สร้างด้วยเส้นเนิร์บ (Nurb) หรือ สร้างจากโพลีกอน
(Polygon) แต่วิธีที่เป็นที่นิยมแพร่หลายมักจะเป็นวิธีการ
สร้างโมเดลแบบการปั้นโดยใช้โครงสร้างโมเดลแบบโพลี
กอน เหตุผลที่วิธีนี้เป็นที่นิยมเพราะมีวิธีการขึ้นโมเดลที่
ง่ายในการสร้างหรือแก้ไข
10
2.3.1.1 ความละเอียดของโมเดล
ส าหรับการปั้นโมเดลตัวละครประเภทตัวคนหรือสัตว์ต่างๆ
ด้วยวิธีดังกล่าวนั้นสามารถแบ่งชนิดย่อยๆ ได้สองแบบคือ
โมเดลแบบความละเอียดต่ า (Low polygon model) และ
โมเดลแบบความละเอียดสูง (High polygon model)
- โมเดลแบบความละเอียดต ่่า
เป็นโมเดลที่ใช้จ านวนโพลีกอนที่ไม่มากนัก ข้อดีของ
โมเดลแบบนี้คือสร้าง และแก้ไขรายละเอียดเพิ่มเติมได้
ง่าย ประหยัดเวลาในการเรนเดอร์ (Render) และเครื่อง
คอมพิวเตอร์ท างานไม่หนัก และด้วยความไม่หนักของ
โมเดลนี่เองทีท าให้โมเดลชนิดนี้มักจะเหมาะกับงานที่
             ่
ต้องการความเร็วในการประมวลผลสูงๆ เช่นโมเดลส าหรับ
เกมต่างๆ
รูปที่ 2.13 โมเดลแบบความละเอียดต่่่ า
- โมเดลแบบความละเอียดสูง
เป็นโมเดลที่มีความละเอียดสูง จึงมีจ านวนโพลีกอนที่ใช้
ในการท างานรวมทั้งขนาดไฟล์ของโมเดลมากขึ้นตามไป
ด้วย และเนื่องจากความใหญ่และละเอียดนี่เองที่ท าให้
โมเดลแบบนี้ต้องใช้เวลาในการประมวลผลต่างๆมากมาย
ส่วนใหญ่โมเดลแบบนี้มักจะถูกใช้ในงานประเภทที่ต้องการ
ความสมจริงมากๆ เช่น ในงานภาพยนตร์ งานโฆษณา
หรือในการเริ่มเรื่องที่เป็นส่วนแอนนิเมชันสวยๆของเกม
ต่างๆ เป็นต้น
11
รูปที่ 2.14 โมเดลแบบความละเอียดสูง
2.3.1.2 ขั้นตอนหลักในการขึ้นรูปโมเดล
ในการปั้นโมเดลเราสามารถแบ่งขั้นตอนหลักๆ ได้ดังนี้
- เตรียมแบบร่างให้พร้อมส าหรับอ้างอิงต าแหน่งต่างๆ
- ปั้นโมเดลไปทีละส่วน เช่น ล าตัว แขน ขา และส่วนหัน
แล้วแต่ตามความถนัด
น าโมเดลที่ปั้นเรียบร้อยแล้วมาใส่รายละเอียดพื้นผิว ด้วย
การวาดลวดลายที่ต้องการในโปรแกรมตกแต่งและวาด
ภาพ
2.3.1.3 การเตรียมแบบร่างส่าหรับการขึ้นโมเดล
เนื่องจากการสร้างโมเดลความละเอียดต่ า จะต้องใช้วิธีดึง
ดัด หรือย้ายจุดต่างๆ ไปมากับ Polygon ดังนั้นในการท า
งานจึงควรจะมีแบบร่างของโมเดลที่ต้องการสร้างส าหรับ
ใช้อ้างอิงการย้ายต าแหน่งด้วยเหตุผล 2 ประการคือ
- ประการแรกคือสามารถขึ้นโมเดลได้ง่าย เพราะการวาด
ในกระดาษให้เรียบร้อย
จะท าให้ได้เห็นหน้าตาตัวโมเดลก่อน และเมื่อเห็นหน้าตา
คร่าวๆ แล้วการปั้น
โมเดลก็จะง่ายยิ่งขึ้น
- ประการที่สองคือใช้ส าหรับอ้างอิงต าแหน่งจุดต่างๆ ที่
เราจะใช้อ้างอิงในการปั้น
รูปโมเดล
2.3.2 เครื่องมือหรือโปรแกรมที่นิยมใช้ในการสร้าง
ภาพ 3 มิติ
โปรแกรมที่นิยมใช้ในการสร้างงานโมเดลกราฟฟิก 3 มิติ
ขึ้นมาโดยโปรแกรมระดับมืออาชีพที่ได้รับความนิยมในการ
สร้างงานโมเดล 3 มิติ มีดงนี้
                        ั
2.3.2.1 3Ds Max
โปรแกรม 3D Studio Max นี้ เป็นโปรแกรมกราฟฟิกที่ได้
รับความนิยมมาก พัฒนาโดย Autodesk Media and
Entertainment ปัจจุบันออกถึงเวอร์ชัน 9 เป็นโปรแกรมที่
มีประสิทธิภาพในการสร้างโมเดลสูง มีปลักอินที่ยืดหยุ่น
ใช้งานง่าย และมีอยู่ค่อนข้างมากใน
12
แพลตฟอร์มของวินโดวส์โปรแกรมนี้มักจะถูกน าไปใช้ใน
การสร้างวีดีโอเกม งานสถาปัตยกรรมและการออกแบบ
รวมไปถึงการท าสเปเชียลเอฟเฟค ในภาพยนตร์บางเรื่อง
รูปที่ 2.15 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์
ของโปรแกรม 3Ds Max
- ข้อดีของโปรแกรม 3Ds Max
3Ds Max มีข้อดีคือใช้งานง่าย เป็นที่นิยมใช้กันอย่างแพร่
หลาย มีข้อมูลและสื่อ ให้ศึกษาจ านวนมาก ใน
ประเทศไทยโปรแกรมนี้เป็นที่นิยม จึงสามารถหาข้อมูล
และสอบถามปัญหาได้ง่าย ส่วนความสามารถของตัว
โปรแกรมนั้นเพียบพร้อม ทั้งในเรื่องการขึ้นโมเดลหรือการ
สร้างแอนนิเมชัน มีเทคนิคให้เลือกใช้มาก ซึงช่วยอ านวย
                                           ่
ความสะดวกได้เป็นอย่างดี และจุดเด่นที่ส าคัญของ 3Ds
Max คือแก้ไขงานได้ง่ายกว่าโปรแกรมอื่น ตัวช่วยปลั๊กอิน
มีให้เลือกใช้ปริมาณมาก เช่น มี Character Studio ช่วย
ในการสร้างงาน โปรแกรมนี้เหมาะกับงานหลากหลายระดับ
และเหมาะกับการน าไปช่วยในการสร้างตัวละครภายใน
เกม เพราะท าโมเดลแบบความละเอียดต่ าได้ดี มีเกมจ า
นวนมากที่สร้างโดยใช้ 3Ds Max ท าแอนนิเมชันได้ดี
และนิยมน าไปสร้างงานด้านสถาปัตยกรรม เหมาะกับผู้เริ่ม
ต้นที่ต้องการเป็นมืออาชีพในอนาคต
- ข้อเสียของโปรแกรม 3Ds Max
ใช้ปลั๊กอินเป็นตัวช่วยที่มากเกินไป เพราะถ้าต้องการงาน
ให้เสร็จฉับไวนั้น จ าเป็นต้องใช้ปลั๊กอินเป็นตัวช่วย
2.3.2.2 Maya
Maya เป็นโปรแกรมกราฟฟิกสร้างภาพ 3 มิติ เกิดจาก
บริษัท Alias Systems Corporation แต่ปัจจุบันเป็นของ
Autodesk เดิมเป็นซอฟแวร์ที่ใช้งานบนเครื่อง Silicon
Graphics (SGI) ที่ใช้ระบบปฏิบัติการ (OS) Irix เท่านั้น
แต่ก็ได้มีการพอร์ตมาใช้กับเครื่องพีซีที่ใช้ระบบปฏิบัติการ
Windows NT และ XP และในปัจจุบันสามารถใช้กับเครื่อง
Mac ทีใช้ Mac OS X
       ่
13
ได้อีกด้วย Maya ที่ถูกใช้อย่างมากในอุตสาหกรรมหนัง
และ ภาพยนตร์ และมีการใช้บ้างในเกมคอมพิวเตอร์
Maya มีจดเด่นในเรื่องของความยืดหยุ่นอย่างมากในการท
          ุ
างาน โดยใช้การท างานแบบ Node-base เป็นหลัก กล่าว
คือฟังก์ชันการท างานแต่ละแบบจะถูกเก็บเป็น Node โดย
แต่ละ Node จะมีอินพุทและเอาท์พุทเราสามารถเชื่อม
Node เหล่านี้เข้าด้วยกัน เพื่อให้เกิดผลที่แตกต่างกันได้
นับไม่ถ้วน รวมถึงการใช้งานสคริปท์ที่เรียกว่า MEL ซึ่งใช้
งานได้ง่ายและมีประสิทธิภาพ
รูปที่ 2.16 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์
ของโปรแกรม Maya
- ข้อดีของโปรแกรม Maya
เป็นโปรแกรมที่ขึ้นโมเดลได้รวดเร็ว และเป็นโปรแกรมที่
ครบครันทางด้านงาน 3 มิติมากที่สุด ให้ภาพ แสง และราย
ละเอียดได้สมจริง มีจุดเด่นในเรื่องของความยืดหยุ่นอย่าง
มากในการท างาน นิยมน าไปใช้ในการสร้างภาพยนตร์ ท
าภาพยนตร์การ์ตูน 3 มิติ
- ข้อเสียของโปรแกรม Maya
มีกระบวนการที่ซับซ้อนและ ไม่เหมาะกับผู้ที่ไม่ชอบการค
านวณ และผูที่เพิ่งเริ่มต้นกับงานทางด้าน 3 มิติ และแก้ไข
          ้
งานในส่วนของโมเดลแบบความละเอียดต่ าได้ยากและ
ซับซ้อน
2.3.2.3 LightWave
LightWave 3D โปรแกรมที่นักสร้างภาพ 3 มิติ (3D
Animator) ทั่วโลกต่างยอมรับว่า เป็นโปรแกรมที่สามารถ
สร้างโมเดล ได้ง่าย และรวดเร็ว อีกทั้งยังเป็นโปรแกรมที่
เรนเดอร์ภาพได้สมจริงที่สุดอีกด้วย โดย LightWave 3D
ได้รับความนิยมสูง ในงานทีวี (โทรทัศน์) และงาน
ภาพยนตร์ เช่น Titanic, Star Trek VI ภาพยนตร์แอนนิเม
ชัน 3 มิติอย่าง “Jimmy Nouton” ในไทยเองผลงานที่
สร้างมาจาก LightWave ที่เห็นกันทั่วไป เช่น ตุกตา
                                              ๊
China Doll, งานโฆษณาฟูจิ ชุด Smile
14
รูปที่ 2.17 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์
ของโปแกรม LightWave
- ข้อดีของโปรแกรม LightWave
Lightwave มีข้อดีคือเรื่องของการขึ้นโมเดลที่ขึ้นแบบฟรี
ฟอร์มได้ง่าย แม้จะมีเครื่องมือให้ใช้น้อยแต่ก็เพียงพอแก่
การท างาน ผูเริ่มใช้สามารถใช้เวลาศึกษาได้ไม่นาน ใช้
              ้
ทรัพยากรเครื่องน้อยกว่าโปรแกรมอื่นมาก ก าหนดค่า
พารามิเตอร์ต่างๆ ได้ง่าย ไม่ยุ่งยากซับซ้อน โปรแกรมนี้ก็
เหมาะส าหรับผู้เริ่มต้นใหม่เพราะง่ายและรวดเร็วในการ
ศึกษา ค าสั่งและเครื่องมือต่างๆ มีไม่มาก แต่ก็สามารถ
สร้างงานระดับมืออาชีพได้
- ข้อเสียของโปรแกรม LightWave
การท าแอนนิเมชันของ LightWave ยังมีประสิทธิภาพที่
ด้อยกว่าโปรแกรมสร้างภาพ 3 มิติรายอื่นๆ เช่น การสร้าง
กระดูกคนเพื่อน าไปสร้างเป็นตัวละครของโมเดลยังท าได้
ไม่ดีพอ
2.3.3 โปรแกรมที่เลือกใช้ในการสร้างโมเดล 3 มิตใน
                                             ิ
เกม
จากการส ารวจและรวบรวมข้อมูล พบว่าโปรแกรมสร้าง
ภาพ 3 มิติแต่ละโปรแกรม มีทั้งข้อดีและข้อเสียแตกต่าง
กันออกไป ขึ้นอยู่กับผู้ใช้จะเลือกโปรแกรมตัวไหนมาใช้ให้
เหมาะสมกับงานประเภทนั้นๆ ซึ่งในการสร้างเกม 3 มิติ จ
าเป็นต้องเลือกใช้เครื่องมือสร้างภาพ 3 มิติ มาสร้างตัว
ละคร, ฉาก และอุปกรณ์ต่างๆภายในเกม ดังนั้นจึงต้อง
เลือกใช้เครื่องมือที่สร้างโมเดลได้ดี โดยเฉพาะ การสร้าง
โมเดลที่เป็นแบบความละเอียดต่ า คือโมเดลที่มีความละ
เอียดของจ านวนโพลีกอนน้อย เหมาะสมกับการน าไป
ประกอบภายในเกม เพราะถ้าความละเอียดสูงจะท าให้การ
เรนเดอร์ภาพออกมาท าได้ช้า เกมเกิดอาการกระตุก
โปรแกรม 3Ds Max จึงเหมาะสมที่สุดในการท างาน เพ
ราะท างานกับโมเดลแบบความละเอียดต่ าได้ดีที่สุด
สนับสนุนไฟล์ 3 มิติได้หลากหลาย มีแหล่งทรัพยากร เช่น
ค้นหาโมเดลต่างๆที่สร้างจาก 3Ds Max ได้ง่าย และที่ส
าคัญเป็นที่นิยมในการสร้างกราฟฟิก 3 มิติภายในเกม
15
2.3.4 การใช้งานโปรแกรม 3Ds Max ในการสร้าง
โมเดลและแอนนิเมชัน
การใช้โปรแกรม 3Ds Max ส าหรับสร้างโมเดลตัวละคร
และฉากต่างๆ ภายในเกม รวมทั้งการสร้างแอนนิเมชันให้
แก่ตัวละคร มีกระบวนการพื้นฐานต่างๆ ที่ควรทราบดังนี้
2.3.4.1 กระบวนการพื้นฐานที่ส่าคัญในการสร้าง
โมเดล
1) การย้ายต าแหน่งของจุด (Vertex translation) ตาม
แนวแกน x, y และ z ซึ่งใช้ ส าหรับการปรับแต่งรูปร่าง
ของโมเดลให้ได้รูปร่างที่ต้องการ
รูปที่ 2.18 ตัวอย่างการย้ายต่าแหน่งของวัตถุ
2) การสร้างเส้นขอบบนโมเดล (Edge Creation) เพื่อเพิ่ม
รายละเอียดโมเดล โดยส่วนใหญ่จะใช้การสร้างเส้น
ระหว่างจุด 2 จุด
รูปที่ 2.19 ตัวอย่างการสร้างเส้นขอบบนโมเดล
16
3) การหมุนโมเดลรอบแนวแกน x, y และ z ใช้ในการ
เปลี่ยนระนาบของวัตถุ(Rotation)
รูปที่ 2.20 ตัวอย่างการหมุนโมเดล
4) การย่อและขยายโมเดล เป็นการปรับขนาดของโมเดล
สามารเลือกได้ว่าจะย่อขยายตามแนวแกนใด (Scaling)
รูปที่ 2.21 ตัวอย่างการย่อขยายโมเดลตามแกนต่างๆ
17
5) การดึงหรือผลักพื้นผิวของโมเดลเพื่อสร้าง Polygon
ใหม่เพิ่มขึ้นมา หรือท าให้เกิดช่องบนโมเดล (Extrude)
รูปที่ 2.22 ตัวอย่างการดึงและผลักพื้นผิวของโมเดล
6) การแตกจุด (Break) และการเชื่อมจุด (Weld) บน
โมเดล
รูปที่ 2.23 ตัวอย่างการแตกจุดและการเชื่อมจุดบน
โมเดล
7) การใส่รูปภาพพื้นผิวให้กับโมเดล (Texture mapping)
ซึ่งกระบวนการนี้ใช้ส าหรับตกแต่งรายละเอียดพื้นผิวของ
โมเดล
รูปที่ 2.24 ขั้นตอนการใส่รูปภาพบนพื้นผิวของโมเดล
18
2.3.4.2 ส่วนประกอบหลักส่าหรับกระบวนการท่าแอน
นิเมชัน
1) กระดูก (Bone) เป็นสิ่งที่ใช้ควบคุมพื้นผิวของโมเดลให้
เคลื่อนไหวตามการเคลื่อนที่ของกระดูกซึงเราสามารถก า
                                         ่
หนดอาณาเขตการควบคุมพื้นผิวโมเดล ของกระดูกแต่ละ
ชิ้นได้
รูปที่ 2.25 การควบคุมพื้นผิวโมเดลของกระดูก
2) จุดศูนย์รวมจ าลอง (Dummy) เป็นจุดศูนย์กลางของ
กระดูกทั้งหมด ซึ่งถ้าเราเลื่อนต าแหน่งของจุดศูนย์รวมจ า
ลอง โมเดลที่ถูกกระดูกควบคุมอยู่จะเลื่อนตามด้วย
รูปที่ 2.26 การเลื่อนจุดศูนย์รวมจ่าลอง
19
3) ส่วนเชื่อมต่อไอเค (IK Chain) เป็นวัตถุที่ใช้กับกระดูก
ส่วนที่เป็นข้อพับ
รูปที่ 2.27 การใช้สวนเชื่อมต่อไอเค
                   ่
4) คีย์เฟรม (Key frame) เป็นการสร้างแอนนิเมชันให้ตัว
ละครโดยการก าหนดคีย์เฟรม ซึงใน 3Ds Max จะมีการ
                              ่
สร้างแอนนิเมชันระหว่างคีย์เฟรมที่ก าหนดไว้ให้โดย
อัตโนมัติ
รูปที่ 2.28 การก่าหนดคีย์เฟรมเพื่อสร้างแอนนิเมชัน
20
2.4 Client-Server ส่าหรับเกมออนไลน์
2.4.1 เทคนิคและวิธีการของเกมเน็ตเวิร์ค
ในการเขียนเกมแบบ Multiplayer ที่สามารถเล่นผ่านระบบ
เครือข่ายได้มีอยู่หลายรูปแบบ และหลายวิธีการเชื่อมต่อ
ตัวอย่างของเกมที่เล่นผ่านเน็ตเวิร์คได้มีหลายเกมด้วย เช่น
RedAlert, Age of Empire, Warcraft และเกมอื่นๆ อีก
หลายเกมที่ไม่ได้กล่าวถึงก็มีความสามารถด้านเน็ตเวิร์ค
ด้วยเช่นกัน
ประเภทของเกมเน็ตเวิร์คนั้น มีอยู่ด้วยกัน 2 ลักษณะ คือ
1. เกมประเภทที่จะต้องเล่นเป็นกลุ่ม (Peer to Peer)
2. เกมประเภทที่จะต้องมี Server เป็นหลัก (Client /
Server)
เกมประเภท Peer to Peer ลักษณะคือ ทุก ๆ คนจะเชื่อม
ต่อเข้าหากันภายในกลุ่ม และจะต้องมีเครื่องใดเครื่องหนึ่ง
ท าตัวเป็นเครื่องหลัก หรือ โฮสต์ (Host) เพื่อเป็นเครื่องที่
จะให้คนอื่น ๆ เข้ามาร่วมในเกมได้ ลักษณะของเกมแบบ
Peer to Peer มีลักษณะดังนี้
รูปที่ 2.29 การเข้าร่วมของกลุ่ม Client ประเภท
Peer to Peer
ลักษณะของ Peer to Peer นั้น ทุก ๆ เครื่องจะเชื่อมต่อ
ถึงกันหมด (เราเรียกแต่ละเครื่อง ๆ ว่า Peer) ก็คล้าย ๆ
กับระบบที่เชื่อมต่อกันในแบบ Peer to Peer นั่นเอง คือ
ทุก ๆ เครื่องจะต้องเป็นทั้ง Server และ Client ในตัว คือ
จะต้องคอยรับข้อมูลจากเครื่องอื่นๆเพื่อน าไปประมวลผล
และอัพเดทตัวละครหน้าตาของตัวเอง และยังจะต้องคอย
ส่งข้อมูลการเปลี่ยนแปลงของตัวมันเองออกไปให้กับทุกๆ
เครื่องที่อยู่ในกลุ่ม ด้วยเหตุนี้การเชื่อมต่อแบบ Peer to
Peer จึงจ าเป็นต้องใช้ Bandwidth หรือถนนที่กว้างๆ และ
การจราจรในระบบเครือข่ายนั้นค่อนข้างสูง (High
Network Traffic) ถ้ามีคนเล่นเพิ่มเข้ามาการจราจรก็จะ
หนาแน่นขึ้นมาอีกเป็นเงาตามตัว ตัวอย่างเกมทีใช้การ่
เชื่อมต่อแบบ Peer to Peer ก็เช่น เกม Age of Empire
นั่นเอง
เกมแบบ Peer to Peer นี้ มีคณสมบัติอย่างหนึ่งที่น่าสนใจ
                             ุ
นั่นก็คือ การโอนหน้าที่โฮสต์ หรือ Host Migration ก็คือ
ถ้าเครื่องใดทีท าหน้าที่เป็นโฮสต์อยู่ได้หลุดออกจากเกม
              ่
เครื่องต่อไปก็จะ
21
ท าหน้าที่เป็นโฮสต์แทน เพราะในเกมแบบ Peer to Peer
นี้ จ าเป็นจะต้องมีโฮสต์เพื่อเป็นผู้ดูแลและควบคุมการ
เชื่อมต่อของผูเล่นทั้งหมด การท างานของ Host
               ้
Migration แสดงได้ดงรูปต่อไปนี้
                      ั
รูปที่ 2.30 การท่างานของ Host Migration
ถ้ามีเครื่องหลุดไปก็จะแปลงเครือข่ายเป็นแบบนี้
รูปที่ 2.31 พฤติกรรมของเคลือข่ายเมื่อมีเครื่องหลุด
ส าหรับเกมแบบ Client / Server นี้ จะมีการท างานแบบ
Client/Server ที่เรารู้จักกันดี นั่นก็คือ จะต้องมีเครื่องๆ
หนึ่งเป็น Server ท าหน้าที่รอการเชื่อมต่อจาก Client
หรือผู้เล่นคนอื่นเข้ามา ร่วมอย่างเดียว ดังรูป
รูปที่ 2.32 รูปแบบเครือข่ายระบบ Client / Server
ลักษณะของการเชื่อมต่อแบบ Client / Server นี้ เครื่องที่
เป็น Client จะไม่ส่งข้อมูลเข้าหากันโดยตรงเหมือนกับ
Peer to Peer แต่จะส่งไปที่ Server จากนั้น Server จะ
กระจายให้กับเครื่อง Client ที่เข้ามาเชื่อมต่อเอง จ านวนข
องเครื่อง Client ที่สามารถเชื่อมต่อได้ขึ้นอยู่กับความ
สามารถ
22
ของเครื่องที่น ามาเป็น Server และความเร็วของระบบ
เครือข่ายว่าสามารถให้บริการได้มากแค่ไหน เพราะโปรแก
รมที่ท าหน้าที่เป็น Server ของเกมนั้น ไม่จ าเป็นจะต้อง
มีหน้าตาของเกมสวย ๆ และไม่จ าเป็นต้องใช้กราฟิคที่
สูงๆมากนัก เพราะเป็นเครื่องที่เก็บข้อมูลและแจกจ่าย
ข้อมูลเท่านั้น โปรแกรมที่เป็น Server อาจจะเป็นหน้า
ไดอะล็อกธรรมดาๆ ทีเปิดพอร์ต (Port) คอยการเชื่อมต่อ
                      ่
จากผู้เล่นเกมเท่านั้น ส่วนหน้าจอเกมของผู้เล่นก็มีภาพ
กราฟิคสวย ๆ ของเกมได้อย่างสมบูรณ์แบบ แต่อย่างไร
ก็ตาม เราก็ยังสามารถนั่งเล่นเกมในเครื่อง Server ในขณะ
ที่โปรแกรม Server ของเกมก าลังท างานอยู่ก็ได้
ตัวอย่างต่อไปนี้ เป็นลักษณะของเกมแบบ Client Server
รูปที่ 2.33 ตัวอย่างเกมรูปแบบ Client / Server
นอกจากนี้ เกมแบบ Client / Server บางประเภท ยังใช้
ความสามารถของระบบฐานข้อมูลเข้ามาช่วยจัดการข้อมูล
ภายในเกมได้ด้วย เช่น SQL Server, MySQL โดยเครื่อง
Server สามารถใช้ระบบปฏิบัติการประเภท Linux หรือ
WindowsNT/Windows2000 แต่โปรแกรมที่ท างานใน
เครื่อง Server จะต้องเป็นโปรแกรมที่พัฒนาขึ้นภายใต้
สภาวะแวดล้อมของระบบปฏิบัติการนั้นๆ ท าให้ผู้ที่
ต้องการเล่นเกมเชื่อมต่อเข้ามาทางอินเตอร์เน็ตได้โดยการ
ตั้ง Server เอาไว้ หลักการนี้ก็คล้ายๆกับการท างานของ
เกมออนไลน์ที่ก าลังโด่งดังอยู่ในบ้านเรานั่นเอง
23
รูปที่ 2.34 เกมรูปแบบ Client / Server ที่เพิมระบบ
                                            ่
DBMS
2.4.2 Address
นอกจาก IP Address ที่จ าเป็นต้องใช้ในการเชื่อมต่อแล้ว
Address ซึงเป็นหมายเลขที่ระบุถึงเครื่องคอมพิวเตอร์ที่
            ่
เชื่อมต่ออยู่ในระบบ เพื่อบอกถึงที่อยู่ของโฮสต์, IP
Address หรือชื่อโฮสต์ หรือหมายเลขพอร์ท รวมถึงค่าต่าง
ๆ ที่ใช้ในการเชื่อมต่อในแต่ละแบบ ในการสร้างเกม
เน็ตเวิร์คจะต้องสร้าง Address 2 ตัวด้วยกันคือ
     1.   • Device Address
     2.   • Host Address


          เหตุที่จะต้องสร้างทั้งสอง Address นั้นก็เพราะ
          ว่า Device Address เป็น Address ที่บอกถึงตา
          แหน่งเครื่องของเราเองที่กาลังรันโปรแกรมเกมนี้
          อยู่แต่Host Address นี้คือ Address ของเครื่องที่
เราจะเชื่อมต่อเข้าทุกๆโปรแกรมจะต้องสร้างทั้ง De
       vice Address และ Host Address นีแต่ว่าจะ
                                              ้
       ใช้Device Address หรือตัว Host Address นั้นก็
       ขึ้นอยู่กับว่าเครื่องเราจะทาหน้าที่เป็นโฮสต์หรือเป็น
       เครื่องที่จะเข้ามาร่วมเล่น
รูปที่2.35 Host Address และ Device Address
ของ Peer to Peer
24
จากรูปถ้าเครื่อง 2 เครื่องนี้จะเชื่อมต่อกันแบบ Peer to
Peer โดยเครื่อง A เป็นโฮสต์ของเกมและเครื่อง B เป็น
เครื่องที่จะต้องเข้ามาร่วมเล่นในเกมในกรณีนี้เราจะต้องกา
หนดให้Device Address ของเครื่อง A นั้นเปิดพอร์ทเอาไว้
เพื่อรอการเชื่อมต่อเช่นพอร์ท 6000 เพราะฉะนั้นเราจะกา
หนด 6000 นี้ไปที่Device Address ของเครื่อง A และสาห
รับเครื่อง B ที่จะเข้ามาร่วมเล่นก็จะชี้มาที่เครื่อง A ดังรูป
รูปที่2.36 การเชื่อมต่อ Address ระหว่างเครื่อง Host
และเครื่อง Client
จากรูปจะเห็นว่าเมื่อเครื่อง A เป็นโฮสต์ก็จะเปิด
พอร์ท 6000 เอาไว้เพื่อรอการเชื่อมต่อส่วนเครื่อง B ที่จะ
เข้ามาร่วมเล่นเกมนั้นก็จะกาหนดชื่อ Host ชี้ไปทีIP ของ
                                                ่
เครื่อง A และกาหนดหมายเลขพอร์ทไว้ที่6000 โดยจะกา
หนดให้กับ Host Address นั่นเองจากตรงนี้สรุปได้ว่า
เครื่องทีเป็นโฮสต์จะใช้แค่Device Address
         ่
2.4.3 ระบบข่าวสารในเกมเน็ตเวิร์ค
ในการเขียนเกมแบบเน็ตเวิร์คเราจะต้องมีฟังก์ชั่นสาหรับ
จัดการข่าวสาร(Message Handler) ภายในเกมที่กาลัง
เล่นอยู่ถ้าไม่มีระบบข่าวสารผลก็คือผู้เล่นจะไม่สามารถเข้า
มาร่วมเล่นเป็นกลุ่มเกมกันได้และไม่สามารถส่งข้อมูลการ
เปลี่ยนแปลงภายในเกมให้แก่กันและกันได้เพราะใน
ระหว่างที่กาลังเล่นเกมนั้นจะต้องมีข้อมูลส่งออกจากเครื่อง
ของท่านไปยังเครื่องอื่นๆในกลุ่มเกมเพื่อบอกถึงสถานะ
ของตัวผู้เล่นว่าอยู่ในสถานะใดข่าวสารหรือเมส
เสจ(Message) จึงเปรียบเสมือนเป็นสัญญาณที่ส่งเข้ามา
ในเกมเพื่อทาให้เกมเปลี่ยนสถานะนั่นเอง
25
รูปที่2.37 การติดต่อการส่งข้อความภายในระบบ
เน็ตเวิร์ค
จากรูปถ้าเครื่อง Client A ทีเป็นรูปสามเหลี่ยมเดินจากจุด
                            ่
เดิมไปยังมุมซ้ายบนในเครื่อง Client A จะต้องเขียน
โปรแกรมควบคุมตัวละครภายในเกมก่อนเพื่อเลื่อนตัวละคร
ของมันให้ไปยังจุดที่ต้องการและในขณะเดียวกันนี้มันจะ
ต้องส่งข้อมูลการเคลื่อนที่จากตัวมันเองไปให้กับอีก 2
เครื่องก็คือโฮสต์กับ Client B
รูปที่2.38 ตัวอย่างการส่ง Message ภายในระบบ
เน็ตเวิร์ค
เมื่อทางฝ่ายรับได้รับแล้วโค้ดภายในโปรแกรมเกมก็จะ
จัดการต่อไปคือเอาข้อมูลการเปลี่ยนแปลงที่ได้นี้ไปปรับ
แต่งให้กับตัวละครของ Client A ที่อยู่ภายในเกมของทัง้
โฮสต์และ Client B เคลื่อนไหวพร้อมๆกันเพราะฉะนั้นเกม
ที่แต่ละคนเล่นนั้นจะต้องมีความเป็นเรียลไทม์(Real Time)
โดยระบบข่าวสารในเกมจะต้องเป็นตัวจัดการด้วยตัวของ
มันเองด้วยความเชื่อมั่นใน
26
การควบคุมโค้ดโปรแกรมคือถ้าเราเขียนโปรแกรมดักจับ
ข้อมูลที่ส่งมาและตีความออกมาเป็นคาสั่งที่ถูกต้องแล้ว
เกมก็จะดาเนินการไปได้อย่างสมบูรณ์
ระบบข่าวสารนี้เป็นส่วนหนึ่งที่ถือว่าเป็นหัวใจของเกมแบบ
เน็ตเวิร์คเลยเพราะมันจะเป็นตัวที่ทาให้เกมเล่นได้แบบเรี
ยลไทม์คือถ้าเราควบคุมตัวละครของเราในเกมให้เดินไปที่
มุมล่างของฉากในหน้าจอคนอื่นก็จะต้องเห็นตัวละครของ
เราเดินไปตรงนั้นเช่นกันส่วนตัวละครของคนอื่นจะเดินไป
ตรงไหนก็ตามตาแหน่งนั้นก็จะมาอัพเดทที่หน้าจอเราด้วย
นั่นเองถ้ามีคนเล่นในกลุ่มหลายคนก็เช่นกัน
2.4.4 รูปแบบข้อความ(Packet) ภายในเกม
ลักษณะของข้อความที่ใช้ส่งภายในเกมจะประกอบไป
ด้วย 2 ส่วนคือส่วนหัว(Header) และข้อมูล(Pay load)
โดยส่วนหัวจะเป็นตัวเลขจานวนเต็ม 16 บิตและข้อมูลที่ส่ง
จะขึ้นกับชนิดของข้อมูลที่ต้องการส่งซึ่งการติดต่อสื่อสาร
ในเครือข่ายและการส่งข้อความต่างๆจะใช้Panda3D
Engine เป็นเครื่องมือในการจัดการรูปแบบของข้อความ
แสดงดังรูปที2.39
             ่

Header: Pay
int16   load

รูปที่2.39 รูปแบบข้อความในเกม
ลักษณะของข้อความที่ส่งกันจะมีอยู่2 แบบคือ
1) ขึ้นต้นด้วย CMSG คือข้อความที่สร้างจากฝั่ง Client ส่ง
ไปให้ฝง Server
        ั่
2) ขึ้นต้นด้วย SMSG คือข้อความที่สร้างจากฝั่ง Server ส่ง
ไปให้ฝง Client
        ั่
ตัวอย่างของข้อความที่ส่งภายในเกมเช่น
- ข้อความการเข้าเล่นเกม
CMSG_AUTH คือข้อความที่ผู้เล่นขอเริ่มเข้าเล่นเกม

1      user pass
       nam word
       e

รูปที่2.40 รูปแบบข้อความ CMSG_AUTH
SMSG_AUTH_RESPONSE คือข้อความให้ผู้เล่นเริ่มเข้า
เล่นเกมได้

2 fl
  a
  g

รูปที่2.41 รูปแบบ
ข้อความ SMSG_AUTH_RESPONSE
27
- ข้อความการเคลือนทีของผู้เล่น CMSG_MOVE คือ
ข้อความส่งค่าตาแหน่งทีผู้เล่นกดให้เคลื่อนที่ไป
                      ่

10     user พิกัด พิกัด พิกัด
       nam x      y     z
       e

รูปที่2.42 รูปแบบข้อความ CMSG_MOVE
SMSG_PLAYERMOVE คือข้อความบอกผู้เล่นคนอื่นว่าผู้
เล่นเดินไปที่ไหน
11     user พิกัด พิกัด พิกัด
       nam x      y     z
       e

รูปที่2.43 รูปแบบข้อความ SMSG_PLAYERMOVE -
ข้อความปิดการเชือมต่อ CMSG_DISCONNECT_REQ คือ
ข้อความที่ผู้เล่นส่งไปเพื่อขอปิดการเชื่อมต่อ

20      Client_
        name

รูปที่2.44 รูปแบบ
ข้อความ CMSG_DISCONNECT_REQ
SMSG_DISCONNECT_ACK คือข้อความที่Server ปิดการ
เชื่อมทีผู้เล่นขอมา
        ่

21      Client_
        name

รูปที่2.45 รูปแบบ
ข้อความ SMSG_DISCONNECT_ACK
2.5 3D Engine
2.5.1 Game engine
Game engine คือซอฟแวร์กลางของเกมคอมพิวเตอร์หรือ
application อื่นๆที่ใช้real-time graphics ช่วยทาให้การ
ใช้งานง่ายขึ้นพร้อมด้วยเทคโนโลยีหลากหลายที่สามารถ
นามาใช้และยังสามารถทาให้ใช้งานได้บนหลาย platform
อย่างเช่น Linux,Max OS X และ Windows โดยหน้าที่
หลักของมันคือการทาการ render ภาพ 2/3 มิติระบบ phys
ic collision detection เสียงแอนนิเมชัน
Game engine จะมีเครื่องมือพัฒนาให้ใช้งานพร้อมกับ
ส่วนประกอบอื่นๆอีกมากมายโดยเครื่องมือเหล่านี้จะช่วย
ในการพัฒนาเกมได้อย่างรวดเร็วง่ายยิ่งขึ้นส่วนประกอบ
เหล่านี้อาจเรียกได้อีกอย่างนึงว่า middleware เพราะมัน
ทาให้platform มีความคล่องตัวในการใช้งานตามความ
ต้องการของ core เหมือน middleware อื่นๆ game
engine จะมีplatform abstraction ที่สามารถทา
28
ให้เกมๆสามารถใช้งานได้บนหลายๆ platform โดยแทบ
ไม่ต้องทาการปรับเปลี่ยน source code ของเกมมากนัก
หลายครั้งทีgame middleware จะถูกออกแบบให้มี
            ่
ลักษณะ component-based ที่จะทาให้สามารถ
เปลี่ยน component ไปมาได้โดยง่ายซึ่งอาจจะดีขึ้นหรือ
แพงขึ้นก็เป็นได้game engine เหล่านี้มีความสาคัญมาก
เพราะสามารถนาได้ปรับใช้ได้กับหลากหลายระบบดังเช่น
ระบบการตลาดระบบจาลองต่างๆและระบบออกแบบ
2.5.2 3D Engine คืออะไร
3D engine จะมีแค่ความสามารถด้านการ render ภาพมา
ให้engine เหล่านี้ต้องอาศัยนักพัฒนาเกมในการเขียนหรือ
ใช้middleware ระบบ engine เหล่านี้ถูกเรียกว่า graphics
engine, rendering engine หรือ 3D engine ตัวอย่างเช่น
Realm Forge, Ogre, Power Render, Crystal Space,
Genesis3D, และ Panda3D ซึงแสดงผลใน
                              ่
ลักษณะ object oriented ในโลก 3 มิติซึ่งทาให้การสร้าง
เกมง่ายยิ่งขึ้น
2.5.3 Game engine ที่เป็นที่นิยมในปัจจุบัน
แบ่งเป็น 2 ประเภทคือ
1. Game engine ที่มีค่า License
     1.   Torque Game Engine•
     2.   TV3D SDK 6•
     3.   3DGameStudio•
     4.   C4 Engine•
     5.   Unity•
     6.   Cipher•
     7.   3Impact•
     8.   Beyond Virtual•
     9.   DarkBASIC Pro•


2. Free Game engine (open source)
     1.   OGRE•
     2.   Crystal Space•
     3.   Irrlicht•
     4.   jME•
     5.   Panda3D•
     6.   Reality Factory•
     7.   The Nebula Device 2•


29
2.5.4 Panda3D คืออะไร
Panda3d คือ 3d engine ที่เก็บรวบรวมชุดคาสั่งของการ
สร้างภาพ 3 มิติและการพัฒนาเกมโดยชุดคาสั่งเป็น
ภาษา C++ ซึงเชื่อมกับภาษาไพธอนการพัฒนาเกม
             ่
ด้วย panda3d นั้นส่วนใหญ่จะใช้การเขียนโปรแกรม
ไพธอนเพื่อควบคุมการทางานของชุดคาสั่งใน panda3d
Panda3d มีข้อได้เปรียบที่สาคัญคือใช้เวลาน้อยในการ
เรียนรู้การใช้งานและสามารถพัฒนาได้อย่างรวดเร็วจึงทา
ให้ใช้เวลาในการทางานได้อย่างคุ้มค่า
Panda3d ถูกพัฒนาขึ้นมากจากการสร้างเกมในเครือ
ของ Disney ในแนวเกม massively multiplayer online
game ที่ชื่อ“Toonworld” เริ่มแรกสุดเป็น free software
ในปี2002 ในปัจจุบันเป็นการจับมือร่วมกันพัฒนาระหว่าง D
isney ผูเริ่มต้นกับ Carnegie Mellon University's
        ้
Entertainment Technology Center
2.5.5 ข้อดีของ Panda3D
Panda3d ได้พัฒนา engine อย่างต่อเนื่องทาให้panda3d
มีคณสมบัติที่ดีต่างๆมากมายผลักดันให้panda3d นา
   ุ
หน้า engine อื่นๆดังนี้
      1.    1.   สามารถเรียนรู้เพือเข้าใจการทางานได้ในระยะเวลาอันสั้น
                                  ่
      2.    2.   สามารถพัฒนางานได้อย่างรวดเร็ว
      3.    3.   ชุดคาสั่งสามารถเรียกได้จากทั้งภาษา C++ หรือไพธอนก็ได้
      4.    4.   งานที่ได้มีความเสถียรภาพ
      5.    5.   เป็น free software license
      6.    6. สนับสนุนการทางานกับระบบปฏิบัติการทั้ง Windows และ Linux
      7.    7. ลงโปรแกรมติดตั้งง่าย
      8.    8. มีโมเดลและ artwork ฟรีมากมายให้ลองใช้งาน
      9.    9. มีทีมผู้พัฒนาที่น่าเชื่อถือและติดต่อสอบถามได้
      10.   10. มีขอมูล documentation มากมายอาทิเช่น Extensive manual, Collection of code samples
                    ้
            และ API Reference materials เป็นต้น


ที่มา http://www.ce.kmitl.ac.th/project/id577/chap4.pdf

Mais conteúdo relacionado

Mais procurados

โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5Aungkana Na Na
 
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขน
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขนเกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขน
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขนbennypong
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlopPor Kung
 
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"Nutcha Kbn
 
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาNattapon
 
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ววิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้วThank Chiro
 
โครงงานคอมพิวเตอร์ 612/2557
โครงงานคอมพิวเตอร์ 612/2557โครงงานคอมพิวเตอร์ 612/2557
โครงงานคอมพิวเตอร์ 612/2557Pisit Ausa
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศJL'mind Chutimon
 

Mais procurados (9)

โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขน
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขนเกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขน
เกมส์รถถังออนไลน์ ผลงานนักศึกษามหาวิทยาลัยศรีปทุม บางเขน
 
1122
11221122
1122
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlop
 
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"
ใบงานที่ 4 เรื่อง โครงงานประเภท “การพัฒนาสื่อเพื่อการศึกษา"
 
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
 
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ววิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
วิชา เทคโนโลยีสารสนเทศ 2 รหัสวิชา ง32101 แก้ไขแล้ว
 
โครงงานคอมพิวเตอร์ 612/2557
โครงงานคอมพิวเตอร์ 612/2557โครงงานคอมพิวเตอร์ 612/2557
โครงงานคอมพิวเตอร์ 612/2557
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 

Semelhante a การพัฒนาเกมคอมพิวเตอร์ 3 มิติ

โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8JoyCe Zii Zii
 
โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8Aungkana Na Na
 
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...Paradorn Sriarwut
 
คู่มือการใช้งานโปรแกรม Photoshop cs
คู่มือการใช้งานโปรแกรม Photoshop csคู่มือการใช้งานโปรแกรม Photoshop cs
คู่มือการใช้งานโปรแกรม Photoshop cssamnaknit
 
Lab c1 1
Lab c1 1Lab c1 1
Lab c1 1binLy
 

Semelhante a การพัฒนาเกมคอมพิวเตอร์ 3 มิติ (7)

Chapter008
Chapter008Chapter008
Chapter008
 
โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8
 
โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8โครงงานพัฒนาเกม 8
โครงงานพัฒนาเกม 8
 
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...
การใช้ซอฟต์แวร์ Open source (alpha miner) วิเคราะห์ลักษณะลูกค้าเป้าหมาย (cust...
 
คู่มือการใช้งานโปรแกรม Photoshop cs
คู่มือการใช้งานโปรแกรม Photoshop csคู่มือการใช้งานโปรแกรม Photoshop cs
คู่มือการใช้งานโปรแกรม Photoshop cs
 
11
1111
11
 
Lab c1 1
Lab c1 1Lab c1 1
Lab c1 1
 

การพัฒนาเกมคอมพิวเตอร์ 3 มิติ

  • 1. การพัฒนาเกมคอมพิวเตอร์ 3 มิติ 3D COMPUTER GAME DEVELOPMENT ทฤษฎีที่เกี่ยวข้อง 2.1 ตรรกศาสตร์คลุมเครือ (Fuzzy Logic) 2.1.1 ความหมายของตรรกศาสตร์คลุมเครือ ตรรกศาตร์คลุมเครือพัฒนาจากทฤษฏีเซตวิภัชนัย (Fuzzy set) โดยเป็นการใช้เหตุผลแบบประมาณ ซึ่งแตกต่างจาก การใช้เหตุผลแบบเด็ดขาดในลักษณะ ถูกผิด, ใช่ไม่ใช่ ของตรรกศาตร์แบบฉบับ (Classical Logic) ตรรกศาตร์คุ ลมเครือนั้นสามารถถือเป็นการประยุกต์ใช้งานเซตวิภัชนัย เพื่อจ าลองการตัดสินใจของผู้เชี่ยวชาญต่อปัญหาที่ซับ ซ้อน ตรรกศาสตร์คลุมเครือนั้นสามารถระบุความเป็นสมาชิกของ เซต (Set membership values) ด้วยค่าระหว่าง 0 และ 1 ท าให้เกิดระดับกึ่งในลักษณะของสีเทา นอกจากขาวและ ด า ซึงมีประโยชน์ในการจ าลองระดับ ซึ่งสามารถระบุด้วย ่ ค าพูด “เล็กน้อย” “ค่อนข้าง” “มาก” โดยใช้ค่าความเป็น สมาชิกของเซตบางส่วน ตรรกศาสตร์คลุมเครือนี้มีความ สัมพันธ์กับเซตวิภัชนัยและทฤษฎีความเป็นไปได้ (Possibility theory) ซึงคิดค้นขึ้นในปี ค.ศ.1965 โดย ่ ศาสตราจารย์ ลอตฟี ซาเดห์ (Lotfi Zadeh) แห่ง มหาวิทยาลัยแคลิฟอร์เนีย เบิร์กเลย์ 2.1.2 หลักการของตรรกศาสตร์คลุมเครือ
  • 2. ตรรกศาสตร์คลุมเครือต้องการตัวแปรที่เป็นตัวเลขมากกว่า เพื่อการแสดงความส าคัญของข้อผิดพลาดและให้ความส าคัญเกี่ยวกับอัตราการเปลี่ยนแปลงใช้ได้ดีในระบบควบคุม หลายๆ ประเภท ขั้นตอนการด าเนินการของตรรกศาสตร์ คลุมเครือนั้นประกอบไปด้วย 3 ขั้นตอนดังรูปต่อไปนี้ รูปที่ 2.1 Fuzzy rule-based inference 4 Crisp sets คือ หลักของคณิตศาสตร์ที่สอนในโรงเรียน โดยมีนิยามว่า “Object แต่ละอันต้องเป็นของ set ใด set หนึ่ง หรืออาจไม่เป็นอย่างแน่นอน” ซึ่งใช้ได้ส าหรับ หลายๆปัญหาเพราะหลายๆ object สามารถจัดเข้าพวกได้ อย่างถูกต้อง เช่น เสียมก็ต้องเป็นเสียม มันไม่มีทางที่บาง ส่วนจะเป็นเสียม บางส่วนจะเป็นกรรไกรตัดหญ้า เป็นต้น Crisp sets ถูกใช้เป็นประโยชน์ แต่ก็เกิดปัญหาในหลาย ครั้ง เช่น universe ของ IQ โดยก าหนด set เป็น Dumb, Average, and Clever: Dumb = {70, 71, 72, … 89} Average = {90, 91, 92, … 109} Clever = {110, 111, 112, … 129} แสดงกราฟเส้นดังรูปที่ โดย Degree of membership มี ค่าเป็น 0 หรือ 1 รูปที่ 2.2 Degree of membership ของ IQ 2.1.2.1 Fuzzification ขั้นตอนแรกของกระบวนการที่เรียกว่า fuzzification นั้น เป็นการแปลงข้อมูลอินพุทที่ชัดเจนให้เป็นข้อมูลอินพุท
  • 3. แบบฟัซซี่ รวมไปถึงการหา Degree of membership ของ ข้อมูลที่ชัดเจน ในเซตของฟัซซี่ที่ได้ก าหนดเอาไว้ ตัวอย่างเช่น หากให้น้ าหนักของคนๆหนึงในหน่วยปอนด์ ่ เราสามารถหา degree ได้ว่า คนๆนี้มีน้ าหนักต่ ากว่า มาตรฐาน มีน้ าหนักเกิน หรือมีน้ าหนักมาตรฐานได้ อินพุทที่เข้ามายังระบบฟัซซี่นั้นอยู่ในรูปของตัวเลขที่ ชัดเจน เป็นเลขจ านวนจริงที่บอกถึงปริมาณ ตัวอย่างเช่น คนหนัก 185.3 ปอนด์หรือ คนสูง 6 ฟุต 1 นิ้ว เป็นต้น ใน กระบวนการ fuzzification นั้นจะท าการเทียบข้อมูลที่ ชัดเจนให้เป็น Degrees of membership ใน Qualitative fuzzy sets ตัวอย่างเช่น 185.3 ปอนด์จะถูกเทียบให้เป็น “น้ าหนักค่อนข้างเกิน”, 6 ฟุต 1 นิ้ว ถูกเทียบให้เป็น “สูง” การเทียบนี้จะใช้ Membership functions หรือเรียกอีกชื่อ หนึ่งว่า Characteristic functions 5 Membership Functions Membership Functions จะเทียบอินพุตให้เป็น Degree of membership โดยถ้า Degree of membership มีค่า เป็น 1 จะบอกได้ว่า อินพุทเป็นจริงโดยสิ้นเชิง ถ้า Degree of membership มีค่าเป็น 0 จะบอกได้ว่า อินพุทเป็นเท็จ โดยสิ้นเชิง และถ้า Degree of membership มีค่าระหว่าง 0 และ 1 จะบอกได้ว่า อินพุทเป็นจริงในระดับหนึ่ง Membership functions จะเทียบให้ว่าระดับเท่าไหร่ รูปที่ 2.3 Grade membership function รูปที่ 2.4 Triangular membership function รูปที่ 2.5 Reverse grade membership function
  • 4. 6 รูปที่ 2.6 Trapezoid membership function รูปที่ 2.7 Seven fuzzy sets รูปที่ 2.8 Membership functions อื่นๆ รูปที่ 2.9 Fuzzy set 7 จากรูปที่ 2.9 สามารถค านวณหา Degree of membership ในเซตต่างๆ ได้เป็น น้ าหนักต่ ากว่า มาตรฐานมีดีกรีเท่ากับ 0 น้ าหนักมาตรฐานมีดีกรีเท่ากับ 0.75 น้ าหนักเกินมาตรฐานมีดีกรีเท่ากับ 0.15 2.1.2.2 Fuzzy Rules ตัวด าเนินการทางตรรกะของฟัซซี่นั้นแตกต่างไปจากปกติ โดยตัวด าเนินการต่างๆถูกนิยามเอาไว้ดังนี้ Truth (A OR B) = MAX(Truth(A),Truth(B)) Truth (A AND B) = MIN(Truth(A),Truth(B)) Truth (NOT A) = 1-Truth(A) Truth (A) หมายถึง Degree of membership ของ A ในฟัซซี่เซต เป็นเลขจ านวนจริงที่มีค่าอยู่ระหว่าง 0 และ 1 ตัวอย่างเช่น สมมุติให้คนๆหนึ่ง น้ าหนักเกินเป็นดีกรี 0.7, สูงเป็นดีกรี 0.3 จะได้เป็น น้ าหนักเกิน AND สูง = MIN (0.7, 0.3) =0.3 น้ าหนักเกิน OR สูง = MAX (0.7, 0.3) =0.7
  • 5. NOT น้ าหนักเกิน = 1-0.7 = 0.3 NOT น้ าหนักเกิน = 1-0.7 = 0.3 NOT สูง = 1-0.3= 0.7 NOT (น้ าหนักเกิน AND สูง) =1-MIN (0.7, 0.3) =1-0.3=0.7 Rule Evaluation ในระบบฟัซซี่กฎทุกกฎจะถูกประเมินเพื่อหา Degree of membership ของกฎนั้นๆ ซึงวิธีเลือกเอาท์พุทแบบง่าย ่ ที่สุดก็คือให้เลือกเอาท์พุทของกฎที่มี Degree of membership สูงสุดเป็นเอาท์พุทของฟัซซี่ตัวอย่าง รูปที่ 2.10 Input variable membership functions 8 สมมุติ ระบบฟัซซี่มีกฎอยู่ดังนี้ If(in melee range AND uninjured)AND NOT hard then attack If(NOT in melee range) AND uninjured then do nothing If(NOT out of range AND NOT uninjured)AND( NOT wimp) then flee เมื่อค านวณหา Degree of membership ในเซตต่างๆ จากอินพุทที่รับเข้ามา สมมุติได้เอาท์พุทเป็น Attack ดีกรี 0.2 Do nothing ดีกรี 0.4 Flee ดีกรี 0.7
  • 6. ดังนั้น เอาท์พุทจึงเป็น Flee 2.1.2.3 Defuzzification Defuzzification เป็นกระบวนการหาเอาท์พุทที่ชัดเจนออก มาเป็นตัวเลข ซึงมีหลายเทคนิคที่สามารถน ามาใช้งาน มี ่ เทคนิคหนึ่งที่ชื่อ singleton output membership functions เป็นเทคนิคที่มีประสิทธิภาพเทคนิคหนึง ่ เนื่องจากไม่ต้องใช้การประมวลผลมากนัก โดยการค า นวณโดยใช้สูตรดังต่อไปนี้ เอาท์พุท = (2.1) โดย คือ Degree of membership, คือค่าเอาท์พุทที่ ชัดเจนของแต่ละเอาท์พุท ตัวอย่างเช่น Flee Do nothing Attack = -10 =1 =10 รูปที่ 2.11 Output fuzzy sets จากตัวอย่างก่อนหน้านี้ สามารถค านวณหาเอาท์พุทเป็น ตัวเลขได้เป็น เอาท์พุท = ซึ่งอาจจะใช้เอาท์พุทที่ได้เป็นอัตราเร็วของการหนี (Flee) เป็น -2.5 (อัตราเร็วการหนีสูงสุด -10) 9 2.2 Finite State Machine Finite state machine เกิดขึ้นจาก เซต 2 เซต ได้แก่ 1. 1. เซตของสถานะ (States) ที่แสดงถึงเหตุการณ์ที่เป็นไปได้ที่จะเกิดขึ้นทั้งหมด
  • 7. 2. 2. เซตของการเปลี่ยนแปลง (Transitions) เป็นเงื่อนไขที่เชื่อมต่อระหว่างสถานะ 2 สถานะ ที่ติดกัน โดยสามารถพิจารณาการเปลี่ยนแปลงระหว่างสถานะด้วย If-Then Conditionals เพื่อตรวจสอบเงื่อนไขหรือกฎ เกณฑ์ที่วางไว้ รูปที่ 2.12 ตัวอย่าง Finite State Machines ข้อดีของการใช้ Finite State Machine ในการออกแบบ โมเดลเกม มีดงต่อไปนี้ ั 1. Coding ได้ง่ายและรวดเร็ว 2. สะดวกในการท า Debugging 3. ไม่เปลืองทรัพยากรในการประมวลผล 2.3 การสร้างโมเดล 3 มิตและการสร้างแอนนิเมชัน ิ 2.3.1 การออกแบบและกระบวนการสร้างโมเดลตัว ละครภายในเกม โมเดลตัวละครในงาน 3 มิติ สามารถสร้างได้หลายวิธี เช่น สร้างด้วยเส้นเนิร์บ (Nurb) หรือ สร้างจากโพลีกอน (Polygon) แต่วิธีที่เป็นที่นิยมแพร่หลายมักจะเป็นวิธีการ สร้างโมเดลแบบการปั้นโดยใช้โครงสร้างโมเดลแบบโพลี กอน เหตุผลที่วิธีนี้เป็นที่นิยมเพราะมีวิธีการขึ้นโมเดลที่ ง่ายในการสร้างหรือแก้ไข 10 2.3.1.1 ความละเอียดของโมเดล ส าหรับการปั้นโมเดลตัวละครประเภทตัวคนหรือสัตว์ต่างๆ ด้วยวิธีดังกล่าวนั้นสามารถแบ่งชนิดย่อยๆ ได้สองแบบคือ
  • 8. โมเดลแบบความละเอียดต่ า (Low polygon model) และ โมเดลแบบความละเอียดสูง (High polygon model) - โมเดลแบบความละเอียดต ่่า เป็นโมเดลที่ใช้จ านวนโพลีกอนที่ไม่มากนัก ข้อดีของ โมเดลแบบนี้คือสร้าง และแก้ไขรายละเอียดเพิ่มเติมได้ ง่าย ประหยัดเวลาในการเรนเดอร์ (Render) และเครื่อง คอมพิวเตอร์ท างานไม่หนัก และด้วยความไม่หนักของ โมเดลนี่เองทีท าให้โมเดลชนิดนี้มักจะเหมาะกับงานที่ ่ ต้องการความเร็วในการประมวลผลสูงๆ เช่นโมเดลส าหรับ เกมต่างๆ รูปที่ 2.13 โมเดลแบบความละเอียดต่่่ า - โมเดลแบบความละเอียดสูง เป็นโมเดลที่มีความละเอียดสูง จึงมีจ านวนโพลีกอนที่ใช้ ในการท างานรวมทั้งขนาดไฟล์ของโมเดลมากขึ้นตามไป ด้วย และเนื่องจากความใหญ่และละเอียดนี่เองที่ท าให้ โมเดลแบบนี้ต้องใช้เวลาในการประมวลผลต่างๆมากมาย ส่วนใหญ่โมเดลแบบนี้มักจะถูกใช้ในงานประเภทที่ต้องการ ความสมจริงมากๆ เช่น ในงานภาพยนตร์ งานโฆษณา หรือในการเริ่มเรื่องที่เป็นส่วนแอนนิเมชันสวยๆของเกม ต่างๆ เป็นต้น 11 รูปที่ 2.14 โมเดลแบบความละเอียดสูง 2.3.1.2 ขั้นตอนหลักในการขึ้นรูปโมเดล ในการปั้นโมเดลเราสามารถแบ่งขั้นตอนหลักๆ ได้ดังนี้ - เตรียมแบบร่างให้พร้อมส าหรับอ้างอิงต าแหน่งต่างๆ
  • 9. - ปั้นโมเดลไปทีละส่วน เช่น ล าตัว แขน ขา และส่วนหัน แล้วแต่ตามความถนัด น าโมเดลที่ปั้นเรียบร้อยแล้วมาใส่รายละเอียดพื้นผิว ด้วย การวาดลวดลายที่ต้องการในโปรแกรมตกแต่งและวาด ภาพ 2.3.1.3 การเตรียมแบบร่างส่าหรับการขึ้นโมเดล เนื่องจากการสร้างโมเดลความละเอียดต่ า จะต้องใช้วิธีดึง ดัด หรือย้ายจุดต่างๆ ไปมากับ Polygon ดังนั้นในการท า งานจึงควรจะมีแบบร่างของโมเดลที่ต้องการสร้างส าหรับ ใช้อ้างอิงการย้ายต าแหน่งด้วยเหตุผล 2 ประการคือ - ประการแรกคือสามารถขึ้นโมเดลได้ง่าย เพราะการวาด ในกระดาษให้เรียบร้อย จะท าให้ได้เห็นหน้าตาตัวโมเดลก่อน และเมื่อเห็นหน้าตา คร่าวๆ แล้วการปั้น โมเดลก็จะง่ายยิ่งขึ้น - ประการที่สองคือใช้ส าหรับอ้างอิงต าแหน่งจุดต่างๆ ที่ เราจะใช้อ้างอิงในการปั้น รูปโมเดล 2.3.2 เครื่องมือหรือโปรแกรมที่นิยมใช้ในการสร้าง ภาพ 3 มิติ โปรแกรมที่นิยมใช้ในการสร้างงานโมเดลกราฟฟิก 3 มิติ ขึ้นมาโดยโปรแกรมระดับมืออาชีพที่ได้รับความนิยมในการ สร้างงานโมเดล 3 มิติ มีดงนี้ ั 2.3.2.1 3Ds Max
  • 10. โปรแกรม 3D Studio Max นี้ เป็นโปรแกรมกราฟฟิกที่ได้ รับความนิยมมาก พัฒนาโดย Autodesk Media and Entertainment ปัจจุบันออกถึงเวอร์ชัน 9 เป็นโปรแกรมที่ มีประสิทธิภาพในการสร้างโมเดลสูง มีปลักอินที่ยืดหยุ่น ใช้งานง่าย และมีอยู่ค่อนข้างมากใน 12 แพลตฟอร์มของวินโดวส์โปรแกรมนี้มักจะถูกน าไปใช้ใน การสร้างวีดีโอเกม งานสถาปัตยกรรมและการออกแบบ รวมไปถึงการท าสเปเชียลเอฟเฟค ในภาพยนตร์บางเรื่อง รูปที่ 2.15 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์ ของโปรแกรม 3Ds Max - ข้อดีของโปรแกรม 3Ds Max 3Ds Max มีข้อดีคือใช้งานง่าย เป็นที่นิยมใช้กันอย่างแพร่ หลาย มีข้อมูลและสื่อ ให้ศึกษาจ านวนมาก ใน ประเทศไทยโปรแกรมนี้เป็นที่นิยม จึงสามารถหาข้อมูล และสอบถามปัญหาได้ง่าย ส่วนความสามารถของตัว โปรแกรมนั้นเพียบพร้อม ทั้งในเรื่องการขึ้นโมเดลหรือการ สร้างแอนนิเมชัน มีเทคนิคให้เลือกใช้มาก ซึงช่วยอ านวย ่ ความสะดวกได้เป็นอย่างดี และจุดเด่นที่ส าคัญของ 3Ds Max คือแก้ไขงานได้ง่ายกว่าโปรแกรมอื่น ตัวช่วยปลั๊กอิน มีให้เลือกใช้ปริมาณมาก เช่น มี Character Studio ช่วย ในการสร้างงาน โปรแกรมนี้เหมาะกับงานหลากหลายระดับ และเหมาะกับการน าไปช่วยในการสร้างตัวละครภายใน เกม เพราะท าโมเดลแบบความละเอียดต่ าได้ดี มีเกมจ า นวนมากที่สร้างโดยใช้ 3Ds Max ท าแอนนิเมชันได้ดี และนิยมน าไปสร้างงานด้านสถาปัตยกรรม เหมาะกับผู้เริ่ม ต้นที่ต้องการเป็นมืออาชีพในอนาคต - ข้อเสียของโปรแกรม 3Ds Max
  • 11. ใช้ปลั๊กอินเป็นตัวช่วยที่มากเกินไป เพราะถ้าต้องการงาน ให้เสร็จฉับไวนั้น จ าเป็นต้องใช้ปลั๊กอินเป็นตัวช่วย 2.3.2.2 Maya Maya เป็นโปรแกรมกราฟฟิกสร้างภาพ 3 มิติ เกิดจาก บริษัท Alias Systems Corporation แต่ปัจจุบันเป็นของ Autodesk เดิมเป็นซอฟแวร์ที่ใช้งานบนเครื่อง Silicon Graphics (SGI) ที่ใช้ระบบปฏิบัติการ (OS) Irix เท่านั้น แต่ก็ได้มีการพอร์ตมาใช้กับเครื่องพีซีที่ใช้ระบบปฏิบัติการ Windows NT และ XP และในปัจจุบันสามารถใช้กับเครื่อง Mac ทีใช้ Mac OS X ่ 13 ได้อีกด้วย Maya ที่ถูกใช้อย่างมากในอุตสาหกรรมหนัง และ ภาพยนตร์ และมีการใช้บ้างในเกมคอมพิวเตอร์ Maya มีจดเด่นในเรื่องของความยืดหยุ่นอย่างมากในการท ุ างาน โดยใช้การท างานแบบ Node-base เป็นหลัก กล่าว คือฟังก์ชันการท างานแต่ละแบบจะถูกเก็บเป็น Node โดย แต่ละ Node จะมีอินพุทและเอาท์พุทเราสามารถเชื่อม Node เหล่านี้เข้าด้วยกัน เพื่อให้เกิดผลที่แตกต่างกันได้ นับไม่ถ้วน รวมถึงการใช้งานสคริปท์ที่เรียกว่า MEL ซึ่งใช้ งานได้ง่ายและมีประสิทธิภาพ รูปที่ 2.16 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์ ของโปรแกรม Maya - ข้อดีของโปรแกรม Maya เป็นโปรแกรมที่ขึ้นโมเดลได้รวดเร็ว และเป็นโปรแกรมที่ ครบครันทางด้านงาน 3 มิติมากที่สุด ให้ภาพ แสง และราย ละเอียดได้สมจริง มีจุดเด่นในเรื่องของความยืดหยุ่นอย่าง
  • 12. มากในการท างาน นิยมน าไปใช้ในการสร้างภาพยนตร์ ท าภาพยนตร์การ์ตูน 3 มิติ - ข้อเสียของโปรแกรม Maya มีกระบวนการที่ซับซ้อนและ ไม่เหมาะกับผู้ที่ไม่ชอบการค านวณ และผูที่เพิ่งเริ่มต้นกับงานทางด้าน 3 มิติ และแก้ไข ้ งานในส่วนของโมเดลแบบความละเอียดต่ าได้ยากและ ซับซ้อน 2.3.2.3 LightWave LightWave 3D โปรแกรมที่นักสร้างภาพ 3 มิติ (3D Animator) ทั่วโลกต่างยอมรับว่า เป็นโปรแกรมที่สามารถ สร้างโมเดล ได้ง่าย และรวดเร็ว อีกทั้งยังเป็นโปรแกรมที่ เรนเดอร์ภาพได้สมจริงที่สุดอีกด้วย โดย LightWave 3D ได้รับความนิยมสูง ในงานทีวี (โทรทัศน์) และงาน ภาพยนตร์ เช่น Titanic, Star Trek VI ภาพยนตร์แอนนิเม ชัน 3 มิติอย่าง “Jimmy Nouton” ในไทยเองผลงานที่ สร้างมาจาก LightWave ที่เห็นกันทั่วไป เช่น ตุกตา ๊ China Doll, งานโฆษณาฟูจิ ชุด Smile 14 รูปที่ 2.17 ตัวอย่างหน้าตาโปรแกรม และสัญลักษณ์ ของโปแกรม LightWave - ข้อดีของโปรแกรม LightWave Lightwave มีข้อดีคือเรื่องของการขึ้นโมเดลที่ขึ้นแบบฟรี ฟอร์มได้ง่าย แม้จะมีเครื่องมือให้ใช้น้อยแต่ก็เพียงพอแก่ การท างาน ผูเริ่มใช้สามารถใช้เวลาศึกษาได้ไม่นาน ใช้ ้ ทรัพยากรเครื่องน้อยกว่าโปรแกรมอื่นมาก ก าหนดค่า พารามิเตอร์ต่างๆ ได้ง่าย ไม่ยุ่งยากซับซ้อน โปรแกรมนี้ก็
  • 13. เหมาะส าหรับผู้เริ่มต้นใหม่เพราะง่ายและรวดเร็วในการ ศึกษา ค าสั่งและเครื่องมือต่างๆ มีไม่มาก แต่ก็สามารถ สร้างงานระดับมืออาชีพได้ - ข้อเสียของโปรแกรม LightWave การท าแอนนิเมชันของ LightWave ยังมีประสิทธิภาพที่ ด้อยกว่าโปรแกรมสร้างภาพ 3 มิติรายอื่นๆ เช่น การสร้าง กระดูกคนเพื่อน าไปสร้างเป็นตัวละครของโมเดลยังท าได้ ไม่ดีพอ 2.3.3 โปรแกรมที่เลือกใช้ในการสร้างโมเดล 3 มิตใน ิ เกม จากการส ารวจและรวบรวมข้อมูล พบว่าโปรแกรมสร้าง ภาพ 3 มิติแต่ละโปรแกรม มีทั้งข้อดีและข้อเสียแตกต่าง กันออกไป ขึ้นอยู่กับผู้ใช้จะเลือกโปรแกรมตัวไหนมาใช้ให้ เหมาะสมกับงานประเภทนั้นๆ ซึ่งในการสร้างเกม 3 มิติ จ าเป็นต้องเลือกใช้เครื่องมือสร้างภาพ 3 มิติ มาสร้างตัว ละคร, ฉาก และอุปกรณ์ต่างๆภายในเกม ดังนั้นจึงต้อง เลือกใช้เครื่องมือที่สร้างโมเดลได้ดี โดยเฉพาะ การสร้าง โมเดลที่เป็นแบบความละเอียดต่ า คือโมเดลที่มีความละ เอียดของจ านวนโพลีกอนน้อย เหมาะสมกับการน าไป ประกอบภายในเกม เพราะถ้าความละเอียดสูงจะท าให้การ เรนเดอร์ภาพออกมาท าได้ช้า เกมเกิดอาการกระตุก โปรแกรม 3Ds Max จึงเหมาะสมที่สุดในการท างาน เพ ราะท างานกับโมเดลแบบความละเอียดต่ าได้ดีที่สุด สนับสนุนไฟล์ 3 มิติได้หลากหลาย มีแหล่งทรัพยากร เช่น ค้นหาโมเดลต่างๆที่สร้างจาก 3Ds Max ได้ง่าย และที่ส าคัญเป็นที่นิยมในการสร้างกราฟฟิก 3 มิติภายในเกม 15
  • 14. 2.3.4 การใช้งานโปรแกรม 3Ds Max ในการสร้าง โมเดลและแอนนิเมชัน การใช้โปรแกรม 3Ds Max ส าหรับสร้างโมเดลตัวละคร และฉากต่างๆ ภายในเกม รวมทั้งการสร้างแอนนิเมชันให้ แก่ตัวละคร มีกระบวนการพื้นฐานต่างๆ ที่ควรทราบดังนี้ 2.3.4.1 กระบวนการพื้นฐานที่ส่าคัญในการสร้าง โมเดล 1) การย้ายต าแหน่งของจุด (Vertex translation) ตาม แนวแกน x, y และ z ซึ่งใช้ ส าหรับการปรับแต่งรูปร่าง ของโมเดลให้ได้รูปร่างที่ต้องการ รูปที่ 2.18 ตัวอย่างการย้ายต่าแหน่งของวัตถุ 2) การสร้างเส้นขอบบนโมเดล (Edge Creation) เพื่อเพิ่ม รายละเอียดโมเดล โดยส่วนใหญ่จะใช้การสร้างเส้น ระหว่างจุด 2 จุด รูปที่ 2.19 ตัวอย่างการสร้างเส้นขอบบนโมเดล 16 3) การหมุนโมเดลรอบแนวแกน x, y และ z ใช้ในการ เปลี่ยนระนาบของวัตถุ(Rotation) รูปที่ 2.20 ตัวอย่างการหมุนโมเดล 4) การย่อและขยายโมเดล เป็นการปรับขนาดของโมเดล สามารเลือกได้ว่าจะย่อขยายตามแนวแกนใด (Scaling) รูปที่ 2.21 ตัวอย่างการย่อขยายโมเดลตามแกนต่างๆ 17
  • 15. 5) การดึงหรือผลักพื้นผิวของโมเดลเพื่อสร้าง Polygon ใหม่เพิ่มขึ้นมา หรือท าให้เกิดช่องบนโมเดล (Extrude) รูปที่ 2.22 ตัวอย่างการดึงและผลักพื้นผิวของโมเดล 6) การแตกจุด (Break) และการเชื่อมจุด (Weld) บน โมเดล รูปที่ 2.23 ตัวอย่างการแตกจุดและการเชื่อมจุดบน โมเดล 7) การใส่รูปภาพพื้นผิวให้กับโมเดล (Texture mapping) ซึ่งกระบวนการนี้ใช้ส าหรับตกแต่งรายละเอียดพื้นผิวของ โมเดล รูปที่ 2.24 ขั้นตอนการใส่รูปภาพบนพื้นผิวของโมเดล 18 2.3.4.2 ส่วนประกอบหลักส่าหรับกระบวนการท่าแอน นิเมชัน 1) กระดูก (Bone) เป็นสิ่งที่ใช้ควบคุมพื้นผิวของโมเดลให้ เคลื่อนไหวตามการเคลื่อนที่ของกระดูกซึงเราสามารถก า ่ หนดอาณาเขตการควบคุมพื้นผิวโมเดล ของกระดูกแต่ละ ชิ้นได้ รูปที่ 2.25 การควบคุมพื้นผิวโมเดลของกระดูก 2) จุดศูนย์รวมจ าลอง (Dummy) เป็นจุดศูนย์กลางของ กระดูกทั้งหมด ซึ่งถ้าเราเลื่อนต าแหน่งของจุดศูนย์รวมจ า ลอง โมเดลที่ถูกกระดูกควบคุมอยู่จะเลื่อนตามด้วย รูปที่ 2.26 การเลื่อนจุดศูนย์รวมจ่าลอง 19
  • 16. 3) ส่วนเชื่อมต่อไอเค (IK Chain) เป็นวัตถุที่ใช้กับกระดูก ส่วนที่เป็นข้อพับ รูปที่ 2.27 การใช้สวนเชื่อมต่อไอเค ่ 4) คีย์เฟรม (Key frame) เป็นการสร้างแอนนิเมชันให้ตัว ละครโดยการก าหนดคีย์เฟรม ซึงใน 3Ds Max จะมีการ ่ สร้างแอนนิเมชันระหว่างคีย์เฟรมที่ก าหนดไว้ให้โดย อัตโนมัติ รูปที่ 2.28 การก่าหนดคีย์เฟรมเพื่อสร้างแอนนิเมชัน 20 2.4 Client-Server ส่าหรับเกมออนไลน์ 2.4.1 เทคนิคและวิธีการของเกมเน็ตเวิร์ค ในการเขียนเกมแบบ Multiplayer ที่สามารถเล่นผ่านระบบ เครือข่ายได้มีอยู่หลายรูปแบบ และหลายวิธีการเชื่อมต่อ ตัวอย่างของเกมที่เล่นผ่านเน็ตเวิร์คได้มีหลายเกมด้วย เช่น RedAlert, Age of Empire, Warcraft และเกมอื่นๆ อีก หลายเกมที่ไม่ได้กล่าวถึงก็มีความสามารถด้านเน็ตเวิร์ค ด้วยเช่นกัน ประเภทของเกมเน็ตเวิร์คนั้น มีอยู่ด้วยกัน 2 ลักษณะ คือ 1. เกมประเภทที่จะต้องเล่นเป็นกลุ่ม (Peer to Peer) 2. เกมประเภทที่จะต้องมี Server เป็นหลัก (Client / Server) เกมประเภท Peer to Peer ลักษณะคือ ทุก ๆ คนจะเชื่อม ต่อเข้าหากันภายในกลุ่ม และจะต้องมีเครื่องใดเครื่องหนึ่ง ท าตัวเป็นเครื่องหลัก หรือ โฮสต์ (Host) เพื่อเป็นเครื่องที่
  • 17. จะให้คนอื่น ๆ เข้ามาร่วมในเกมได้ ลักษณะของเกมแบบ Peer to Peer มีลักษณะดังนี้ รูปที่ 2.29 การเข้าร่วมของกลุ่ม Client ประเภท Peer to Peer ลักษณะของ Peer to Peer นั้น ทุก ๆ เครื่องจะเชื่อมต่อ ถึงกันหมด (เราเรียกแต่ละเครื่อง ๆ ว่า Peer) ก็คล้าย ๆ กับระบบที่เชื่อมต่อกันในแบบ Peer to Peer นั่นเอง คือ ทุก ๆ เครื่องจะต้องเป็นทั้ง Server และ Client ในตัว คือ จะต้องคอยรับข้อมูลจากเครื่องอื่นๆเพื่อน าไปประมวลผล และอัพเดทตัวละครหน้าตาของตัวเอง และยังจะต้องคอย ส่งข้อมูลการเปลี่ยนแปลงของตัวมันเองออกไปให้กับทุกๆ เครื่องที่อยู่ในกลุ่ม ด้วยเหตุนี้การเชื่อมต่อแบบ Peer to Peer จึงจ าเป็นต้องใช้ Bandwidth หรือถนนที่กว้างๆ และ การจราจรในระบบเครือข่ายนั้นค่อนข้างสูง (High Network Traffic) ถ้ามีคนเล่นเพิ่มเข้ามาการจราจรก็จะ หนาแน่นขึ้นมาอีกเป็นเงาตามตัว ตัวอย่างเกมทีใช้การ่ เชื่อมต่อแบบ Peer to Peer ก็เช่น เกม Age of Empire นั่นเอง เกมแบบ Peer to Peer นี้ มีคณสมบัติอย่างหนึ่งที่น่าสนใจ ุ นั่นก็คือ การโอนหน้าที่โฮสต์ หรือ Host Migration ก็คือ ถ้าเครื่องใดทีท าหน้าที่เป็นโฮสต์อยู่ได้หลุดออกจากเกม ่ เครื่องต่อไปก็จะ 21 ท าหน้าที่เป็นโฮสต์แทน เพราะในเกมแบบ Peer to Peer นี้ จ าเป็นจะต้องมีโฮสต์เพื่อเป็นผู้ดูแลและควบคุมการ เชื่อมต่อของผูเล่นทั้งหมด การท างานของ Host ้ Migration แสดงได้ดงรูปต่อไปนี้ ั รูปที่ 2.30 การท่างานของ Host Migration
  • 18. ถ้ามีเครื่องหลุดไปก็จะแปลงเครือข่ายเป็นแบบนี้ รูปที่ 2.31 พฤติกรรมของเคลือข่ายเมื่อมีเครื่องหลุด ส าหรับเกมแบบ Client / Server นี้ จะมีการท างานแบบ Client/Server ที่เรารู้จักกันดี นั่นก็คือ จะต้องมีเครื่องๆ หนึ่งเป็น Server ท าหน้าที่รอการเชื่อมต่อจาก Client หรือผู้เล่นคนอื่นเข้ามา ร่วมอย่างเดียว ดังรูป รูปที่ 2.32 รูปแบบเครือข่ายระบบ Client / Server ลักษณะของการเชื่อมต่อแบบ Client / Server นี้ เครื่องที่ เป็น Client จะไม่ส่งข้อมูลเข้าหากันโดยตรงเหมือนกับ Peer to Peer แต่จะส่งไปที่ Server จากนั้น Server จะ กระจายให้กับเครื่อง Client ที่เข้ามาเชื่อมต่อเอง จ านวนข องเครื่อง Client ที่สามารถเชื่อมต่อได้ขึ้นอยู่กับความ สามารถ 22 ของเครื่องที่น ามาเป็น Server และความเร็วของระบบ เครือข่ายว่าสามารถให้บริการได้มากแค่ไหน เพราะโปรแก รมที่ท าหน้าที่เป็น Server ของเกมนั้น ไม่จ าเป็นจะต้อง มีหน้าตาของเกมสวย ๆ และไม่จ าเป็นต้องใช้กราฟิคที่ สูงๆมากนัก เพราะเป็นเครื่องที่เก็บข้อมูลและแจกจ่าย ข้อมูลเท่านั้น โปรแกรมที่เป็น Server อาจจะเป็นหน้า ไดอะล็อกธรรมดาๆ ทีเปิดพอร์ต (Port) คอยการเชื่อมต่อ ่ จากผู้เล่นเกมเท่านั้น ส่วนหน้าจอเกมของผู้เล่นก็มีภาพ กราฟิคสวย ๆ ของเกมได้อย่างสมบูรณ์แบบ แต่อย่างไร ก็ตาม เราก็ยังสามารถนั่งเล่นเกมในเครื่อง Server ในขณะ ที่โปรแกรม Server ของเกมก าลังท างานอยู่ก็ได้ ตัวอย่างต่อไปนี้ เป็นลักษณะของเกมแบบ Client Server
  • 19. รูปที่ 2.33 ตัวอย่างเกมรูปแบบ Client / Server นอกจากนี้ เกมแบบ Client / Server บางประเภท ยังใช้ ความสามารถของระบบฐานข้อมูลเข้ามาช่วยจัดการข้อมูล ภายในเกมได้ด้วย เช่น SQL Server, MySQL โดยเครื่อง Server สามารถใช้ระบบปฏิบัติการประเภท Linux หรือ WindowsNT/Windows2000 แต่โปรแกรมที่ท างานใน เครื่อง Server จะต้องเป็นโปรแกรมที่พัฒนาขึ้นภายใต้ สภาวะแวดล้อมของระบบปฏิบัติการนั้นๆ ท าให้ผู้ที่ ต้องการเล่นเกมเชื่อมต่อเข้ามาทางอินเตอร์เน็ตได้โดยการ ตั้ง Server เอาไว้ หลักการนี้ก็คล้ายๆกับการท างานของ เกมออนไลน์ที่ก าลังโด่งดังอยู่ในบ้านเรานั่นเอง 23 รูปที่ 2.34 เกมรูปแบบ Client / Server ที่เพิมระบบ ่ DBMS 2.4.2 Address นอกจาก IP Address ที่จ าเป็นต้องใช้ในการเชื่อมต่อแล้ว Address ซึงเป็นหมายเลขที่ระบุถึงเครื่องคอมพิวเตอร์ที่ ่ เชื่อมต่ออยู่ในระบบ เพื่อบอกถึงที่อยู่ของโฮสต์, IP Address หรือชื่อโฮสต์ หรือหมายเลขพอร์ท รวมถึงค่าต่าง ๆ ที่ใช้ในการเชื่อมต่อในแต่ละแบบ ในการสร้างเกม เน็ตเวิร์คจะต้องสร้าง Address 2 ตัวด้วยกันคือ 1. • Device Address 2. • Host Address เหตุที่จะต้องสร้างทั้งสอง Address นั้นก็เพราะ ว่า Device Address เป็น Address ที่บอกถึงตา แหน่งเครื่องของเราเองที่กาลังรันโปรแกรมเกมนี้ อยู่แต่Host Address นี้คือ Address ของเครื่องที่
  • 20. เราจะเชื่อมต่อเข้าทุกๆโปรแกรมจะต้องสร้างทั้ง De vice Address และ Host Address นีแต่ว่าจะ ้ ใช้Device Address หรือตัว Host Address นั้นก็ ขึ้นอยู่กับว่าเครื่องเราจะทาหน้าที่เป็นโฮสต์หรือเป็น เครื่องที่จะเข้ามาร่วมเล่น รูปที่2.35 Host Address และ Device Address ของ Peer to Peer 24 จากรูปถ้าเครื่อง 2 เครื่องนี้จะเชื่อมต่อกันแบบ Peer to Peer โดยเครื่อง A เป็นโฮสต์ของเกมและเครื่อง B เป็น เครื่องที่จะต้องเข้ามาร่วมเล่นในเกมในกรณีนี้เราจะต้องกา หนดให้Device Address ของเครื่อง A นั้นเปิดพอร์ทเอาไว้ เพื่อรอการเชื่อมต่อเช่นพอร์ท 6000 เพราะฉะนั้นเราจะกา หนด 6000 นี้ไปที่Device Address ของเครื่อง A และสาห รับเครื่อง B ที่จะเข้ามาร่วมเล่นก็จะชี้มาที่เครื่อง A ดังรูป รูปที่2.36 การเชื่อมต่อ Address ระหว่างเครื่อง Host และเครื่อง Client จากรูปจะเห็นว่าเมื่อเครื่อง A เป็นโฮสต์ก็จะเปิด พอร์ท 6000 เอาไว้เพื่อรอการเชื่อมต่อส่วนเครื่อง B ที่จะ เข้ามาร่วมเล่นเกมนั้นก็จะกาหนดชื่อ Host ชี้ไปทีIP ของ ่ เครื่อง A และกาหนดหมายเลขพอร์ทไว้ที่6000 โดยจะกา หนดให้กับ Host Address นั่นเองจากตรงนี้สรุปได้ว่า เครื่องทีเป็นโฮสต์จะใช้แค่Device Address ่ 2.4.3 ระบบข่าวสารในเกมเน็ตเวิร์ค ในการเขียนเกมแบบเน็ตเวิร์คเราจะต้องมีฟังก์ชั่นสาหรับ จัดการข่าวสาร(Message Handler) ภายในเกมที่กาลัง เล่นอยู่ถ้าไม่มีระบบข่าวสารผลก็คือผู้เล่นจะไม่สามารถเข้า
  • 21. มาร่วมเล่นเป็นกลุ่มเกมกันได้และไม่สามารถส่งข้อมูลการ เปลี่ยนแปลงภายในเกมให้แก่กันและกันได้เพราะใน ระหว่างที่กาลังเล่นเกมนั้นจะต้องมีข้อมูลส่งออกจากเครื่อง ของท่านไปยังเครื่องอื่นๆในกลุ่มเกมเพื่อบอกถึงสถานะ ของตัวผู้เล่นว่าอยู่ในสถานะใดข่าวสารหรือเมส เสจ(Message) จึงเปรียบเสมือนเป็นสัญญาณที่ส่งเข้ามา ในเกมเพื่อทาให้เกมเปลี่ยนสถานะนั่นเอง 25 รูปที่2.37 การติดต่อการส่งข้อความภายในระบบ เน็ตเวิร์ค จากรูปถ้าเครื่อง Client A ทีเป็นรูปสามเหลี่ยมเดินจากจุด ่ เดิมไปยังมุมซ้ายบนในเครื่อง Client A จะต้องเขียน โปรแกรมควบคุมตัวละครภายในเกมก่อนเพื่อเลื่อนตัวละคร ของมันให้ไปยังจุดที่ต้องการและในขณะเดียวกันนี้มันจะ ต้องส่งข้อมูลการเคลื่อนที่จากตัวมันเองไปให้กับอีก 2 เครื่องก็คือโฮสต์กับ Client B รูปที่2.38 ตัวอย่างการส่ง Message ภายในระบบ เน็ตเวิร์ค เมื่อทางฝ่ายรับได้รับแล้วโค้ดภายในโปรแกรมเกมก็จะ จัดการต่อไปคือเอาข้อมูลการเปลี่ยนแปลงที่ได้นี้ไปปรับ แต่งให้กับตัวละครของ Client A ที่อยู่ภายในเกมของทัง้ โฮสต์และ Client B เคลื่อนไหวพร้อมๆกันเพราะฉะนั้นเกม ที่แต่ละคนเล่นนั้นจะต้องมีความเป็นเรียลไทม์(Real Time) โดยระบบข่าวสารในเกมจะต้องเป็นตัวจัดการด้วยตัวของ มันเองด้วยความเชื่อมั่นใน 26
  • 22. การควบคุมโค้ดโปรแกรมคือถ้าเราเขียนโปรแกรมดักจับ ข้อมูลที่ส่งมาและตีความออกมาเป็นคาสั่งที่ถูกต้องแล้ว เกมก็จะดาเนินการไปได้อย่างสมบูรณ์ ระบบข่าวสารนี้เป็นส่วนหนึ่งที่ถือว่าเป็นหัวใจของเกมแบบ เน็ตเวิร์คเลยเพราะมันจะเป็นตัวที่ทาให้เกมเล่นได้แบบเรี ยลไทม์คือถ้าเราควบคุมตัวละครของเราในเกมให้เดินไปที่ มุมล่างของฉากในหน้าจอคนอื่นก็จะต้องเห็นตัวละครของ เราเดินไปตรงนั้นเช่นกันส่วนตัวละครของคนอื่นจะเดินไป ตรงไหนก็ตามตาแหน่งนั้นก็จะมาอัพเดทที่หน้าจอเราด้วย นั่นเองถ้ามีคนเล่นในกลุ่มหลายคนก็เช่นกัน 2.4.4 รูปแบบข้อความ(Packet) ภายในเกม ลักษณะของข้อความที่ใช้ส่งภายในเกมจะประกอบไป ด้วย 2 ส่วนคือส่วนหัว(Header) และข้อมูล(Pay load) โดยส่วนหัวจะเป็นตัวเลขจานวนเต็ม 16 บิตและข้อมูลที่ส่ง จะขึ้นกับชนิดของข้อมูลที่ต้องการส่งซึ่งการติดต่อสื่อสาร ในเครือข่ายและการส่งข้อความต่างๆจะใช้Panda3D Engine เป็นเครื่องมือในการจัดการรูปแบบของข้อความ แสดงดังรูปที2.39 ่ Header: Pay int16 load รูปที่2.39 รูปแบบข้อความในเกม ลักษณะของข้อความที่ส่งกันจะมีอยู่2 แบบคือ 1) ขึ้นต้นด้วย CMSG คือข้อความที่สร้างจากฝั่ง Client ส่ง ไปให้ฝง Server ั่ 2) ขึ้นต้นด้วย SMSG คือข้อความที่สร้างจากฝั่ง Server ส่ง ไปให้ฝง Client ั่
  • 23. ตัวอย่างของข้อความที่ส่งภายในเกมเช่น - ข้อความการเข้าเล่นเกม CMSG_AUTH คือข้อความที่ผู้เล่นขอเริ่มเข้าเล่นเกม 1 user pass nam word e รูปที่2.40 รูปแบบข้อความ CMSG_AUTH SMSG_AUTH_RESPONSE คือข้อความให้ผู้เล่นเริ่มเข้า เล่นเกมได้ 2 fl a g รูปที่2.41 รูปแบบ ข้อความ SMSG_AUTH_RESPONSE 27 - ข้อความการเคลือนทีของผู้เล่น CMSG_MOVE คือ ข้อความส่งค่าตาแหน่งทีผู้เล่นกดให้เคลื่อนที่ไป ่ 10 user พิกัด พิกัด พิกัด nam x y z e รูปที่2.42 รูปแบบข้อความ CMSG_MOVE SMSG_PLAYERMOVE คือข้อความบอกผู้เล่นคนอื่นว่าผู้ เล่นเดินไปที่ไหน
  • 24. 11 user พิกัด พิกัด พิกัด nam x y z e รูปที่2.43 รูปแบบข้อความ SMSG_PLAYERMOVE - ข้อความปิดการเชือมต่อ CMSG_DISCONNECT_REQ คือ ข้อความที่ผู้เล่นส่งไปเพื่อขอปิดการเชื่อมต่อ 20 Client_ name รูปที่2.44 รูปแบบ ข้อความ CMSG_DISCONNECT_REQ SMSG_DISCONNECT_ACK คือข้อความที่Server ปิดการ เชื่อมทีผู้เล่นขอมา ่ 21 Client_ name รูปที่2.45 รูปแบบ ข้อความ SMSG_DISCONNECT_ACK 2.5 3D Engine 2.5.1 Game engine Game engine คือซอฟแวร์กลางของเกมคอมพิวเตอร์หรือ application อื่นๆที่ใช้real-time graphics ช่วยทาให้การ ใช้งานง่ายขึ้นพร้อมด้วยเทคโนโลยีหลากหลายที่สามารถ นามาใช้และยังสามารถทาให้ใช้งานได้บนหลาย platform อย่างเช่น Linux,Max OS X และ Windows โดยหน้าที่
  • 25. หลักของมันคือการทาการ render ภาพ 2/3 มิติระบบ phys ic collision detection เสียงแอนนิเมชัน Game engine จะมีเครื่องมือพัฒนาให้ใช้งานพร้อมกับ ส่วนประกอบอื่นๆอีกมากมายโดยเครื่องมือเหล่านี้จะช่วย ในการพัฒนาเกมได้อย่างรวดเร็วง่ายยิ่งขึ้นส่วนประกอบ เหล่านี้อาจเรียกได้อีกอย่างนึงว่า middleware เพราะมัน ทาให้platform มีความคล่องตัวในการใช้งานตามความ ต้องการของ core เหมือน middleware อื่นๆ game engine จะมีplatform abstraction ที่สามารถทา 28 ให้เกมๆสามารถใช้งานได้บนหลายๆ platform โดยแทบ ไม่ต้องทาการปรับเปลี่ยน source code ของเกมมากนัก หลายครั้งทีgame middleware จะถูกออกแบบให้มี ่ ลักษณะ component-based ที่จะทาให้สามารถ เปลี่ยน component ไปมาได้โดยง่ายซึ่งอาจจะดีขึ้นหรือ แพงขึ้นก็เป็นได้game engine เหล่านี้มีความสาคัญมาก เพราะสามารถนาได้ปรับใช้ได้กับหลากหลายระบบดังเช่น ระบบการตลาดระบบจาลองต่างๆและระบบออกแบบ 2.5.2 3D Engine คืออะไร 3D engine จะมีแค่ความสามารถด้านการ render ภาพมา ให้engine เหล่านี้ต้องอาศัยนักพัฒนาเกมในการเขียนหรือ ใช้middleware ระบบ engine เหล่านี้ถูกเรียกว่า graphics engine, rendering engine หรือ 3D engine ตัวอย่างเช่น Realm Forge, Ogre, Power Render, Crystal Space, Genesis3D, และ Panda3D ซึงแสดงผลใน ่ ลักษณะ object oriented ในโลก 3 มิติซึ่งทาให้การสร้าง เกมง่ายยิ่งขึ้น 2.5.3 Game engine ที่เป็นที่นิยมในปัจจุบัน
  • 26. แบ่งเป็น 2 ประเภทคือ 1. Game engine ที่มีค่า License 1. Torque Game Engine• 2. TV3D SDK 6• 3. 3DGameStudio• 4. C4 Engine• 5. Unity• 6. Cipher• 7. 3Impact• 8. Beyond Virtual• 9. DarkBASIC Pro• 2. Free Game engine (open source) 1. OGRE• 2. Crystal Space• 3. Irrlicht• 4. jME• 5. Panda3D• 6. Reality Factory• 7. The Nebula Device 2• 29 2.5.4 Panda3D คืออะไร Panda3d คือ 3d engine ที่เก็บรวบรวมชุดคาสั่งของการ สร้างภาพ 3 มิติและการพัฒนาเกมโดยชุดคาสั่งเป็น ภาษา C++ ซึงเชื่อมกับภาษาไพธอนการพัฒนาเกม ่ ด้วย panda3d นั้นส่วนใหญ่จะใช้การเขียนโปรแกรม ไพธอนเพื่อควบคุมการทางานของชุดคาสั่งใน panda3d Panda3d มีข้อได้เปรียบที่สาคัญคือใช้เวลาน้อยในการ เรียนรู้การใช้งานและสามารถพัฒนาได้อย่างรวดเร็วจึงทา ให้ใช้เวลาในการทางานได้อย่างคุ้มค่า Panda3d ถูกพัฒนาขึ้นมากจากการสร้างเกมในเครือ ของ Disney ในแนวเกม massively multiplayer online game ที่ชื่อ“Toonworld” เริ่มแรกสุดเป็น free software
  • 27. ในปี2002 ในปัจจุบันเป็นการจับมือร่วมกันพัฒนาระหว่าง D isney ผูเริ่มต้นกับ Carnegie Mellon University's ้ Entertainment Technology Center 2.5.5 ข้อดีของ Panda3D Panda3d ได้พัฒนา engine อย่างต่อเนื่องทาให้panda3d มีคณสมบัติที่ดีต่างๆมากมายผลักดันให้panda3d นา ุ หน้า engine อื่นๆดังนี้ 1. 1. สามารถเรียนรู้เพือเข้าใจการทางานได้ในระยะเวลาอันสั้น ่ 2. 2. สามารถพัฒนางานได้อย่างรวดเร็ว 3. 3. ชุดคาสั่งสามารถเรียกได้จากทั้งภาษา C++ หรือไพธอนก็ได้ 4. 4. งานที่ได้มีความเสถียรภาพ 5. 5. เป็น free software license 6. 6. สนับสนุนการทางานกับระบบปฏิบัติการทั้ง Windows และ Linux 7. 7. ลงโปรแกรมติดตั้งง่าย 8. 8. มีโมเดลและ artwork ฟรีมากมายให้ลองใช้งาน 9. 9. มีทีมผู้พัฒนาที่น่าเชื่อถือและติดต่อสอบถามได้ 10. 10. มีขอมูล documentation มากมายอาทิเช่น Extensive manual, Collection of code samples ้ และ API Reference materials เป็นต้น ที่มา http://www.ce.kmitl.ac.th/project/id577/chap4.pdf