<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[irpg Community - Literature & Design Library]]></title>
		<link>https://irpg.in.th/</link>
		<description><![CDATA[irpg Community - https://irpg.in.th]]></description>
		<pubDate>Mon, 20 Apr 2026 08:43:37 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[วิธีถอดรหัสตัวแปรทศนิยม (Float) ขนาด 32 bit]]></title>
			<link>https://irpg.in.th/thread-3585.html</link>
			<pubDate>Thu, 24 Jun 2021 16:09:27 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=101">XthemeCore</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3585.html</guid>
			<description><![CDATA[Floating-point หรือ Float เป็นตัวแปรที่เราคงเคยผ่านตากันมาบ้าง เวลาเขียนโปรแกรมในหลายภาษา<br />
เคยสงสัยไหมว่ามันเก็บข้อมูลอย่างไร เราจะไปหาคำตอบกัน<br />
<br />
<img src="https://i.imgur.com/xoWb3P5.jpg" loading="lazy"  width="600" height="239" alt="[Image: xoWb3P5.jpg]" class="mycode_img" /><br />
ตามที่กำหนดไว้ใน IEEE-754 ตัวแปรทศนิยม Floating Point ขนาด 32 บิต มีลักษณะเป็นดังภาพด้านบน<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #cc3333;" class="mycode_color">เราสามารถแบ่งข้อมูลออกเป็น 3 ส่วน</span></span><br />
1. Sign เก็บค่าเครื่องหมาย +,- มีขนาด 1 บิต (ถ้าลบ จะเป็น 1 ส่วนบวกจะเป็น 0)<br />
2. (Biased) Exponent เก็บค่าเลขชี้กำลัง ซึ่งจะนำมาใช้คำนวณค่าทศนิยม ขนาด 8 บิต<br />
<br />
3. Mantissa เลขนัยสำคัญ เรียกอีกชื่อนึงว่า significant ขนาด 23 บิต<br />
<br />
<span style="color: #cc3366;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">ในการคำนวณหาค่าทศนิยม จะใช้สมการดังนี้</span></span><br />
<img src="https://i.imgur.com/9pF2Iek.png" loading="lazy"  width="600" height="122" alt="[Image: 9pF2Iek.png]" class="mycode_img" /><br />
<span style="color: #cc3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">หมายเหตุ:</span></span> เราจะยังไม่สนใจกรณีที่ค่าเป็นอนันต์ Infinity (ทั้งบวกและลบ) กับกรณีที่ค่าเป็น NaNs ก่อน<br />
<br />
127 ก็คือ bias หรือ offset ที่จะนำมาลบ เพื่อหาค่าจริงของเลขชี้กำลัง<br />
2 ยกกำลัง 23 จะอ้างอิงถึง 23 บิต significant ซึ่งเป็นเศษส่วนฐานสอง (base-2 fraction) แต่ละบิตจะแทนเศษส่วนของฐานสอง ดังภาพด้านล่าง<br />
<br />
<img src="https://i.imgur.com/svJsJpM.png" loading="lazy"  width="600" height="289" alt="[Image: svJsJpM.png]" class="mycode_img" /><br />
<br />
สำหรับโค้ดในที่นี้เขียนด้วยภาษา C/C++ แต่ท่านสามารถนำไปประยุกต์ใช้ในภาษาอื่น ได้เช่นกัน<br />
<br />
<img src="https://i.imgur.com/eSBZYIB.png" loading="lazy"  width="600" height="426" alt="[Image: eSBZYIB.png]" class="mycode_img" /><br />
<a href="https://i.imgur.com/eSBZYIB.png" target="_blank" rel="noopener" class="mycode_url">https://i.imgur.com/eSBZYIB.png</a><br />
<br />
<span style="color: #cc3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">อธิบายขั้นตอนแบบสั้น</span></span><br />
1.แปลง float ให้อยู่ในรูปที่เราสามารถเข้าถึงข้อมูล binary ได้ ในที่นี้ใช้การ cast ให้เป็น pointer ของ unsigned integer ซึ่งมีขนาด 32 บิตเท่ากัน<br />
2.แกะข้อมูล binary ทั้งหมดออกมา ในที่นี้ใช้วิธีการ shift เลื่อนแต่ละบิตไปจนสุดด้านซ้าย (least significant bit) จากนั้นใช้ AND operator กรองเอาเฉพาะบิตที่ต้องการ<br />
3.คำนวณค่าตามสมการด้านบนที่ได้กล่าวไว้แล้ว<br />
<br />
ค่าของตัวแปร result คือผลลัพธ์จากการคำนวณ ซึ่งจะมีค่าเท่ากับตัวแปร float ที่เราประกาศไว้ในตอนแรกทุกประการ (ยกเว้นกรณี infinity กับ NaNs ไม่ได้มีการตรวจสอบ)]]></description>
			<content:encoded><![CDATA[Floating-point หรือ Float เป็นตัวแปรที่เราคงเคยผ่านตากันมาบ้าง เวลาเขียนโปรแกรมในหลายภาษา<br />
เคยสงสัยไหมว่ามันเก็บข้อมูลอย่างไร เราจะไปหาคำตอบกัน<br />
<br />
<img src="https://i.imgur.com/xoWb3P5.jpg" loading="lazy"  width="600" height="239" alt="[Image: xoWb3P5.jpg]" class="mycode_img" /><br />
ตามที่กำหนดไว้ใน IEEE-754 ตัวแปรทศนิยม Floating Point ขนาด 32 บิต มีลักษณะเป็นดังภาพด้านบน<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #cc3333;" class="mycode_color">เราสามารถแบ่งข้อมูลออกเป็น 3 ส่วน</span></span><br />
1. Sign เก็บค่าเครื่องหมาย +,- มีขนาด 1 บิต (ถ้าลบ จะเป็น 1 ส่วนบวกจะเป็น 0)<br />
2. (Biased) Exponent เก็บค่าเลขชี้กำลัง ซึ่งจะนำมาใช้คำนวณค่าทศนิยม ขนาด 8 บิต<br />
<br />
3. Mantissa เลขนัยสำคัญ เรียกอีกชื่อนึงว่า significant ขนาด 23 บิต<br />
<br />
<span style="color: #cc3366;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">ในการคำนวณหาค่าทศนิยม จะใช้สมการดังนี้</span></span><br />
<img src="https://i.imgur.com/9pF2Iek.png" loading="lazy"  width="600" height="122" alt="[Image: 9pF2Iek.png]" class="mycode_img" /><br />
<span style="color: #cc3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">หมายเหตุ:</span></span> เราจะยังไม่สนใจกรณีที่ค่าเป็นอนันต์ Infinity (ทั้งบวกและลบ) กับกรณีที่ค่าเป็น NaNs ก่อน<br />
<br />
127 ก็คือ bias หรือ offset ที่จะนำมาลบ เพื่อหาค่าจริงของเลขชี้กำลัง<br />
2 ยกกำลัง 23 จะอ้างอิงถึง 23 บิต significant ซึ่งเป็นเศษส่วนฐานสอง (base-2 fraction) แต่ละบิตจะแทนเศษส่วนของฐานสอง ดังภาพด้านล่าง<br />
<br />
<img src="https://i.imgur.com/svJsJpM.png" loading="lazy"  width="600" height="289" alt="[Image: svJsJpM.png]" class="mycode_img" /><br />
<br />
สำหรับโค้ดในที่นี้เขียนด้วยภาษา C/C++ แต่ท่านสามารถนำไปประยุกต์ใช้ในภาษาอื่น ได้เช่นกัน<br />
<br />
<img src="https://i.imgur.com/eSBZYIB.png" loading="lazy"  width="600" height="426" alt="[Image: eSBZYIB.png]" class="mycode_img" /><br />
<a href="https://i.imgur.com/eSBZYIB.png" target="_blank" rel="noopener" class="mycode_url">https://i.imgur.com/eSBZYIB.png</a><br />
<br />
<span style="color: #cc3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">อธิบายขั้นตอนแบบสั้น</span></span><br />
1.แปลง float ให้อยู่ในรูปที่เราสามารถเข้าถึงข้อมูล binary ได้ ในที่นี้ใช้การ cast ให้เป็น pointer ของ unsigned integer ซึ่งมีขนาด 32 บิตเท่ากัน<br />
2.แกะข้อมูล binary ทั้งหมดออกมา ในที่นี้ใช้วิธีการ shift เลื่อนแต่ละบิตไปจนสุดด้านซ้าย (least significant bit) จากนั้นใช้ AND operator กรองเอาเฉพาะบิตที่ต้องการ<br />
3.คำนวณค่าตามสมการด้านบนที่ได้กล่าวไว้แล้ว<br />
<br />
ค่าของตัวแปร result คือผลลัพธ์จากการคำนวณ ซึ่งจะมีค่าเท่ากับตัวแปร float ที่เราประกาศไว้ในตอนแรกทุกประการ (ยกเว้นกรณี infinity กับ NaNs ไม่ได้มีการตรวจสอบ)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[รวบรวมเอกสารงานวิจัยเกม Final Fantasy XV]]></title>
			<link>https://irpg.in.th/thread-3235.html</link>
			<pubDate>Wed, 10 Jan 2018 20:34:35 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=101">XthemeCore</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3235.html</guid>
			<description><![CDATA[<img src="https://vignette.wikia.nocookie.net/yogscast/images/a/aa/Final_Fantasy_XV_Logo.png" loading="lazy"  alt="[Image: Final_Fantasy_XV_Logo.png]" class="mycode_img" /><br />
<span style="font-size: medium;" class="mycode_size">อย่างที่ทราบกันดีว่า Final Fantasy XV เป็นเกมที่ใช้เวลาในการพัฒนายาวนานมาก<br />
จึงไม่น่าแปลกใจที่เบื่องหลังของเกมนี้จะมีการค้นคว้า วิจัย พัฒนาระบบต่างๆขึ้นมา<br />
ซึ่งได้ถูกตีพิมพ์และเผยแพร่ในเว็บไซต์ ACM Digital Library แหล่งเก็บรวบรวมเอกสารตีพิมพ์จากทั่วโลก<br />
<br />
ท่านใดทำงานอยู่ในองค์กร(ส่วนใหญ่จะเป็นมหาวิทยาลัย)ที่ได้ลงทะเบียนไว้กับทาง ACM ก็จะสามารถดาวน์โหลดเอกสารต่างๆ<br />
ไปศึกษาได้เอง ผ่านลิงค์ด้านล่างนี้ (โดยปกติจะต้องเข้าใช้งานผ่านเครือข่ายององค์กร)<br />
<a href="https://dl.acm.org/results.cfm?query=final+fantasy+xv&amp;Go.x=34&amp;Go.y=9" target="_blank" rel="noopener" class="mycode_url">https://dl.acm.org/results.cfm?query=fin...=34&amp;Go.y=9</a><br />
<br />
สำหรับคนที่ไม่ได้สามารถเข้าใช้งานได้ให้ดาวน์โหลดผ่านลิงค์นี้แทน(ไม่รับผิดชอบกรณีลิงค์เสียหรือโดนลบไป):<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff3333;" class="mycode_color">**ใช้เพื่อการศึกษาส่วนบุคคลเท่านั้น!!**</span></span><br />
<a href="https://drive.google.com/open?id=1oe6pwELo83AxjlrEdOs6WAbi_6LwmGGF" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/open?id=1oe6pwE...bi_6LwmGGF</a><br />
<br />
รายชื่อเอกสารตีพิมพ์เท่าที่รวบรวมได้</span><br />
<ol type="1" class="mycode_list"><li>A Fantasy based on Reality The Art of Final Fantasy XV<br />
</li>
<li>Character workflow of Final Fantasy XV<br />
</li>
<li>Environment Workflow of Final Fantasy XV<br />
</li>
<li>Final Fantasy XV Pulse and Traction of Characters<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part I<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part II<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part III<br />
</li>
<li>Procedural photograph generation from actual gameplay snapshot AI in FINAL FANTASY XV<br />
</li>
<li>Real-time technologies of Final Fantasy XV battles<br />
</li>
<li>Rendering techniques of final fantasy XV<br />
</li>
<li>THE UNIVERSE OF FINAL FANTASY XV<br />
</li>
<li>Visual effects of Final Fantasy XV concept, environment and implementation<br />
</li>
</ol>
]]></description>
			<content:encoded><![CDATA[<img src="https://vignette.wikia.nocookie.net/yogscast/images/a/aa/Final_Fantasy_XV_Logo.png" loading="lazy"  alt="[Image: Final_Fantasy_XV_Logo.png]" class="mycode_img" /><br />
<span style="font-size: medium;" class="mycode_size">อย่างที่ทราบกันดีว่า Final Fantasy XV เป็นเกมที่ใช้เวลาในการพัฒนายาวนานมาก<br />
จึงไม่น่าแปลกใจที่เบื่องหลังของเกมนี้จะมีการค้นคว้า วิจัย พัฒนาระบบต่างๆขึ้นมา<br />
ซึ่งได้ถูกตีพิมพ์และเผยแพร่ในเว็บไซต์ ACM Digital Library แหล่งเก็บรวบรวมเอกสารตีพิมพ์จากทั่วโลก<br />
<br />
ท่านใดทำงานอยู่ในองค์กร(ส่วนใหญ่จะเป็นมหาวิทยาลัย)ที่ได้ลงทะเบียนไว้กับทาง ACM ก็จะสามารถดาวน์โหลดเอกสารต่างๆ<br />
ไปศึกษาได้เอง ผ่านลิงค์ด้านล่างนี้ (โดยปกติจะต้องเข้าใช้งานผ่านเครือข่ายององค์กร)<br />
<a href="https://dl.acm.org/results.cfm?query=final+fantasy+xv&amp;Go.x=34&amp;Go.y=9" target="_blank" rel="noopener" class="mycode_url">https://dl.acm.org/results.cfm?query=fin...=34&amp;Go.y=9</a><br />
<br />
สำหรับคนที่ไม่ได้สามารถเข้าใช้งานได้ให้ดาวน์โหลดผ่านลิงค์นี้แทน(ไม่รับผิดชอบกรณีลิงค์เสียหรือโดนลบไป):<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff3333;" class="mycode_color">**ใช้เพื่อการศึกษาส่วนบุคคลเท่านั้น!!**</span></span><br />
<a href="https://drive.google.com/open?id=1oe6pwELo83AxjlrEdOs6WAbi_6LwmGGF" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/open?id=1oe6pwE...bi_6LwmGGF</a><br />
<br />
รายชื่อเอกสารตีพิมพ์เท่าที่รวบรวมได้</span><br />
<ol type="1" class="mycode_list"><li>A Fantasy based on Reality The Art of Final Fantasy XV<br />
</li>
<li>Character workflow of Final Fantasy XV<br />
</li>
<li>Environment Workflow of Final Fantasy XV<br />
</li>
<li>Final Fantasy XV Pulse and Traction of Characters<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part I<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part II<br />
</li>
<li>How to build a fantasy world based on reality a case study of Final Fantasy XV part III<br />
</li>
<li>Procedural photograph generation from actual gameplay snapshot AI in FINAL FANTASY XV<br />
</li>
<li>Real-time technologies of Final Fantasy XV battles<br />
</li>
<li>Rendering techniques of final fantasy XV<br />
</li>
<li>THE UNIVERSE OF FINAL FANTASY XV<br />
</li>
<li>Visual effects of Final Fantasy XV concept, environment and implementation<br />
</li>
</ol>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 8 โครงเรื่อง (Plot)]]></title>
			<link>https://irpg.in.th/thread-3104.html</link>
			<pubDate>Fri, 26 May 2017 22:03:23 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3104.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3097.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 7 เป้าหมายของผู้เล่น</a> เราได้เรียนรู้สิ่งที่สำคัญที่สุดในการเล่นเกมไปแล้ว ต่อจากนี้ไปเรามาเรียนรู้เรื่องการออกแบบเกมกัน การออกแบบเกมมีหลายส่วนที่เราจะต้องออกแบบ เช่น แนวเกม เป้าหมายของผู้เล่น เนื้อเรื่อง เป็นต้น ในการพัฒนาเกมที่มีเนื้อเรื่องนักพัฒนาเกมมือใหม่มักจะให้ความสำคัญไปที่การเขียนเนื้อเรื่องเป็นอันดับแรก สิ่งที่ตามมาหลังจากเขียนเนื้อเรื่องไปได้สักพักคือเนื้อเรื่องตัน เนื้อเรื่องออกนอกที่คิดเอาไว้ หรือเนื้อเรื่องไม่เสมอต้นเสมอปลาย สาเหตุมาจากการเริ่มเขียนเนื้อเรื่องทันทีโดยไม่ได้ออกแบบองค์ประกอบต่าง ๆ ของเนื้อเรื่องก่อน ในบทนี้เราจะมาเรียนรู้เรื่องการออกแบบโครงเรื่องซึ่งเป็นองค์ประกอบหนึ่งของเนื้อเรื่องกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ออกแบบโครงเรื่องได้อย่างไร?</span></span><br />
<br />
โครงเรื่อง (Plot) คือเหตุการณ์ตั้งแต่ต้นเรื่องจนจบเรื่อง โครงเรื่องของเรื่องสั้น นิยาย ภาพยนตร์ และเกมทั่วไปแบ่งออกเป็น 3 ส่วน ได้แก่<br />
<br />
1. ต้นเรื่อง - ผูกปมปัญหา ตอนต้นเรื่องตัวละครเอกมีปัญหาอะไรถึงจะทำสิ่งต่าง ๆ ที่จะเกิดขึ้นต่อมาภายหลัง ปมปัญหาเป็นส่วนที่ทำให้ผู้เล่นติดตามเนื้อเรื่อง ผู้เล่นจะลุ้นว่าสุดท้ายแล้วตัวละครเอกจะสามารถแก้ปมปัญหานั้นได้หรือไม่ ในเกมที่มีเนื้อเรื่องปมปัญหาถือว่าเป็นเป้าหมายหลักของผู้เล่น<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 30% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/8-plot.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/8-plot.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3097.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 7 เป้าหมายของผู้เล่น</a> เราได้เรียนรู้สิ่งที่สำคัญที่สุดในการเล่นเกมไปแล้ว ต่อจากนี้ไปเรามาเรียนรู้เรื่องการออกแบบเกมกัน การออกแบบเกมมีหลายส่วนที่เราจะต้องออกแบบ เช่น แนวเกม เป้าหมายของผู้เล่น เนื้อเรื่อง เป็นต้น ในการพัฒนาเกมที่มีเนื้อเรื่องนักพัฒนาเกมมือใหม่มักจะให้ความสำคัญไปที่การเขียนเนื้อเรื่องเป็นอันดับแรก สิ่งที่ตามมาหลังจากเขียนเนื้อเรื่องไปได้สักพักคือเนื้อเรื่องตัน เนื้อเรื่องออกนอกที่คิดเอาไว้ หรือเนื้อเรื่องไม่เสมอต้นเสมอปลาย สาเหตุมาจากการเริ่มเขียนเนื้อเรื่องทันทีโดยไม่ได้ออกแบบองค์ประกอบต่าง ๆ ของเนื้อเรื่องก่อน ในบทนี้เราจะมาเรียนรู้เรื่องการออกแบบโครงเรื่องซึ่งเป็นองค์ประกอบหนึ่งของเนื้อเรื่องกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ออกแบบโครงเรื่องได้อย่างไร?</span></span><br />
<br />
โครงเรื่อง (Plot) คือเหตุการณ์ตั้งแต่ต้นเรื่องจนจบเรื่อง โครงเรื่องของเรื่องสั้น นิยาย ภาพยนตร์ และเกมทั่วไปแบ่งออกเป็น 3 ส่วน ได้แก่<br />
<br />
1. ต้นเรื่อง - ผูกปมปัญหา ตอนต้นเรื่องตัวละครเอกมีปัญหาอะไรถึงจะทำสิ่งต่าง ๆ ที่จะเกิดขึ้นต่อมาภายหลัง ปมปัญหาเป็นส่วนที่ทำให้ผู้เล่นติดตามเนื้อเรื่อง ผู้เล่นจะลุ้นว่าสุดท้ายแล้วตัวละครเอกจะสามารถแก้ปมปัญหานั้นได้หรือไม่ ในเกมที่มีเนื้อเรื่องปมปัญหาถือว่าเป็นเป้าหมายหลักของผู้เล่น<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 30% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/8-plot.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/8-plot.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 7 เป้าหมายของผู้เล่น]]></title>
			<link>https://irpg.in.th/thread-3097.html</link>
			<pubDate>Fri, 12 May 2017 23:54:48 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3097.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3091.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 6 ปัญญาประดิษฐ์</a> เราได้เรียนรู้หลักการเขียนปัญญาประดิษฐ์กันไปแล้ว ก่อนหน้านั้นเราก็ได้เน้นหนักไปทางคณิตศาสตร์กันแล้ว ที่ผ่านมามีแต่เรื่องยาก ๆ หนักสมองทั้งนั้นเลย มาบทนี้เราจะมาเรียนรู้เรื่องเบาสมองกันบ้างดีกว่า จะว่าเบาสมองเลยก็ไม่เชิง เพราะก็เป็นเรื่องใหญ่ที่นักพัฒนาเกมต้องคิดและออกแบบให้ได้ นั่นคือ "ทำอย่างไรให้ผู้เล่นชอบเกมของเรา?" คำถามนี้เป็นที่ถูกถามเป็นจำนวนมากในกลุ่มนักพัฒนาเกมมือใหม่ วิธีออกแบบเกมให้ผู้เล่นชื่นชอบนั้นมีอยู่มากมายหลายวิธี ซึ่งไม่สามารถอธิบายได้หมดภายในบทเดียว ที่ผ่านมาเราเรียนรู้แต่สิ่งที่สำคัญที่สุดใน "การพัฒนาเกม" (สองเสาหลัก ได้แก่อัลกอริทึมและพื้นฐานการพัฒนาเกม) ในบทนี้เราจะมาเรียนรู้สิ่งที่สำคัญที่สุดใน "การเล่นเกม" กันบ้างดีกว่า<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">สิ่งที่สำคัญที่สุดในการเล่นเกมคืออะไร?</span></span><br />
<br />
ลองคิดดูสิว่า เกมบางเกมใช้เวลาเล่นเป็นวัน ทำไมผู้เล่นถึงได้ติดใจมาเล่นเกมได้นานขนาดนั้น? เกมบางเกมใช้เวลาเล่นไม่ถึงครึ่งชั่วโมง ทำไมถึงมีหลายคนชื่นชอบ? เกมบางเกมดูไม่มีอะไรแปลกใหม่เลย แต่ทำไมถึงได้มีแฟนคลับกันนักหนา? ผู้อ่านคิดว่า "สิ่งที่สำคัญที่สุดในการเล่นเกมคืออะไร?" การได้เห็นภาพสวย ๆ, การได้ติดตามเนื้อเรื่องดี ๆ หรือการได้สนุกสนานเพลิดเพลินไปกับเกม ทั้งหมดที่กล่าวมานั้นเป็นสิ่งสำคัญก็จริง แต่ยังไม่ได้เป็นสิ่งที่สำคัญที่สุด สิ่งที่สำคัญที่สุดในการเล่นเกมคือ "ความพยายามในการบรรลุเป้าหมาย"<br />
<br />
เมื่อผู้เล่นได้เล่นเกมเกมหนึ่ง สิ่งที่จะเกิดขึ้นกับตัวผู้เล่นเลยก็คือจะมีเป้าหมายบางอย่างโผล่ขึ้นมาในความคิดของผู้เล่น ผู้เล่นจะรู้สึกอยากเอาชนะเป้าหมายนั้น อยากบรรลุเป้าหมายนั้นให้ได้ เป้าหมายนั้นอาจจะเป็นเป้าหมายที่เกมกำหนดขึ้นมา หรืออาจเป็นเป้าหมายที่ผู้เล่นกำหนดขึ้นมาเองก็ได้ สิ่งที่สำคัญที่สุดในการเล่นเกมไม่ใช่ความสนุก เกมบางเกมยิ่งเล่นแล้วยิ่งเครียด แต่เกมนั้นก็ยังมีคนชื่นชอบได้มากมาย สิ่งที่สำคัญที่สุดในการเล่นเกมคือความพยายามในการบรรลุเป้าหมายของผู้เล่น ต่อให้เป็นเกมที่เครียดแค่ไหน ต่อให้เป็นเกมที่ยากแค่ไหน ต่อให้เป็นเกมที่น่าเบื่อแค่ไหน ถ้าผู้เล่นมีกำลังใจที่อยากจะบบรลุเป้าหมาย ผู้เล่นก็พร้อมที่จะอดทนฝ่าฟันอุปสรรคต่าง ๆ ไปให้ได้<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เป้าหมายของผู้เล่นเป็นอย่างไร?</span></span><br />
<br />
เป้าหมายของผู้เล่นแบ่งได้เป็น 2 ประเภท ได้แก่<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/7.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/7.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3091.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 6 ปัญญาประดิษฐ์</a> เราได้เรียนรู้หลักการเขียนปัญญาประดิษฐ์กันไปแล้ว ก่อนหน้านั้นเราก็ได้เน้นหนักไปทางคณิตศาสตร์กันแล้ว ที่ผ่านมามีแต่เรื่องยาก ๆ หนักสมองทั้งนั้นเลย มาบทนี้เราจะมาเรียนรู้เรื่องเบาสมองกันบ้างดีกว่า จะว่าเบาสมองเลยก็ไม่เชิง เพราะก็เป็นเรื่องใหญ่ที่นักพัฒนาเกมต้องคิดและออกแบบให้ได้ นั่นคือ "ทำอย่างไรให้ผู้เล่นชอบเกมของเรา?" คำถามนี้เป็นที่ถูกถามเป็นจำนวนมากในกลุ่มนักพัฒนาเกมมือใหม่ วิธีออกแบบเกมให้ผู้เล่นชื่นชอบนั้นมีอยู่มากมายหลายวิธี ซึ่งไม่สามารถอธิบายได้หมดภายในบทเดียว ที่ผ่านมาเราเรียนรู้แต่สิ่งที่สำคัญที่สุดใน "การพัฒนาเกม" (สองเสาหลัก ได้แก่อัลกอริทึมและพื้นฐานการพัฒนาเกม) ในบทนี้เราจะมาเรียนรู้สิ่งที่สำคัญที่สุดใน "การเล่นเกม" กันบ้างดีกว่า<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">สิ่งที่สำคัญที่สุดในการเล่นเกมคืออะไร?</span></span><br />
<br />
ลองคิดดูสิว่า เกมบางเกมใช้เวลาเล่นเป็นวัน ทำไมผู้เล่นถึงได้ติดใจมาเล่นเกมได้นานขนาดนั้น? เกมบางเกมใช้เวลาเล่นไม่ถึงครึ่งชั่วโมง ทำไมถึงมีหลายคนชื่นชอบ? เกมบางเกมดูไม่มีอะไรแปลกใหม่เลย แต่ทำไมถึงได้มีแฟนคลับกันนักหนา? ผู้อ่านคิดว่า "สิ่งที่สำคัญที่สุดในการเล่นเกมคืออะไร?" การได้เห็นภาพสวย ๆ, การได้ติดตามเนื้อเรื่องดี ๆ หรือการได้สนุกสนานเพลิดเพลินไปกับเกม ทั้งหมดที่กล่าวมานั้นเป็นสิ่งสำคัญก็จริง แต่ยังไม่ได้เป็นสิ่งที่สำคัญที่สุด สิ่งที่สำคัญที่สุดในการเล่นเกมคือ "ความพยายามในการบรรลุเป้าหมาย"<br />
<br />
เมื่อผู้เล่นได้เล่นเกมเกมหนึ่ง สิ่งที่จะเกิดขึ้นกับตัวผู้เล่นเลยก็คือจะมีเป้าหมายบางอย่างโผล่ขึ้นมาในความคิดของผู้เล่น ผู้เล่นจะรู้สึกอยากเอาชนะเป้าหมายนั้น อยากบรรลุเป้าหมายนั้นให้ได้ เป้าหมายนั้นอาจจะเป็นเป้าหมายที่เกมกำหนดขึ้นมา หรืออาจเป็นเป้าหมายที่ผู้เล่นกำหนดขึ้นมาเองก็ได้ สิ่งที่สำคัญที่สุดในการเล่นเกมไม่ใช่ความสนุก เกมบางเกมยิ่งเล่นแล้วยิ่งเครียด แต่เกมนั้นก็ยังมีคนชื่นชอบได้มากมาย สิ่งที่สำคัญที่สุดในการเล่นเกมคือความพยายามในการบรรลุเป้าหมายของผู้เล่น ต่อให้เป็นเกมที่เครียดแค่ไหน ต่อให้เป็นเกมที่ยากแค่ไหน ต่อให้เป็นเกมที่น่าเบื่อแค่ไหน ถ้าผู้เล่นมีกำลังใจที่อยากจะบบรลุเป้าหมาย ผู้เล่นก็พร้อมที่จะอดทนฝ่าฟันอุปสรรคต่าง ๆ ไปให้ได้<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เป้าหมายของผู้เล่นเป็นอย่างไร?</span></span><br />
<br />
เป้าหมายของผู้เล่นแบ่งได้เป็น 2 ประเภท ได้แก่<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/7.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/7.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 6 ปัญญาประดิษฐ์]]></title>
			<link>https://irpg.in.th/thread-3091.html</link>
			<pubDate>Fri, 05 May 2017 22:21:44 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3091.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3085.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 5 มาสร้างเกมแรกกันเถอะ</a> เราได้เรียนรู้ขั้นตอนการพัฒนาเกม และได้ลองพัฒนาเกม TicTacToe แบบเล่นสองคนกันไปแล้ว การพัฒนาเกมแบบให้ผู้เล่นที่เป็นมนุษย์หลายคนมาเล่นกันเองนั้นสามารถทำได้ง่าย เนื่องจากเราในฐานะนักพัฒนาเกมทำเพียงแค่เขียนกฎกติกา แล้วให้เกมตรวจสอบว่าผู้เล่นได้เล่นตามกฎกติกานั้นหรือไม่เท่านั้น ในปัจจุบันการเล่นเกมด้วยกันหลายคนได้รับความนิยมเป็นอย่างมาก แต่ก็ยังคงมีอีกหลายคนที่ชอบเล่นเกมคนเดียว การพัฒนาเกมของเราให้สามารถเล่นคนเดียวได้จึงเป็นสิ่งสำคัญ ว่าแต่ "เราจะพัฒนาเกมที่ต้องมีผู้เล่นหลายคนให้เล่นคนเดียวได้อย่างไร?" คำตอบคือเราต้องพัฒนาให้เกมเป็นผู้เล่นอีกคนแทนมนุษย์จริง ๆ ซึ่งการที่เกมสามารถทำหน้าที่แทนมนุษย์นี้เราเรียกว่า "ปัญญาประดิษฐ์"<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ปัญญาประดิษฐ์คืออะไร?</span></span><br />
<br />
ปัญญาประดิษฐ์ (Artificial Intelligence) หมายถึงโปรแกรมที่มีความสามารถเหมือนมนุษย์ ทั้งด้านการคิด การวิเคราะห์ และการวางแผน อย่างที่เคยบอกไปในบทแรกว่าอุปกรณ์ทำงานตามคำสั่ง ดังนั้นการที่จะพัฒนาให้โปรแกรมทำงานเหมือนมนุษย์ได้นั้น เราต้องใส่วิธีการคิด การวิเคราะห์ และการวางแผนลงไปในอัลกอริทึมของคำสั่งด้วย ปัญญาประดิษฐ์มักถูกเรียกสั้น ๆ ว่า AI<br />
<br />
ปัญญาประดิษฐ์ที่หลายคนรู้จักกันดีคือปัญญาประดิษฐ์ในเกมต่าง ๆ ผู้อ่านคงได้เห็นเกมนั้นเกมโน้นมีปัญญาประดิษฐ์เต็มไปหมด แต่ในความจริงแล้วปัญญาประดิษฐ์ไม่ได้มีอยู่แค่ในเกมเท่านั้น ปัญญาประดิษฐ์ยังถูกฝังอยู่ในแอพพลิเคชันหลายตัวที่เราใช้กันอยู่ในปัจจุบันด้วย เช่น ในแอพพลิเคชันแปลภาษาอัจฉริยะที่สามารถแปลภาษาทั้งประโยคได้ จะมีปัญญาประดิษฐ์ที่ทำหน้าที่วิเคราะห์ว่าประโยคนั้นสื่อความหมายอะไร แล้วแปลประโยคเป็นอีกภาษาหนึ่ง โดยให้ความหมายในประโยคยังคงเดิม, ใน Facebook เมื่อเราลงรูปใบหน้าใครสักคน เราจะเห็นได้ว่าบางครั้งจะมีข้อความขึ้นมาว่าต้องการแท็กบุคคลนี้หรือไม่ ซึ่งเกิดจากปัญญาประดิษฐ์ตรวจสอบว่าสิ่งที่อยู่ในรูปเป็นใบหน้าคน, แอพพลิเคชัน GPS ที่ใช้นำทางในการขับรถก็มีปัญญาประดิษฐ์คอยบอกว่า แยกหน้าเลี้ยวซ้าย แยกนั้นเลี้ยวขวา เป็นต้น<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เกมแบบไหนที่ต้องใช้ปัญญาประดิษฐ์?</span></span><br />
<br />
ไม่ใช่ทุกเกมที่ต้องการปัญญาประดิษฐ์เสมอไป บางเกมสามารถสมบูรณ์แบบได้โดยไม่ต้องพึ่งปัญญาประดิษฐ์เลย การที่จะทราบได้ว่าเกมใดต้องการปัญญาประดิษฐ์หรือไม่ ต้องดูจากจำนวนผู้เล่นที่ต้องใช้ในการเล่นของเกมนั้น ๆ สามารถแบ่งรูปแบบของเกมตามได้ 2 รูปแบบ ดังนี้<br />
<br />
1. เกมที่มีจำนวนผู้เล่นคนเดียว เกมรูปแบบนี้ผู้เล่นจะชนะเมื่อบรรลุเป้าหมายของเกม หรือทำคะแนนสูงสุดให้ได้มากกว่าเดิม เกมรูปแบบนี้เช่น เกมตะลุยด่าน, เกมเรียงเพชร, เกม Tetris, เกมจีบสาว เป็นต้น ถ้าจะพัฒนาเกมรูปแบบนี้ให้เล่นได้หลายคน ผู้เล่นจะแต่ละคนจะแยกกันเล่น แล้วใช้คะแนนเป็นตัวตัดสินว่าใครเป็นผู้ชนะ<br />
<br />
2. เกมที่มีจำนวนผู้เล่นหลายคน เกมรูปแบบนี้ผู้เล่นจะชนะเมื่อสามารถโค่นล้มหรืออยู่เหนือผู้เล่นคนอื่น ผู้เล่นทุกคนจะอยู่ในสนามแข่งเดียวกัน แล้วต่อสู้ให้ผู้เล่นคนอื่นพ่ายแพ้ หรือพัฒนาตนเองให้อยู่เหนือกว่าผู้เล่นคนอื่น เกมรูปแบบนี้เช่น เกมหมากรุก, เกมยิงปืน, เกมวางแผนการรบ, เกมพัฒนาประเทศ เป็นต้น เกม TicTacToe ก็จัดอยู่ในเกมรูปแบบนี้ด้วยเช่นกัน<br />
<br />
เกมที่ต้องการปัญญาประดิษฐ์คือเกมที่มีจำนวนผู้เล่นหลายคน เราจะพัฒนาปัญญาประดิษฐ์มาเป็นผู้เล่นอีกคนแทนมนุษย์ ส่วนที่มีจำนวนผู้เล่นคนเดียวไม่จำเป็นต้องใช้ปัญญาประดิษฐ์ เนื่องจากเป็นเกมที่เล่นคนเดียวก็สมบูรณ์แบบได้โดยไม่ต้องมีคู่แข่ง<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เขียนปัญญาประดิษฐ์ได้อย่างไร?</span></span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/6.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/6.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3085.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 5 มาสร้างเกมแรกกันเถอะ</a> เราได้เรียนรู้ขั้นตอนการพัฒนาเกม และได้ลองพัฒนาเกม TicTacToe แบบเล่นสองคนกันไปแล้ว การพัฒนาเกมแบบให้ผู้เล่นที่เป็นมนุษย์หลายคนมาเล่นกันเองนั้นสามารถทำได้ง่าย เนื่องจากเราในฐานะนักพัฒนาเกมทำเพียงแค่เขียนกฎกติกา แล้วให้เกมตรวจสอบว่าผู้เล่นได้เล่นตามกฎกติกานั้นหรือไม่เท่านั้น ในปัจจุบันการเล่นเกมด้วยกันหลายคนได้รับความนิยมเป็นอย่างมาก แต่ก็ยังคงมีอีกหลายคนที่ชอบเล่นเกมคนเดียว การพัฒนาเกมของเราให้สามารถเล่นคนเดียวได้จึงเป็นสิ่งสำคัญ ว่าแต่ "เราจะพัฒนาเกมที่ต้องมีผู้เล่นหลายคนให้เล่นคนเดียวได้อย่างไร?" คำตอบคือเราต้องพัฒนาให้เกมเป็นผู้เล่นอีกคนแทนมนุษย์จริง ๆ ซึ่งการที่เกมสามารถทำหน้าที่แทนมนุษย์นี้เราเรียกว่า "ปัญญาประดิษฐ์"<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ปัญญาประดิษฐ์คืออะไร?</span></span><br />
<br />
ปัญญาประดิษฐ์ (Artificial Intelligence) หมายถึงโปรแกรมที่มีความสามารถเหมือนมนุษย์ ทั้งด้านการคิด การวิเคราะห์ และการวางแผน อย่างที่เคยบอกไปในบทแรกว่าอุปกรณ์ทำงานตามคำสั่ง ดังนั้นการที่จะพัฒนาให้โปรแกรมทำงานเหมือนมนุษย์ได้นั้น เราต้องใส่วิธีการคิด การวิเคราะห์ และการวางแผนลงไปในอัลกอริทึมของคำสั่งด้วย ปัญญาประดิษฐ์มักถูกเรียกสั้น ๆ ว่า AI<br />
<br />
ปัญญาประดิษฐ์ที่หลายคนรู้จักกันดีคือปัญญาประดิษฐ์ในเกมต่าง ๆ ผู้อ่านคงได้เห็นเกมนั้นเกมโน้นมีปัญญาประดิษฐ์เต็มไปหมด แต่ในความจริงแล้วปัญญาประดิษฐ์ไม่ได้มีอยู่แค่ในเกมเท่านั้น ปัญญาประดิษฐ์ยังถูกฝังอยู่ในแอพพลิเคชันหลายตัวที่เราใช้กันอยู่ในปัจจุบันด้วย เช่น ในแอพพลิเคชันแปลภาษาอัจฉริยะที่สามารถแปลภาษาทั้งประโยคได้ จะมีปัญญาประดิษฐ์ที่ทำหน้าที่วิเคราะห์ว่าประโยคนั้นสื่อความหมายอะไร แล้วแปลประโยคเป็นอีกภาษาหนึ่ง โดยให้ความหมายในประโยคยังคงเดิม, ใน Facebook เมื่อเราลงรูปใบหน้าใครสักคน เราจะเห็นได้ว่าบางครั้งจะมีข้อความขึ้นมาว่าต้องการแท็กบุคคลนี้หรือไม่ ซึ่งเกิดจากปัญญาประดิษฐ์ตรวจสอบว่าสิ่งที่อยู่ในรูปเป็นใบหน้าคน, แอพพลิเคชัน GPS ที่ใช้นำทางในการขับรถก็มีปัญญาประดิษฐ์คอยบอกว่า แยกหน้าเลี้ยวซ้าย แยกนั้นเลี้ยวขวา เป็นต้น<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เกมแบบไหนที่ต้องใช้ปัญญาประดิษฐ์?</span></span><br />
<br />
ไม่ใช่ทุกเกมที่ต้องการปัญญาประดิษฐ์เสมอไป บางเกมสามารถสมบูรณ์แบบได้โดยไม่ต้องพึ่งปัญญาประดิษฐ์เลย การที่จะทราบได้ว่าเกมใดต้องการปัญญาประดิษฐ์หรือไม่ ต้องดูจากจำนวนผู้เล่นที่ต้องใช้ในการเล่นของเกมนั้น ๆ สามารถแบ่งรูปแบบของเกมตามได้ 2 รูปแบบ ดังนี้<br />
<br />
1. เกมที่มีจำนวนผู้เล่นคนเดียว เกมรูปแบบนี้ผู้เล่นจะชนะเมื่อบรรลุเป้าหมายของเกม หรือทำคะแนนสูงสุดให้ได้มากกว่าเดิม เกมรูปแบบนี้เช่น เกมตะลุยด่าน, เกมเรียงเพชร, เกม Tetris, เกมจีบสาว เป็นต้น ถ้าจะพัฒนาเกมรูปแบบนี้ให้เล่นได้หลายคน ผู้เล่นจะแต่ละคนจะแยกกันเล่น แล้วใช้คะแนนเป็นตัวตัดสินว่าใครเป็นผู้ชนะ<br />
<br />
2. เกมที่มีจำนวนผู้เล่นหลายคน เกมรูปแบบนี้ผู้เล่นจะชนะเมื่อสามารถโค่นล้มหรืออยู่เหนือผู้เล่นคนอื่น ผู้เล่นทุกคนจะอยู่ในสนามแข่งเดียวกัน แล้วต่อสู้ให้ผู้เล่นคนอื่นพ่ายแพ้ หรือพัฒนาตนเองให้อยู่เหนือกว่าผู้เล่นคนอื่น เกมรูปแบบนี้เช่น เกมหมากรุก, เกมยิงปืน, เกมวางแผนการรบ, เกมพัฒนาประเทศ เป็นต้น เกม TicTacToe ก็จัดอยู่ในเกมรูปแบบนี้ด้วยเช่นกัน<br />
<br />
เกมที่ต้องการปัญญาประดิษฐ์คือเกมที่มีจำนวนผู้เล่นหลายคน เราจะพัฒนาปัญญาประดิษฐ์มาเป็นผู้เล่นอีกคนแทนมนุษย์ ส่วนที่มีจำนวนผู้เล่นคนเดียวไม่จำเป็นต้องใช้ปัญญาประดิษฐ์ เนื่องจากเป็นเกมที่เล่นคนเดียวก็สมบูรณ์แบบได้โดยไม่ต้องมีคู่แข่ง<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">เขียนปัญญาประดิษฐ์ได้อย่างไร?</span></span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/05/6.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/05/6.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 5 มาสร้างเกมแรกกันเถอะ]]></title>
			<link>https://irpg.in.th/thread-3085.html</link>
			<pubDate>Fri, 28 Apr 2017 22:59:34 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3085.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">หลังจากที่ได้อ่านเนื้อหาทฤษฎีมา 4 บทแล้ว ตั้งแต่<a href="http://irpg.in.th/thread-3059.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 1 ปฐมบท - เกม (Game)</a>, <a href="http://irpg.in.th/thread-3064.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 2 เกมเอนจิน (Game Engine)</a>, <a href="http://irpg.in.th/thread-3073.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 3 อัลกอรึทึม (Algorithm)</a> และ<a href="http://irpg.in.th/thread-3080.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 4 นิพจน์ (Expression)</a> มาถึงบทนี้ผู้อ่านหลายคนคงอยากลองสร้างเกมจริง ๆ ขึ้นมาบ้างแล้ว ในบทนี้ผู้เขียนเลยจะมาพาผู้อ่านทุกคนมาสร้างเกมแรกกัน ไม่ต้องตกใจไปหรอก บางคนอาจสงสัยว่า "เพิ่งเรียนแค่นิดเดียวจะมีความรู้พอให้สร้างเกมได้หรือ?" คำตอบคือได้แน่นอน การสร้างเกมไม่ต้องใช้ความรู้มากก็ได้ เพียงแค่ทราบพื้นฐานที่จำเป็นก็พอ สิ่งที่สำคัญในการสร้างเกมเลยคือการนำอัลกอริทึมมาประยุกต์ใช้ ในบทนี้เราจะมาสร้างเกม TicTacToe หรือที่เราเรียกภาษาบ้าน ๆ ว่าเกม XO กัน ผู้อ่านก็ลองสร้างเกมนี้ตามไปพร้อม ๆ กันเลย<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">จะนำตัวอย่างเกมในบทนี้ไปสร้างจริง ๆ ได้อย่างไร?</span></span><br />
<br />
เนื่องจากบทความ "เรียนสร้างเกมกับมิกิจัง" เป็นบทความเชิงทฤษฎีที่ไม่เจาะจงอุปกรณ์ ภาษาอุปกรณ์ และเกมเอนจินใด ๆ ดังนั้นตัวอย่างเกมในบทความนี้จะใช้ Pseudo Code ในการอธิบายเป็นหลัก ผู้อ่านจะต้องแปลง Pseudo Code เหล่านี้เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจินที่ผู้อ่านใช้เอาเอง ส่วนวิธีแปลง Pseudo Code เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจิน ผู้อ่านต้องศึกษาคำสั่งต่าง ๆ จากบทความที่สอนภาษาอุปกรณ์หรือเกมเอนจินตัวนั้น แล้วเลือกใช้คำสั่งที่คล้ายหรือใกล้เคียงกับ Pseudo Code มากที่สุด ตัวอย่างเกมในบทนี้จะเลือกใช้คำสั่งที่ง่ายสำหรับมือใหม่ เพื่อให้ผู้อ่านสามารถแปลง Pseudo Code ได้ง่ายที่สุด<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">ขั้นตอนการสร้างเกมคร่าว ๆ มีอะไรบ้าง?</span></span><br />
<br />
1. ออกแบบเกมคร่าว ๆ ว่าอยากให้เกมเป็นแบบไหน เล่นสองคนหรือเล่นคนเดียว ใช้ภาษาอุปกรณ์หรือเกมเอนจินอะไรในการสร้าง<br />
2. สร้างโปรเจคใหม่ แล้วตั้งชื่อโปรเจคตามที่ต้องการ<br />
3. เขียนอัลกอริทึมของเกม สำหรับมือใหม่ควรเขียนอัลกอริทึมแบบภาพรวมคร่าว ๆ ก่อน แล้วค่อยเขียนอัลกอริทึมแบบละเอียด เพื่อให้มองเห็นภาพรวมของเกมก่อน แล้วคอยเจาะรายละเอียด<br />
4. ใส่คำสั่งจากอัลกอริทึมแบบละเอียดลงในโปรแกรมเขียนภาษาอุปกรณ์หรือเกมเอนจินที่เลือกใช้<br />
5. ทดสอบเกมว่าถูกต้องตามที่เราต้องการหรือไม่ ถ้าเกมมีข้อผิดพลาดก็ต้องแก้ไขคำสั่งแล้วทดสอบใหม่<br />
6. เมื่อเกมเสร็จสมบูรณ์แล้ว ก็สร้างเกมเป็นไฟล์สำเร็จรูปที่ไม่ต้องพึ่งโปรแกรมเขียนภาษาอุปกรณ์หรือเกมเอนจินอีกต่อไป (Export โปรเจค)<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ออกแบบเกมอย่างไรดี?</span></span><br />
<br />
การออกแบบเกมต้องกำหนดรูปแบบของเกมอย่างคร่าว ๆ ในตัวอย่างเกมนี้จะออกแบบเกม ดังนี้<br />
<br />
ชื่อเกม : TicTacToe<br />
จำนวนผู้เล่น : สองคน (เพื่อความง่ายในการสร้างเกม)<br />
กติกาการเล่น : ผู้เล่นฝั่งไหนเรียงสัญลักษณ์ของตนเอง (X หรือ O) เป็นเส้นตรงได้ 3 ตัวก่อนเป็นฝ่ายชนะ<br />
เวลาที่ใช้ในการเล่น : ประมาณ 1-2 นาที<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 39% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/5.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/5.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">หลังจากที่ได้อ่านเนื้อหาทฤษฎีมา 4 บทแล้ว ตั้งแต่<a href="http://irpg.in.th/thread-3059.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 1 ปฐมบท - เกม (Game)</a>, <a href="http://irpg.in.th/thread-3064.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 2 เกมเอนจิน (Game Engine)</a>, <a href="http://irpg.in.th/thread-3073.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 3 อัลกอรึทึม (Algorithm)</a> และ<a href="http://irpg.in.th/thread-3080.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 4 นิพจน์ (Expression)</a> มาถึงบทนี้ผู้อ่านหลายคนคงอยากลองสร้างเกมจริง ๆ ขึ้นมาบ้างแล้ว ในบทนี้ผู้เขียนเลยจะมาพาผู้อ่านทุกคนมาสร้างเกมแรกกัน ไม่ต้องตกใจไปหรอก บางคนอาจสงสัยว่า "เพิ่งเรียนแค่นิดเดียวจะมีความรู้พอให้สร้างเกมได้หรือ?" คำตอบคือได้แน่นอน การสร้างเกมไม่ต้องใช้ความรู้มากก็ได้ เพียงแค่ทราบพื้นฐานที่จำเป็นก็พอ สิ่งที่สำคัญในการสร้างเกมเลยคือการนำอัลกอริทึมมาประยุกต์ใช้ ในบทนี้เราจะมาสร้างเกม TicTacToe หรือที่เราเรียกภาษาบ้าน ๆ ว่าเกม XO กัน ผู้อ่านก็ลองสร้างเกมนี้ตามไปพร้อม ๆ กันเลย<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">จะนำตัวอย่างเกมในบทนี้ไปสร้างจริง ๆ ได้อย่างไร?</span></span><br />
<br />
เนื่องจากบทความ "เรียนสร้างเกมกับมิกิจัง" เป็นบทความเชิงทฤษฎีที่ไม่เจาะจงอุปกรณ์ ภาษาอุปกรณ์ และเกมเอนจินใด ๆ ดังนั้นตัวอย่างเกมในบทความนี้จะใช้ Pseudo Code ในการอธิบายเป็นหลัก ผู้อ่านจะต้องแปลง Pseudo Code เหล่านี้เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจินที่ผู้อ่านใช้เอาเอง ส่วนวิธีแปลง Pseudo Code เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจิน ผู้อ่านต้องศึกษาคำสั่งต่าง ๆ จากบทความที่สอนภาษาอุปกรณ์หรือเกมเอนจินตัวนั้น แล้วเลือกใช้คำสั่งที่คล้ายหรือใกล้เคียงกับ Pseudo Code มากที่สุด ตัวอย่างเกมในบทนี้จะเลือกใช้คำสั่งที่ง่ายสำหรับมือใหม่ เพื่อให้ผู้อ่านสามารถแปลง Pseudo Code ได้ง่ายที่สุด<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">ขั้นตอนการสร้างเกมคร่าว ๆ มีอะไรบ้าง?</span></span><br />
<br />
1. ออกแบบเกมคร่าว ๆ ว่าอยากให้เกมเป็นแบบไหน เล่นสองคนหรือเล่นคนเดียว ใช้ภาษาอุปกรณ์หรือเกมเอนจินอะไรในการสร้าง<br />
2. สร้างโปรเจคใหม่ แล้วตั้งชื่อโปรเจคตามที่ต้องการ<br />
3. เขียนอัลกอริทึมของเกม สำหรับมือใหม่ควรเขียนอัลกอริทึมแบบภาพรวมคร่าว ๆ ก่อน แล้วค่อยเขียนอัลกอริทึมแบบละเอียด เพื่อให้มองเห็นภาพรวมของเกมก่อน แล้วคอยเจาะรายละเอียด<br />
4. ใส่คำสั่งจากอัลกอริทึมแบบละเอียดลงในโปรแกรมเขียนภาษาอุปกรณ์หรือเกมเอนจินที่เลือกใช้<br />
5. ทดสอบเกมว่าถูกต้องตามที่เราต้องการหรือไม่ ถ้าเกมมีข้อผิดพลาดก็ต้องแก้ไขคำสั่งแล้วทดสอบใหม่<br />
6. เมื่อเกมเสร็จสมบูรณ์แล้ว ก็สร้างเกมเป็นไฟล์สำเร็จรูปที่ไม่ต้องพึ่งโปรแกรมเขียนภาษาอุปกรณ์หรือเกมเอนจินอีกต่อไป (Export โปรเจค)<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ออกแบบเกมอย่างไรดี?</span></span><br />
<br />
การออกแบบเกมต้องกำหนดรูปแบบของเกมอย่างคร่าว ๆ ในตัวอย่างเกมนี้จะออกแบบเกม ดังนี้<br />
<br />
ชื่อเกม : TicTacToe<br />
จำนวนผู้เล่น : สองคน (เพื่อความง่ายในการสร้างเกม)<br />
กติกาการเล่น : ผู้เล่นฝั่งไหนเรียงสัญลักษณ์ของตนเอง (X หรือ O) เป็นเส้นตรงได้ 3 ตัวก่อนเป็นฝ่ายชนะ<br />
เวลาที่ใช้ในการเล่น : ประมาณ 1-2 นาที<br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 39% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/5.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/5.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 4 นิพจน์ (Expression)]]></title>
			<link>https://irpg.in.th/thread-3080.html</link>
			<pubDate>Fri, 21 Apr 2017 23:51:28 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3080.html</guid>
			<description><![CDATA[<span style="color: #696969;" class="mycode_color"><span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3073.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 3 อัลกอรึทึม (Algorithm)</a> เราได้เรียนรู้วิธีการเขียนอัลกอริทึมแบบต่าง ๆ กันไปแล้ว การเขียนอัลกอริทึมส่วนใหญ่นั้นจะต้องมีการคำนวณเกิดขึ้นด้วย ดังนั้นในบทนี้เราจะมาเรียนวิธีการดำเนินการต่าง ๆ ทางคณิตศาสตร์เพื่อใช้ในการเขียนอัลกอริทึมกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ตัวแปรคืออะไร?</span></span><br />
<br />
ตัวแปร (Variable) หมายถึงค่าที่ถูกเก็บไว้ในหน่วยความจำของอุปกรณ์ สามารถเปลี่ยนแปลงได้ตามที่เราต้องการ ตัวแปรสามารถใช้ประโยชน์ได้หลายอย่าง เช่น นับจำนวนครั้งที่วนลูป, คำนวณเลข, รับข้อมูลจากคีย์บอร์ด, เก็บคะแนนของผู้เล่น เป็นต้น การที่เราจะใช้ตัวแปรได้นั้นเราจะต้องประกาศตัวแปรก่อน การประกาศตัวแปร (Variable Declaration) เราต้องตั้งชื่อที่จะใช้เรียกและกำหนดประเภทของตัวแปรนั้น กฎการตั้งชื่อตัวแปรมีคร่าว ๆ ดังนี้<br />
</span><ul class="mycode_list"><li>ต้องไม่ซ้ำกับชื่อตัวแปรหรือชื่อเฉพาะอย่างอื่นที่มีอยู่ก่อนแล้ว<br />
</li>
<li>ต้องไม่ซ้ำกับคำสงวน (Reserved Word) ของภาษาอุปกรณ์หรือเกมเอนจินนั้น<br />
</li>
<li>ต้องขึ้นต้นด้วยตัวอักษรเท่านั้น (A-Z, a-z) นอกจากนั้นจะเป็นตัวอักษร ตัวเลข หรือสัญประกาศ (_) ก็ได้ แต่ต้องไม่ใช่เครื่องหมายวรรคตอนใด ๆ ยกเว้นสัญประกาศ (กฎข้อนี้อาจแตกต่างไปในแต่ละภาษาอุปกรณ์หรือเกมเอนจิน)<br />
</li>
<li>ต้องไม่มีการเว้นวรรคใด ๆ<br />
</li>
<li>ควรใช้ภาษาอังกฤษในการตั้งชื่อตัวแปร<br />
</li>
<li>ควรตั้งชื่อตัวแปรที่สื่อความหมาย<br />
</li>
</ul>
<span style="color: #696969;" class="mycode_color"><br />
<br />
คำสงวนหมายถึงคำที่เป็นคำสั่งของภาษาอุปกรณ์หรือเกมเอนจินตัวนั้น เช่น ในภาษา C จะใช้คำสั่ง if ในการตรวจสอบเงื่อนไข ดังนั้นคำว่า if จึงเป็นคำสงวนของภาษา C สาเหตุที่ต้องมีคำสงวนเพื่อป้องกันไม่ให้ผู้ใช้งานตั้งชื่อตัวแปรซ้ำกับคำสั่งที่มีอยู่เดิม ซึ่งจะทำให้โปรแกรมสับสนว่านี่เป็นคำสั่งหรือชื่อตัวแปรกันแน่ คำสงวนในแต่ละภาษาอุปกรณ์และเกมเอนจินก็มีแตกต่างกันออกไป ผู้อ่านต้องค้นหาเพิ่มเติมเองว่าคำสงวนของภาษาอุปกรณ์หรือเกมเอนจินที่ผู้อ่านใช้งานมีคำอะไรบ้าง<br />
<br />
ชื่อตัวแปรที่ดีควรสื่อความหมายในตัวเอง เช่น User_Name, answer, Time เป็นต้น ไม่ควรตั้งชื่อตัวแปรมั่ว ๆ อย่าง xyz หรือ GTC3HA1 เนื่องจากตัวเราเองอาจลืมว่าตัวแปรนั้นไว้ใช้ทำอะไรเมื่อเวลาผ่านไป การตั้งชื่อตัวแปรเป็นภาษาอังกฤษมีเรื่องที่ต้องระวังอยู่อย่างหนึ่งคือเรื่องตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ภาษาอุปกรณ์และเกมเอนจินส่วนใหญ่มักมองว่าตัวพิมพ์ใหญ่และตัวพิมพ์เล็กนั้นแตกต่างกัน (Case Sensitive) เช่น hello, Hello, HELLO โปรแกรมจะมองสามชื่อนี้เป็นคนละชื่อกัน และหมายถึงตัวแปรคนละตัวกัน แต่ก็พอมีบางภาษาอุปกรณ์และเกมเอนจินที่มองตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเป็นตัวเดียวกัน (Case Insensitive) โดยมองว่า world, World, WORLD เป็นชื่อเดียวกันและหมายถึงตัวแปรตัวเดียวกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ประเภทของตัวแปรมีอะไรบ้าง?</span></span><br />
<br />
อย่างที่บอกไปว่า "ตัวแปรคือค่าที่ถูกเก็บไว้" ค่าที่ถูกเก็บไว้นั้นมีอยู่หลายประเภท ซึ่งแต่ละภาษาอุปกรณ์และเกมเอนจินก็แบ่งประเภทย่อยของตัวแปรแตกต่างกันออกไป มีตัวแปรให้เลือกใช้เป็นสิบกว่าแบบ แต่ประเภทใหญ่ ๆ ของตัวแปรในแต่ละภาษาอุปกรณ์และเกมเอนจินจะคล้ายคลึงกัน ประเภทใหญ่ ๆ ของตัวแปร ได้แก่<br />
<br />
1. ตัวแปรเก็บจำนวนเต็ม (Integer Variable) ใช้เก็บจำนวนเต็มเท่านั้น มีการแบ่งย่อยอีกว่าเป็นแบบเก็บได้เฉพาะจำนวนเต็มบวกกับจำนวนเต็มศูนย์ (จำนวนเต็มตั้งแต่ศูนย์ขึ้นไป) หรือเป็นแบบเก็บจำนวนเต็มได้ทั้งหมด (รวมทั้งจำนวนเต็มลบด้วย) นอกจากนี้ยังมีการแบ่งตัวแปรประเภทนี้เป็นหลายขนาดตามขอบเขตที่สามารถเก็บได้อีกด้วย ยิ่งตัวแปรมีขนาดใหญ่มากเท่าไรก็ยิ่งเก็บค่าที่มีจำนวนหลักได้มากเท่านั้น ถ้านำตัวแปรประเภทนี้มาหารกัน ผลลัพธ์ที่ได้จะเป็นจำนวนเต็มเสมอ เช่น 11 หารด้วย 4 จะได้ผลลัพธ์เป็น 3 เนื่องจากตัวแปรประเภทนี้จะไม่คิดทศนิยม และจะปัดเศษลงเสมอ (เพราะไม่คิดทศนิยมเลยไม่รู้ว่าทศนิยมเป็นเท่าไร จึงปัดลงไว้ก่อน)<br />
<br />
2. ตัวแปรเก็บจำนวนจริง (Floating Point Variable) ตัวแปรประเภทนี้จะสามารถเก็บข้อมูลได้มากกว่าตัวแปรประเภทแรก เพราะสามารถเก็บจำนวนที่มีทศนิยมได้ แต่ก็ต้องแลกมากับขนาดของตัวแปรที่ใหญ่มากขึ้นด้วย<br />
<br />
3. ตัวแปรเก็บตัวอักษร (Character Variable) ใช้เก็บตัวอักษรใด ๆ ก็ได้ 1 ตัวอักษร ถ้าใช้ตัวแปรประเภทนี้เก็บค่าที่เป็นตัวเลข โปรแกรมจะมองว่าตัวเลขตัวนั้นเป็นเพียงตัวอักษรตัวหนึ่ง ไม่สามารถนำมาดำเนินการใด ๆ ทางคณิตศาสตร์ได้<br />
<br />
4. ตัวแปรเก็บข้อความ (String Variable) ใช้เก็บตัวอักษรใด ๆ ก็ได้ ไม่จำกัดจำนวนตัวอักษร บางภาษาอุปกรณ์หรือเกมเอนจินอาจไม่มีตัวแปรประเภทนี้ เนื่องจากตัวแปรประเภทนี้ไม่ได้เป็นตัวแปรแบบเก็บค่าจริง ๆ (Value Variable) แต่เป็นตัวแปรแบบอ้างอิงค่าอื่น (Reference Variable) ตัวแปรประเภทนี้เกิดจากการนำตัวแปรเก็บตัวอักษรมาสร้างเป็นอาร์เรย์ (Array) (เป็นการนำตัวแปรประเภทที่ 3 มาเรียงต่อกันเป็นชุด ไม่ได้เป็นตัวแปรประเภทใหม่จริง ๆ)<br />
<br />
5. ตัวแปรเก็บค่าความจริง (Boolean Variable) ใช้เก็บค่าความจริงทางตรรกศาสตร์ ค่าที่เก็บได้มีอยู่ 2 ค่าคือ "จริง (True)" และ "เท็จ (False)" เท่านั้น ตัวแปรประเภทนี้มีอยู่แบบเดียว ไม่สามารถแบ่งประเภทย่อยได้อีก ตัวแปรประเภทนี้มีเพียงขนาดเดียวคือมีขนาด 1 bit ในทุก ๆ ภาษาอุปกรณ์และเกมเอนจิน<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นิพจน์คืออะไร?</span></span><br />
<br />
นิพจน์ (Expression) หมายถึงข้อความทางคณิตศาสตร์ ประกอบไปด้วยค่าคงที่ ตัวแปร และตัวดำเนินการ นิพจน์เรียกเป็นภาษาไทยได้อีกอย่างว่า "ประโยคสัญลักษณ์" ตัวอย่างนิพจน์ เช่น 42 ÷ 7 = 6, 3n + 2 = 1 , x² + 4x + 7 &lt; 0 เป็นต้น<br />
<br />
นิพจน์ในทางอุปกรณ์จะมีลักษณะแตกต่างจากนิพจน์ในทางคณิตศาสตร์อยู่นิดหน่อย อย่างที่ได้เกริ่นไปแล้วในบทที่ 3 นิพจน์ในทางอุปกรณ์ที่มีเครื่องหมายเท่ากับ (=) จะเป็นการนำค่าที่อยู่ฝั่งขวาของเครื่องหมายเท่ากับมาไว้ในค่าที่อยู่ฝั่งซ้ายของเครื่องหมายเท่ากับ เช่น AuthorName = "Mikichan" หมายความว่าให้ตัวแปร AuthorName มีค่าเท่ากับข้อความ "Mikichan", A = B หมายความว่าให้ตัวแปร A มีค่าเท่ากับตัวแปร B โดยที่ตัวแปร B มีค่าเท่าเดิม, N = N + 1 (ปัญหาโลกแตกสำหรับมือใหม่!!!) หมายความว่าให้ตัวแปร N ค่าใหม่มีค่าเท่ากับตัวแปร N ค่าเดิมบวกด้วย 1 แล้วเก็บตัวแปร N ค่าใหม่ในหน่วยความจำ และลบตัวแปร N ค่าเดิมออกจากหน่วยความจำ (เนื่องจากตัวแปร N ค่าเดิมถูกตัวแปร N ค่าใหม่เขียนทับ) ยกตัวอย่างเช่น ตอนแรกให้ N = 3 พอถึงคำสั่ง N = N + 1 โปรแกรมจะมองว่า N = 3 + 1 ดังนั้นเมื่อโปรแกรมทำคำสั่งนี้เสร็จแล้ว ตัวแปร N ก็จะมีค่าเท่ากับ 4<br />
<br />
จากตัวอย่างด้านบนจะสังเกตได้ว่า ค่าที่อยู่ฝั่งซ้ายของเครื่องหมายเท่ากับจะต้องเป็นตัวแปรเสมอ และจะมีตัวแปรเพียงตัวเดียวเท่านั้น เนื่องจากเครื่องหมายเท่ากับคือการนำค่าฝั่งขวามาไว้ในค่าฝั่งซ้าย ดังนั้นค่าที่อยู่ฝั่งซ้ายจะต้องเป็นค่าที่สามารถเปลี่ยนแปลงเพื่อรับข้อมูลได้ ซึ่งค่าที่เปลี่ยนแปลงได้ก็คือตัวแปรนั่นเอง และสาเหตุที่ฝั่งซ้ายมีตัวแปรได้เพียงตัวเดียวก็เพื่อให้เก็บค่าลงตัวแปรได้อย่างถูกต้อง สมมติว่ามีนิพจน์หนึ่งคือ A + B = 104 ปัญหาคือโปรแกรมจะเลือกเก็บค่า 104 ไว้ที่ตัวแปร A หรือตัวแปร B ดีล่ะ ในเมื่อมีตัวแปรอยู่ฝั่งซ้ายตั้งสองตัว โปรแกรมโดยทั่วไปจะไม่เก็บค่าไว้ครึ่ง ๆ กลาง ๆ โดยยังติดตัวแปรไว้หลายตัวอย่างให้ A + B เก็บค่าเท่ากับ 104 ถ้าจะเก็บค่าก็ต้องเลือกว่าจะเก็บค่าที่ตัวแปรใดตัวแปรหนึ่งไปเลย ดังนั้นฝั่งซ้ายของเครื่องหมายเท่ากับจึงมีตัวแปรได้เพียงตัวเดียวเท่านั้น<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ตัวดำเนินการคืออะไร?</span></span></span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/4-expression.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/4-expression.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></description>
			<content:encoded><![CDATA[<span style="color: #696969;" class="mycode_color"><span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3073.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 3 อัลกอรึทึม (Algorithm)</a> เราได้เรียนรู้วิธีการเขียนอัลกอริทึมแบบต่าง ๆ กันไปแล้ว การเขียนอัลกอริทึมส่วนใหญ่นั้นจะต้องมีการคำนวณเกิดขึ้นด้วย ดังนั้นในบทนี้เราจะมาเรียนวิธีการดำเนินการต่าง ๆ ทางคณิตศาสตร์เพื่อใช้ในการเขียนอัลกอริทึมกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ตัวแปรคืออะไร?</span></span><br />
<br />
ตัวแปร (Variable) หมายถึงค่าที่ถูกเก็บไว้ในหน่วยความจำของอุปกรณ์ สามารถเปลี่ยนแปลงได้ตามที่เราต้องการ ตัวแปรสามารถใช้ประโยชน์ได้หลายอย่าง เช่น นับจำนวนครั้งที่วนลูป, คำนวณเลข, รับข้อมูลจากคีย์บอร์ด, เก็บคะแนนของผู้เล่น เป็นต้น การที่เราจะใช้ตัวแปรได้นั้นเราจะต้องประกาศตัวแปรก่อน การประกาศตัวแปร (Variable Declaration) เราต้องตั้งชื่อที่จะใช้เรียกและกำหนดประเภทของตัวแปรนั้น กฎการตั้งชื่อตัวแปรมีคร่าว ๆ ดังนี้<br />
</span><ul class="mycode_list"><li>ต้องไม่ซ้ำกับชื่อตัวแปรหรือชื่อเฉพาะอย่างอื่นที่มีอยู่ก่อนแล้ว<br />
</li>
<li>ต้องไม่ซ้ำกับคำสงวน (Reserved Word) ของภาษาอุปกรณ์หรือเกมเอนจินนั้น<br />
</li>
<li>ต้องขึ้นต้นด้วยตัวอักษรเท่านั้น (A-Z, a-z) นอกจากนั้นจะเป็นตัวอักษร ตัวเลข หรือสัญประกาศ (_) ก็ได้ แต่ต้องไม่ใช่เครื่องหมายวรรคตอนใด ๆ ยกเว้นสัญประกาศ (กฎข้อนี้อาจแตกต่างไปในแต่ละภาษาอุปกรณ์หรือเกมเอนจิน)<br />
</li>
<li>ต้องไม่มีการเว้นวรรคใด ๆ<br />
</li>
<li>ควรใช้ภาษาอังกฤษในการตั้งชื่อตัวแปร<br />
</li>
<li>ควรตั้งชื่อตัวแปรที่สื่อความหมาย<br />
</li>
</ul>
<span style="color: #696969;" class="mycode_color"><br />
<br />
คำสงวนหมายถึงคำที่เป็นคำสั่งของภาษาอุปกรณ์หรือเกมเอนจินตัวนั้น เช่น ในภาษา C จะใช้คำสั่ง if ในการตรวจสอบเงื่อนไข ดังนั้นคำว่า if จึงเป็นคำสงวนของภาษา C สาเหตุที่ต้องมีคำสงวนเพื่อป้องกันไม่ให้ผู้ใช้งานตั้งชื่อตัวแปรซ้ำกับคำสั่งที่มีอยู่เดิม ซึ่งจะทำให้โปรแกรมสับสนว่านี่เป็นคำสั่งหรือชื่อตัวแปรกันแน่ คำสงวนในแต่ละภาษาอุปกรณ์และเกมเอนจินก็มีแตกต่างกันออกไป ผู้อ่านต้องค้นหาเพิ่มเติมเองว่าคำสงวนของภาษาอุปกรณ์หรือเกมเอนจินที่ผู้อ่านใช้งานมีคำอะไรบ้าง<br />
<br />
ชื่อตัวแปรที่ดีควรสื่อความหมายในตัวเอง เช่น User_Name, answer, Time เป็นต้น ไม่ควรตั้งชื่อตัวแปรมั่ว ๆ อย่าง xyz หรือ GTC3HA1 เนื่องจากตัวเราเองอาจลืมว่าตัวแปรนั้นไว้ใช้ทำอะไรเมื่อเวลาผ่านไป การตั้งชื่อตัวแปรเป็นภาษาอังกฤษมีเรื่องที่ต้องระวังอยู่อย่างหนึ่งคือเรื่องตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ภาษาอุปกรณ์และเกมเอนจินส่วนใหญ่มักมองว่าตัวพิมพ์ใหญ่และตัวพิมพ์เล็กนั้นแตกต่างกัน (Case Sensitive) เช่น hello, Hello, HELLO โปรแกรมจะมองสามชื่อนี้เป็นคนละชื่อกัน และหมายถึงตัวแปรคนละตัวกัน แต่ก็พอมีบางภาษาอุปกรณ์และเกมเอนจินที่มองตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเป็นตัวเดียวกัน (Case Insensitive) โดยมองว่า world, World, WORLD เป็นชื่อเดียวกันและหมายถึงตัวแปรตัวเดียวกัน<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ประเภทของตัวแปรมีอะไรบ้าง?</span></span><br />
<br />
อย่างที่บอกไปว่า "ตัวแปรคือค่าที่ถูกเก็บไว้" ค่าที่ถูกเก็บไว้นั้นมีอยู่หลายประเภท ซึ่งแต่ละภาษาอุปกรณ์และเกมเอนจินก็แบ่งประเภทย่อยของตัวแปรแตกต่างกันออกไป มีตัวแปรให้เลือกใช้เป็นสิบกว่าแบบ แต่ประเภทใหญ่ ๆ ของตัวแปรในแต่ละภาษาอุปกรณ์และเกมเอนจินจะคล้ายคลึงกัน ประเภทใหญ่ ๆ ของตัวแปร ได้แก่<br />
<br />
1. ตัวแปรเก็บจำนวนเต็ม (Integer Variable) ใช้เก็บจำนวนเต็มเท่านั้น มีการแบ่งย่อยอีกว่าเป็นแบบเก็บได้เฉพาะจำนวนเต็มบวกกับจำนวนเต็มศูนย์ (จำนวนเต็มตั้งแต่ศูนย์ขึ้นไป) หรือเป็นแบบเก็บจำนวนเต็มได้ทั้งหมด (รวมทั้งจำนวนเต็มลบด้วย) นอกจากนี้ยังมีการแบ่งตัวแปรประเภทนี้เป็นหลายขนาดตามขอบเขตที่สามารถเก็บได้อีกด้วย ยิ่งตัวแปรมีขนาดใหญ่มากเท่าไรก็ยิ่งเก็บค่าที่มีจำนวนหลักได้มากเท่านั้น ถ้านำตัวแปรประเภทนี้มาหารกัน ผลลัพธ์ที่ได้จะเป็นจำนวนเต็มเสมอ เช่น 11 หารด้วย 4 จะได้ผลลัพธ์เป็น 3 เนื่องจากตัวแปรประเภทนี้จะไม่คิดทศนิยม และจะปัดเศษลงเสมอ (เพราะไม่คิดทศนิยมเลยไม่รู้ว่าทศนิยมเป็นเท่าไร จึงปัดลงไว้ก่อน)<br />
<br />
2. ตัวแปรเก็บจำนวนจริง (Floating Point Variable) ตัวแปรประเภทนี้จะสามารถเก็บข้อมูลได้มากกว่าตัวแปรประเภทแรก เพราะสามารถเก็บจำนวนที่มีทศนิยมได้ แต่ก็ต้องแลกมากับขนาดของตัวแปรที่ใหญ่มากขึ้นด้วย<br />
<br />
3. ตัวแปรเก็บตัวอักษร (Character Variable) ใช้เก็บตัวอักษรใด ๆ ก็ได้ 1 ตัวอักษร ถ้าใช้ตัวแปรประเภทนี้เก็บค่าที่เป็นตัวเลข โปรแกรมจะมองว่าตัวเลขตัวนั้นเป็นเพียงตัวอักษรตัวหนึ่ง ไม่สามารถนำมาดำเนินการใด ๆ ทางคณิตศาสตร์ได้<br />
<br />
4. ตัวแปรเก็บข้อความ (String Variable) ใช้เก็บตัวอักษรใด ๆ ก็ได้ ไม่จำกัดจำนวนตัวอักษร บางภาษาอุปกรณ์หรือเกมเอนจินอาจไม่มีตัวแปรประเภทนี้ เนื่องจากตัวแปรประเภทนี้ไม่ได้เป็นตัวแปรแบบเก็บค่าจริง ๆ (Value Variable) แต่เป็นตัวแปรแบบอ้างอิงค่าอื่น (Reference Variable) ตัวแปรประเภทนี้เกิดจากการนำตัวแปรเก็บตัวอักษรมาสร้างเป็นอาร์เรย์ (Array) (เป็นการนำตัวแปรประเภทที่ 3 มาเรียงต่อกันเป็นชุด ไม่ได้เป็นตัวแปรประเภทใหม่จริง ๆ)<br />
<br />
5. ตัวแปรเก็บค่าความจริง (Boolean Variable) ใช้เก็บค่าความจริงทางตรรกศาสตร์ ค่าที่เก็บได้มีอยู่ 2 ค่าคือ "จริง (True)" และ "เท็จ (False)" เท่านั้น ตัวแปรประเภทนี้มีอยู่แบบเดียว ไม่สามารถแบ่งประเภทย่อยได้อีก ตัวแปรประเภทนี้มีเพียงขนาดเดียวคือมีขนาด 1 bit ในทุก ๆ ภาษาอุปกรณ์และเกมเอนจิน<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นิพจน์คืออะไร?</span></span><br />
<br />
นิพจน์ (Expression) หมายถึงข้อความทางคณิตศาสตร์ ประกอบไปด้วยค่าคงที่ ตัวแปร และตัวดำเนินการ นิพจน์เรียกเป็นภาษาไทยได้อีกอย่างว่า "ประโยคสัญลักษณ์" ตัวอย่างนิพจน์ เช่น 42 ÷ 7 = 6, 3n + 2 = 1 , x² + 4x + 7 &lt; 0 เป็นต้น<br />
<br />
นิพจน์ในทางอุปกรณ์จะมีลักษณะแตกต่างจากนิพจน์ในทางคณิตศาสตร์อยู่นิดหน่อย อย่างที่ได้เกริ่นไปแล้วในบทที่ 3 นิพจน์ในทางอุปกรณ์ที่มีเครื่องหมายเท่ากับ (=) จะเป็นการนำค่าที่อยู่ฝั่งขวาของเครื่องหมายเท่ากับมาไว้ในค่าที่อยู่ฝั่งซ้ายของเครื่องหมายเท่ากับ เช่น AuthorName = "Mikichan" หมายความว่าให้ตัวแปร AuthorName มีค่าเท่ากับข้อความ "Mikichan", A = B หมายความว่าให้ตัวแปร A มีค่าเท่ากับตัวแปร B โดยที่ตัวแปร B มีค่าเท่าเดิม, N = N + 1 (ปัญหาโลกแตกสำหรับมือใหม่!!!) หมายความว่าให้ตัวแปร N ค่าใหม่มีค่าเท่ากับตัวแปร N ค่าเดิมบวกด้วย 1 แล้วเก็บตัวแปร N ค่าใหม่ในหน่วยความจำ และลบตัวแปร N ค่าเดิมออกจากหน่วยความจำ (เนื่องจากตัวแปร N ค่าเดิมถูกตัวแปร N ค่าใหม่เขียนทับ) ยกตัวอย่างเช่น ตอนแรกให้ N = 3 พอถึงคำสั่ง N = N + 1 โปรแกรมจะมองว่า N = 3 + 1 ดังนั้นเมื่อโปรแกรมทำคำสั่งนี้เสร็จแล้ว ตัวแปร N ก็จะมีค่าเท่ากับ 4<br />
<br />
จากตัวอย่างด้านบนจะสังเกตได้ว่า ค่าที่อยู่ฝั่งซ้ายของเครื่องหมายเท่ากับจะต้องเป็นตัวแปรเสมอ และจะมีตัวแปรเพียงตัวเดียวเท่านั้น เนื่องจากเครื่องหมายเท่ากับคือการนำค่าฝั่งขวามาไว้ในค่าฝั่งซ้าย ดังนั้นค่าที่อยู่ฝั่งซ้ายจะต้องเป็นค่าที่สามารถเปลี่ยนแปลงเพื่อรับข้อมูลได้ ซึ่งค่าที่เปลี่ยนแปลงได้ก็คือตัวแปรนั่นเอง และสาเหตุที่ฝั่งซ้ายมีตัวแปรได้เพียงตัวเดียวก็เพื่อให้เก็บค่าลงตัวแปรได้อย่างถูกต้อง สมมติว่ามีนิพจน์หนึ่งคือ A + B = 104 ปัญหาคือโปรแกรมจะเลือกเก็บค่า 104 ไว้ที่ตัวแปร A หรือตัวแปร B ดีล่ะ ในเมื่อมีตัวแปรอยู่ฝั่งซ้ายตั้งสองตัว โปรแกรมโดยทั่วไปจะไม่เก็บค่าไว้ครึ่ง ๆ กลาง ๆ โดยยังติดตัวแปรไว้หลายตัวอย่างให้ A + B เก็บค่าเท่ากับ 104 ถ้าจะเก็บค่าก็ต้องเลือกว่าจะเก็บค่าที่ตัวแปรใดตัวแปรหนึ่งไปเลย ดังนั้นฝั่งซ้ายของเครื่องหมายเท่ากับจึงมีตัวแปรได้เพียงตัวเดียวเท่านั้น<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ตัวดำเนินการคืออะไร?</span></span></span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/4-expression.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/4-expression.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 3 อัลกอรึทึม (Algorithm)]]></title>
			<link>https://irpg.in.th/thread-3073.html</link>
			<pubDate>Fri, 14 Apr 2017 23:57:22 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3073.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3064.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 2 เกมเอนจิน (Game Engine)</a> เราได้เรียนรู้ว่า "เกมเอนจินคืออะไร?" และผู้อ่านคงได้เลือกเกมเอนจินที่ตนเองสนใจแล้ว ผู้อ่านทราบแล้วว่าการพัฒนาเกมได้จะต้องป้อนคำสั่งให้กับอุปกรณ์ และในการพัฒนาเกมผู้อ่านคงมีความคิดอยู่แล้วว่าอยากจะให้เกมเป็นแบบไหน อยากให้เกมมีรูปร่างหน้าตาอย่างไร แต่ติดปัญหาตรงที่ว่า "เราจะเปลี่ยนความคิดเหล่านั้นเป็นคำสั่งในเกมได้อย่างไร?" ในบทนี้เราจะมาเรียนวิธีการเปลี่ยนความคิดต่าง ๆ ให้เป็นอัลกอริทึมกัน<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">อัลกอริทึมคืออะไร?</span></span><br />
<br />
อัลกอริทึม (Algorithm) หมายถึงวิธีการแก้ปัญหาแบบเป็นลำดับขั้นตอน โดยลำดับขั้นตอนนั้นจะต้องมีความละเอียด ชัดเจน และสามารถตีความได้อย่างเดียวเท่านั้น ถ้าลองเปิดหนังสือสอนทำอาหาร ส่วนที่เป็นอัลกอรึทึมคือวิธีการทำอาหาร ในการพัฒนาเกมส่วนที่เป็นอัลกอริทึมคือวิธีการทำงานของเกม จากที่ได้เรียนไปในบทที่ 1 ว่า "อุปกรณ์จะทำงานโดยการอ่านคำสั่ง" ดังนั้นอัลกอริทึมของเกมก็คือวิธีการป้อนคำสั่งให้กับอุปกรณ์นั่นเอง<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ทำไมต้องเขียนอัลกอริทึม?</span></span><br />
<br />
จากที่ได้กล่าวไปตั้งแต่บทที่ 1 แล้วว่า "อุปกรณ์จะทำงานโดยการอ่านคำสั่งทีละบรรทัด" และอัลกอริทึมคือลำดับขั้นตอนในการดำเนินการที่ต้องเขียนเป็นข้อ ๆ ทีละบรรทัด ดังนั้นการเขียนอัลกอริทึมทำให้เราสามารถป้อนคำสั่งให้กับอุปกรณ์ทีละบรรทัดได้อย่างถูกต้อง ถ้าผู้อ่านเขียนอัลกอริทึมไม่ได้ ผู้อ่านก็ป้อนคำสั่งให้กับอุปกรณ์ไม่ได้ เมื่อผู้อ่านป้อนคำสั่งให้กับอุปกรณ์ไม่ได้ ผู้อ่านก็พัฒนาเกมเป็นของตนเองไม่ได้ ต่อให้ผู้อ่านใช้เกมเอนจินที่ใช้งานง่ายแค่ไหนก็ตาม แต่ถ้าผู้อ่านเขียนอัลกอริทึมไม่ได้ ผู้อ่านก็พัฒนาเกมไม่ได้ ดังนั้นอัลกอริทึมจึงเป็นสิ่งสำคัญมากในการพัฒนาเกม<br />
<br />
อัลกอริทึมเป็นหนี่งในสองสิ่งสำคัญในการเขียนโปรแกรมและการพัฒนาเกม สิ่งสำคัญอีกอย่างคือความรู้เกี่ยวกับภาษาอุปกรณ์หรือเกมเอนจินที่ใช้ ในการเขียนโปรแกรมและการพัฒนาเกมไม่จำเป็นต้องมีความรู้ลึกมากก็ได้ แค่มีความรู้พื้นฐานที่สำคัญ และสามารถเปลี่ยนความคิดในหัวเป็นอัลกอริทึมได้ก็เพียงพอแล้ว เกมบางตัวใช้แค่คำสั่งพื้นฐานแต่ก็สามารถเป็นเกมฟอร์มยักษ์ได้ เพราะผู้ที่พัฒนาเกมนั้นรู้จักนำความรู้พื้นฐานมาประยุกต์ใช้ โดยการเขียนอัลกอริทึมที่มีความซับซ้อนจากคำสั่งพื้นฐานที่แม้แต่นักพัฒนาเกมมือใหม่ก็ยังทราบ<br />
<br />
ผู้อ่านที่ไม่เคยเขียนอัลกอริทึมมาก่อนอาจรู้สึกว่าการเขียนอัลกอริทึมเป็นสิ่งที่ยาก เนื่องจากการเขียนอัลกอริทึมต้องเขียนเป็นลำดับทีละข้อ แต่ละข้อต้องละเอียด ไม่กำกวม ไม่คลุมเครือ ตีความได้อย่างเดียวเท่านั้น ยกตัวอย่างเช่น เราสั่งให้เพื่อนที่เป็นมนุษย์ต้มบะหมี่กึ่งสำเร็จรูป เราแค่บอกว่า "ต้มบะหมี่กึ่งสำเร็จรูปให้หน่อย" แค่นี้เพื่อนก็สามารถทำตามความต้องการของเราได้อย่างถูกต้องแล้ว แต่ถ้าใช้คำสั่ง "ต้มบะหมี่กึ่งสำเร็จรูปให้หน่อย" กับหุ่นยนต์ หุ่นยนต์บางตัวอาจงงทำอะไรไม่ถูกกับคำสั่งของเรา หุ่นยนต์บางตัวอาจต้มบะหมี่กึ่งสำเร็จรูปไปทั้งที่ยังไม่ได้ฉีกซองเลย หุ่นยนต์บางตัวอาจใช้นมในการต้มแทนน้ำ หุ่นยนต์บางตัวอาจใช้กระทะในการต้มแทนหม้อ ปัญหาเหล่านี้เกิดจากการใช้คำสั่งที่ไม่ละเอียดและสามารถตีความได้หลายอย่าง ในการเขียนอัลกอริทึมต้องเขียนคำสั่งให้ละเอียด ตีความได้เพียงอย่างเดียว เขียนทุกขั้นตอน ทุกคำสั่ง และต้องเขียนให้คนโง่ที่สุดในโลกก็สามารถทำตามความต้องการของเราได้อย่างถูกต้อง 100%<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เขียนอัลกอริทึมได้อย่างไร?</span></span><br />
<br />
การเขียนอัลกอริทึมสามารถทำได้ 3 แบบ ได้แก่<br />
<br />
1. การเขียนอัลกอริทึมแบบความเรียง วิธีนี้คือการเขียนเป็นข้อความปกติ วิธีนี้เหมาะกับอัลกอริทึมที่มีขนาดเล็กและมีความซับซ้อนน้อย<br />
<br />
ตัวอย่างความเรียงที่อธิบายวิธีการทำไข่ดาว</span><br />
<blockquote class="mycode_quote"><cite>Quote:</cite>นำกระทะไปวางบนเตาแก๊ส เปิดเตาแก๊ส เทน้ำมันพืชลงไปในกระทะ 30 มิลลิลิตร แล้วรอจนกว่าน้ำมันเดือด เมื่อน้ำมันเดือดแล้ว ตอกไข่ไก่ 1 ฟอง แล้วใส่ไข่ขาวกับไข่แดงลงในกระทะ ส่วนเปลือกไข่นั้นให้ทิ้งลงในถังขยะ เสร็จแล้วรอจนกว่าไข่ขาวและไข่แดงเริ่มแข็งตัว เมื่อไข่ขาวและไข่แดงเริ่มแข็งตัวแล้ว ใช้ตะหลิวพลิกไข่ขาวและไข่แดงแล้ววางไว้บนกระทะเหมือนเดิม เมื่อไข่ขาวและไข่แดงสุกแล้ว นำตะหลิวตักไข่ขาวและไข่แดงมาวางไว้บนจาน ปิดเตาแก๊ส เพียงเท่านี้ก็ทำไข่ดาวเสร็จแล้ว</blockquote>
<span style="color: #696969;" class="mycode_color"><br />
<br />
2. การเขียนอัลกอริทึมแบบ Flowchart วิธีนี้คือการใช้รูปภาพในการสื่อความหมาย ทำให้เห็นลำดับขั้นตอนต่าง ๆ ได้ง่ายและชัดเจน รูปภาพที่นำมาใช้จะต้องเป็นรูปภาพสากลที่ทุกคนเข้าใจได้ตรงกัน วิธีนี้เหมาะกับอัลกอริทึมที่มีความซับซ้อนมาก แต่ไม่เหมาะกับอัลกอริทึมที่มีขนาดใหญ่ เนื่องจาก Flowchart ใช้พื้นที่ในการเขียนค่อนข้างมาก<br />
<br />
รูปภาพพื้นฐานที่ควรทราบ ได้แก่<br />
<br />
<table border="0" cellspacing="1" cellpadding="3" class="tborder" style="width:95%;"><tr><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">รูปภาพ</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">ความหมาย</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">วิธีใช้</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th></tr><tr><td class="trow1" valign="top" align="center"><img src="https://3.bp.blogspot.com/-By4hCCXAwLE/WPNTj69ceaI/AAAAAAAAAC4/F-t7j-JQ040p3PECQYLpmVij5A-dSDH0gCEw/s1600/A_01.png" loading="lazy"  alt="[Image: A_01.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">ดำเนินการทั่วไป<br />
(Process)</td><td class="trow1" valign="top" align="center">ใช้กับการดำเนินการทั่วไป เช่น การประกาศตัวแปร การคำนวณ เป็นต้น</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://2.bp.blogspot.com/-CPqw4ztJXKk/WPNTl8K3qyI/AAAAAAAAADE/LpzjyQfQgUAirA5jeTy637L0AcfN9BECwCEw/s1600/A_02.png" loading="lazy"  alt="[Image: A_02.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">ตรวจสอบเงื่อนไข<br />
(Decision)</td><td class="trow1" valign="top" align="center">ใช้ตรวจสอบด้วยเงื่อนไข "ถ้า...แล้ว... (If...Then...)" ลูกศรที่ออกจากรูปภาพนี้ต้องมีสองเส้น เส้นหนึ่งเขียนกำกับว่า "จริง (True)" อีกเส้นหนึ่งเขียนกำกับว่า "เท็จ (False)"</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://2.bp.blogspot.com/-GPAuJTj_tes/WPNTlmPbFgI/AAAAAAAAAC8/k9azcGQWZ5M-zJlN7f19MuqcTzuXkCOmACEw/s1600/A_03.png" loading="lazy"  alt="[Image: A_03.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">แสดงลำดับขั้นตอน<br />
(Arrow)</td><td class="trow1" valign="top" align="center">ใช้บอกลำดับการทำงาน เชื่อมรูปภาพหนึ่งกับอีกรูปภาพหนึ่ง โดยให้ฝั่งหัวลูกศรคือลำดับการทำงานต่อไป รูปภาพหนึ่งจะมีลูกศรออกมาได้แค่ 1 เส้นเท่านั้น ยกเว้นรูปภาพตรวจสอบเงื่อนไขที่มีลูกศรออกมา 2 เส้น</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-05NQ4Gj0Cfw/WPNTlrb-dtI/AAAAAAAAADA/EfSzU6PkDOUP_gL84ERsrpqj09uYWpQZgCEw/s1600/A_04.png" loading="lazy"  alt="[Image: A_04.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเริ่มต้นหรือจุดสิ้นสุด<br />
(Start/End)</td><td class="trow1" valign="top" align="center">ใช้เพื่อกำหนดจุดเริ่มต้นและจุดสิ้นสุด Flowchart ทั้งหมดต้องมีรูปภาพนี้ 2 รูปเสมอ รูปหนึ่งคือจุดเริ่มต้น อีกรูปหนึ่งคือจุดสิ้นสุด</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-05NQ4Gj0Cfw/WPNTlrb-dtI/AAAAAAAAADA/EfSzU6PkDOUP_gL84ERsrpqj09uYWpQZgCEw/s1600/A_04.png" loading="lazy"  alt="[Image: A_04.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">รับข้อมูลหรือแสดงผลแบบไม่เจาะจง<br />
(Input/Output)</td><td class="trow1" valign="top" align="center">ใช้เพื่อรับข้อมูลหรือแสดงผลแบบไม่เจาะจงอุปกรณ์ในการรับข้อมูลหรือแสดงผล</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-t_Q6vRbFKHw/WPNTmp10V2I/AAAAAAAAADQ/ozrBGHsmcrQrZGlbmRRpMqK4Q0OBHZovACEw/s1600/A_06.png" loading="lazy"  alt="[Image: A_06.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเชื่อมต่อภายในหน้าเดียวกัน<br />
(On-Page Reference)</td><td class="trow1" valign="top" align="center">ใช้เชื่อมบริเวณที่มีลูกศรหลายเส้นชี้มารวมกัน เช่น บริเวณหลังจากการตรวจสอบเงื่อนไขอาจจะมีลูกศรชี้มาที่ตำแหน่งเดียวกันหลายเส้น เราจะใช้รูปภาพนี้เพื่อรวมลูกศรเหล่านั้นให้เหลือเพียงเส้นเดียว</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://3.bp.blogspot.com/-KiLqxkQFuI8/WPNTjBwvNFI/AAAAAAAAADQ/t6dXdBoz6DcQwqutiVDftvQbbVrr1NIUwCEw/s1600/A_07.png" loading="lazy"  alt="[Image: A_07.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเชื่อมต่อระหว่างหน้า<br />
(Off-Page Reference)</td><td class="trow1" valign="top" align="center">ใช้เชื่อมการทำงานที่เขียนอยู่คนละหน้ากัน (ในกรณีที่เขียน Flowchart หลายหน้า)</td></tr></table>
<br />
ตัวอย่าง Flowchart ที่อธิบายวิธีการหุงข้าว<br />
<br />
......</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 30% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/3-algorithm.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/3-algorithm.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3064.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 2 เกมเอนจิน (Game Engine)</a> เราได้เรียนรู้ว่า "เกมเอนจินคืออะไร?" และผู้อ่านคงได้เลือกเกมเอนจินที่ตนเองสนใจแล้ว ผู้อ่านทราบแล้วว่าการพัฒนาเกมได้จะต้องป้อนคำสั่งให้กับอุปกรณ์ และในการพัฒนาเกมผู้อ่านคงมีความคิดอยู่แล้วว่าอยากจะให้เกมเป็นแบบไหน อยากให้เกมมีรูปร่างหน้าตาอย่างไร แต่ติดปัญหาตรงที่ว่า "เราจะเปลี่ยนความคิดเหล่านั้นเป็นคำสั่งในเกมได้อย่างไร?" ในบทนี้เราจะมาเรียนวิธีการเปลี่ยนความคิดต่าง ๆ ให้เป็นอัลกอริทึมกัน<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">อัลกอริทึมคืออะไร?</span></span><br />
<br />
อัลกอริทึม (Algorithm) หมายถึงวิธีการแก้ปัญหาแบบเป็นลำดับขั้นตอน โดยลำดับขั้นตอนนั้นจะต้องมีความละเอียด ชัดเจน และสามารถตีความได้อย่างเดียวเท่านั้น ถ้าลองเปิดหนังสือสอนทำอาหาร ส่วนที่เป็นอัลกอรึทึมคือวิธีการทำอาหาร ในการพัฒนาเกมส่วนที่เป็นอัลกอริทึมคือวิธีการทำงานของเกม จากที่ได้เรียนไปในบทที่ 1 ว่า "อุปกรณ์จะทำงานโดยการอ่านคำสั่ง" ดังนั้นอัลกอริทึมของเกมก็คือวิธีการป้อนคำสั่งให้กับอุปกรณ์นั่นเอง<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">ทำไมต้องเขียนอัลกอริทึม?</span></span><br />
<br />
จากที่ได้กล่าวไปตั้งแต่บทที่ 1 แล้วว่า "อุปกรณ์จะทำงานโดยการอ่านคำสั่งทีละบรรทัด" และอัลกอริทึมคือลำดับขั้นตอนในการดำเนินการที่ต้องเขียนเป็นข้อ ๆ ทีละบรรทัด ดังนั้นการเขียนอัลกอริทึมทำให้เราสามารถป้อนคำสั่งให้กับอุปกรณ์ทีละบรรทัดได้อย่างถูกต้อง ถ้าผู้อ่านเขียนอัลกอริทึมไม่ได้ ผู้อ่านก็ป้อนคำสั่งให้กับอุปกรณ์ไม่ได้ เมื่อผู้อ่านป้อนคำสั่งให้กับอุปกรณ์ไม่ได้ ผู้อ่านก็พัฒนาเกมเป็นของตนเองไม่ได้ ต่อให้ผู้อ่านใช้เกมเอนจินที่ใช้งานง่ายแค่ไหนก็ตาม แต่ถ้าผู้อ่านเขียนอัลกอริทึมไม่ได้ ผู้อ่านก็พัฒนาเกมไม่ได้ ดังนั้นอัลกอริทึมจึงเป็นสิ่งสำคัญมากในการพัฒนาเกม<br />
<br />
อัลกอริทึมเป็นหนี่งในสองสิ่งสำคัญในการเขียนโปรแกรมและการพัฒนาเกม สิ่งสำคัญอีกอย่างคือความรู้เกี่ยวกับภาษาอุปกรณ์หรือเกมเอนจินที่ใช้ ในการเขียนโปรแกรมและการพัฒนาเกมไม่จำเป็นต้องมีความรู้ลึกมากก็ได้ แค่มีความรู้พื้นฐานที่สำคัญ และสามารถเปลี่ยนความคิดในหัวเป็นอัลกอริทึมได้ก็เพียงพอแล้ว เกมบางตัวใช้แค่คำสั่งพื้นฐานแต่ก็สามารถเป็นเกมฟอร์มยักษ์ได้ เพราะผู้ที่พัฒนาเกมนั้นรู้จักนำความรู้พื้นฐานมาประยุกต์ใช้ โดยการเขียนอัลกอริทึมที่มีความซับซ้อนจากคำสั่งพื้นฐานที่แม้แต่นักพัฒนาเกมมือใหม่ก็ยังทราบ<br />
<br />
ผู้อ่านที่ไม่เคยเขียนอัลกอริทึมมาก่อนอาจรู้สึกว่าการเขียนอัลกอริทึมเป็นสิ่งที่ยาก เนื่องจากการเขียนอัลกอริทึมต้องเขียนเป็นลำดับทีละข้อ แต่ละข้อต้องละเอียด ไม่กำกวม ไม่คลุมเครือ ตีความได้อย่างเดียวเท่านั้น ยกตัวอย่างเช่น เราสั่งให้เพื่อนที่เป็นมนุษย์ต้มบะหมี่กึ่งสำเร็จรูป เราแค่บอกว่า "ต้มบะหมี่กึ่งสำเร็จรูปให้หน่อย" แค่นี้เพื่อนก็สามารถทำตามความต้องการของเราได้อย่างถูกต้องแล้ว แต่ถ้าใช้คำสั่ง "ต้มบะหมี่กึ่งสำเร็จรูปให้หน่อย" กับหุ่นยนต์ หุ่นยนต์บางตัวอาจงงทำอะไรไม่ถูกกับคำสั่งของเรา หุ่นยนต์บางตัวอาจต้มบะหมี่กึ่งสำเร็จรูปไปทั้งที่ยังไม่ได้ฉีกซองเลย หุ่นยนต์บางตัวอาจใช้นมในการต้มแทนน้ำ หุ่นยนต์บางตัวอาจใช้กระทะในการต้มแทนหม้อ ปัญหาเหล่านี้เกิดจากการใช้คำสั่งที่ไม่ละเอียดและสามารถตีความได้หลายอย่าง ในการเขียนอัลกอริทึมต้องเขียนคำสั่งให้ละเอียด ตีความได้เพียงอย่างเดียว เขียนทุกขั้นตอน ทุกคำสั่ง และต้องเขียนให้คนโง่ที่สุดในโลกก็สามารถทำตามความต้องการของเราได้อย่างถูกต้อง 100%<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เขียนอัลกอริทึมได้อย่างไร?</span></span><br />
<br />
การเขียนอัลกอริทึมสามารถทำได้ 3 แบบ ได้แก่<br />
<br />
1. การเขียนอัลกอริทึมแบบความเรียง วิธีนี้คือการเขียนเป็นข้อความปกติ วิธีนี้เหมาะกับอัลกอริทึมที่มีขนาดเล็กและมีความซับซ้อนน้อย<br />
<br />
ตัวอย่างความเรียงที่อธิบายวิธีการทำไข่ดาว</span><br />
<blockquote class="mycode_quote"><cite>Quote:</cite>นำกระทะไปวางบนเตาแก๊ส เปิดเตาแก๊ส เทน้ำมันพืชลงไปในกระทะ 30 มิลลิลิตร แล้วรอจนกว่าน้ำมันเดือด เมื่อน้ำมันเดือดแล้ว ตอกไข่ไก่ 1 ฟอง แล้วใส่ไข่ขาวกับไข่แดงลงในกระทะ ส่วนเปลือกไข่นั้นให้ทิ้งลงในถังขยะ เสร็จแล้วรอจนกว่าไข่ขาวและไข่แดงเริ่มแข็งตัว เมื่อไข่ขาวและไข่แดงเริ่มแข็งตัวแล้ว ใช้ตะหลิวพลิกไข่ขาวและไข่แดงแล้ววางไว้บนกระทะเหมือนเดิม เมื่อไข่ขาวและไข่แดงสุกแล้ว นำตะหลิวตักไข่ขาวและไข่แดงมาวางไว้บนจาน ปิดเตาแก๊ส เพียงเท่านี้ก็ทำไข่ดาวเสร็จแล้ว</blockquote>
<span style="color: #696969;" class="mycode_color"><br />
<br />
2. การเขียนอัลกอริทึมแบบ Flowchart วิธีนี้คือการใช้รูปภาพในการสื่อความหมาย ทำให้เห็นลำดับขั้นตอนต่าง ๆ ได้ง่ายและชัดเจน รูปภาพที่นำมาใช้จะต้องเป็นรูปภาพสากลที่ทุกคนเข้าใจได้ตรงกัน วิธีนี้เหมาะกับอัลกอริทึมที่มีความซับซ้อนมาก แต่ไม่เหมาะกับอัลกอริทึมที่มีขนาดใหญ่ เนื่องจาก Flowchart ใช้พื้นที่ในการเขียนค่อนข้างมาก<br />
<br />
รูปภาพพื้นฐานที่ควรทราบ ได้แก่<br />
<br />
<table border="0" cellspacing="1" cellpadding="3" class="tborder" style="width:95%;"><tr><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">รูปภาพ</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">ความหมาย</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th><th class="tcat" valign="middle"><strong></span><br />
<div style="text-align: center;" class="mycode_align">วิธีใช้</div>
<span style="color: #696969;" class="mycode_color"><br />
</strong></th></tr><tr><td class="trow1" valign="top" align="center"><img src="https://3.bp.blogspot.com/-By4hCCXAwLE/WPNTj69ceaI/AAAAAAAAAC4/F-t7j-JQ040p3PECQYLpmVij5A-dSDH0gCEw/s1600/A_01.png" loading="lazy"  alt="[Image: A_01.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">ดำเนินการทั่วไป<br />
(Process)</td><td class="trow1" valign="top" align="center">ใช้กับการดำเนินการทั่วไป เช่น การประกาศตัวแปร การคำนวณ เป็นต้น</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://2.bp.blogspot.com/-CPqw4ztJXKk/WPNTl8K3qyI/AAAAAAAAADE/LpzjyQfQgUAirA5jeTy637L0AcfN9BECwCEw/s1600/A_02.png" loading="lazy"  alt="[Image: A_02.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">ตรวจสอบเงื่อนไข<br />
(Decision)</td><td class="trow1" valign="top" align="center">ใช้ตรวจสอบด้วยเงื่อนไข "ถ้า...แล้ว... (If...Then...)" ลูกศรที่ออกจากรูปภาพนี้ต้องมีสองเส้น เส้นหนึ่งเขียนกำกับว่า "จริง (True)" อีกเส้นหนึ่งเขียนกำกับว่า "เท็จ (False)"</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://2.bp.blogspot.com/-GPAuJTj_tes/WPNTlmPbFgI/AAAAAAAAAC8/k9azcGQWZ5M-zJlN7f19MuqcTzuXkCOmACEw/s1600/A_03.png" loading="lazy"  alt="[Image: A_03.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">แสดงลำดับขั้นตอน<br />
(Arrow)</td><td class="trow1" valign="top" align="center">ใช้บอกลำดับการทำงาน เชื่อมรูปภาพหนึ่งกับอีกรูปภาพหนึ่ง โดยให้ฝั่งหัวลูกศรคือลำดับการทำงานต่อไป รูปภาพหนึ่งจะมีลูกศรออกมาได้แค่ 1 เส้นเท่านั้น ยกเว้นรูปภาพตรวจสอบเงื่อนไขที่มีลูกศรออกมา 2 เส้น</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-05NQ4Gj0Cfw/WPNTlrb-dtI/AAAAAAAAADA/EfSzU6PkDOUP_gL84ERsrpqj09uYWpQZgCEw/s1600/A_04.png" loading="lazy"  alt="[Image: A_04.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเริ่มต้นหรือจุดสิ้นสุด<br />
(Start/End)</td><td class="trow1" valign="top" align="center">ใช้เพื่อกำหนดจุดเริ่มต้นและจุดสิ้นสุด Flowchart ทั้งหมดต้องมีรูปภาพนี้ 2 รูปเสมอ รูปหนึ่งคือจุดเริ่มต้น อีกรูปหนึ่งคือจุดสิ้นสุด</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-05NQ4Gj0Cfw/WPNTlrb-dtI/AAAAAAAAADA/EfSzU6PkDOUP_gL84ERsrpqj09uYWpQZgCEw/s1600/A_04.png" loading="lazy"  alt="[Image: A_04.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">รับข้อมูลหรือแสดงผลแบบไม่เจาะจง<br />
(Input/Output)</td><td class="trow1" valign="top" align="center">ใช้เพื่อรับข้อมูลหรือแสดงผลแบบไม่เจาะจงอุปกรณ์ในการรับข้อมูลหรือแสดงผล</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://1.bp.blogspot.com/-t_Q6vRbFKHw/WPNTmp10V2I/AAAAAAAAADQ/ozrBGHsmcrQrZGlbmRRpMqK4Q0OBHZovACEw/s1600/A_06.png" loading="lazy"  alt="[Image: A_06.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเชื่อมต่อภายในหน้าเดียวกัน<br />
(On-Page Reference)</td><td class="trow1" valign="top" align="center">ใช้เชื่อมบริเวณที่มีลูกศรหลายเส้นชี้มารวมกัน เช่น บริเวณหลังจากการตรวจสอบเงื่อนไขอาจจะมีลูกศรชี้มาที่ตำแหน่งเดียวกันหลายเส้น เราจะใช้รูปภาพนี้เพื่อรวมลูกศรเหล่านั้นให้เหลือเพียงเส้นเดียว</td></tr><tr><td class="trow1" valign="top" align="center"><img src="https://3.bp.blogspot.com/-KiLqxkQFuI8/WPNTjBwvNFI/AAAAAAAAADQ/t6dXdBoz6DcQwqutiVDftvQbbVrr1NIUwCEw/s1600/A_07.png" loading="lazy"  alt="[Image: A_07.png]" class="mycode_img" /></td><td class="trow1" valign="top" align="center">จุดเชื่อมต่อระหว่างหน้า<br />
(Off-Page Reference)</td><td class="trow1" valign="top" align="center">ใช้เชื่อมการทำงานที่เขียนอยู่คนละหน้ากัน (ในกรณีที่เขียน Flowchart หลายหน้า)</td></tr></table>
<br />
ตัวอย่าง Flowchart ที่อธิบายวิธีการหุงข้าว<br />
<br />
......</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 30% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/3-algorithm.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/3-algorithm.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 2 เกมเอนจิน (Game Engine)]]></title>
			<link>https://irpg.in.th/thread-3064.html</link>
			<pubDate>Fri, 07 Apr 2017 20:44:26 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3064.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3059.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 1 ปฐมบท - เกม (Game)</a> เราได้เรียนรู้หลักการทำงานของเกม เราได้รู้ว่าอุปกรณ์อ่านคำสั่งทีละบรรทัด และได้รู้ว่าการพัฒนาเกมจะใช้วิธีใส่คำสั่งต่าง ๆ ให้อุปกรณ์อ่านและทำงานตาม การใส่คำสั่งด้วยวิธีตรงคือการเขียนโปรแกรม ซึ่งยังไม่เหมาะสมสำหรับนักพัฒนาเกมมือใหม่ที่ไม่เคยเรียนเขียนโปรแกรมมาก่อน สำหรับนักพัฒนาเกมมือใหม่ผู้เขียนแนะนำให้ใช้เกมเอนจินในการพัฒนาเกม โดยเลือกใช้เกมเอนจินที่ยังไม่ต้องเขียนโปรแกรมอะไรเพิ่มเติมก่อนในช่วงแรก<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมเอนจินคืออะไร?</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">เกมเอนจิน (Game Engine) คือโปรแกรมที่เป็นเครื่องมือช่วยพัฒนาเกม</span> โดยเราจะให้คำสั่งง่าย ๆ กับเกมเอนจิน แล้วเกมเอนจินจะนำคำสั่งของเราไปแปลเป็นคำสั่งที่อุปกรณ์เข้าใจได้อีกทีหนึ่ง ซึ่งจะช่วยลดความยุ่งยากในการพัฒนาเกม เกมเอนจินทำหน้าที่เปรียบเหมือนล่ามที่คอยแปลจากภาษาคนเป็นภาษาของอุปกรณ์นั้น ๆ ทำให้เราสามารถพัฒนาเกมได้โดยไม่จำเป็นต้องเรียนรู้ภาษาเครื่องของอุปกรณ์นั้นเลย จึงทำให้การพัฒนาเกมเป็นเรื่องที่ง่ายขึ้น<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมเอนจินมีตัวไหนบ้าง?</span></span><br />
<br />
เกมเอนจินในปัจจุบันมีหลายตัว เกมเอนจินบางตัวเป็นแบบ Drag &amp; Click ผู้ใช้งานไม่ต้องเขียนโปรแกรมอะไรเลย แค่ใช้เมาส์คลิกก็เป็นเกมขึ้นมาได้ เกมเอนจินบางตัวเป็นแบบต้องเขียนสคริปต์ (Script) หรือเขียนโปรแกรมเพิ่มเติม ด้านล่างนี้คือตัวอย่างเกมเอนจินที่มีในปัจจุบัน</span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">RPG Maker</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, RPG, Action, Adventure<br />
<br />
RPG Maker เป็นเกมเอนจินที่ได้รับความนิยมเป็นอย่างมาก เนื่องจากสามารถพัฒนาเกมได้ง่าย เพียงแค่คลิกปุ่มต่าง ๆ ก็สามารถพัฒนาเกมได้แล้ว ในขณะเดียวกันก็สามารถเขียนสคริปต์ต่าง ๆ เพิ่มเติมได้ จนมีคำกล่าวว่า "ง่ายพอสำหรับเด็ก แต่ก็ยืดหยุ่นพอสำหรับนักพัฒนา" เกมเอนจินตัวนี้ได้มีการพัฒนามายาวนานหลายรุ่นตั้งแต่รุ่น 2000, 2003, XP, VX, VX Ace และรุ่นล่าสุดคือ MV ซึ่งรุ่น MV รองรับการใช้งาน Unicode และสามารถเปิดเกมได้บนหลากหลายระบบปฏิบัติการทั้ง Windows, Macintosh, Linux, iOS, Android นอกจากนี้ยังสามารถเปิดเกมบนเว็บเบราเซอร์ (Web Browser) ได้อีกด้วย ด้วยเหตุผลที่กล่าวมาทำให้ RPG Maker เป็นเกมเอนจินที่หลายคนชื่นชอบและเหมาะสำหรับนักพัฒนาเกมมือใหม่</span><br />
<br />
<span style="color: #696969;" class="mycode_color"><img src="https://3.bp.blogspot.com/-FRbmBv1I9lo/WOeuopg28rI/AAAAAAAAAAQ/C4sxUYkII90nTWjJFx5aTPfP6I-XvqjuQCLcB/s1600/01-1.jpg" loading="lazy"  alt="[Image: 01-1.jpg]" class="mycode_img" /></span><br />
<span style="color: #696969;" class="mycode_color"><img src="https://2.bp.blogspot.com/-BuRAX_egStk/WOeussyx6fI/AAAAAAAAAAU/BSAiDVG_GNADESizfJtQDczJB-UncNBCQCLcB/s1600/01-2.jpg" loading="lazy"  alt="[Image: 01-2.jpg]" class="mycode_img" /></span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Game Maker</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, Action, Adventure, Arcade<br />
<br />
<br />
นึกถึงเกมเดินฟันสองมิติใช่ไหม? Game Maker ตอบโจทย์ให้คุณได้ Game Maker เป็นเกมเอนจินที่สามารถพัฒนาเกมสองมิติได้หลายแนวมากตั้งแต่เกมงู, เกม Mario, เกมเดินฟัน, เกมวิ่งเก็บเหรียญ และอีกหลาย ๆ เกม Game Maker จึงเป็นเกมเอนจินที่เหมาะสำหรับนักพัฒนาเกมที่ชื่นชอบเกมสองมิติเป็นอย่างยิ่ง</span><br />
<img src="https://1.bp.blogspot.com/-ZXxAPKySUm4/WOeuc-ILpNI/AAAAAAAAAAM/UyIlthE_paMwYJT6WbllxZZ4SRDd1o22QCLcB/s1600/02-2.jpg" loading="lazy"  alt="[Image: 02-2.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Adobe Flash</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, Action, Adventure, Arcade<br />
<br />
......<br />
</span><br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/2-game-engine.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/2-game-engine.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากบทที่แล้ว <a href="http://irpg.in.th/thread-3059.html" target="_blank" rel="noopener" class="mycode_url">บทที่ 1 ปฐมบท - เกม (Game)</a> เราได้เรียนรู้หลักการทำงานของเกม เราได้รู้ว่าอุปกรณ์อ่านคำสั่งทีละบรรทัด และได้รู้ว่าการพัฒนาเกมจะใช้วิธีใส่คำสั่งต่าง ๆ ให้อุปกรณ์อ่านและทำงานตาม การใส่คำสั่งด้วยวิธีตรงคือการเขียนโปรแกรม ซึ่งยังไม่เหมาะสมสำหรับนักพัฒนาเกมมือใหม่ที่ไม่เคยเรียนเขียนโปรแกรมมาก่อน สำหรับนักพัฒนาเกมมือใหม่ผู้เขียนแนะนำให้ใช้เกมเอนจินในการพัฒนาเกม โดยเลือกใช้เกมเอนจินที่ยังไม่ต้องเขียนโปรแกรมอะไรเพิ่มเติมก่อนในช่วงแรก<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมเอนจินคืออะไร?</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">เกมเอนจิน (Game Engine) คือโปรแกรมที่เป็นเครื่องมือช่วยพัฒนาเกม</span> โดยเราจะให้คำสั่งง่าย ๆ กับเกมเอนจิน แล้วเกมเอนจินจะนำคำสั่งของเราไปแปลเป็นคำสั่งที่อุปกรณ์เข้าใจได้อีกทีหนึ่ง ซึ่งจะช่วยลดความยุ่งยากในการพัฒนาเกม เกมเอนจินทำหน้าที่เปรียบเหมือนล่ามที่คอยแปลจากภาษาคนเป็นภาษาของอุปกรณ์นั้น ๆ ทำให้เราสามารถพัฒนาเกมได้โดยไม่จำเป็นต้องเรียนรู้ภาษาเครื่องของอุปกรณ์นั้นเลย จึงทำให้การพัฒนาเกมเป็นเรื่องที่ง่ายขึ้น<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมเอนจินมีตัวไหนบ้าง?</span></span><br />
<br />
เกมเอนจินในปัจจุบันมีหลายตัว เกมเอนจินบางตัวเป็นแบบ Drag &amp; Click ผู้ใช้งานไม่ต้องเขียนโปรแกรมอะไรเลย แค่ใช้เมาส์คลิกก็เป็นเกมขึ้นมาได้ เกมเอนจินบางตัวเป็นแบบต้องเขียนสคริปต์ (Script) หรือเขียนโปรแกรมเพิ่มเติม ด้านล่างนี้คือตัวอย่างเกมเอนจินที่มีในปัจจุบัน</span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">RPG Maker</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, RPG, Action, Adventure<br />
<br />
RPG Maker เป็นเกมเอนจินที่ได้รับความนิยมเป็นอย่างมาก เนื่องจากสามารถพัฒนาเกมได้ง่าย เพียงแค่คลิกปุ่มต่าง ๆ ก็สามารถพัฒนาเกมได้แล้ว ในขณะเดียวกันก็สามารถเขียนสคริปต์ต่าง ๆ เพิ่มเติมได้ จนมีคำกล่าวว่า "ง่ายพอสำหรับเด็ก แต่ก็ยืดหยุ่นพอสำหรับนักพัฒนา" เกมเอนจินตัวนี้ได้มีการพัฒนามายาวนานหลายรุ่นตั้งแต่รุ่น 2000, 2003, XP, VX, VX Ace และรุ่นล่าสุดคือ MV ซึ่งรุ่น MV รองรับการใช้งาน Unicode และสามารถเปิดเกมได้บนหลากหลายระบบปฏิบัติการทั้ง Windows, Macintosh, Linux, iOS, Android นอกจากนี้ยังสามารถเปิดเกมบนเว็บเบราเซอร์ (Web Browser) ได้อีกด้วย ด้วยเหตุผลที่กล่าวมาทำให้ RPG Maker เป็นเกมเอนจินที่หลายคนชื่นชอบและเหมาะสำหรับนักพัฒนาเกมมือใหม่</span><br />
<br />
<span style="color: #696969;" class="mycode_color"><img src="https://3.bp.blogspot.com/-FRbmBv1I9lo/WOeuopg28rI/AAAAAAAAAAQ/C4sxUYkII90nTWjJFx5aTPfP6I-XvqjuQCLcB/s1600/01-1.jpg" loading="lazy"  alt="[Image: 01-1.jpg]" class="mycode_img" /></span><br />
<span style="color: #696969;" class="mycode_color"><img src="https://2.bp.blogspot.com/-BuRAX_egStk/WOeussyx6fI/AAAAAAAAAAU/BSAiDVG_GNADESizfJtQDczJB-UncNBCQCLcB/s1600/01-2.jpg" loading="lazy"  alt="[Image: 01-2.jpg]" class="mycode_img" /></span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Game Maker</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, Action, Adventure, Arcade<br />
<br />
<br />
นึกถึงเกมเดินฟันสองมิติใช่ไหม? Game Maker ตอบโจทย์ให้คุณได้ Game Maker เป็นเกมเอนจินที่สามารถพัฒนาเกมสองมิติได้หลายแนวมากตั้งแต่เกมงู, เกม Mario, เกมเดินฟัน, เกมวิ่งเก็บเหรียญ และอีกหลาย ๆ เกม Game Maker จึงเป็นเกมเอนจินที่เหมาะสำหรับนักพัฒนาเกมที่ชื่นชอบเกมสองมิติเป็นอย่างยิ่ง</span><br />
<img src="https://1.bp.blogspot.com/-ZXxAPKySUm4/WOeuc-ILpNI/AAAAAAAAAAM/UyIlthE_paMwYJT6WbllxZZ4SRDd1o22QCLcB/s1600/02-2.jpg" loading="lazy"  alt="[Image: 02-2.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Adobe Flash</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">แนวเกมที่พัฒนาได้ :</span> 2D, Action, Adventure, Arcade<br />
<br />
......<br />
</span><br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/04/2-game-engine.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/04/2-game-engine.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 1 ปฐมบท - เกม (Game)]]></title>
			<link>https://irpg.in.th/thread-3059.html</link>
			<pubDate>Thu, 30 Mar 2017 19:33:05 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=4093">Mikichan</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3059.html</guid>
			<description><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">มีความฝันอยากสร้างเกมเป็นของตัวเอง แต่ไม่รู้ว่าต้องทำอย่างไร ที่นี่มีคำตอบ......<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมคืออะไร?</span></span><br />
</span><br />
<span style="color: #696969;" class="mycode_color">ก่อนจะสร้างคิดจะสร้างเกมสักเกม ต้องตอบคำถามนี้ให้ได้ก่อนว่า "เกมคืออะไร?" เพื่อที่จะได้สร้างเกมได้ตรงตามความหมายและความต้องการของเรา ผู้เขียนเชื่อว่าคนที่เข้ามาอ่านบทความนี้ทุกคนเคยเล่นเกมมาก่อน ว่าแต่เกมคืออะไรกันนะ? ด้านล่างนี้คือตัวอย่างนิยามของคำว่าเกม (Game)</span><br />
<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"(N.) An activity that one engages in for amusement or fun." <span style="font-style: italic;" class="mycode_i">- Oxford Dictionary</span><br />
"กิจกรรมที่สร้างความบันเทิงหรือความสนุกสนาน"</span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"(N.) an entertaining activity or sport, especially one played by children, or the equipment needed for such an activity: a board game, indoor/computer games" <span style="font-style: italic;" class="mycode_i">- Cambridge Dictionary</span><br />
"กิจกรรมบันเทิงหรือกีฬา, มักถูกเล่นโดยเด็ก, หรืออุปกรณ์ที่ใช้ในการทำกิจกรรม เช่น เกมกระดาน, เกมในร่ม, เกมคอมพิวเตอร์"</span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"น. การแข่งขันที่มีกติกากำหนด เช่น เกมกีฬา, การเล่นเพื่อความสนุก เช่น เกมคอมพิวเตอร์, การแสดงเพื่อสาธิตกิจกรรม เช่น เกมการบริหาร, โดยปริยายหมายถึงการแสดงที่ใช้กลวิธีหรือเล่ห์เหลี่ยมเพื่อหักล้างกัน เช่น เกมการเมือง, ลักษณนามเรียกการแข่งขันหรือการเล่นที่จบลงด้วยการแพ้ชนะกันครั้งหนึ่ง ๆ เช่น เล่นแบดมินตัน ๓ เกม. (อ. game)." <span style="font-style: italic;" class="mycode_i">- พจนานุกรมฉบับราชบัณฑิตสถาน พ.ศ.2554</span></span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"กิจกรรมที่สร้างความสนุกสนานให้กับผู้เข้าร่วมกิจกรรม" <span style="font-style: italic;" class="mycode_i">- ผู้เขียน</span></span></blockquote>
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากตัวอย่างด้านบนจะเห็นว่า เกมมีคำนิยามที่ค่อนข้างกว้างมาก มีหลายสิ่งหลายอย่างที่สามารถเรียกว่าเกมได้ เช่น เกมกีฬา เกมกระดาน เกมไพ่ เกมคอมพิวเตอร์ แล้วสิ่งที่เรากำลังกล่าวถึงล่ะคือเกมประเภทไหน? "วิดีโอเกม (Video Game)" คือเกมที่เล่นบนอุปกรณ์อิเล็กทรอนิกส์ ซึ่งมีความหมายกว้างกว่าเกมคอมพิวเตอร์ (Computer Game) เพราะรวมไปถึงเกมโทรศัพท์ (Mobile Game) เกมคอนโซล (Console Game) และเกมบนอุปกรณ์อิเล็กทรอนิกส์อื่น ๆ ด้วย เกมที่เรากล่าวถึงในบทความนี้ก็คือวิดีโอเกมนั่นเอง</span><br />
<br />
<br />
<span style="color: #FF0000;" class="mycode_color">***จากนี้ไปจะเรียกอุปกรณ์อิเล็กทรอนิกส์แบบดิจิตอล (Digital) ที่ใช้เล่นวิดีโอเกมอย่างสั้น ๆ ว่า "อุปกรณ์" เพื่อให้มีความหมายครอบคลุมอุปกรณ์อิเล็กทรอนิกส์ทุกชนิด ไม่เฉพาะเจาะจงว่าเป็นคอมพิวเตอร์หรืออุปกรณ์ใดอุปกรณ์หนึ่ง เนื่องจากตอนนี้เรากำลังศึกษาเกี่ยวกับวิดีโอเกมแบบกว้าง ๆ ยังไม่เจาะจงอุปกรณ์ใดอุปกรณ์หนึ่งเป็นพิเศษ***</span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมทำงานได้อย่างไร?</span></span><br />
</span><br />
<span style="color: #696969;" class="mycode_color">ก่อนที่จะศึกษาวิธีสร้างเกม เราต้องรู้หลักการทำงานของเกมก่อนว่า "เกมทำงานได้อย่างไร?"<br />
<br />
<br />
เกมถือว่าเป็นแอปพลิเคชัน (Application) รูปแบบหนึ่ง ข้อมูลและคำสั่ง (Code) ในเกมจะถูกบันทึกเป็นภาษาเครื่อง (Machine Code) ซึ่งใช้สัญลักษณ์แทนด้วยเลขฐานสอง (Binary) เมื่อเราเปิดแอปพลิเคชันขึ้นมาอุปกรณ์จะอ่านคำสั่งออกมาทีละคำสั่ง แล้วดำเนินการตามคำสั่งนั้น ๆ เช่น เกม zyx มีคำสั่งดังต่อไปนี้<br />
</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//ตัวอย่างเกม zyx<br />
บรรทัดที่ 1. แสดงหน้าจอ Title ของเกม<br />
บรรทัดที่ 2. เล่นเพลงประกอบ abc.def<br />
บรรทัดที่ 3. ตรวจจับการกดคีย์บอร์ด<br />
บรรทัดที่ 4. ถ้ามีการกดปุ่ม Enter บนคีย์บอร์ดให้แสดงหน้าจอ New Game แทนหน้าจอ Title (เปลี่ยนหน้าจอใหม่)</code></div></div><br />
<br />
<span style="color: #696969;" class="mycode_color">ลำดับการทำงานของเกม zyx จะเป็นดังนี้</span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/03/1-game.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/03/1-game.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></description>
			<content:encoded><![CDATA[<span style="font-style: italic;" class="mycode_i"><span style="color: #ff6633;" class="mycode_color">ติดตามเราได้ที่ <a href="https://www.facebook.com/PlanilaGameDeveloper" target="_blank" rel="noopener" class="mycode_url">Facebook ชื่อเพจ Planila Game Developer</a></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">มีความฝันอยากสร้างเกมเป็นของตัวเอง แต่ไม่รู้ว่าต้องทำอย่างไร ที่นี่มีคำตอบ......<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมคืออะไร?</span></span><br />
</span><br />
<span style="color: #696969;" class="mycode_color">ก่อนจะสร้างคิดจะสร้างเกมสักเกม ต้องตอบคำถามนี้ให้ได้ก่อนว่า "เกมคืออะไร?" เพื่อที่จะได้สร้างเกมได้ตรงตามความหมายและความต้องการของเรา ผู้เขียนเชื่อว่าคนที่เข้ามาอ่านบทความนี้ทุกคนเคยเล่นเกมมาก่อน ว่าแต่เกมคืออะไรกันนะ? ด้านล่างนี้คือตัวอย่างนิยามของคำว่าเกม (Game)</span><br />
<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"(N.) An activity that one engages in for amusement or fun." <span style="font-style: italic;" class="mycode_i">- Oxford Dictionary</span><br />
"กิจกรรมที่สร้างความบันเทิงหรือความสนุกสนาน"</span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"(N.) an entertaining activity or sport, especially one played by children, or the equipment needed for such an activity: a board game, indoor/computer games" <span style="font-style: italic;" class="mycode_i">- Cambridge Dictionary</span><br />
"กิจกรรมบันเทิงหรือกีฬา, มักถูกเล่นโดยเด็ก, หรืออุปกรณ์ที่ใช้ในการทำกิจกรรม เช่น เกมกระดาน, เกมในร่ม, เกมคอมพิวเตอร์"</span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"น. การแข่งขันที่มีกติกากำหนด เช่น เกมกีฬา, การเล่นเพื่อความสนุก เช่น เกมคอมพิวเตอร์, การแสดงเพื่อสาธิตกิจกรรม เช่น เกมการบริหาร, โดยปริยายหมายถึงการแสดงที่ใช้กลวิธีหรือเล่ห์เหลี่ยมเพื่อหักล้างกัน เช่น เกมการเมือง, ลักษณนามเรียกการแข่งขันหรือการเล่นที่จบลงด้วยการแพ้ชนะกันครั้งหนึ่ง ๆ เช่น เล่นแบดมินตัน ๓ เกม. (อ. game)." <span style="font-style: italic;" class="mycode_i">- พจนานุกรมฉบับราชบัณฑิตสถาน พ.ศ.2554</span></span></blockquote>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite><span style="color: #696969;" class="mycode_color">"กิจกรรมที่สร้างความสนุกสนานให้กับผู้เข้าร่วมกิจกรรม" <span style="font-style: italic;" class="mycode_i">- ผู้เขียน</span></span></blockquote>
<br />
<br />
<span style="color: #696969;" class="mycode_color">จากตัวอย่างด้านบนจะเห็นว่า เกมมีคำนิยามที่ค่อนข้างกว้างมาก มีหลายสิ่งหลายอย่างที่สามารถเรียกว่าเกมได้ เช่น เกมกีฬา เกมกระดาน เกมไพ่ เกมคอมพิวเตอร์ แล้วสิ่งที่เรากำลังกล่าวถึงล่ะคือเกมประเภทไหน? "วิดีโอเกม (Video Game)" คือเกมที่เล่นบนอุปกรณ์อิเล็กทรอนิกส์ ซึ่งมีความหมายกว้างกว่าเกมคอมพิวเตอร์ (Computer Game) เพราะรวมไปถึงเกมโทรศัพท์ (Mobile Game) เกมคอนโซล (Console Game) และเกมบนอุปกรณ์อิเล็กทรอนิกส์อื่น ๆ ด้วย เกมที่เรากล่าวถึงในบทความนี้ก็คือวิดีโอเกมนั่นเอง</span><br />
<br />
<br />
<span style="color: #FF0000;" class="mycode_color">***จากนี้ไปจะเรียกอุปกรณ์อิเล็กทรอนิกส์แบบดิจิตอล (Digital) ที่ใช้เล่นวิดีโอเกมอย่างสั้น ๆ ว่า "อุปกรณ์" เพื่อให้มีความหมายครอบคลุมอุปกรณ์อิเล็กทรอนิกส์ทุกชนิด ไม่เฉพาะเจาะจงว่าเป็นคอมพิวเตอร์หรืออุปกรณ์ใดอุปกรณ์หนึ่ง เนื่องจากตอนนี้เรากำลังศึกษาเกี่ยวกับวิดีโอเกมแบบกว้าง ๆ ยังไม่เจาะจงอุปกรณ์ใดอุปกรณ์หนึ่งเป็นพิเศษ***</span><br />
<br />
<br />
<br />
<span style="color: #696969;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">เกมทำงานได้อย่างไร?</span></span><br />
</span><br />
<span style="color: #696969;" class="mycode_color">ก่อนที่จะศึกษาวิธีสร้างเกม เราต้องรู้หลักการทำงานของเกมก่อนว่า "เกมทำงานได้อย่างไร?"<br />
<br />
<br />
เกมถือว่าเป็นแอปพลิเคชัน (Application) รูปแบบหนึ่ง ข้อมูลและคำสั่ง (Code) ในเกมจะถูกบันทึกเป็นภาษาเครื่อง (Machine Code) ซึ่งใช้สัญลักษณ์แทนด้วยเลขฐานสอง (Binary) เมื่อเราเปิดแอปพลิเคชันขึ้นมาอุปกรณ์จะอ่านคำสั่งออกมาทีละคำสั่ง แล้วดำเนินการตามคำสั่งนั้น ๆ เช่น เกม zyx มีคำสั่งดังต่อไปนี้<br />
</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>//ตัวอย่างเกม zyx<br />
บรรทัดที่ 1. แสดงหน้าจอ Title ของเกม<br />
บรรทัดที่ 2. เล่นเพลงประกอบ abc.def<br />
บรรทัดที่ 3. ตรวจจับการกดคีย์บอร์ด<br />
บรรทัดที่ 4. ถ้ามีการกดปุ่ม Enter บนคีย์บอร์ดให้แสดงหน้าจอ New Game แทนหน้าจอ Title (เปลี่ยนหน้าจอใหม่)</code></div></div><br />
<br />
<span style="color: #696969;" class="mycode_color">ลำดับการทำงานของเกม zyx จะเป็นดังนี้</span><br />
<br />
......<br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!</span></span></span><br />
<br />
<br />
<span style="color: #696969;" class="mycode_color">เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)</span><br />
<br />
<span style="color: #ff6633;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">บทความต้นฉบับ</span> <a href="https://planila.blogspot.com/2017/03/1-game.html" target="_blank" rel="noopener" class="mycode_url">https://planila.blogspot.com/2017/03/1-game.html</a></span></span><br />
<br />
<a href="https://planila.blogspot.com" target="_blank" rel="noopener" class="mycode_url"><img src="https://1.bp.blogspot.com/-_c9ZVu7xIrY/XTENAwClQsI/AAAAAAAAAcQ/0-BqKQzGcPsYp9iSfpf1VfFizjZqVv-swCLcBGAs/s1600/%25E0%25B8%259A%25E0%25B8%2597%25E0%25B8%2584%25E0%25B8%25A7%25E0%25B8%25B2%25E0%25B8%25A1%25E0%25B8%2599%25E0%25B8%25B5%25E0%25B9%2589%25E0%25B8%2596%25E0%25B8%25B9%25E0%25B8%2581%25E0%25B8%2588%25E0%25B8%25B3%25E0%25B8%2581%25E0%25B8%25B1%25E0%25B8%2594%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B9%2580%25E0%25B8%259C%25E0%25B8%25A2%25E0%25B9%2581%25E0%25B8%259E%25E0%25B8%25A3%25E0%25B9%2588.png" loading="lazy"  alt="[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]" class="mycode_img" /></a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[อุปกรณ์ที่พบได้ทั่วไปในเกมแฟนตาซีครับ]]></title>
			<link>https://irpg.in.th/thread-3008.html</link>
			<pubDate>Thu, 01 Dec 2016 17:01:43 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=248">Kuruni</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-3008.html</guid>
			<description><![CDATA[ข้อมูลจากเนื้อหาเปิดของ Ultimate Equipment ที่<a href="http://paizo.com/pathfinderRPG/prd/ultimateEquipment/armsAndArmor/armor.html" target="_blank" rel="noopener" class="mycode_url">Pathfinder RPG Reference Document</a> ครับ ตอนนี้เอาแค่เกราะเบาก่อน<br />
<br />
เกริ่นนำก่อนเล็กน้อย เกราะใน Pathfinder แบ่งเป็นสามหมวดคือเกราะเบา กลาง และหนัก ซึ่งตัวละครจะได้ความชำนาญในการสวมเกราะแต่ละหมวดมาตามคลาสหรือใช้ฝีมือ (feat) ที่ได้เพิ่มมาตามเลเวล แต่ไม่ว่ากรณีไหนตัวละครที่มีความชำนาญเกราะที่หนักกว่าก็ต้องมีความชำนาญเกราะที่เบากว่าก่อน<br />
<br />
เกราะแต่ละแบบนั้นจะมีค่าสำคัญในเกมคือ ราคา (ฮ่าๆ) โบนัสเกราะ (แทนพลังป้องกัน ลดโอกาสที่ทำให้ศัตรูจะโจมตีโดน ถ้าใครงง ก็คิดซะว่าการ"หลบ"ในที่นี้รวมที่เวลาโดนโจมตีแล้วเกราะกันไว้ได้ด้วย) โบนัสความคล่องแคล่วสูงสุดที่ใช้ได้ (แทนความคล่องตัว เกราะที่ค่านี้สูงๆหน่อยก็ประมาณว่าคนธรรมดาสวมแล้วอาจไม่รู้สึก แต่ตัวที่ไวมากๆจะรู้สึกขัด) ค่าหักเกราะ (ตัวแทนความเกะกะและหนักของเกราะ ทำให้เวลาทำอะไรที่ต้องใช้ความคล่องแคล่วหรือกำลังแล้วจะยากขึ้น ตัวละครที่สวมเกราะที่ตนไม่มีความชำนาญนั้นจะโดนหักความแม่นตอนโจมตีด้วยอีกอย่าง) โอกาสร่ายคาถาพลาด (คาถาที่ต้องออกท่ามากๆ พอสวมเกราะแล้วจะมีโอกาส"ผิดท่า"น่ะ) แล้วก็น้ำหนัก (มีไว้คิดเวลาแบกน้ำหนักของที่แบกๆอยู่)<br />
<br />
เกราะเบาชั้นดีๆกับเกราะกลางห่วยๆนั้นบางทีพลังป้องกันกับความคล่องตัวไม่ต่างกันเลย แต่ที่ต่างกันคือเกราะกลางนั้นสวมแล้วความเร็วในการเดินจะลดลงด้วย อีกอย่างคือเกราะเบานั้นเป็นเกราะที่สวมเข้านอนได้ ตัวละครที่สวมเกราะหนักหรือกลางเข้านอนวันรุ่งขึ้นจะติดสถานะล้า (fatigue) แต่เกราะที่ตีจากมิธริลนั้นจะนับว่าเบากว่าเดิมขั้นหนึ่ง ฉะนั้นเกราะกลางที่ตีจากมิธริลก็จะนับเป็นเกราะเบา แต่มีพลังป้องกันเท่าเดิม<br />
<br />
อนึ่ง Pathfinder ไม่นับพวกเสื้อผ้าทั่วๆไปเป็นเกราะนะ ผมเขียนแค่ลักษณะภายนอก ใครสนใจค่าพลังที่กล่าวไปแล้วตามลิงค์ไปดูเอง<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Haramaki</span><br />
ผ้าคาดพุง แบบที่นับเป็นเกราะนี้จะมีข่ายโซ่หรือแผ่นเหล็กร้อยไว้รอบๆป้องกันอวัยวะภายใน<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Padded</span><br />
ผ้านวม ยัดไส้หลายๆชั้นให้หนาเข้าไว้ นับเป็นเครื่องป้องกันราคาถูกแต่คล่องตัว<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Quilted cloth</span><br />
Padded ที่ออกแบบให้ชั้นในของผ้ามีโครงสร้างที่กันไม่ให้อาวุธแทงเล็กๆอย่างธนูกลของกับดักหรือลูกดอกแทงไปถึงตัวคนสวมได้ แต่กับอาวุธอื่นๆก็ไม่ต่างจาก padded (แต่ราคาแพงกว่ามากมาย)<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Silken ceremonial</span><br />
ชุดพิธี เป็นผ้าหลายชั้นโดยที่ชั้นนอกสุดเป็นผ้าไหมปักทองกับกระดุมเหล็ก สามารถสวมทับเกราะที่หนักกว่าได้ แต่ในกรณีนั้นจะไม่เพิ่มพลังป้องกันแต่อย่างใด<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lamellar cuirass</span><br />
ชุดเกราะที่ประกอบด้วยเกราะอกแบบเบากับเกราะไหล่ที่ทำจากหนังเคลือบยางไม้ เย็บเข้าด้วยกันบนเสื้อ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Leather</span><br />
ชุดเกราะหนัง ทำจากแผ่นหนังเอาไปต้มเพิ่มความทนทานแล้วเอามาเย็บเข้าด้วยกัน เป็นชุดเกราะยอดนิยมแบบหนึ่งเพราะถึงจะไม่ทนทานเท่าเกราะเหล็กแต่ความคล่องตัวอยู่ในระดับดี แถมยังราคาถูกโดนใจผู้กล้ามือใหม่<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Parade</span><br />
ชุดเดินสวนสนามของประเทศที่กองทัพมีระดับพอสมควร ลักษณะของชุดแบบนี้จะต่างกันไปตามแต่กองทัพ แต่จะเป็นชุดเกราะเสมอแม้จะไม่มีพลังป้องกันเท่าชุดรบจริง ประโยชน์ของชุดนี้ก็คือมีไว้บอก(หรือหลอก)คนอื่นว่าเป็นเป็นคนในกองทัพ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Studded leather</span><br />
ปรับปรุงมาจากชุดเกราะหนังโดยติดปุ่มเหล็กไว้เป็นแนวตามจุดสำคัญ พลังป้องกันจะสูงกว่าเดิมแต่ความคล่องตัวก็ลดลงไป<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Wooden</span><br />
เกราะหนังที่เสริมด้วยแผ่นไม้ผิงไฟเสริมความแข็งแกร่งปิดตามจุดสำคัญ พลังป้องกันสูงกว่าเกราะหนังล้วนๆแต่ไม่เท่าเหล็ก จุดเด่นของเกราะนี้คือไม้มันลอยน้ำนิดๆ เวลาว่ายน้ำจึงง่ายกว่าเกราะเหล็ก<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Chain shirt</span><br />
เกราะที่ถักด้วยโซ่เหล็กขนาดเล็ก สวมป้องกันลำตัวทั้งตัว<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lamellar (leather)</span><br />
Lamellar เป็นเกราะประเภทที่้แผ่นวัสดุมาเย็บกันเป็นแถวๆเรียงกัน แบบที่เป็นเกราะเบานี้ทำจากหนังเคลือบยางไม้]]></description>
			<content:encoded><![CDATA[ข้อมูลจากเนื้อหาเปิดของ Ultimate Equipment ที่<a href="http://paizo.com/pathfinderRPG/prd/ultimateEquipment/armsAndArmor/armor.html" target="_blank" rel="noopener" class="mycode_url">Pathfinder RPG Reference Document</a> ครับ ตอนนี้เอาแค่เกราะเบาก่อน<br />
<br />
เกริ่นนำก่อนเล็กน้อย เกราะใน Pathfinder แบ่งเป็นสามหมวดคือเกราะเบา กลาง และหนัก ซึ่งตัวละครจะได้ความชำนาญในการสวมเกราะแต่ละหมวดมาตามคลาสหรือใช้ฝีมือ (feat) ที่ได้เพิ่มมาตามเลเวล แต่ไม่ว่ากรณีไหนตัวละครที่มีความชำนาญเกราะที่หนักกว่าก็ต้องมีความชำนาญเกราะที่เบากว่าก่อน<br />
<br />
เกราะแต่ละแบบนั้นจะมีค่าสำคัญในเกมคือ ราคา (ฮ่าๆ) โบนัสเกราะ (แทนพลังป้องกัน ลดโอกาสที่ทำให้ศัตรูจะโจมตีโดน ถ้าใครงง ก็คิดซะว่าการ"หลบ"ในที่นี้รวมที่เวลาโดนโจมตีแล้วเกราะกันไว้ได้ด้วย) โบนัสความคล่องแคล่วสูงสุดที่ใช้ได้ (แทนความคล่องตัว เกราะที่ค่านี้สูงๆหน่อยก็ประมาณว่าคนธรรมดาสวมแล้วอาจไม่รู้สึก แต่ตัวที่ไวมากๆจะรู้สึกขัด) ค่าหักเกราะ (ตัวแทนความเกะกะและหนักของเกราะ ทำให้เวลาทำอะไรที่ต้องใช้ความคล่องแคล่วหรือกำลังแล้วจะยากขึ้น ตัวละครที่สวมเกราะที่ตนไม่มีความชำนาญนั้นจะโดนหักความแม่นตอนโจมตีด้วยอีกอย่าง) โอกาสร่ายคาถาพลาด (คาถาที่ต้องออกท่ามากๆ พอสวมเกราะแล้วจะมีโอกาส"ผิดท่า"น่ะ) แล้วก็น้ำหนัก (มีไว้คิดเวลาแบกน้ำหนักของที่แบกๆอยู่)<br />
<br />
เกราะเบาชั้นดีๆกับเกราะกลางห่วยๆนั้นบางทีพลังป้องกันกับความคล่องตัวไม่ต่างกันเลย แต่ที่ต่างกันคือเกราะกลางนั้นสวมแล้วความเร็วในการเดินจะลดลงด้วย อีกอย่างคือเกราะเบานั้นเป็นเกราะที่สวมเข้านอนได้ ตัวละครที่สวมเกราะหนักหรือกลางเข้านอนวันรุ่งขึ้นจะติดสถานะล้า (fatigue) แต่เกราะที่ตีจากมิธริลนั้นจะนับว่าเบากว่าเดิมขั้นหนึ่ง ฉะนั้นเกราะกลางที่ตีจากมิธริลก็จะนับเป็นเกราะเบา แต่มีพลังป้องกันเท่าเดิม<br />
<br />
อนึ่ง Pathfinder ไม่นับพวกเสื้อผ้าทั่วๆไปเป็นเกราะนะ ผมเขียนแค่ลักษณะภายนอก ใครสนใจค่าพลังที่กล่าวไปแล้วตามลิงค์ไปดูเอง<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Haramaki</span><br />
ผ้าคาดพุง แบบที่นับเป็นเกราะนี้จะมีข่ายโซ่หรือแผ่นเหล็กร้อยไว้รอบๆป้องกันอวัยวะภายใน<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Padded</span><br />
ผ้านวม ยัดไส้หลายๆชั้นให้หนาเข้าไว้ นับเป็นเครื่องป้องกันราคาถูกแต่คล่องตัว<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Quilted cloth</span><br />
Padded ที่ออกแบบให้ชั้นในของผ้ามีโครงสร้างที่กันไม่ให้อาวุธแทงเล็กๆอย่างธนูกลของกับดักหรือลูกดอกแทงไปถึงตัวคนสวมได้ แต่กับอาวุธอื่นๆก็ไม่ต่างจาก padded (แต่ราคาแพงกว่ามากมาย)<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Silken ceremonial</span><br />
ชุดพิธี เป็นผ้าหลายชั้นโดยที่ชั้นนอกสุดเป็นผ้าไหมปักทองกับกระดุมเหล็ก สามารถสวมทับเกราะที่หนักกว่าได้ แต่ในกรณีนั้นจะไม่เพิ่มพลังป้องกันแต่อย่างใด<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lamellar cuirass</span><br />
ชุดเกราะที่ประกอบด้วยเกราะอกแบบเบากับเกราะไหล่ที่ทำจากหนังเคลือบยางไม้ เย็บเข้าด้วยกันบนเสื้อ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Leather</span><br />
ชุดเกราะหนัง ทำจากแผ่นหนังเอาไปต้มเพิ่มความทนทานแล้วเอามาเย็บเข้าด้วยกัน เป็นชุดเกราะยอดนิยมแบบหนึ่งเพราะถึงจะไม่ทนทานเท่าเกราะเหล็กแต่ความคล่องตัวอยู่ในระดับดี แถมยังราคาถูกโดนใจผู้กล้ามือใหม่<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Parade</span><br />
ชุดเดินสวนสนามของประเทศที่กองทัพมีระดับพอสมควร ลักษณะของชุดแบบนี้จะต่างกันไปตามแต่กองทัพ แต่จะเป็นชุดเกราะเสมอแม้จะไม่มีพลังป้องกันเท่าชุดรบจริง ประโยชน์ของชุดนี้ก็คือมีไว้บอก(หรือหลอก)คนอื่นว่าเป็นเป็นคนในกองทัพ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Studded leather</span><br />
ปรับปรุงมาจากชุดเกราะหนังโดยติดปุ่มเหล็กไว้เป็นแนวตามจุดสำคัญ พลังป้องกันจะสูงกว่าเดิมแต่ความคล่องตัวก็ลดลงไป<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Wooden</span><br />
เกราะหนังที่เสริมด้วยแผ่นไม้ผิงไฟเสริมความแข็งแกร่งปิดตามจุดสำคัญ พลังป้องกันสูงกว่าเกราะหนังล้วนๆแต่ไม่เท่าเหล็ก จุดเด่นของเกราะนี้คือไม้มันลอยน้ำนิดๆ เวลาว่ายน้ำจึงง่ายกว่าเกราะเหล็ก<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Chain shirt</span><br />
เกราะที่ถักด้วยโซ่เหล็กขนาดเล็ก สวมป้องกันลำตัวทั้งตัว<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lamellar (leather)</span><br />
Lamellar เป็นเกราะประเภทที่้แผ่นวัสดุมาเย็บกันเป็นแถวๆเรียงกัน แบบที่เป็นเกราะเบานี้ทำจากหนังเคลือบยางไม้]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[HacknPlan] Project management for game development!!]]></title>
			<link>https://irpg.in.th/thread-2959.html</link>
			<pubDate>Thu, 29 Sep 2016 23:40:36 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=2514">Ghost</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-2959.html</guid>
			<description><![CDATA[<img src="http://i.imgur.com/CLYv3s8.png" loading="lazy"  alt="[Image: CLYv3s8.png]" class="mycode_img" /><br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: center;" class="mycode_align">Link: <a href="http://hacknplan.com" target="_blank" rel="noopener" class="mycode_url">http://hacknplan.com</a> <br />
</div></span></span>]]></description>
			<content:encoded><![CDATA[<img src="http://i.imgur.com/CLYv3s8.png" loading="lazy"  alt="[Image: CLYv3s8.png]" class="mycode_img" /><br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: center;" class="mycode_align">Link: <a href="http://hacknplan.com" target="_blank" rel="noopener" class="mycode_url">http://hacknplan.com</a> <br />
</div></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[วิธีสร้างเว็บส่วนตัวง่ายๆ และที่สำคัญ *ฟรี*]]></title>
			<link>https://irpg.in.th/thread-2752.html</link>
			<pubDate>Wed, 10 Feb 2016 21:01:26 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=72">platou18</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-2752.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size">บูจูคืนวันพุธ ครับทุกท่าน<br />
</span><br />
วันนี้เราจะมาทำเว็บส่วนตัวกันครับ โดยใช้โดเมนฟรีของ cu.cc และใช้แพคเกจโฮสติ้งฟรีของ hostinger ที่มีพื้นที่ในเว็บ 2GB / แบนวิท 10 GB <br />
<br />
โดยเราจะได้เว็บ เป็นโดเมน .cu.cc ดังตัวอย่างที่ผมจะทำต่อไปนี้จะเป็น bujudash.cu.cc<br />
<br />
part 1 การสมัครโดเมน และ ฟรีโฮสติ้ง hostinger<br />
<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>Spoiler:</div>
		<div class="spoiler_content" style="display: none;">
ก่อนอื่นเราเข้าไปที่เว็บ <a href="http://www.registry.cu.cc/" target="_blank" rel="noopener" class="mycode_url">cu.cc</a> เพื่อลงทะเบียนโดเมนของเราครับ<br />
<br />
ใส่ชื่อโดเมนแล้วกดเช็คว่าโดเมนนั้นซํ้าหรือไม่<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/dd80135d29.png" loading="lazy"  alt="[Image: dd80135d29.png]" class="mycode_img" /></div>
<br />
ต่อมาก็กด Check Out<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/a025ef22bf.png" loading="lazy"  alt="[Image: a025ef22bf.png]" class="mycode_img" /></div>
<br />
มาถึงตรงนี้เค้าจะให้เราสมัครสมาชิกไว้จัดการโดเมนของเรา สามารถจดได้สูงสุดถึง 100 โดเมนต่อ Account<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/8f178b4a62.png" loading="lazy"  alt="[Image: 8f178b4a62.png]" class="mycode_img" /></div>
<br />
กด Confirm<br />
<br />
<img src="http://img.ihere.org/uploads/57347e3bb3.png" loading="lazy"  alt="[Image: 57347e3bb3.png]" class="mycode_img" /><br />
<br />
กด finish free registration ต่อมาคลิกที่ My Domain และแล้วเราก็จดโดเมนของเราเสร็จแล้วครับ <img src="https://irpg.in.th/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
<br />
<img src="http://img.ihere.org/uploads/ff62450269.png" loading="lazy"  alt="[Image: ff62450269.png]" class="mycode_img" /><br />
<br />
จะเห็นได้ว่าเว็บที่ผมเคยจดโดเมนก่อนหน้านี้จะขึ้น status ns ok หมายความว่าผมลิ้ง โดเมนกับโฮสติ้งเรียบร้อยแล้ว แต่ bujudash ของเรายังไม่ได้ลิ้งกับโฮสติ้ง ดังนั้นขั้นตอนต่อไปคือ ฟรีโฮสติ้งละครับ<br />
<br />
โฮสติ้งที่จะใช้คือ <a href="http://www.hostinger.in.th/" target="_blank" rel="noopener" class="mycode_url">hostinger</a><br />
เราสามารถล๊อคอินผ่าน Fb หรือ Google account ได้อย่างง่ายๆเลยครับ<br />
แต่ผมแนะนำวิธีที่จะทำให้มีประสิทธิภาพมากที่สุดใช้ Google Account ครับ<br />
เพราะเราต้องการข้อมูลรายละเอียดเว็บโฮสจาก Gmail<br />
<br />
เมื่อล๊อคอินมาแล้วก็กดที่ โฮสติ้งใหม่กันเลย<br />
<br />
<img src="http://img.ihere.org/uploads/fd1cb75216.png" loading="lazy"  alt="[Image: fd1cb75216.png]" class="mycode_img" /><br />
<br />
และก็มาเลือกแพคเกจกัน แน่นอนเราใช้แพคเกจฟรีกันอยู่แล้วว<br />
<br />
<img src="http://img.ihere.org/uploads/2346fb046c.png" loading="lazy"  alt="[Image: 2346fb046c.png]" class="mycode_img" /><br />
<br />
โอเชครับ มาดูกันที่นี่ ในตอนแรกถ้าเราไม่มีโดเมน cu.cc นั้น เราจะต้องใช้เป็นโดเมนย่อยของ hostinger<br />
ตามเห็นในรายการ<br />
<br />
<img src="http://img.ihere.org/uploads/cfb8b24050.png" loading="lazy"  alt="[Image: cfb8b24050.png]" class="mycode_img" /><br />
<br />
หากแต่เรามีโดเมนหลักของเราเอง ดังนั้น กรอกเลยครับ<br />
<br />
<img src="http://img.ihere.org/uploads/467c8631c6.png" loading="lazy"  alt="[Image: 467c8631c6.png]" class="mycode_img" /><br />
<br />
กดดำเนินการต่อ และทางเว็บก็จะให้กรอกเหตุผลของเว็บไซต์ และยืนยันเลยครับ<br />
<br />
<img src="http://img.ihere.org/uploads/0c4dfab17f.png" loading="lazy"  alt="[Image: 0c4dfab17f.png]" class="mycode_img" /><br />
<br />
และก็รอเว็บของเราขึ้น active สักพักหนึ่ง<br />
<br />
<img src="http://img.ihere.org/uploads/20fc2573ef.png" loading="lazy"  alt="[Image: 20fc2573ef.png]" class="mycode_img" /><br />
<br />
หลังจากขึ้นตอนนี้ จะมีอีเมลของ hostinger บอกรายละเอียดของโฮสเราครับ<br />
พอดีผมเป็นพวกขี้ลืม ต้องติดดาวไว้เลยครับ กลัวลืมรหัส<br />
และเราก็จดชื่อ server ไว้ครับ ใช้สำหรับ โดเมน cu.cc ให้รีไดเร็กเข้า เซิฟเวอร์โฮสเรา<br />
<br />
<img src="http://img.ihere.org/uploads/82373f2c21.png" loading="lazy"  alt="[Image: 82373f2c21.png]" class="mycode_img" /><br />
<br />
ต่อมาเข้าเว็บ cu.cc เพื่อตั้งค่าให้โดเมนนั้นลิ้งกับ hostinger โดยกด edit <br />
<br />
<img src="http://img.ihere.org/uploads/ccd659267c.png" loading="lazy"  alt="[Image: ccd659267c.png]" class="mycode_img" /><br />
<br />
คลิกที่ Server name<br />
<br />
<img src="http://img.ihere.org/uploads/2ff03c2ee3.png" loading="lazy"  alt="[Image: 2ff03c2ee3.png]" class="mycode_img" /><br />
<br />
ใส่ชื่อ server และกดอัพเดท<br />
<br />
<img src="http://img.ihere.org/uploads/bde4b42512.png" loading="lazy"  alt="[Image: bde4b42512.png]" class="mycode_img" /><br />
<br />
หน้า my domain จะขึ้นว่า ns ok แล้วละครับ<br />
<br />
<img src="http://img.ihere.org/uploads/b2b9d8b31c.png" loading="lazy"  alt="[Image: b2b9d8b31c.png]" class="mycode_img" /><br />
<br />
และหลังจากขึ้นตอนนี้เราก็รอให้ staff ของ hostinger อนุมัติการสมัครโฮสเรา จะใช้เวลาประมาน 1 วันถึงจะใช้งานได้ครับ โดยดูจากเว็บ hostinger ถ้าป้ายแดงๆนี่หายก็เป็นอันเสร็จ และใช้งานเว็บได้ครับ<br />
<br />
<img src="http://img.ihere.org/uploads/11751f7473.png" loading="lazy"  alt="[Image: 11751f7473.png]" class="mycode_img" /><br />
<br />
</div>
	</div>
<br />
การสมัครโฮส hostinger ใช้เวลาค่อนข้างนาน อาจต้องรอถึง 24 ชม เร็วสุดก็ 8 ชม และถ้าไม่มีใครเข้าเว็บ 3 เดือนจะโดนลบละครับ <br />
<br />
ถ้าตัดในส่วนนี้โฮสนี่ค่อนข้างดีเลยครับ แบนวิทเยอะ ใช้ sql ได้ มีอีเมล มีปลั๊กอินฟรี ค่อนข้างโอเคเลยครับแถมยังใช้งานได้ดีกว่าโฮสไทยบางเจ้าที่เสียตัง 99/เดือน อีกอะ แต่ใครจะใช้โฮสอื่นก็ใช้โดเมน cu.cc ได้เมือนกันนะครับ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">วันพรุ่งนี้เมื่อเว็บ bujudash.cu.cc ของเราใช้งานได้แล้วผมจะมาต่อ part 2 การอัพโหลดเว็บกันนะครับ ;w;b</span><br />
<br />
การทำกระทู้นี้เป็นการเกริ่นนำไปสู่การโฮสเกมบนเว็บในอนาคต รอติดตามนะครับ<br />
<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size">บูจูคืนวันพุธ ครับทุกท่าน<br />
</span><br />
วันนี้เราจะมาทำเว็บส่วนตัวกันครับ โดยใช้โดเมนฟรีของ cu.cc และใช้แพคเกจโฮสติ้งฟรีของ hostinger ที่มีพื้นที่ในเว็บ 2GB / แบนวิท 10 GB <br />
<br />
โดยเราจะได้เว็บ เป็นโดเมน .cu.cc ดังตัวอย่างที่ผมจะทำต่อไปนี้จะเป็น bujudash.cu.cc<br />
<br />
part 1 การสมัครโดเมน และ ฟรีโฮสติ้ง hostinger<br />
<br />
<div class="spoiler">
		<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName('div')[1].style.display == 'block'){ parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none'; this.innerHTML='Show Content'; } else { parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'block'; this.innerHTML='Hide Content'; }">Show Content</span>Spoiler:</div>
		<div class="spoiler_content" style="display: none;">
ก่อนอื่นเราเข้าไปที่เว็บ <a href="http://www.registry.cu.cc/" target="_blank" rel="noopener" class="mycode_url">cu.cc</a> เพื่อลงทะเบียนโดเมนของเราครับ<br />
<br />
ใส่ชื่อโดเมนแล้วกดเช็คว่าโดเมนนั้นซํ้าหรือไม่<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/dd80135d29.png" loading="lazy"  alt="[Image: dd80135d29.png]" class="mycode_img" /></div>
<br />
ต่อมาก็กด Check Out<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/a025ef22bf.png" loading="lazy"  alt="[Image: a025ef22bf.png]" class="mycode_img" /></div>
<br />
มาถึงตรงนี้เค้าจะให้เราสมัครสมาชิกไว้จัดการโดเมนของเรา สามารถจดได้สูงสุดถึง 100 โดเมนต่อ Account<br />
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img.ihere.org/uploads/8f178b4a62.png" loading="lazy"  alt="[Image: 8f178b4a62.png]" class="mycode_img" /></div>
<br />
กด Confirm<br />
<br />
<img src="http://img.ihere.org/uploads/57347e3bb3.png" loading="lazy"  alt="[Image: 57347e3bb3.png]" class="mycode_img" /><br />
<br />
กด finish free registration ต่อมาคลิกที่ My Domain และแล้วเราก็จดโดเมนของเราเสร็จแล้วครับ <img src="https://irpg.in.th/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
<br />
<img src="http://img.ihere.org/uploads/ff62450269.png" loading="lazy"  alt="[Image: ff62450269.png]" class="mycode_img" /><br />
<br />
จะเห็นได้ว่าเว็บที่ผมเคยจดโดเมนก่อนหน้านี้จะขึ้น status ns ok หมายความว่าผมลิ้ง โดเมนกับโฮสติ้งเรียบร้อยแล้ว แต่ bujudash ของเรายังไม่ได้ลิ้งกับโฮสติ้ง ดังนั้นขั้นตอนต่อไปคือ ฟรีโฮสติ้งละครับ<br />
<br />
โฮสติ้งที่จะใช้คือ <a href="http://www.hostinger.in.th/" target="_blank" rel="noopener" class="mycode_url">hostinger</a><br />
เราสามารถล๊อคอินผ่าน Fb หรือ Google account ได้อย่างง่ายๆเลยครับ<br />
แต่ผมแนะนำวิธีที่จะทำให้มีประสิทธิภาพมากที่สุดใช้ Google Account ครับ<br />
เพราะเราต้องการข้อมูลรายละเอียดเว็บโฮสจาก Gmail<br />
<br />
เมื่อล๊อคอินมาแล้วก็กดที่ โฮสติ้งใหม่กันเลย<br />
<br />
<img src="http://img.ihere.org/uploads/fd1cb75216.png" loading="lazy"  alt="[Image: fd1cb75216.png]" class="mycode_img" /><br />
<br />
และก็มาเลือกแพคเกจกัน แน่นอนเราใช้แพคเกจฟรีกันอยู่แล้วว<br />
<br />
<img src="http://img.ihere.org/uploads/2346fb046c.png" loading="lazy"  alt="[Image: 2346fb046c.png]" class="mycode_img" /><br />
<br />
โอเชครับ มาดูกันที่นี่ ในตอนแรกถ้าเราไม่มีโดเมน cu.cc นั้น เราจะต้องใช้เป็นโดเมนย่อยของ hostinger<br />
ตามเห็นในรายการ<br />
<br />
<img src="http://img.ihere.org/uploads/cfb8b24050.png" loading="lazy"  alt="[Image: cfb8b24050.png]" class="mycode_img" /><br />
<br />
หากแต่เรามีโดเมนหลักของเราเอง ดังนั้น กรอกเลยครับ<br />
<br />
<img src="http://img.ihere.org/uploads/467c8631c6.png" loading="lazy"  alt="[Image: 467c8631c6.png]" class="mycode_img" /><br />
<br />
กดดำเนินการต่อ และทางเว็บก็จะให้กรอกเหตุผลของเว็บไซต์ และยืนยันเลยครับ<br />
<br />
<img src="http://img.ihere.org/uploads/0c4dfab17f.png" loading="lazy"  alt="[Image: 0c4dfab17f.png]" class="mycode_img" /><br />
<br />
และก็รอเว็บของเราขึ้น active สักพักหนึ่ง<br />
<br />
<img src="http://img.ihere.org/uploads/20fc2573ef.png" loading="lazy"  alt="[Image: 20fc2573ef.png]" class="mycode_img" /><br />
<br />
หลังจากขึ้นตอนนี้ จะมีอีเมลของ hostinger บอกรายละเอียดของโฮสเราครับ<br />
พอดีผมเป็นพวกขี้ลืม ต้องติดดาวไว้เลยครับ กลัวลืมรหัส<br />
และเราก็จดชื่อ server ไว้ครับ ใช้สำหรับ โดเมน cu.cc ให้รีไดเร็กเข้า เซิฟเวอร์โฮสเรา<br />
<br />
<img src="http://img.ihere.org/uploads/82373f2c21.png" loading="lazy"  alt="[Image: 82373f2c21.png]" class="mycode_img" /><br />
<br />
ต่อมาเข้าเว็บ cu.cc เพื่อตั้งค่าให้โดเมนนั้นลิ้งกับ hostinger โดยกด edit <br />
<br />
<img src="http://img.ihere.org/uploads/ccd659267c.png" loading="lazy"  alt="[Image: ccd659267c.png]" class="mycode_img" /><br />
<br />
คลิกที่ Server name<br />
<br />
<img src="http://img.ihere.org/uploads/2ff03c2ee3.png" loading="lazy"  alt="[Image: 2ff03c2ee3.png]" class="mycode_img" /><br />
<br />
ใส่ชื่อ server และกดอัพเดท<br />
<br />
<img src="http://img.ihere.org/uploads/bde4b42512.png" loading="lazy"  alt="[Image: bde4b42512.png]" class="mycode_img" /><br />
<br />
หน้า my domain จะขึ้นว่า ns ok แล้วละครับ<br />
<br />
<img src="http://img.ihere.org/uploads/b2b9d8b31c.png" loading="lazy"  alt="[Image: b2b9d8b31c.png]" class="mycode_img" /><br />
<br />
และหลังจากขึ้นตอนนี้เราก็รอให้ staff ของ hostinger อนุมัติการสมัครโฮสเรา จะใช้เวลาประมาน 1 วันถึงจะใช้งานได้ครับ โดยดูจากเว็บ hostinger ถ้าป้ายแดงๆนี่หายก็เป็นอันเสร็จ และใช้งานเว็บได้ครับ<br />
<br />
<img src="http://img.ihere.org/uploads/11751f7473.png" loading="lazy"  alt="[Image: 11751f7473.png]" class="mycode_img" /><br />
<br />
</div>
	</div>
<br />
การสมัครโฮส hostinger ใช้เวลาค่อนข้างนาน อาจต้องรอถึง 24 ชม เร็วสุดก็ 8 ชม และถ้าไม่มีใครเข้าเว็บ 3 เดือนจะโดนลบละครับ <br />
<br />
ถ้าตัดในส่วนนี้โฮสนี่ค่อนข้างดีเลยครับ แบนวิทเยอะ ใช้ sql ได้ มีอีเมล มีปลั๊กอินฟรี ค่อนข้างโอเคเลยครับแถมยังใช้งานได้ดีกว่าโฮสไทยบางเจ้าที่เสียตัง 99/เดือน อีกอะ แต่ใครจะใช้โฮสอื่นก็ใช้โดเมน cu.cc ได้เมือนกันนะครับ<br />
<br />
<span style="font-weight: bold;" class="mycode_b">วันพรุ่งนี้เมื่อเว็บ bujudash.cu.cc ของเราใช้งานได้แล้วผมจะมาต่อ part 2 การอัพโหลดเว็บกันนะครับ ;w;b</span><br />
<br />
การทำกระทู้นี้เป็นการเกริ่นนำไปสู่การโฮสเกมบนเว็บในอนาคต รอติดตามนะครับ<br />
<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[เจาะตื้น ฮาล์ฟเอลฟ์]]></title>
			<link>https://irpg.in.th/thread-2732.html</link>
			<pubDate>Fri, 15 Jan 2016 13:35:33 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=248">Kuruni</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-2732.html</guid>
			<description><![CDATA[อันนี้ต่างจากกระทู้ก่อนๆของผมนะครับ คือไม่ได้แปลไม่ได้อิงความถูกต้องจากเรื่องไหนทั้งนั้น สรุปยอดมาจากความประทับใจรวมๆหลังจากที่อ่านโน่นอ่านนี้มา<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ฮาล์ฟเอลฟ์</span>นั้นเป็นลูกครึ่งที่เห็นบ่อยที่สุดในเรื่องแฟนตาซีครับ แพร่หลายทั้งฟากฝรั่งและญี่ปุ่น เกมแฟนตาซีเองถ้ามีเผ่าให้เลือกมากๆก็มักมีฮาล์ฟเอลฟ์ให้เลือกเหมือนเป็นเผ่าหนึ่งเลย<br />
<br />
อนึ่ง บางเรื่องนั้นไม่มีฮาล์ฟเอลฟ์ ลูกของเอลฟ์กับมนุษย์ มีโอกาสเป็นเอลฟ์หรือมนุษย์พอๆกันแต่ไม่ครึ่ง และส่วนใหญ่แล้วฮาล์ฟเอลฟ์ก็เป็นส่วนฮาล์ฟนี่ก็จะเป็นมนุษย์เสมอ ถ้าเผ่าอื่นเหมือนจะมีลูกกันไม่ได้ (คำอธิบายมักจะประมาณว่าเป็นเพราะมนุษย์เป็นเผ่าที่มีความสามารถในการปรับตัวสูงมากกว่าเผ่าอื่นๆ พันธุกรรมหรือองค์ประกอบทางเวทมนตร์ก็เรียบง่ายกว่าเผ่าอื่นๆเลยเข้ากันง่าย) หรือไม่ก็เรียกอย่างอื่นไปเลย (ที่เจอบ่อยเหมือนจะเป็นเดวลฟ์ = คนแคระ (ดวาฟ) + เอลฟ์) อีกข้อคือในเรื่องที่แบ่งเอลฟ์เป็นเผ่าย่อยๆ (ไฮเอลฟ์ วู้ดเอลฟ์) ฮาล์ฟเอลฟ์มักจะไม่มีลักษณะของเผ่าย่อย แต่ทั้งนี้ลูกครึ่งดาร์คเอลฟ์ด้วยก็มักจะแยกไปต่างหาก<br />
<br />
ถ้าถามว่าทำไมฮาล์ฟเอลฟ์มีเยอะนัก คำตอบง่ายๆก็คือเอลฟ์เป็นนางเอกยอดนิยมน่ะสิ (ส่วนตัวผู้ที่มาได้ภรรเมียมนุษย์นั้นมักจะเป็นเรื่องราวภูมิหลัง ไม่ค่อยได้เห็นตอนกำลังจีบกันสักเท่าไหร่) โดยทั่วไปแล้วมนุษย์มักจะถือว่าความงามของเอลฟ์เป็นอะไรที่สมบูรณ์แบบ ส่วนเอลฟ์นั้นถึงจะไม่ค่อยพูดชัดๆแต่พอได้สนิทกับมนุษย์ถึงระดับหนึ่งก็มักจะพบว่าความติดดินหรือเถื่อนนิดๆของมนุษย์นี่เป็นอะไรที่"กำลังดี"เลย สองเผ่านี้จึงหลงรักกันง่าย โชคร้ายที่รักกันง่ายไม่ได้แปลว่าจะรักกันยาว ส่วนใหญ่แล้วพออยู่ด้วยกันจริงๆ ถ้าไม่ใช่ทนนิสัยกันไม่ได้ก็มักจะมีปัญหาสังคมไม่ยอมรับ คู่ที่อยู่กันอึดจริงๆไม่เลิกกันไปก่อน สุดท้ายแล้วคนที่เป็นเอลฟ์จะต้องเจอเรื่องปวดใจคือมนุษย์อายุสั้นกว่าเอลฟ์มาก นั่นก็คือในที่สุดก็จะต้องได้เห็นคนรักหง่อมตายไปโดยที่ตัวเองยังไม่แก่ด้วยซ้ำ<br />
<br />
ไม่ว่ากรณีไหน สรุปก็คือฮาล์ฟเอลฟ์มักจะโตขึ้นมาโดยที่รู้สึกว่าตัวเองเป็น"สิ่งแปลกปลอม"ครับ ตรงนี้เคยเจอใน Book of Erotic Fantasy (ใครคิดลึกกับชื่อ บอกเลยว่ามันออกแนวตำราเพศสัมพันธ์ครับ มีภาพวาบหวิวบ้างแต่หนักไปทางวิชาการ) ว่าต่อให้เป็นฮาล์ฟเอลฟ์ที่โชคดีสุดๆ พ่อแม่อยู่กันยืดและไม่โดนสังคมรังเกียจ ความรู้สึกแปลกปลอมนั้นยังไงก็จะเกิดในช่วงวัยรุ่นครับ คือฮาล์ฟเอลฟ์นั้นโตช้ากว่ามนุษย์แต่เร็วกว่าเอลฟ์ ฮาล์ฟเอลฟ์ที่โตในสังคมของเอลฟ์นั้น พอเป็นวัยรุ่นและเริ่มออกจีบสาว พวกเพื่อนๆเอลฟ์ที่โตมาด้วยกันก็ยังเป็นเด็กและไม่สนใจเรื่องนั้น ส่วนเอลฟ์ที่โตแล้วก็ยังเห็นฮาล์ฟเอลฟ์วัยรุ่นเป็นเด็กและไม่สนใจ (ตัดพวกโชตาคอนอะไรพวกนี้ไปก่อนนะ) นั่นก็คือเป็นช่วงวัยรุ่นที่น่าหงุดหงิดอย่างมาก ส่วนฮาล์ฟเอลฟ์ที่โตในสังคมมนุษย์ พอเพื่อนๆที่เล่นมาด้วยกันเป็นวัยรุ่นมาจีบ สภาพจิตของฮาล์ฟเอลฟ์ก็ยังเป็นเด็กไม่สนใจเรื่องนี้เลยสักนิด ผลก็คือมักจะโดนว่าหยิ่งหรือเชิดไปซะ ส่วนเด็กๆมนุษย์ก็เห็นฮาล์ฟเอลฟ์เป็นเด็กโข่งแล้วก็ไม่อยากเล่นด้วย สรุปคือจนกว่าจะเป็นวัยรุ่นก็เป็นชีวิตที่เงียบเหงาอย่างมาก<br />
<br />
ก็เพราะอย่างนั้น จริงๆแล้วคู่ที่สมบูรณ์แบบของฮาล์ฟเอลฟ์ก็คือฮาล์ฟเอลฟ์ด้วยกัน เพราะทั้งเข้าใจกันดีแล้วก็ช่วงอายุก็ไม่ต่างกันด้วย ปัญหามีอยู่ว่าถึงจะบอกว่ามีเยอะแต่ก็ไม่ใช่จะเยอะพอจนมีโอกาสเดินชนกันได้หรอกนะ (ลูกของฮาล์ฟเอลฟ์กับฮาล์ฟเอลฟ์ก็จะออกมาเป็นฮาล์ฟเอลฟ์ เรียกว่าฮาล์ฟเอลฟ์แท้ก็ได้มั้ง?) ในอีกแง่หนึ่ง เพราะฮาล์ฟเอลฟ์โตมาอย่างรู้สึกว่าตัวเองเป็นสิ่งแปลกปลอมเลยไม่ค่อยจะมีอคติกับเผ่าอื่นไปด้วย (เว้นแต่ชีวิตวัยเด็กจะแย่จริงๆ) แล้วก็ถ้าไม่ใช่ว่าโตมาในสังคมเอลฟ์แล้วถูกฝังหัวว่าถึงเป็นลูกครึ่งก็จงภูมิใจในสายเลือดเอลฟ์ล่ะก็มักจะไม่หยิ่งด้วย จึงเป็นตัวเลือกที่เหมาะสำหรับใครก็ตามที่เผลอเขียนเอลฟ์ให้เป็นเกรียนหัวสูงไปแล้วเลย<br />
<br />
ด้านลักษณะ แน่นอนว่าฮาล์ฟเอลฟ์จะมีลักษณะของทั้งสองเผ่าแต่ออกมาเป็นยังไงก็แล้วแต่เรื่องแฮะ ที่แน่ๆคือหูจะแหลมเหมือนเอลฟ์ (แต่อาจจะสั้นกว่า) และจะถึกกว่าเอลฟ์แน่นอน (แต่เทียบกับมนุษย์นั้นแล้วแต่เรื่อง) เท่าที่สังเกต สถานะในเกมของฮาล์ฟเอลฟ์มักจะใกล้กับมนุษย์มากกว่าแต่มีลักษณะเด่นบางอย่างของเอลฟ์แถมให้ อาจจะเก่งเวทมากกว่า หรือไม่ก็มีความทนพิษทนเวทดีกว่า อนึ่ง ในด้านงานศิลป์แล้ว (เน้นสาวๆ ตัวผู้ช่างมัน) ผมว่าส่วนใหญ่ระยะยาวฮาล์ฟเอลฟ์จะดูดีกว่าครับ เรื่องไหนที่วาดให้เอลฟ์ผิดจากมนุษย์กันเห็นๆ แบบผอมสูง คางแหลมตาแหลม แบบบอกว่าสวยก็ยอมรับได้อยู่แต่น่ารักนี่ไม่ไหว ฮาล์ฟเอลฟ์ที่คล้ายมนุษย์มากกว่าจะดูดีกว่า ส่วนเรื่องที่เอลฟ์ดูคล้ายมนุษย์แต่ดีไซน์ตัวละครออกออร่าบางอย่างอยู่แล้ว (ไฮเอลฟ์ก็สวยสง่าสูงส่ง วู้ดเอลฟ์ก็จะออกใสซื่อ) ฮาล์ฟเอลฟ์จะดูธรรมดาไม่ต่างจากมนุษย์สักเท่าไหร่ทั้งที่ใช้ดีไซน์คล้ายๆกับเอลฟ์ ข้อดีคือใช้เล่นบทตลกแบบสาวเปิ่น หรือปากเสียได้สนิทใจกว่าเอลฟ์แท้ๆ]]></description>
			<content:encoded><![CDATA[อันนี้ต่างจากกระทู้ก่อนๆของผมนะครับ คือไม่ได้แปลไม่ได้อิงความถูกต้องจากเรื่องไหนทั้งนั้น สรุปยอดมาจากความประทับใจรวมๆหลังจากที่อ่านโน่นอ่านนี้มา<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ฮาล์ฟเอลฟ์</span>นั้นเป็นลูกครึ่งที่เห็นบ่อยที่สุดในเรื่องแฟนตาซีครับ แพร่หลายทั้งฟากฝรั่งและญี่ปุ่น เกมแฟนตาซีเองถ้ามีเผ่าให้เลือกมากๆก็มักมีฮาล์ฟเอลฟ์ให้เลือกเหมือนเป็นเผ่าหนึ่งเลย<br />
<br />
อนึ่ง บางเรื่องนั้นไม่มีฮาล์ฟเอลฟ์ ลูกของเอลฟ์กับมนุษย์ มีโอกาสเป็นเอลฟ์หรือมนุษย์พอๆกันแต่ไม่ครึ่ง และส่วนใหญ่แล้วฮาล์ฟเอลฟ์ก็เป็นส่วนฮาล์ฟนี่ก็จะเป็นมนุษย์เสมอ ถ้าเผ่าอื่นเหมือนจะมีลูกกันไม่ได้ (คำอธิบายมักจะประมาณว่าเป็นเพราะมนุษย์เป็นเผ่าที่มีความสามารถในการปรับตัวสูงมากกว่าเผ่าอื่นๆ พันธุกรรมหรือองค์ประกอบทางเวทมนตร์ก็เรียบง่ายกว่าเผ่าอื่นๆเลยเข้ากันง่าย) หรือไม่ก็เรียกอย่างอื่นไปเลย (ที่เจอบ่อยเหมือนจะเป็นเดวลฟ์ = คนแคระ (ดวาฟ) + เอลฟ์) อีกข้อคือในเรื่องที่แบ่งเอลฟ์เป็นเผ่าย่อยๆ (ไฮเอลฟ์ วู้ดเอลฟ์) ฮาล์ฟเอลฟ์มักจะไม่มีลักษณะของเผ่าย่อย แต่ทั้งนี้ลูกครึ่งดาร์คเอลฟ์ด้วยก็มักจะแยกไปต่างหาก<br />
<br />
ถ้าถามว่าทำไมฮาล์ฟเอลฟ์มีเยอะนัก คำตอบง่ายๆก็คือเอลฟ์เป็นนางเอกยอดนิยมน่ะสิ (ส่วนตัวผู้ที่มาได้ภรรเมียมนุษย์นั้นมักจะเป็นเรื่องราวภูมิหลัง ไม่ค่อยได้เห็นตอนกำลังจีบกันสักเท่าไหร่) โดยทั่วไปแล้วมนุษย์มักจะถือว่าความงามของเอลฟ์เป็นอะไรที่สมบูรณ์แบบ ส่วนเอลฟ์นั้นถึงจะไม่ค่อยพูดชัดๆแต่พอได้สนิทกับมนุษย์ถึงระดับหนึ่งก็มักจะพบว่าความติดดินหรือเถื่อนนิดๆของมนุษย์นี่เป็นอะไรที่"กำลังดี"เลย สองเผ่านี้จึงหลงรักกันง่าย โชคร้ายที่รักกันง่ายไม่ได้แปลว่าจะรักกันยาว ส่วนใหญ่แล้วพออยู่ด้วยกันจริงๆ ถ้าไม่ใช่ทนนิสัยกันไม่ได้ก็มักจะมีปัญหาสังคมไม่ยอมรับ คู่ที่อยู่กันอึดจริงๆไม่เลิกกันไปก่อน สุดท้ายแล้วคนที่เป็นเอลฟ์จะต้องเจอเรื่องปวดใจคือมนุษย์อายุสั้นกว่าเอลฟ์มาก นั่นก็คือในที่สุดก็จะต้องได้เห็นคนรักหง่อมตายไปโดยที่ตัวเองยังไม่แก่ด้วยซ้ำ<br />
<br />
ไม่ว่ากรณีไหน สรุปก็คือฮาล์ฟเอลฟ์มักจะโตขึ้นมาโดยที่รู้สึกว่าตัวเองเป็น"สิ่งแปลกปลอม"ครับ ตรงนี้เคยเจอใน Book of Erotic Fantasy (ใครคิดลึกกับชื่อ บอกเลยว่ามันออกแนวตำราเพศสัมพันธ์ครับ มีภาพวาบหวิวบ้างแต่หนักไปทางวิชาการ) ว่าต่อให้เป็นฮาล์ฟเอลฟ์ที่โชคดีสุดๆ พ่อแม่อยู่กันยืดและไม่โดนสังคมรังเกียจ ความรู้สึกแปลกปลอมนั้นยังไงก็จะเกิดในช่วงวัยรุ่นครับ คือฮาล์ฟเอลฟ์นั้นโตช้ากว่ามนุษย์แต่เร็วกว่าเอลฟ์ ฮาล์ฟเอลฟ์ที่โตในสังคมของเอลฟ์นั้น พอเป็นวัยรุ่นและเริ่มออกจีบสาว พวกเพื่อนๆเอลฟ์ที่โตมาด้วยกันก็ยังเป็นเด็กและไม่สนใจเรื่องนั้น ส่วนเอลฟ์ที่โตแล้วก็ยังเห็นฮาล์ฟเอลฟ์วัยรุ่นเป็นเด็กและไม่สนใจ (ตัดพวกโชตาคอนอะไรพวกนี้ไปก่อนนะ) นั่นก็คือเป็นช่วงวัยรุ่นที่น่าหงุดหงิดอย่างมาก ส่วนฮาล์ฟเอลฟ์ที่โตในสังคมมนุษย์ พอเพื่อนๆที่เล่นมาด้วยกันเป็นวัยรุ่นมาจีบ สภาพจิตของฮาล์ฟเอลฟ์ก็ยังเป็นเด็กไม่สนใจเรื่องนี้เลยสักนิด ผลก็คือมักจะโดนว่าหยิ่งหรือเชิดไปซะ ส่วนเด็กๆมนุษย์ก็เห็นฮาล์ฟเอลฟ์เป็นเด็กโข่งแล้วก็ไม่อยากเล่นด้วย สรุปคือจนกว่าจะเป็นวัยรุ่นก็เป็นชีวิตที่เงียบเหงาอย่างมาก<br />
<br />
ก็เพราะอย่างนั้น จริงๆแล้วคู่ที่สมบูรณ์แบบของฮาล์ฟเอลฟ์ก็คือฮาล์ฟเอลฟ์ด้วยกัน เพราะทั้งเข้าใจกันดีแล้วก็ช่วงอายุก็ไม่ต่างกันด้วย ปัญหามีอยู่ว่าถึงจะบอกว่ามีเยอะแต่ก็ไม่ใช่จะเยอะพอจนมีโอกาสเดินชนกันได้หรอกนะ (ลูกของฮาล์ฟเอลฟ์กับฮาล์ฟเอลฟ์ก็จะออกมาเป็นฮาล์ฟเอลฟ์ เรียกว่าฮาล์ฟเอลฟ์แท้ก็ได้มั้ง?) ในอีกแง่หนึ่ง เพราะฮาล์ฟเอลฟ์โตมาอย่างรู้สึกว่าตัวเองเป็นสิ่งแปลกปลอมเลยไม่ค่อยจะมีอคติกับเผ่าอื่นไปด้วย (เว้นแต่ชีวิตวัยเด็กจะแย่จริงๆ) แล้วก็ถ้าไม่ใช่ว่าโตมาในสังคมเอลฟ์แล้วถูกฝังหัวว่าถึงเป็นลูกครึ่งก็จงภูมิใจในสายเลือดเอลฟ์ล่ะก็มักจะไม่หยิ่งด้วย จึงเป็นตัวเลือกที่เหมาะสำหรับใครก็ตามที่เผลอเขียนเอลฟ์ให้เป็นเกรียนหัวสูงไปแล้วเลย<br />
<br />
ด้านลักษณะ แน่นอนว่าฮาล์ฟเอลฟ์จะมีลักษณะของทั้งสองเผ่าแต่ออกมาเป็นยังไงก็แล้วแต่เรื่องแฮะ ที่แน่ๆคือหูจะแหลมเหมือนเอลฟ์ (แต่อาจจะสั้นกว่า) และจะถึกกว่าเอลฟ์แน่นอน (แต่เทียบกับมนุษย์นั้นแล้วแต่เรื่อง) เท่าที่สังเกต สถานะในเกมของฮาล์ฟเอลฟ์มักจะใกล้กับมนุษย์มากกว่าแต่มีลักษณะเด่นบางอย่างของเอลฟ์แถมให้ อาจจะเก่งเวทมากกว่า หรือไม่ก็มีความทนพิษทนเวทดีกว่า อนึ่ง ในด้านงานศิลป์แล้ว (เน้นสาวๆ ตัวผู้ช่างมัน) ผมว่าส่วนใหญ่ระยะยาวฮาล์ฟเอลฟ์จะดูดีกว่าครับ เรื่องไหนที่วาดให้เอลฟ์ผิดจากมนุษย์กันเห็นๆ แบบผอมสูง คางแหลมตาแหลม แบบบอกว่าสวยก็ยอมรับได้อยู่แต่น่ารักนี่ไม่ไหว ฮาล์ฟเอลฟ์ที่คล้ายมนุษย์มากกว่าจะดูดีกว่า ส่วนเรื่องที่เอลฟ์ดูคล้ายมนุษย์แต่ดีไซน์ตัวละครออกออร่าบางอย่างอยู่แล้ว (ไฮเอลฟ์ก็สวยสง่าสูงส่ง วู้ดเอลฟ์ก็จะออกใสซื่อ) ฮาล์ฟเอลฟ์จะดูธรรมดาไม่ต่างจากมนุษย์สักเท่าไหร่ทั้งที่ใช้ดีไซน์คล้ายๆกับเอลฟ์ ข้อดีคือใช้เล่นบทตลกแบบสาวเปิ่น หรือปากเสียได้สนิทใจกว่าเอลฟ์แท้ๆ]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Alignment การแบ่งแยกลักษณะนิสัยแบบต่างๆของมนุษย์]]></title>
			<link>https://irpg.in.th/thread-2720.html</link>
			<pubDate>Fri, 08 Jan 2016 14:14:07 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=243">Nazuth</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-2720.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Alignment</span> คือ การจัดลักษณะนิสัยของมนุษย์จากการกระทำและทัศนคติของแต่ละคนแ เราสามารถนำมาปรับใช้ในการสร้างตัวละครต่างๆให้มีชีวิตชีวามากกว่าแบ่งแยกเพียงว่าเป็นตัวดีหรือร้ายเพียงด้านเดียว แบ่งออกเป็นสองด้านดังนี้<br />
<br />
ด้านแรกคือ Good - Evil <br />
Good คือ ด้านที่ดีงาม การช่วยเหลือเสียสละให้แก่ผู้อื่น<br />
Evil คือ ด้านที่ชั่วร้าย กระทำการตามใจชอบเพื่อกดขี่ข่มเหงผู้อื่นให้เป็นไปตามที่ตนต้องการ<br />
Neutral คือ ความเป็นกลางไม่เอนเอียงไปด้านใดด้านหนึ่ง หรือในอีกแง่คือเกรงกลัวไม่กล้าทำความชั่วแต่ก็เพิกเฉยต่อความเดือดร้อนของผู้อื่น<br />
<br />
อีกด้านคือ Law - Chaos <br />
Law คือ การยึดติดกับกฎเกณฑ์หรือหน้าที่ มีความเชื่อที่ฝังหัวไม่ยอมรับการเปลี่ยนแปลง คนที่ยึดติดกับกฎไม่จำเป็นต้องเป็นคนดีเสมอไป เช่น นักบวชที่ทำการล่าแม่มดในสมัยก่อน<br />
Chaos ความเป็นอิสระ การปรับตัวไปตามสถานการณ์พร้อมเปิดรับสิ่งใหม่ๆ<br />
Neutral คือ คนที่เป็นกลางในสองด้านกล่าวคือยอมรับกฎหมายแต่ก็ไมไ่ด้คิดว่าเป็นสิ่งถูกต้องเด็ดขาด มีความเป็นอิสระแต่ก็ไม่ไปละเมิดต่อกฎใดๆ<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><br />
โดยจะรวมทั้งสองด้านแบ่งเป็น 9 ประเภทตามนี้</span><br />
<br />
Lawful - Good <br />
คนที่ทำทุกอย่างเพื่อต่อสู้กับสิ่งที่ตนคิดว่าชั่วร้าย รักความยุติธรรม ผู้ที่ทำชั่วต้องได้รับการลงโทษ ยึดมั่นในหน้าที่และคุณธรรมประจำใจ<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - ร็อคแมน.ซูเปอร์แมน.ก๊วยเจ๊ง.ลุค สกายวอล์คเกอร์<br />
<br />
Neutral - Good <br />
คนที่ทำความดีจากความรู้สึกผิดชอบชั่วดีของตนเองไม่ได้ทำเพราะเชื่อไปตามกฎเกณฑ์ที่กำหนดมา ในบางครั้งเขาก็ทำการละเมิดกฎหากเขาคิดว่ากฎนั้นไม่ชอบธรรม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - โรบินฮู้ด.สไปเดอร์แมน.ขงเบ้ง.แฮรี่พอตเตอร์<br />
<br />
Chaotic - Good <br />
คนที่ยึดมั่นในคุณธรรมของตนเองโดยไม่สนใจต่อกฎเกณฑ์ใดๆเลย เขาจะทำทุกอย่างที่ตนเชื่อว่าถูกต้องแม้ว่ามันจะเป็นสิ่งที่ผิดก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - จอมโจรลูแปง.ซิเรียส แบล็ค<br />
<br />
Lawful - Neutral<br />
คนที่ปฏิบัติตามกฎเกณฑ์อย่างเคร่งครัดโดยไม่สงสัยเคลือบแคลงใดๆทั้งสิ้น เขาเชื่อว่ากฎระเบียบและความเรียบร้อยของสังคมมีค่ามากกว่าศีลธรรม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - โอดะ โนบุนากะ.เจมส์บอน.โอดีสซีอุส<br />
<br />
True - Neutral<br />
คนที่เป็นกลางอย่างแท้จริงไม่มีกฎเกณ์หรือศีลธรรมใดๆมาผูกมัด เขาจะทำสิ่งต่างๆโดยมองแต่ความเป็นจริงไม่ยึดติดต่ออุดมการณ์หรือความต้องการส่วนตน<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - ลาล่าครอฟ.เซเวอรัลสเนป<br />
<br />
Chaotic - Neutral<br />
คนที่ใช้ชีวิตตามใจตนโดยไม่ยึดติดต่อกฎเกณฑ์ศีลธรรมใดๆทั้งสิ้น เขาจะทำในสิ่งที่อยากทำไม่ว่าจะเป็นความดีหรือความชั่วก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - มอเดรด(หลานอาเธอร์?).แจ๊คสแปร์โร<br />
<br />
Lawful - Evil <br />
คนที่เคร่งกฎจะไม่ทำผิดไปจากกฎหมายหรือกฎเกณฑ์ที่ตนตั้งไว้ บางครั้งก็ใช้มันเพื่อหาประโยชน์ใส่ตัวเอง แม้จะชั่วร้ายแต่ก็ยังอยู่ในกฎเกณฑ์<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - แม็กนีโต้.ดาร์ธเวเดอร์<br />
<br />
Neutral - Evil <br />
คนที่ไม่สนใจต่อกฎเกณฑ์ใดๆแต่ก็ไม่ได้ต่อต้านจนเอิกเกริกวุ่นวาย จะสนใจเฉพาะสิ่งที่ตนต้องการโดยไม่คำนึงถึงความถูกต้องไม่ว่าจะเป็นการเอารัดเอาเปรียบหรือทรยศผู้อื่นก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - เซฟีรอธ.ลูฟัส(FF7)<br />
<br />
Chaotic - Evil <br />
ผู้ที่ชั่วร้ายไม่คำนึงถึงกฏเกณฑ์ใดๆ ทำทุกอย่างที่ตนพอใจ ผู้เข้มแข็งเท่านั้นทีเป็นความถูกต้อง ยากที่จะหาศีลธรรมได้ในคนเหล่านี้ อาจรวมถึงผู้ที่ไม่จักกฎเกณฑ์ใช้ชีวิตตามสัญชาตญาณของตนเพียงอย่างเดียวด้วย<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - แจ็คเดอะริปเปอร์.ลิโป้.โวลเดอมอ.โจ้กเกอร์<br />
<br />
จบแล้วครับหวังว่าบทความนี้จะทำให้เข้าใจและสามารถเขียนเนื้อเรื่องให้ตัวละครดูมิติยิ่งขึ้นได้นะครับ]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Alignment</span> คือ การจัดลักษณะนิสัยของมนุษย์จากการกระทำและทัศนคติของแต่ละคนแ เราสามารถนำมาปรับใช้ในการสร้างตัวละครต่างๆให้มีชีวิตชีวามากกว่าแบ่งแยกเพียงว่าเป็นตัวดีหรือร้ายเพียงด้านเดียว แบ่งออกเป็นสองด้านดังนี้<br />
<br />
ด้านแรกคือ Good - Evil <br />
Good คือ ด้านที่ดีงาม การช่วยเหลือเสียสละให้แก่ผู้อื่น<br />
Evil คือ ด้านที่ชั่วร้าย กระทำการตามใจชอบเพื่อกดขี่ข่มเหงผู้อื่นให้เป็นไปตามที่ตนต้องการ<br />
Neutral คือ ความเป็นกลางไม่เอนเอียงไปด้านใดด้านหนึ่ง หรือในอีกแง่คือเกรงกลัวไม่กล้าทำความชั่วแต่ก็เพิกเฉยต่อความเดือดร้อนของผู้อื่น<br />
<br />
อีกด้านคือ Law - Chaos <br />
Law คือ การยึดติดกับกฎเกณฑ์หรือหน้าที่ มีความเชื่อที่ฝังหัวไม่ยอมรับการเปลี่ยนแปลง คนที่ยึดติดกับกฎไม่จำเป็นต้องเป็นคนดีเสมอไป เช่น นักบวชที่ทำการล่าแม่มดในสมัยก่อน<br />
Chaos ความเป็นอิสระ การปรับตัวไปตามสถานการณ์พร้อมเปิดรับสิ่งใหม่ๆ<br />
Neutral คือ คนที่เป็นกลางในสองด้านกล่าวคือยอมรับกฎหมายแต่ก็ไมไ่ด้คิดว่าเป็นสิ่งถูกต้องเด็ดขาด มีความเป็นอิสระแต่ก็ไม่ไปละเมิดต่อกฎใดๆ<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><br />
โดยจะรวมทั้งสองด้านแบ่งเป็น 9 ประเภทตามนี้</span><br />
<br />
Lawful - Good <br />
คนที่ทำทุกอย่างเพื่อต่อสู้กับสิ่งที่ตนคิดว่าชั่วร้าย รักความยุติธรรม ผู้ที่ทำชั่วต้องได้รับการลงโทษ ยึดมั่นในหน้าที่และคุณธรรมประจำใจ<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - ร็อคแมน.ซูเปอร์แมน.ก๊วยเจ๊ง.ลุค สกายวอล์คเกอร์<br />
<br />
Neutral - Good <br />
คนที่ทำความดีจากความรู้สึกผิดชอบชั่วดีของตนเองไม่ได้ทำเพราะเชื่อไปตามกฎเกณฑ์ที่กำหนดมา ในบางครั้งเขาก็ทำการละเมิดกฎหากเขาคิดว่ากฎนั้นไม่ชอบธรรม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - โรบินฮู้ด.สไปเดอร์แมน.ขงเบ้ง.แฮรี่พอตเตอร์<br />
<br />
Chaotic - Good <br />
คนที่ยึดมั่นในคุณธรรมของตนเองโดยไม่สนใจต่อกฎเกณฑ์ใดๆเลย เขาจะทำทุกอย่างที่ตนเชื่อว่าถูกต้องแม้ว่ามันจะเป็นสิ่งที่ผิดก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - จอมโจรลูแปง.ซิเรียส แบล็ค<br />
<br />
Lawful - Neutral<br />
คนที่ปฏิบัติตามกฎเกณฑ์อย่างเคร่งครัดโดยไม่สงสัยเคลือบแคลงใดๆทั้งสิ้น เขาเชื่อว่ากฎระเบียบและความเรียบร้อยของสังคมมีค่ามากกว่าศีลธรรม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - โอดะ โนบุนากะ.เจมส์บอน.โอดีสซีอุส<br />
<br />
True - Neutral<br />
คนที่เป็นกลางอย่างแท้จริงไม่มีกฎเกณ์หรือศีลธรรมใดๆมาผูกมัด เขาจะทำสิ่งต่างๆโดยมองแต่ความเป็นจริงไม่ยึดติดต่ออุดมการณ์หรือความต้องการส่วนตน<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - ลาล่าครอฟ.เซเวอรัลสเนป<br />
<br />
Chaotic - Neutral<br />
คนที่ใช้ชีวิตตามใจตนโดยไม่ยึดติดต่อกฎเกณฑ์ศีลธรรมใดๆทั้งสิ้น เขาจะทำในสิ่งที่อยากทำไม่ว่าจะเป็นความดีหรือความชั่วก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - มอเดรด(หลานอาเธอร์?).แจ๊คสแปร์โร<br />
<br />
Lawful - Evil <br />
คนที่เคร่งกฎจะไม่ทำผิดไปจากกฎหมายหรือกฎเกณฑ์ที่ตนตั้งไว้ บางครั้งก็ใช้มันเพื่อหาประโยชน์ใส่ตัวเอง แม้จะชั่วร้ายแต่ก็ยังอยู่ในกฎเกณฑ์<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - แม็กนีโต้.ดาร์ธเวเดอร์<br />
<br />
Neutral - Evil <br />
คนที่ไม่สนใจต่อกฎเกณฑ์ใดๆแต่ก็ไม่ได้ต่อต้านจนเอิกเกริกวุ่นวาย จะสนใจเฉพาะสิ่งที่ตนต้องการโดยไม่คำนึงถึงความถูกต้องไม่ว่าจะเป็นการเอารัดเอาเปรียบหรือทรยศผู้อื่นก็ตาม<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - เซฟีรอธ.ลูฟัส(FF7)<br />
<br />
Chaotic - Evil <br />
ผู้ที่ชั่วร้ายไม่คำนึงถึงกฏเกณฑ์ใดๆ ทำทุกอย่างที่ตนพอใจ ผู้เข้มแข็งเท่านั้นทีเป็นความถูกต้อง ยากที่จะหาศีลธรรมได้ในคนเหล่านี้ อาจรวมถึงผู้ที่ไม่จักกฎเกณฑ์ใช้ชีวิตตามสัญชาตญาณของตนเพียงอย่างเดียวด้วย<br />
ตัวอย่างตัวละครที่มีลักษณะนิสัยนี้ - แจ็คเดอะริปเปอร์.ลิโป้.โวลเดอมอ.โจ้กเกอร์<br />
<br />
จบแล้วครับหวังว่าบทความนี้จะทำให้เข้าใจและสามารถเขียนเนื้อเรื่องให้ตัวละครดูมิติยิ่งขึ้นได้นะครับ]]></content:encoded>
		</item>
	</channel>
</rss>