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

36
กกกกกกกกกกกกกกกกกกกกกก 3 กกกก 3D COMPUTER GAME DEVELOPMENT กกกกกกกกกกกกกกกกกก 2.1 กกกกกกกกกกกกกกกกกกก (Fuzzy Logic) 2.1.1 กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก ตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตต ตตตตตตตต (Fuzzy set) ตตตตตตตตตตตตต ตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตตตตตต ตตต\ตตต, ตตต\ตตตตตต ตตตตตตตตตตตตตตตตตตต (Classical Logic) ตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตตต ตตตตตตตตตตตตตตตต (Set membership values) ตตตตตตตตตตตตตต 0 ตตต 1 ต ตตตต ตตตตตตตตตตตตตตตตตตตตตตตตตตตตต ตตตตตต ตตตตตตต ต ตตตตตตตตตตตตตตตตตตตต ตตตต ตตตตต ตตตตตตตตตตตตตตตตตตต ตตตต “ตตตต ตตตต” “ตตตตตตตต” “ตตต” ตตตตตตตตตตตตต

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

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

การพั�ฒนาเกมคอมพั�วเตอร� 3 ม�ต� 3D COMPUTER GAME DEVELOPMENT

ทฤษฎี�ท��เก��ยวข้�อง 2.1 ตรรกศาสตร�คลุ�มเคร�อ (Fuzzy Logic)

2.1.1 ความหมายข้องตรรกศาสตร�คลุ�มเคร�อ

ตรรกศาตร�คลุมเคร�อพั�ฒนาจากทฤษฏี�เซตวิ�ภั�ชน�ย (Fuzzy

set) โดยเป็"นการใช$เหตผลุแบบป็ระมาณ ซ+,งแตกต.างจากการใช$เหตผลุแบบเด/ดขาดในลุ�กษณะ ถู2ก\ผ�ด, ใช.\ไม.ใช. ของตรรกศาตร�แบบฉบ�บ (Classical Logic) ตรรกศาตร�คลุมเคร�อน�5นสามารถูถู�อเป็"นการป็ระยกต�ใช$งานเซตวิ�ภั�ชน�ยเพั�,อจ าลุองการต�ดส�นใจของผ2$เช�,ยวิชาญต.อป็8ญหาท�,ซ�บซ$อน

ตรรกศาสตร�คลุมเคร�อน�5นสามารถูระบควิามเป็"นสมาช�กของเซต (Set membership values) ด$วิยค.าระหวิ.าง 0 แลุะ 1 ท าให$เก�ดระด�บก+,งในลุ�กษณะของส�เทา นอกจากขาวิแลุะด า ซ+,งม�ป็ระโยชน�ในการจ าลุองระด�บ ซ+,งสามารถูระบด$วิยค าพั2ด เลุ/กน$อย ค.อนข$าง มาก โดยใช$ค.าควิามเป็"น“ ” “ ” “ ”สมาช�กของเซตบางส.วิน ตรรกศาสตร�คลุมเคร�อน�5ม�ควิามส�มพั�นธ์�ก�บเซตวิ�ภั�ชน�ยแลุะทฤษฎี�ควิามเป็"นไป็ได$ (Possibility theory) ซ+,งค�ดค$นข+5นในป็; ค.ศ.1965 โดย

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

ศาสตราจารย� ลุอตฟี; ซาเดห� (Lotfi Zadeh) แห.งมหาวิ�ทยาลุ�ยแคลุ�ฟีอร�เน�ย เบ�ร�กเลุย�

2.1.2 หลุ�กการข้องตรรกศาสตร�คลุ�มเคร�อ

ตรรกศาสตร�คลุมเคร�อต$องการต�วิแป็รท�,เป็"นต�วิเลุขมากกวิ.าเพั�,อการแสดงควิามส าค�ญของข$อผ�ดพัลุาดแลุะให$ควิามส าค�ญเก�,ยวิก�บอ�ตราการเป็ลุ�,ยนแป็ลุงใช$ได$ด�ในระบบควิบคมหลุายๆ ป็ระเภัท ข�5นตอนการด าเน�นการของตรรกศาสตร�คลุมเคร�อน�5นป็ระกอบไป็ด$วิย 3 ข�5นตอนด�งร2ป็ต.อไป็น�5

ร!ปท�� 2.1 Fuzzy rule-based inference

4

Crisp sets ค�อ หลุ�กของคณ�ตศาสตร�ท�,สอนในโรงเร�ยน โดยม�น�ยามวิ.า “Object แต.ลุะอ�นต$องเป็"นของ set ใด set

หน+,ง หร�ออาจไม.เป็"นอย.างแน.นอน ซ+,งใช$ได$ส าหร�บหลุายๆ”ป็8ญหาเพัราะหลุายๆ object สามารถูจ�ดเข$าพัวิกได$อย.างถู2กต$อง เช.น เส�ยมก/ต$องเป็"นเส�ยม ม�นไม.ม�ทางท�,บางส.วินจะเป็"นเส�ยม บางส.วินจะเป็"นกรรไกรต�ดหญ$า เป็"นต$น

Crisp sets ถู2กใช$เป็"นป็ระโยชน� แต.ก/เก�ดป็8ญหาในหลุายคร�5ง เช.น universe ของ IQ โดยก าหนด set เป็"น Dumb, Average, and Clever:

Dumb = {70, 71, 72, … 89}

Average = {90, 91, 92, … 109}

Clever = {110, 111, 112, … 129}

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

แสดงกราฟีเส$นด�งร2ป็ท�, โดย Degree of membership

ม�ค.าเป็"น 0 หร�อ 1

ร!ปท�� 2.2 Degree of membership ข้อง IQ

2.1.2.1 Fuzzification

ข�5นตอนแรกของกระบวินการท�,เร�ยกวิ.า fuzzification น�5นเป็"นการแป็ลุงข$อม2ลุอ�นพัทท�,ช�ดเจนให$เป็"นข$อม2ลุอ�นพัทแบบฟี8ซซ�, รวิมไป็ถู+งการหา Degree of membership ของข$อม2ลุท�,ช�ดเจน ในเซตของฟี8ซซ�,ท�,ได$ก าหนดเอาไวิ$ ต�วิอย.างเช.น หากให$น$ าหน�กของคนๆหน+,งในหน.วิยป็อนด� เราสามารถูหา degree ได$วิ.า คนๆน�5ม�น$ าหน�กต. ากวิ.ามาตรฐาน ม�น$ าหน�กเก�น หร�อม�น$ าหน�กมาตรฐานได$

อ�นพัทท�,เข$ามาย�งระบบฟี8ซซ�,น� 5นอย2.ในร2ป็ของต�วิเลุขท�,ช�ดเจน เป็"นเลุขจ านวินจร�งท�,บอกถู+งป็ร�มาณ ต�วิอย.างเช.น คนหน�ก 185.3 ป็อนด�หร�อ คนส2ง 6 ฟีต 1 น�5วิ เป็"นต$น ในกระบวินการ fuzzification น�5นจะท าการเท�ยบข$อม2ลุท�,ช�ดเจนให$เป็"น Degrees of membership ใน Qualitative fuzzy sets ต�วิอย.างเช.น 185.3 ป็อนด�จะถู2กเท�ยบให$เป็"น น$ าหน�กค.อนข$างเก�น“ ”, 6 ฟีต 1 น�5วิ ถู2กเท�ยบให$เป็"น ส2ง การเท�ยบน�5จะใช$ “ ” Membership

functions หร�อเร�ยกอ�กช�,อหน+,งวิ.า Characteristic functions

5

Membership Functions

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

Membership Functions จะเท�ยบอ�นพัตให$เป็"น Degree of membership โดยถู$า Degree of

membership ม�ค.าเป็"น 1 จะบอกได$วิ.า อ�นพัทเป็"นจร�งโดยส�5นเช�ง ถู$า Degree of membership ม�ค.าเป็"น 0 จะบอกได$วิ.า อ�นพัทเป็"นเท/จโดยส�5นเช�ง แลุะถู$า 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ป็ท�, 2.9 สามารถูค านวิณหา Degree of

membership ในเซตต.างๆ ได$เป็"น น$ าหน�กต. ากวิ.า

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

มาตรฐานม�ด�กร�เท.าก�บ 0 น$ าหน�กมาตรฐานม�ด�กร�เท.าก�บ 0.75 น$ าหน�กเก�นมาตรฐานม�ด�กร�เท.าก�บ 0.15

2.1.2.2 Fuzzy Rules

ต�วิด าเน�นการทางตรรกะของฟี8ซซ�,น� 5นแตกต.างไป็จากป็กต� โดยต�วิด าเน�นการต.างๆถู2กน�ยามเอาไวิ$ด�งน�5

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

ในฟี8ซซ�,เซต เป็"นเลุขจ านวินจร�งท�,ม�ค.าอย2.ระหวิ.าง 0 แลุะ 1

ต�วิอย.างเช.น สมมต�ให$คนๆหน+,ง น$ าหน�กเก�นเป็"นด�กร� 0.7,

ส2งเป็"นด�กร� 0.3 จะได$เป็"น

น$ าหน�กเก�น AND ส2ง = MIN (0.7, 0.3) =0.3

น$ าหน�กเก�น OR ส2ง = MAX (0.7, 0.3) =0.7

NOT น$ าหน�กเก�น = 1-0.7 = 0.3

NOT น$ าหน�กเก�น = 1-0.7 = 0.3

NOT ส2ง = 1-0.3= 0.7

NOT (น$ าหน�กเก�น AND ส2ง) =1-MIN (0.7, 0.3) =1-0.3=0.7

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

Rule Evaluation

ในระบบฟี8ซซ�,กฎีทกกฎีจะถู2กป็ระเม�นเพั�,อหา Degree of

membership ของกฎีน�5นๆ ซ+,งวิ�ธ์�เลุ�อกเอาท�พัทแบบง.ายท�,สดก/ค�อให$เลุ�อกเอาท�พัทของกฎีท�,ม� Degree of

membership ส2งสดเป็"นเอาท�พัทของฟี8ซซ�,ต�วิอย.าง

ร!ปท�� 2.10 Input variable membership functions

8

สมมต� ระบบฟี8ซซ�,ม�กฎีอย2.ด�งน�5

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

ด�งน�5น เอาท�พัทจ+งเป็"น Flee

2.1.2.3 Defuzzification

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

Defuzzification เป็"นกระบวินการหาเอาท�พัทท�,ช�ดเจนออกมาเป็"นต�วิเลุข ซ+,งม�หลุายเทคน�คท�,สามารถูน ามาใช$งาน ม�เทคน�คหน+,งท�,ช�,อ singleton output membership

functions เป็"นเทคน�คท�,ม�ป็ระส�ทธ์�ภัาพัเทคน�คหน+,ง เน�,องจากไม.ต$องใช$การป็ระมวิลุผลุมากน�ก โดยการค านวิณโดยใช$ส2ตรด�งต.อไป็น�5

เอาท�พัท = (2.1)

โดย ค�อ Degree of membership, ค�อค.าเอาท�พัทท�,ช�ดเจนของแต.ลุะเอาท�พัท ต�วิอย.างเช.น

Flee Do nothing Attack

= -10 =1 =10

ร!ปท�� 2.11 Output fuzzy sets

จากต�วิอย.างก.อนหน$าน�5 สามารถูค านวิณหาเอาท�พัทเป็"นต�วิเลุขได$เป็"น

เอาท�พัท =

ซ+,งอาจจะใช$เอาท�พัทท�,ได$เป็"นอ�ตราเร/วิของการหน� (Flee)

เป็"น -2.5 (อ�ตราเร/วิการหน�ส2งสด -10)

9

2.2 Finite State Machine

Finite state machine เก�ดข+5นจาก เซต 2 เซต ได$แก.

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

1. 1. เซตของสถูานะ (States) ท�,แสดงถู+งเหตการณ�ท�,เป็"นไป็ได$ท�,จะเก�ดข+5นท�5งหมด 2. 2. เซตของการเป็ลุ�,ยนแป็ลุง (Transitions) เป็"นเง�,อนไขท�,เช�,อมต.อระหวิ.างสถูานะ 2 สถูานะ ท�,ต�ดก�น

โดยสามารถูพั�จารณาการเป็ลุ�,ยนแป็ลุงระหวิ.างสถูานะด$วิย If-Then Conditionals เพั�,อตรวิจสอบเง�,อนไขหร�อกฎีเกณฑ์�ท�,วิางไวิ$

ร!ปท�� 2.12 ต�วอย$าง Finite State Machines

ข$อด�ของการใช$ Finite State Machine ในการออกแบบโมเดลุเกม ม�ด�งต.อไป็น�5

1. Coding ได$ง.ายแลุะรวิดเร/วิ

2. สะดวิกในการท า Debugging

3. ไม.เป็ลุ�องทร�พัยากรในการป็ระมวิลุผลุ

2.3 การสร�างโมเดลุ 3 ม�ต�แลุะการสร�างแอนน�เมชั�น

2.3.1 การออกแบบแลุะกระบวนการสร�างโมเดลุต�วลุะครภายในเกม

โมเดลุต�วิลุะครในงาน 3 ม�ต� สามารถูสร$างได$หลุายวิ�ธ์� เช.น สร$างด$วิยเส$นเน�ร�บ (Nurb) หร�อ สร$างจากโพัลุ�กอน (Polygon) แต.วิ�ธ์�ท�,เป็"นท�,น�ยมแพัร.หลุายม�กจะเป็"นวิ�ธ์�การสร$างโมเดลุแบบการป็85 นโดยใช$โครงสร$างโมเดลุแบบโพัลุ�กอน เหตผลุท�,วิ�ธ์�น�5เป็"นท�,น�ยมเพัราะม�วิ�ธ์�การข+5นโมเดลุท�,ง.ายในการสร$างหร�อแก$ไข

10

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

2.3.1.1 ความลุะเอ�ยดข้องโมเดลุ

ส าหร�บการป็85 นโมเดลุต�วิลุะครป็ระเภัทต�วิคนหร�อส�ตวิ�ต.างๆ ด$วิยวิ�ธ์�ด�งกลุ.าวิน�5นสามารถูแบ.งชน�ดย.อยๆ ได$สองแบบค�อ โมเดลุแบบควิามลุะเอ�ยดต. า (Low polygon model)

แลุะโมเดลุแบบควิามลุะเอ�ยดส2ง (High polygon model)

- โมเดลุแบบควิามลุะเอ�ยดต .า

เป็"นโมเดลุท�,ใช$จ านวินโพัลุ�กอนท�,ไม.มากน�ก ข$อด�ของโมเดลุแบบน�5ค�อสร$าง แลุะแก$ไขรายลุะเอ�ยดเพั�,มเต�มได$ง.าย ป็ระหย�ดเวิลุาในการเรนเดอร� (Render) แลุะเคร�,องคอมพั�วิเตอร�ท างานไม.หน�ก แลุะด$วิยควิามไม.หน�กของโมเดลุน�,เองท�,ท าให$โมเดลุชน�ดน�5ม�กจะเหมาะก�บงานท�,ต$องการควิามเร/วิในการป็ระมวิลุผลุส2งๆ เช.นโมเดลุส าหร�บเกมต.างๆ

ร!ปท�� 2.13 โมเดลุแบบความลุะเอ�ยดต$�า

- โมเดลุแบบควิามลุะเอ�ยดส2ง

เป็"นโมเดลุท�,ม�ควิามลุะเอ�ยดส2ง จ+งม�จ านวินโพัลุ�กอนท�,ใช$ในการท างานรวิมท�5งขนาดไฟีลุ�ของโมเดลุมากข+5นตามไป็ด$วิย แลุะเน�,องจากควิามใหญ.แลุะลุะเอ�ยดน�,เองท�,ท าให$โมเดลุแบบน�5ต$องใช$เวิลุาในการป็ระมวิลุผลุต.างๆมากมาย ส.วินใหญ.โมเดลุแบบน�5ม�กจะถู2กใช$ในงานป็ระเภัทท�,ต$องการควิามสมจร�งมากๆ เช.น ในงานภัาพัยนตร� งานโฆษณา หร�อในการเร�,มเร�,องท�,เป็"นส.วินแอนน�เมช�นสวิยๆของเกมต.างๆ เป็"นต$น

11

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

ร!ปท�� 2.14 โมเดลุแบบความลุะเอ�ยดส!ง

2.3.1.2 ข้�-นตอนหลุ�กในการข้.-นร!ปโมเดลุ

ในการป็85 นโมเดลุเราสามารถูแบ.งข�5นตอนหลุ�กๆ ได$ด�งน�5

- เตร�ยมแบบร.างให$พัร$อมส าหร�บอ$างอ�งต าแหน.งต.างๆ

- ป็85 นโมเดลุไป็ท�ลุะส.วิน เช.น ลุ าต�วิ แขน ขา แลุะส.วินห�น แลุ$วิแต.ตามควิามถูน�ด

น าโมเดลุท�,ป็85 นเร�ยบร$อยแลุ$วิมาใส.รายลุะเอ�ยดพั�5นผ�วิ ด$วิยการวิาดลุวิดลุายท�,ต$องการในโป็รแกรมตกแต.งแลุะวิาดภัาพั

2.3.1.3 การเตร�ยมแบบร$างส$าหร�บการข้.-นโมเดลุ

เน�,องจากการสร$างโมเดลุควิามลุะเอ�ยดต. า จะต$องใช$วิ�ธ์�ด+ง ด�ด หร�อย$ายจดต.างๆ ไป็มาก�บ Polygon ด�งน�5นในการท างานจ+งควิรจะม�แบบร.างของโมเดลุท�,ต$องการสร$างส าหร�บใช$อ$างอ�งการย$ายต าแหน.งด$วิยเหตผลุ 2 ป็ระการค�อ

- ป็ระการแรกค�อสามารถูข+5นโมเดลุได$ง.าย เพัราะการวิาดในกระดาษให$เร�ยบร$อย

จะท าให$ได$เห/นหน$าตาต�วิโมเดลุก.อน แลุะเม�,อเห/นหน$าตาคร.าวิๆ แลุ$วิการป็85 น

โมเดลุก/จะง.ายย�,งข+5น

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

- ป็ระการท�,สองค�อใช$ส าหร�บอ$างอ�งต าแหน.งจดต.างๆ ท�,เราจะใช$อ$างอ�งในการป็85 น

ร2ป็โมเดลุ

2.3.2 เคร��องม�อหร�อโปรแกรมท��น�ยมใชั�ในการสร�างภาพั 3 ม�ต�

โป็รแกรมท�,น�ยมใช$ในการสร$างงานโมเดลุกราฟีฟีAก 3 ม�ต�ข+5นมาโดยโป็รแกรมระด�บม�ออาช�พัท�,ได$ร�บควิามน�ยมในการสร$างงานโมเดลุ 3 ม�ต� ม�ด�งน�5

2.3.2.1 3Ds Max

โป็รแกรม 3D Studio Max น�5 เป็"นโป็รแกรมกราฟีฟีAกท�,ได$ร�บควิามน�ยมมาก พั�ฒนาโดย Autodesk Media and

Entertainment ป็8จจบ�นออกถู+งเวิอร�ช�น 9 เป็"นโป็รแกรมท�,ม�ป็ระส�ทธ์�ภัาพัในการสร$างโมเดลุส2ง ม�ป็ลุ�กอ�นท�,ย�ดหย.น ใช$งานง.าย แลุะม�อย2.ค.อนข$างมากใน

12

แพัลุตฟีอร�มของวิ�นโดวิส�โป็รแกรมน�5ม�กจะถู2กน าไป็ใช$ในการสร$างวิ�ด�โอเกม งานสถูาป็8ตยกรรมแลุะการออกแบบ รวิมไป็ถู+งการท าสเป็เช�ยลุเอฟีเฟีค ในภัาพัยนตร�บางเร�,อง

ร!ปท�� 2.15 ต�วอย$างหน�าตาโปรแกรม แลุะส�ญลุ�กษณ์�ข้องโปรแกรม 3Ds Max

- ข$อด�ของโป็รแกรม 3Ds Max

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

3Ds Max ม�ข$อด�ค�อใช$งานง.าย เป็"นท�,น�ยมใช$ก�นอย.างแพัร.หลุาย ม�ข$อม2ลุแลุะส�,อ ให$ศ+กษาจ านวินมาก ในป็ระเทศไทยโป็รแกรมน�5เป็"นท�,น�ยม จ+งสามารถูหาข$อม2ลุแลุะสอบถูามป็8ญหาได$ง.าย ส.วินควิามสามารถูของต�วิโป็รแกรมน�5นเพั�ยบพัร$อม ท�5งในเร�,องการข+5นโมเดลุหร�อการสร$างแอนน�เมช�น ม�เทคน�คให$เลุ�อกใช$มาก ซ+,งช.วิยอ านวิยควิามสะดวิกได$เป็"นอย.างด� แลุะจดเด.นท�,ส าค�ญของ 3Ds Max ค�อแก$ไขงานได$ง.ายกวิ.าโป็รแกรมอ�,น ต�วิช.วิยป็ลุ�Bกอ�นม�ให$เลุ�อกใช$ป็ร�มาณมาก เช.น ม� Character Studio ช.วิยในการสร$างงาน โป็รแกรมน�5เหมาะก�บงานหลุากหลุายระด�บ แลุะเหมาะก�บการน าไป็ช.วิยในการสร$างต�วิลุะครภัายในเกม เพัราะท าโมเดลุแบบควิามลุะเอ�ยดต. าได$ด� ม�เกมจ านวินมากท�,สร$างโดยใช$ 3Ds Max ท าแอนน�เมช�นได$ด� แลุะน�ยมน าไป็สร$างงานด$านสถูาป็8ตยกรรม เหมาะก�บผ2$เร�,มต$นท�,ต$องการเป็"นม�ออาช�พัในอนาคต

- ข$อเส�ยของโป็รแกรม 3Ds Max

ใช$ป็ลุ�Bกอ�นเป็"นต�วิช.วิยท�,มากเก�นไป็ เพัราะถู$าต$องการงานให$เสร/จฉ�บไวิน�5น จ าเป็"นต$องใช$ป็ลุ�Bกอ�นเป็"นต�วิช.วิย

2.3.2.2 Maya

Maya เป็"นโป็รแกรมกราฟีฟีAกสร$างภัาพั 3 ม�ต� เก�ดจากบร�ษ�ท Alias Systems Corporation แต.ป็8จจบ�นเป็"นของ Autodesk เด�มเป็"นซอฟีแวิร�ท�,ใช$งานบนเคร�,อง Silicon Graphics (SGI) ท�,ใช$ระบบป็ฏี�บ�ต�การ (OS) Irix

เท.าน�5นแต.ก/ได$ม�การพัอร�ตมาใช$ก�บเคร�,องพั�ซ�ท�,ใช$ระบบป็ฏี�บ�ต�

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

การ Windows NT แลุะ XP แลุะในป็8จจบ�นสามารถูใช$ก�บเคร�,อง Mac ท�,ใช$ Mac OS X

13

ได$อ�กด$วิย Maya ท�,ถู2กใช$อย.างมากในอตสาหกรรมหน�งแลุะ ภัาพัยนตร� แลุะม�การใช$บ$างในเกมคอมพั�วิเตอร�

Maya ม�จดเด.นในเร�,องของควิามย�ดหย.นอย.างมากในการท างาน โดยใช$การท างานแบบ Node-base เป็"นหลุ�ก กลุ.าวิค�อฟี8งก�ช�นการท างานแต.ลุะแบบจะถู2กเก/บเป็"น Node โดยแต.ลุะ Node จะม�อ�นพัทแลุะเอาท�พัทเราสามารถูเช�,อม Node เหลุ.าน�5เข$าด$วิยก�น เพั�,อให$เก�ดผลุท�,แตกต.างก�นได$น�บไม.ถู$วิน รวิมถู+งการใช$งานสคร�ป็ท�ท�,เร�ยกวิ.า MEL ซ+,งใช$งานได$ง.ายแลุะม�ป็ระส�ทธ์�ภัาพั

ร!ปท�� 2.16 ต�วอย$างหน�าตาโปรแกรม แลุะส�ญลุ�กษณ์�ข้องโปรแกรม Maya

- ข$อด�ของโป็รแกรม Maya

เป็"นโป็รแกรมท�,ข+5นโมเดลุได$รวิดเร/วิ แลุะเป็"นโป็รแกรมท�,ครบคร�นทางด$านงาน 3 ม�ต�มากท�,สด ให$ภัาพั แสง แลุะรายลุะเอ�ยดได$สมจร�ง ม�จดเด.นในเร�,องของควิามย�ดหย.นอย.างมากในการท างาน น�ยมน าไป็ใช$ในการสร$างภัาพัยนตร� ท าภัาพัยนตร�การ�ต2น 3 ม�ต�

- ข$อเส�ยของโป็รแกรม Maya

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

ม�กระบวินการท�,ซ�บซ$อนแลุะ ไม.เหมาะก�บผ2$ท�,ไม.ชอบการค านวิณ แลุะผ2$ท�,เพั�,งเร�,มต$นก�บงานทางด$าน 3 ม�ต� แลุะแก$ไขงานในส.วินของโมเดลุแบบควิามลุะเอ�ยดต. าได$ยากแลุะซ�บซ$อน

2.3.2.3 LightWave

LightWave 3D โป็รแกรมท�,น�กสร$างภัาพั 3 ม�ต� (3D

Animator) ท�,วิโลุกต.างยอมร�บวิ.า เป็"นโป็รแกรมท�,สามารถูสร$างโมเดลุ ได$ง.าย แลุะรวิดเร/วิ อ�กท�5งย�งเป็"นโป็รแกรมท�,เรนเดอร�ภัาพัได$สมจร�งท�,สดอ�กด$วิย โดย LightWave 3D

ได$ร�บควิามน�ยมส2ง ในงานท�วิ� (โทรท�ศน�) แลุะงานภัาพัยนตร� เช.น Titanic, Star Trek VI ภัาพัยนตร�แอนน�เมช�น 3 ม�ต�อย.าง “Jimmy Nouton” ในไทยเองผลุงานท�,สร$างมาจาก LightWave ท�,เห/นก�นท�,วิไป็ เช.น ตCกตา China Doll, งานโฆษณาฟี2จ� ชด Smile

14

ร!ปท�� 2.17 ต�วอย$างหน�าตาโปรแกรม แลุะส�ญลุ�กษณ์�ข้องโปแกรม LightWave

- ข$อด�ของโป็รแกรม LightWave

Lightwave ม�ข$อด�ค�อเร�,องของการข+5นโมเดลุท�,ข+5นแบบฟีร�ฟีอร�มได$ง.าย แม$จะม�เคร�,องม�อให$ใช$น$อยแต.ก/เพั�ยงพัอแก.การท างาน ผ2$เร�,มใช$สามารถูใช$เวิลุาศ+กษาได$ไม.นาน ใช$ทร�พัยากรเคร�,องน$อยกวิ.าโป็รแกรมอ�,นมาก ก าหนดค.าพัาราม�เตอร�ต.างๆ ได$ง.าย ไม.ย.งยากซ�บซ$อน โป็รแกรมน�5ก/เหมาะส าหร�บผ2$

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

เร�,มต$นใหม.เพัราะง.ายแลุะรวิดเร/วิในการศ+กษา ค าส�,งแลุะเคร�,องม�อต.างๆ ม�ไม.มาก แต.ก/สามารถูสร$างงานระด�บม�ออาช�พัได$

- ข$อเส�ยของโป็รแกรม LightWave

การท าแอนน�เมช�นของ LightWave ย�งม�ป็ระส�ทธ์�ภัาพัท�,ด$อยกวิ.าโป็รแกรมสร$างภัาพั 3 ม�ต�รายอ�,นๆ เช.น การสร$างกระด2กคนเพั�,อน าไป็สร$างเป็"นต�วิลุะครของโมเดลุย�งท าได$ไม.ด�พัอ

2.3.3 โปรแกรมท��เลุ�อกใชั�ในการสร�างโมเดลุ 3 ม�ต�ในเกม

จากการส ารวิจแลุะรวิบรวิมข$อม2ลุ พับวิ.าโป็รแกรมสร$างภัาพั 3 ม�ต�แต.ลุะโป็รแกรม ม�ท� 5งข$อด�แลุะข$อเส�ยแตกต.างก�นออกไป็ ข+5นอย2.ก�บผ2$ใช$จะเลุ�อกโป็รแกรมต�วิไหนมาใช$ให$เหมาะสมก�บงานป็ระเภัทน�5นๆ ซ+,งในการสร$างเกม 3 ม�ต� จ าเป็"นต$องเลุ�อกใช$เคร�,องม�อสร$างภัาพั 3 ม�ต� มาสร$างต�วิลุะคร, ฉาก แลุะอป็กรณ�ต.างๆภัายในเกม ด�งน�5นจ+งต$องเลุ�อกใช$เคร�,องม�อท�,สร$างโมเดลุได$ด� โดยเฉพัาะ การสร$างโมเดลุท�,เป็"นแบบควิามลุะเอ�ยดต. า ค�อโมเดลุท�,ม�ควิามลุะเอ�ยดของจ านวินโพัลุ�กอนน$อย เหมาะสมก�บการน าไป็ป็ระกอบภัายในเกม เพัราะถู$าควิามลุะเอ�ยดส2งจะท าให$การเรนเดอร�ภัาพัออกมาท าได$ช$า เกมเก�ดอาการกระตก โป็รแกรม 3Ds Max จ+งเหมาะสมท�,สดในการท างาน เพัราะท างานก�บโมเดลุแบบควิามลุะเอ�ยดต. าได$ด�ท�,สด สน�บสนนไฟีลุ� 3 ม�ต�ได$หลุากหลุาย ม�แหลุ.ง

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

ทร�พัยากร เช.น ค$นหาโมเดลุต.างๆท�,สร$างจาก 3Ds Max ได$ง.าย แลุะท�,ส าค�ญเป็"นท�,น�ยมในการสร$างกราฟีฟีAก 3 ม�ต�ภัายในเกม

15

2.3.4 การใชั�งานโปรแกรม 3Ds Max ในการสร�างโมเดลุแลุะแอนน�เมชั�น

การใช$โป็รแกรม 3Ds Max ส าหร�บสร$างโมเดลุต�วิลุะครแลุะฉากต.างๆ ภัายในเกม รวิมท�5งการสร$างแอนน�เมช�นให$แก.ต�วิลุะคร ม�กระบวินการพั�5นฐานต.างๆ ท�,ควิรทราบด�งน�5

2.3.4.1 กระบวนการพั�-นฐานท��ส$าค�ญในการสร�างโมเดลุ

1) การย$ายต าแหน.งของจด (Vertex translation) ตามแนวิแกน x, y แลุะ z ซ+,งใช$ ส าหร�บการป็ร�บแต.งร2ป็ร.างของโมเดลุให$ได$ร2ป็ร.างท�,ต$องการ

ร!ปท�� 2.18 ต�วอย$างการย�ายต$าแหน$งข้องว�ตถุ�

2) การสร$างเส$นขอบบนโมเดลุ (Edge Creation) เพั�,อเพั�,มรายลุะเอ�ยดโมเดลุ โดยส.วินใหญ.จะใช$การสร$างเส$นระหวิ.างจด 2 จด

ร!ปท�� 2.19 ต�วอย$างการสร�างเส�นข้อบบนโมเดลุ

16

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

3) การหมนโมเดลุรอบแนวิแกน x, y แลุะ z ใช$ในการเป็ลุ�,ยนระนาบของวิ�ตถู(Rotation)

ร!ปท�� 2.20 ต�วอย$างการหม�นโมเดลุ

4) การย.อแลุะขยายโมเดลุ เป็"นการป็ร�บขนาดของโมเดลุ สามารเลุ�อกได$วิ.าจะย.อขยายตามแนวิแกนใด (Scaling)

ร!ปท�� 2.21 ต�วอย$างการย$อข้ยายโมเดลุตามแกนต$างๆ

17

5) การด+งหร�อผลุ�กพั�5นผ�วิของโมเดลุเพั�,อสร$าง Polygon

ใหม.เพั�,มข+5นมา หร�อท าให$เก�ดช.องบนโมเดลุ (Extrude)

ร!ปท�� 2.22 ต�วอย$างการด.งแลุะผลุ�กพั�-นผ�วข้องโมเดลุ

6) การแตกจด (Break) แลุะการเช�,อมจด (Weld) บนโมเดลุ

ร!ปท�� 2.23 ต�วอย$างการแตกจุ�ดแลุะการเชั��อมจุ�ดบนโมเดลุ

7) การใส.ร2ป็ภัาพัพั�5นผ�วิให$ก�บโมเดลุ (Texture mapping)

ซ+,งกระบวินการน�5ใช$ส าหร�บตกแต.งรายลุะเอ�ยดพั�5นผ�วิของโมเดลุ

ร!ปท�� 2.24 ข้�-นตอนการใส$ร!ปภาพับนพั�-นผ�วข้องโมเดลุ

18

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

2.3.4.2 ส$วนประกอบหลุ�กส$าหร�บกระบวนการท$าแอนน�เมชั�น

1) กระด2ก (Bone) เป็"นส�,งท�,ใช$ควิบคมพั�5นผ�วิของโมเดลุให$เคลุ�,อนไหวิตามการเคลุ�,อนท�,ของกระด2กซ+,งเราสามารถูก าหนดอาณาเขตการควิบคมพั�5นผ�วิโมเดลุ ของกระด2กแต.ลุะช�5นได$

ร!ปท�� 2.25 การควบค�มพั�-นผ�วโมเดลุข้องกระด!ก

2) จดศ2นย�รวิมจ าลุอง (Dummy) เป็"นจดศ2นย�กลุางของกระด2กท�5งหมด ซ+,งถู$าเราเลุ�,อนต าแหน.งของจดศ2นย�รวิมจ าลุอง โมเดลุท�,ถู2กกระด2กควิบคมอย2.จะเลุ�,อนตามด$วิย

ร!ปท�� 2.26 การเลุ��อนจุ�ดศ!นย�รวมจุ$าลุอง

19

3) ส.วินเช�,อมต.อไอเค (IK Chain) เป็"นวิ�ตถูท�,ใช$ก�บกระด2กส.วินท�,เป็"นข$อพั�บ

ร!ปท�� 2.27 การใชั�ส$วนเชั��อมต$อไอเค

4) ค�ย�เฟีรม (Key frame) เป็"นการสร$างแอนน�เมช�นให$ต�วิลุะครโดยการก าหนดค�ย�เฟีรม ซ+,งใน 3Ds Max จะม�การสร$างแอนน�เมช�นระหวิ.างค�ย�เฟีรมท�,ก าหนดไวิ$ให$โดยอ�ตโนม�ต�

ร!ปท�� 2.28 การก$าหนดค�ย�เฟรมเพั��อสร�างแอนน�เมชั�น

20

2.4 Client-Server ส$าหร�บเกมออนไลุน�

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

2.4.1 เทคน�คแลุะว�ธี�การข้องเกมเน8ตเว�ร�ค

ในการเข�ยนเกมแบบ Multiplayer ท�,สามารถูเลุ.นผ.านระบบเคร�อข.ายได$ม�อย2.หลุายร2ป็แบบ แลุะหลุายวิ�ธ์�การเช�,อมต.อ ต�วิอย.างของเกมท�,เลุ.นผ.านเน/ตเวิ�ร�คได$ม�หลุายเกมด$วิย เช.น RedAlert, Age of Empire, Warcraft แลุะเกมอ�,นๆ อ�กหลุายเกมท�,ไม.ได$กลุ.าวิถู+งก/ม�ควิามสามารถูด$านเน/ตเวิ�ร�คด$วิยเช.นก�น

ป็ระเภัทของเกมเน/ตเวิ�ร�คน�5น ม�อย2.ด$วิยก�น 2 ลุ�กษณะ ค�อ

1. เกมป็ระเภัทท�,จะต$องเลุ.นเป็"นกลุ.ม (Peer to Peer)

2. เกมป็ระเภัทท�,จะต$องม� Server เป็"นหลุ�ก (Client / Server)

เกมป็ระเภัท Peer to Peer ลุ�กษณะค�อ ทก ๆ คนจะเช�,อมต.อเข$าหาก�นภัายในกลุ.ม แลุะจะต$องม�เคร�,องใดเคร�,องหน+,งท าต�วิเป็"นเคร�,องหลุ�ก หร�อ โฮสต� (Host) เพั�,อเป็"นเคร�,องท�,จะให$คนอ�,น ๆ เข$ามาร.วิมในเกมได$ ลุ�กษณะของเกมแบบ Peer to

Peer ม�ลุ�กษณะด�งน�5

ร!ปท�� 2.29 การเข้�าร$วมข้องกลุ�$ม Client ประเภท Peer to Peer

ลุ�กษณะของ Peer to Peer น�5น ทก ๆ เคร�,องจะเช�,อมต.อถู+งก�นหมด (เราเร�ยกแต.ลุะเคร�,อง ๆ วิ.า Peer) ก/คลุ$าย ๆ ก�บระบบท�,เช�,อมต.อก�นในแบบ Peer to Peer น�,นเอง ค�อ ทก ๆ เคร�,องจะต$องเป็"นท�5ง Server แลุะ Client ในต�วิ ค�อ จะต$อง

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

คอยร�บข$อม2ลุจากเคร�,องอ�,นๆเพั�,อน าไป็ป็ระมวิลุผลุแลุะอ�พัเดทต�วิลุะครหน$าตาของต�วิเอง แลุะย�งจะต$องคอยส.งข$อม2ลุการเป็ลุ�,ยนแป็ลุงของต�วิม�นเองออกไป็ให$ก�บทกๆเคร�,องท�,อย2.ในกลุ.ม ด$วิยเหตน�5การเช�,อมต.อแบบ Peer to

Peer จ+งจ าเป็"นต$องใช$ Bandwidth หร�อถูนนท�,กวิ$างๆ แลุะการจราจรในระบบเคร�อข.ายน�5นค.อนข$างส2ง (High

Network Traffic) ถู$าม�คนเลุ.นเพั�,มเข$ามาการจราจรก/จะหนาแน.นข+5นมาอ�กเป็"นเงาตามต�วิ ต�วิอย.างเกมท�,ใช$การเช�,อมต.อแบบ Peer to Peer ก/เช.น เกม Age of Empire

น�,นเอง

เกมแบบ Peer to Peer น�5 ม�คณสมบ�ต�อย.างหน+,งท�,น.าสนใจน�,นก/ค�อ การโอนหน$าท�,โฮสต� หร�อ Host Migration ก/ค�อ ถู$าเคร�,องใดท�,ท าหน$าท�,เป็"นโฮสต�อย2.ได$หลุดออกจากเกม เคร�,องต.อไป็ก/จะ

21

ท าหน$าท�,เป็"นโฮสต�แทน เพัราะในเกมแบบ Peer to Peer น�5 จ าเป็"นจะต$องม�โฮสต�เพั�,อเป็"นผ2$ด2แลุแลุะควิบคมการเช�,อมต.อของผ2$เลุ.นท�5งหมด การท างานของ Host Migration

แสดงได$ด�งร2ป็ต.อไป็น�5

ร!ปท�� 2.30 การท$างานข้อง Host Migration

ถู$าม�เคร�,องหลุดไป็ก/จะแป็ลุงเคร�อข.ายเป็"นแบบน�5

ร!ปท�� 2.31 พัฤต�กรรมข้องเคลุ�อข้$ายเม��อม�เคร��องหลุ�ด

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

ส าหร�บเกมแบบ Client / Server น�5 จะม�การท างานแบบ Client/Server ท�,เราร2 $จ�กก�นด� น�,นก/ค�อ จะต$องม�เคร�,องๆ หน+,งเป็"น Server ท าหน$าท�,รอการเช�,อมต.อจาก Client หร�อผ2$เลุ.นคนอ�,นเข$ามา ร.วิมอย.างเด�ยวิ ด�งร2ป็

ร!ปท�� 2.32 ร!ปแบบเคร�อข้$ายระบบ Client / Server

ลุ�กษณะของการเช�,อมต.อแบบ Client / Server น�5 เคร�,องท�,เป็"น Client จะไม.ส.งข$อม2ลุเข$าหาก�นโดยตรงเหม�อนก�บ Peer to Peer แต.จะส.งไป็ท�, Server จากน�5น Server จะกระจายให$ก�บเคร�,อง Client ท�,เข$ามาเช�,อมต.อเอง จ านวินของเคร�,อง Client ท�,สามารถูเช�,อมต.อได$ข+5นอย2.ก�บควิามสามารถู

22

ของเคร�,องท�,น ามาเป็"น Server แลุะควิามเร/วิของระบบเคร�อข.ายวิ.าสามารถูให$บร�การได$มากแค.ไหน เพัราะโป็รแกรมท�,ท าหน$าท�,เป็"น Server ของเกมน�5น ไม.จ าเป็"นจะต$องม�หน$าตาของเกมสวิย ๆ แลุะไม.จ าเป็"นต$องใช$กราฟีAคท�,ส2งๆมากน�ก เพัราะเป็"นเคร�,องท�,เก/บข$อม2ลุแลุะแจกจ.ายข$อม2ลุเท.าน�5น โป็รแกรมท�,เป็"น Server อาจจะเป็"นหน$าไดอะลุ/อกธ์รรมดาๆ ท�,เป็Aดพัอร�ต (Port) คอยการเช�,อมต.อจากผ2$เลุ.นเกมเท.าน�5น ส.วินหน$าจอเกมของผ2$เลุ.นก/ม�ภัาพักราฟีAคสวิย ๆ ของเกมได$อย.างสมบ2รณ�แบบ แต.อย.างไรก/ตาม เราก/ย�งสามารถูน�,งเลุ.นเกมในเคร�,อง Server ในขณะท�,โป็รแกรม Server ของเกมก าลุ�งท างานอย2.ก/ได$

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

ต�วิอย.างต.อไป็น�5 เป็"นลุ�กษณะของเกมแบบ Client Server

ร!ปท�� 2.33 ต�วอย$างเกมร!ปแบบ Client / Server

นอกจากน�5 เกมแบบ Client / Server บางป็ระเภัท ย�งใช$ควิามสามารถูของระบบฐานข$อม2ลุเข$ามาช.วิยจ�ดการข$อม2ลุภัายในเกมได$ด$วิย เช.น SQL Server, MySQL โดยเคร�,อง Server สามารถูใช$ระบบป็ฏี�บ�ต�การป็ระเภัท Linux หร�อ WindowsNT/Windows2000 แต.โป็รแกรมท�,ท างานในเคร�,อง Server จะต$องเป็"นโป็รแกรมท�,พั�ฒนาข+5นภัายใต$สภัาวิะแวิดลุ$อมของระบบป็ฏี�บ�ต�การน�5นๆ ท าให$ผ2$ท�,ต$องการเลุ.นเกมเช�,อมต.อเข$ามาทางอ�นเตอร�เน/ตได$โดยการต�5ง Server เอาไวิ$ หลุ�กการน�5ก/คลุ$ายๆก�บการท างานของเกมออนไลุน�ท�,ก าลุ�งโด.งด�งอย2.ในบ$านเราน�,นเอง

23

ร!ปท�� 2.34 เกมร!ปแบบ Client / Server ท��เพั��มระบบ DBMS

2.4.2 Address

นอกจาก IP Address ท�,จ าเป็"นต$องใช$ในการเช�,อมต.อแลุ$วิ Address ซ+,งเป็"นหมายเลุขท�,ระบถู+งเคร�,องคอมพั�วิเตอร�ท�,เช�,อมต.ออย2.ในระบบ เพั�,อบอกถู+งท�,อย2.ของโฮสต�, IP

Address หร�อช�,อโฮสต� หร�อหมายเลุขพัอร�ท รวิมถู+งค.าต.าง ๆ ท�,ใช$ในการเช�,อมต.อในแต.ลุะแบบ ในการสร$างเกมเน/ตเวิ�ร�คจะต$องสร$าง Address 2 ต�วิด$วิยก�นค�อ

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

1. Device Address 2. Host Address

เหตท�,จะต$องสร$างท�5งสอง Address น�5นก/เพัราะวิ.า Device Address เป็"น Address ท�,บอกถู+งตาแหน.งเคร�,องของเราเองท�,กาลุ�งร�นโป็รแกรมเกมน�5อย2.แต.Host Address น�5ค�อ Address ของเคร�,องท�,เราจะเช�,อมต.อเข$าทกๆโป็รแกรมจะต$องสร$างท�5ง Device Address แลุะ Host Address น�5แต.วิ.าจะใช$Device Address หร�อต�วิ Host

Address น�5นก/ข+5นอย2.ก�บวิ.าเคร�,องเราจะทาหน$าท�,เป็"นโฮสต�หร�อเป็"นเคร�,องท�,จะเข$ามาร.วิมเลุ.น

ร!ปท��2.35 Host Address แลุะ Device Address

ข้อง Peer to Peer

24

จากร2ป็ถู$าเคร�,อง 2 เคร�,องน�5จะเช�,อมต.อก�นแบบ Peer to

Peer โดยเคร�,อง A เป็"นโฮสต�ของเกมแลุะเคร�,อง B เป็"นเคร�,องท�,จะต$องเข$ามาร.วิมเลุ.นในเกมในกรณ�น�5เราจะต$องกาหนดให$Device Address ของเคร�,อง A น�5นเป็Aดพัอร�ทเอาไวิ$เพั�,อรอการเช�,อมต.อเช.นพัอร�ท 6000 เพัราะฉะน�5นเราจะกาหนด 6000 น�5ไป็ท�,Device Address ของเคร�,อง A แลุะสาหร�บเคร�,อง B ท�,จะเข$ามาร.วิมเลุ.นก/จะช�5มาท�,เคร�,อง A ด�งร2ป็

ร!ปท��2.36 การเชั��อมต$อ Address ระหว$างเคร��อง Host แลุะเคร��อง Client

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

จากร2ป็จะเห/นวิ.าเม�,อเคร�,อง A เป็"นโฮสต�ก/จะเป็Aดพัอร�ท 6000

เอาไวิ$เพั�,อรอการเช�,อมต.อส.วินเคร�,อง B ท�,จะเข$ามาร.วิมเลุ.นเกมน�5นก/จะกาหนดช�,อ Host ช�5ไป็ท�,IP ของเคร�,อง A แลุะกาหนดหมายเลุขพัอร�ทไวิ$ท�,6000 โดยจะกาหนดให$ก�บ Host

Address น�,นเองจากตรงน�5สรป็ได$วิ.าเคร�,องท�,เป็"นโฮสต�จะใช$แค.Device Address

2.4.3 ระบบข้$าวสารในเกมเน8ตเว�ร�ค

ในการเข�ยนเกมแบบเน/ตเวิ�ร�คเราจะต$องม�ฟี8งก�ช�,นสาหร�บจ�ดการข.าวิสาร(Message Handler) ภัายในเกมท�,กาลุ�งเลุ.นอย2.ถู$าไม.ม�ระบบข.าวิสารผลุก/ค�อผ2$เลุ.นจะไม.สามารถูเข$ามาร.วิมเลุ.นเป็"นกลุ.มเกมก�นได$แลุะไม.สามารถูส.งข$อม2ลุการเป็ลุ�,ยนแป็ลุงภัายในเกมให$แก.ก�นแลุะก�นได$เพัราะในระหวิ.างท�,กาลุ�งเลุ.นเกมน�5นจะต$องม�ข$อม2ลุส.งออกจากเคร�,องของท.านไป็ย�งเคร�,องอ�,นๆในกลุ.มเกมเพั�,อบอกถู+งสถูานะของต�วิผ2$เลุ.นวิ.าอย2.ในสถูานะใดข.าวิสารหร�อเมสเสจ(Message) จ+งเป็ร�ยบเสม�อนเป็"นส�ญญาณท�,ส.งเข$ามาในเกมเพั�,อทาให$เกมเป็ลุ�,ยนสถูานะน�,นเอง

25

ร!ปท��2.37 การต�ดต$อการส$งข้�อความภายในระบบเน8ตเว�ร�ค

จากร2ป็ถู$าเคร�,อง Client A ท�,เป็"นร2ป็สามเหลุ�,ยมเด�นจากจดเด�มไป็ย�งมมซ$ายบนในเคร�,อง Client A จะต$องเข�ยนโป็รแกรมควิบคมต�วิลุะครภัายในเกมก.อนเพั�,อเลุ�,อนต�วิลุะคร

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

ของม�นให$ไป็ย�งจดท�,ต$องการแลุะในขณะเด�ยวิก�นน�5ม�นจะต$องส.งข$อม2ลุการเคลุ�,อนท�,จากต�วิม�นเองไป็ให$ก�บอ�ก 2 เคร�,องก/ค�อโฮสต�ก�บ Client B

ร!ปท��2.38 ต�วอย$างการส$ง Message ภายในระบบเน8ตเว�ร�ค

เม�,อทางฝ่Fายร�บได$ร�บแลุ$วิโค$ดภัายในโป็รแกรมเกมก/จะจ�ดการต.อไป็ค�อเอาข$อม2ลุการเป็ลุ�,ยนแป็ลุงท�,ได$น�5ไป็ป็ร�บแต.งให$ก�บต�วิลุะครของ Client A ท�,อย2.ภัายในเกมของท�5งโฮสต�แลุะ Client B เคลุ�,อนไหวิพัร$อมๆก�นเพัราะฉะน�5นเกมท�,แต.ลุะคนเลุ.นน�5นจะต$องม�ควิามเป็"นเร�ยลุไทม�(Real Time) โดยระบบข.าวิสารในเกมจะต$องเป็"นต�วิจ�ดการด$วิยต�วิของม�นเองด$วิยควิามเช�,อม�,นใน

26

การควิบคมโค$ดโป็รแกรมค�อถู$าเราเข�ยนโป็รแกรมด�กจ�บข$อม2ลุท�,ส.งมาแลุะต�ควิามออกมาเป็"นคาส�,งท�,ถู2กต$องแลุ$วิเกมก/จะดาเน�นการไป็ได$อย.างสมบ2รณ�

ระบบข.าวิสารน�5เป็"นส.วินหน+,งท�,ถู�อวิ.าเป็"นห�วิใจของเกมแบบเน/ตเวิ�ร�คเลุยเพัราะม�นจะเป็"นต�วิท�,ทาให$เกมเลุ.นได$แบบเร�ยลุไทม�ค�อถู$าเราควิบคมต�วิลุะครของเราในเกมให$เด�นไป็ท�,มมลุ.างของฉากในหน$าจอคนอ�,นก/จะต$องเห/นต�วิลุะครของเราเด�นไป็ตรงน�5นเช.นก�นส.วินต�วิลุะครของคนอ�,นจะเด�นไป็ตรงไหนก/ตามตาแหน.งน�5นก/จะมาอ�พัเดทท�,หน$าจอเราด$วิยน�,นเองถู$าม�คนเลุ.นในกลุ.มหลุายคนก/เช.นก�น

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

2.4.4 ร!ปแบบข้�อความ(Packet) ภายในเกม

ลุ�กษณะของข$อควิามท�,ใช$ส.งภัายในเกมจะป็ระกอบไป็ด$วิย 2

ส.วินค�อส.วินห�วิ(Header) แลุะข$อม2ลุ(Pay load) โดยส.วินห�วิจะเป็"นต�วิเลุขจานวินเต/ม 16 บ�ตแลุะข$อม2ลุท�,ส.งจะข+5นก�บชน�ดของข$อม2ลุท�,ต$องการส.งซ+,งการต�ดต.อส�,อสารในเคร�อข.ายแลุะการส.งข$อควิามต.างๆจะใช$Panda3D Engine เป็"นเคร�,องม�อในการจ�ดการร2ป็แบบของข$อควิามแสดงด�งร2ป็ท�,2.39

Header: int16

Pay load

ร!ปท��2.39 ร!ปแบบข้�อความในเกม

ลุ�กษณะของข$อควิามท�,ส.งก�นจะม�อย2.2 แบบค�อ

1) ข+5นต$นด$วิย CMSG ค�อข$อควิามท�,สร$างจากฝ่8, ง Client

ส.งไป็ให$ฝ่8, ง Server

2) ข+5นต$นด$วิย SMSG ค�อข$อควิามท�,สร$างจากฝ่8, ง Server

ส.งไป็ให$ฝ่8, ง Client

ต�วิอย.างของข$อควิามท�,ส.งภัายในเกมเช.น

- ข$อควิามการเข$าเลุ.นเกม

CMSG_AUTH ค�อข$อควิามท�,ผ2$เลุ.นขอเร�,มเข$าเลุ.นเกม

1 username

password

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

ร!ปท��2.40 ร!ปแบบข้�อความ CMSG_AUTH

SMSG_AUTH_RESPONSE ค�อข$อควิามให$ผ2$เลุ.นเร�,มเข$าเลุ.นเกมได$

2 flag

ร!ปท��2.41 ร!ปแบบข้�อความ SMSG_AUTH_RESPONSE

27

- ข$อควิามการเคลุ�อนท�ของผ2$เลุ.น CMSG_MOVE ค�อข$อควิามส.งค.าตาแหน.งท�,ผ2$เลุ.นกดให$เคลุ�,อนท�,ไป็

10 username

พั�ก�ดx

พั�ก�ดy

พั�ก�ดz

ร!ปท��2.42 ร!ปแบบข้�อความ CMSG_MOVE SMSG_PLAYERMOVE ค�อข$อควิามบอกผ2$เลุ.นคนอ�,นวิ.าผ2$เลุ.นเด�นไป็ท�,ไหน

11 username

พั�ก�ดx

พั�ก�ดy

พั�ก�ดz

ร!ปท��2.43 ร!ปแบบข้�อความ SMSG_PLAYERMOVE

- ข$อควิามป็Aดการเช�อมต.อ CMSG_DISCONNECT_REQ

ค�อข$อควิามท�,ผ2$เลุ.นส.งไป็เพั�,อขอป็Aดการเช�,อมต.อ

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

20 Client_name

ร!ปท��2.44 ร!ปแบบข้�อความ CMSG_DISCONNECT_REQ

SMSG_DISCONNECT_ACK ค�อข$อควิามท�,Server ป็Aดการเช�,อมท�,ผ2$เลุ.นขอมา

21 Client_name

ร!ปท��2.45 ร!ปแบบข้�อความ SMSG_DISCONNECT_ACK

2.5 3D Engine

2.5.1 Game engine

Game engine ค�อซอฟีแวิร�กลุางของเกมคอมพั�วิเตอร�หร�อ application อ�,นๆท�,ใช$real-time graphics ช.วิยทาให$การใช$งานง.ายข+5นพัร$อมด$วิยเทคโนโลุย�หลุากหลุายท�,สามารถูนามาใช$แลุะย�งสามารถูทาให$ใช$งานได$บนหลุาย platform อย.างเช.น Linux,Max OS X

แลุะ Windows โดยหน$าท�,หลุ�กของม�นค�อการทาการ render ภัาพั 2/3 ม�ต�ระบบ physic collision

detection เส�ยงแอนน�เมช�น

Game engine จะม�เคร�,องม�อพั�ฒนาให$ใช$งานพัร$อมก�บส.วินป็ระกอบอ�,นๆอ�กมากมายโดยเคร�,องม�อเหลุ.าน�5จะช.วิยใน

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

การพั�ฒนาเกมได$อย.างรวิดเร/วิง.ายย�,งข+5นส.วินป็ระกอบเหลุ.าน�5อาจเร�ยกได$อ�กอย.างน+งวิ.า middleware เพัราะม�นทาให$platform ม�ควิามคลุ.องต�วิในการใช$งานตามควิามต$องการของ core เหม�อน middleware อ�,นๆ game

engine จะม�platform abstraction ท�,สามารถูทา

28

ให$เกมๆสามารถูใช$งานได$บนหลุายๆ platform โดยแทบไม.ต$องทาการป็ร�บเป็ลุ�,ยน source code ของเกมมากน�กหลุายคร�5งท�,game middleware จะถู2กออกแบบให$ม�ลุ�กษณะ component-based ท�,จะทาให$สามารถูเป็ลุ�,ยน component ไป็มาได$โดยง.ายซ+,งอาจจะด�ข+5นหร�อแพังข+5นก/เป็"นได$game engine เหลุ.าน�5ม�ควิามสาค�ญมากเพัราะสามารถูนาได$ป็ร�บใช$ได$ก�บหลุากหลุายระบบด�งเช.นระบบการตลุาดระบบจาลุองต.างๆแลุะระบบออกแบบ

2.5.2 3D Engine ค�ออะไร

3D engine จะม�แค.ควิามสามารถูด$านการ render ภัาพัมาให$engine เหลุ.าน�5ต$องอาศ�ยน�กพั�ฒนาเกมในการเข�ยนหร�อใช$middleware ระบบ engine เหลุ.าน�5ถู2กเร�ยกวิ.า graphics engine, rendering engine หร�อ 3D

engine ต�วิอย.างเช.น Realm Forge, Ogre, Power Render, Crystal Space, Genesis3D, แลุะ Panda3D ซ+,งแสดงผลุในลุ�กษณะ object oriented

ในโลุก 3 ม�ต�ซ+,งทาให$การสร$างเกมง.ายย�,งข+5น

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

2.5.3 Game engine ท��เป9นท��น�ยมในป:จุจุ�บ�น

แบ.งเป็"น 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 น�5นส.วินใหญ.จะใช$การเข�ยนโป็รแกรมไพัธ์อนเพั�,อควิบคมการทางานของชดคาส�,งใน panda3d

Panda3d ม�ข$อได$เป็ร�ยบท�,สาค�ญค�อใช$เวิลุาน$อยในการเร�ยนร2 $การใช$งานแลุะสามารถูพั�ฒนาได$อย.างรวิดเร/วิจ+งทาให$ใช$เวิลุาในการทางานได$อย.างค$มค.า

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

Panda3d ถู2กพั�ฒนาข+5นมากจากการสร$างเกมในเคร�อของ Disney ในแนวิเกม massively multiplayer

online game ท�,ช�,อ“Toonworld” เร�,มแรกสดเป็"น free

software ในป็;2002 ในป็8จจบ�นเป็"นการจ�บม�อร.วิมก�นพั�ฒนาระหวิ.าง Disney ผ2$เร�,มต$นก�บ Carnegie Mellon University's Entertainment Technology Center

2.5.5 ข้�อด�ข้อง Panda3D

Panda3d ได$พั�ฒนา engine อย.างต.อเน�,องทาให$panda3d ม�คณสมบ�ต�ท�,ด�ต.างๆมากมายผลุ�กด�นให$panda3d นาหน$า engine อ�,นๆด�งน�5

1. 1. สามารถูเร�ยนร2 $เพั�,อเข$าใจการทางานได$ในระยะเวิลุาอ�นส�5น 2. 2. สามารถูพั�ฒนางานได$อย.างรวิดเร/วิ 3. 3. ชดคาส�,งสามารถูเร�ยกได$จากท�5งภัาษา C++ หร�อไพัธ์อนก/ได$ 4. 4. งานท�,ได$ม�ควิามเสถู�ยรภัาพั 5. 5. เป็"น free software license

6. 6. สน�บสนนการทางานก�บระบบป็ฏี�บ�ต�การท�5ง Windows แลุะ Linux

7. 7. ลุงโป็รแกรมต�ดต�5งง.าย 8. 8. ม�โมเดลุแลุะ artwork ฟีร�มากมายให$ลุองใช$งาน 9. 9. ม�ท�มผ2$พั�ฒนาท�,น.าเช�,อถู�อแลุะต�ดต.อสอบถูามได$ 10. 10. ม�ข$อม2ลุ documentation มากมายอาท�เช.น Extensive manual, Collection of code

samples แลุะ API Reference materials เป็"นต$น

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