28 เมษายน 2560

[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 5 มาสร้างเกมแรกกันเถอะ

ติดตามและพูดคุยกับเราได้ที่เพจ https://www.facebook.com/PlanilaGameDeveloper

หลังจากที่ได้อ่านเนื้อหาทฤษฎีมา 4 บทแล้ว มาถึงบทนี้ผู้อ่านหลายคนคงอยากลองสร้างเกมจริง ๆ ขึ้นมาบ้างแล้ว ในบทนี้ผู้เขียนเลยจะมาพาผู้อ่านทุกคนมาสร้างเกมแรกกัน ไม่ต้องตกใจไปหรอก บางคนอาจสงสัยว่า "เพิ่งเรียนแค่นิดเดียวจะมีความรู้พอให้สร้างเกมได้หรือ?" คำตอบคือได้แน่นอน การสร้างเกมไม่ต้องใช้ความรู้มากก็ได้ เพียงแค่ทราบพื้นฐานที่จำเป็นก็พอ สิ่งที่สำคัญในการสร้างเกมเลยคือการนำอัลกอริทึมมาประยุกต์ใช้ ในบทนี้เราจะมาสร้างเกม TicTacToe หรือที่เราเรียกภาษาบ้าน ๆ ว่าเกม XO กัน ผู้อ่านก็ลองสร้างเกมนี้ตามไปพร้อม ๆ กันเลย


จะนำตัวอย่างเกมในบทนี้ไปสร้างจริง ๆ ได้อย่างไร?

เนื่องจากบทความ "เรียนสร้างเกมกับมิกิจัง" เป็นบทความเชิงทฤษฎีที่ไม่เจาะจงอุปกรณ์ ภาษาอุปกรณ์ และเกมเอนจินใด ๆ ดังนั้นตัวอย่างเกมในบทความนี้จะใช้ Pseudo Code ในการอธิบายเป็นหลัก ผู้อ่านจะต้องแปลง Pseudo Code เหล่านี้เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจินที่ผู้อ่านใช้เอาเอง ส่วนวิธีแปลง Pseudo Code เป็นภาษาอุปกรณ์หรือคำสั่งในเกมเอนจิน ผู้อ่านต้องศึกษาคำสั่งต่าง ๆ จากบทความที่สอนภาษาอุปกรณ์หรือเกมเอนจินตัวนั้น แล้วเลือกใช้คำสั่งที่คล้ายหรือใกล้เคียงกับ Pseudo Code มากที่สุด ตัวอย่างเกมในบทนี้จะเลือกใช้คำสั่งที่ง่ายสำหรับมือใหม่ เพื่อให้ผู้อ่านสามารถแปลง Pseudo Code ได้ง่ายที่สุด

23 เมษายน 2560

เรียนสร้างเกมกับมิกิจัง เดอะซีรี่ย์ ทำไมอัพบทใหม่ช้า?

หลายคนที่เข้ามาอ่านบทความ "เรียนสร้างเกมกับมิกิจัง" ในบล็อกนี้อาจสงสัยว่าทำไมมิกิอัพบทใหม่ช้า ในตอนท้ายของแต่ละบทจะบอกไว้ว่า "อัพบทใหม่ทุกวันศุกร์ แล้วพบกันใหม่บทหน้าในวันศุกร์ ที่...... เดือน......" แต่พออัพบทใหม่จริง ๆ ก็ประมาณวันเสาร์วันอาทิตย์

สาเหตุเป็นเพราะว่าบทความ "เรียนสร้างเกมกับมิกิจัง" มิกิไม่ได้เผยแพร่แค่ในบล็อกนี้เพียงที่เดียว แต่มิกิยังเผยแพร่ในเว็บอื่น ๆ ด้วย เพื่อให้ทุกคนเข้าถึงบทความของมิกิได้ง่ายขึ้น บางเว็บใช้ bbcode เขียน บางเว็บใช้ javascript เขียน พอมาบล็อกนี้ก็ใช้ html เขียน กว่ามิกิจะแปลงจากโค้ดหนึ่งไปเป็นอีกโค้ดหนึ่งก็ต้องใช้เวลาเป็นชั่วโมงอยู่ ยิ่งบทความบทไหนมีการใช้ลูกเล่นเยอะ ๆ อย่างตารางหรือ pseudo code ก็ยิ่งใช้เวลานานเข้าไปอีก การที่จะให้มิกิลงบทความบทใหม่ในทุก ๆ เว็บพร้อมกันในวันเดียวมิกิทำไม่ไหวหรอกค่ะ

เนื้อหาของบทความ "เรียนสร้างเกมกับมิกิจัง" ในแต่ละเว็บเหมือนกันทั้งหมดค่ะ จะมีต่างกันก็แค่รูปแบบการจัดเรียงต่าง ๆ ที่แต่ละเว็บมีไม่เหมือนกัน ดังนั้นที่มิกิบอกว่า "อัพบทใหม่ทุกวันศุกร์" มิกิจะใช้เว็บ irpg เป็นตัวอ้างอิงเวลาค่ะ เนื่องจากมิกิจะอัพบทความบทใหม่ในเว็บ irpg เป็นที่แรก ดังนั้นถ้าผู้อ่านอยากจะอ่านบทความบทใหม่ในวันศุกร์จริง ๆ ผู้อ่านต้องไปอ่านที่เว็บ http://irpg.in.th เอาค่ะ มิกิจะอัพบทความบทใหม่ประมาณช่วงเวลา 18.00 น. ถึง 23.59 น.

ถึงแม้ว่ามิกิจะลงบทความเอาไว้หลายเว็บ แต่บล็อกนี้เป็นบล็อกรวมบทความของมิกิ อาจจะมีบางบทความในบล็อกนี้ที่มิกิไม่ได้เอาไปเผยแพร่ในเว็บอื่นอยู่ค่ะ ดังนั้นถ้าจะติดตามผลงานของมิกิก็แนะนำให้ติดตามทางบล็อกนี้เป็นหลักนะคะ

ขอบคุณที่ติดตามผลงานของผู้เขียนมาตลอด ขอบคุณค่ะ

21 เมษายน 2560

[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 4 นิพจน์ (Expression)

ติดตามและพูดคุยกับเราได้ที่เพจ https://www.facebook.com/PlanilaGameDeveloper

จากบทที่แล้ว เราได้เรียนรู้วิธีการเขียนอัลกอริทึมแบบต่าง ๆ กันไปแล้ว การเขียนอัลกอริทึมส่วนใหญ่นั้นจะต้องมีการคำนวณเกิดขึ้นด้วย ดังนั้นในบทนี้เราจะมาเรียนวิธีการดำเนินการต่าง ๆ ทางคณิตศาสตร์เพื่อใช้ในการเขียนอัลกอริทึมกัน


ตัวแปรคืออะไร?

ตัวแปร (Variable) หมายถึงค่าที่ถูกเก็บไว้ในหน่วยความจำของอุปกรณ์ สามารถเปลี่ยนแปลงได้ตามที่เราต้องการ ตัวแปรสามารถใช้ประโยชน์ได้หลายอย่าง เช่น นับจำนวนครั้งที่วนลูป, คำนวณเลข, รับข้อมูลจากคีย์บอร์ด, เก็บคะแนนของผู้เล่น เป็นต้น การที่เราจะใช้ตัวแปรได้นั้นเราจะต้องประกาศตัวแปรก่อน การประกาศตัวแปร (Variable Declaration) เราต้องตั้งชื่อที่จะใช้เรียกและกำหนดประเภทของตัวแปรนั้น กฎการตั้งชื่อตัวแปรมีคร่าว ๆ ดังนี้

14 เมษายน 2560

[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 3 อัลกอรึทึม (Algorithm)

ติดตามและพูดคุยกับเราได้ที่เพจ https://www.facebook.com/PlanilaGameDeveloper

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


อัลกอริทึมคืออะไร?

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


ทำไมต้องเขียนอัลกอริทึม?

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

7 เมษายน 2560

[สอนสร้างเกม] เรียนสร้างเกมกับมิกิจัง : บทที่ 2 เกมเอนจิน (Game Engine)

ติดตามและพูดคุยกับเราได้ที่เพจ https://www.facebook.com/PlanilaGameDeveloper

***จากนี้ไปจะเรียก "การสร้างเกม" ว่า "การพัฒนาเกม (Game Development)"***

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


เกมเอนจินคืออะไร?

เกมเอนจิน (Game Engine) คือโปรแกรมที่เป็นเครื่องมือช่วยพัฒนาเกม โดยเราจะให้คำสั่งง่าย ๆ กับเกมเอนจิน แล้วเกมเอนจินจะนำคำสั่งของเราไปแปลเป็นคำสั่งที่อุปกรณ์เข้าใจได้อีกทีหนึ่ง ซึ่งจะช่วยลดความยุ่งยากในการพัฒนาเกม เกมเอนจินทำหน้าที่เปรียบเหมือนล่ามที่คอยแปลจากภาษาคนเป็นภาษาของอุปกรณ์นั้น ๆ ทำให้เราสามารถพัฒนาเกมได้โดยไม่จำเป็นต้องเรียนรู้ภาษาเครื่องของอุปกรณ์นั้นเลย จึงทำให้การพัฒนาเกมเป็นเรื่องที่ง่ายขึ้น