2 สิงหาคม 2562

เริ่มต้นสร้างเกม เข้าใจง่าย เรียนจบภายในบทเดียว

อยากสร้างเกมของตัวเอง แต่ไม่รู้อะไรเลย หรืออ่านตามเว็บต่าง ๆ แล้วมันเยอะจนงงไปหมด ไม่รู้จะเริ่มต้นตรงไหน คุณมาถูกที่แล้ว บทความนี้จะสอนสร้างเกม จบภายในบทเดียว!



ปรับความเข้าใจ

สร้างเกมไม่ต้องเขียนโปรแกรมก็ได้

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


เกมไม่ได้มีแค่ประเภทเดียว อย่ามองแค่เกมเทพ ๆ

นักสร้างเกมมือใหม่หลายคนคิดไปว่าการสร้างเกมเป็นเรื่องยาก เนื่องจากคิดว่าเกมมีแค่ประเภทเดียว โลกนี้ไม่ได้มีแค่เกมเดินยิง (FPS, TPS) หรือเกม RPG เท่านั้น ถ้ามองแบนั้นแล้วคิดว่าสร้างเกมยากก็ไม่แปลกเลย เพราะมัวแต่มองเกมหรู ๆ ดัง ๆ ลองมองโลกให้กว้างขึ้น เกมมีตั้งหลายประเภท เช่น FPS, TPS, RPG, ต่อสู้, ผจญภัย, ตะลุยด่าน, จำลองชีวิต, กีฬา, วางแผนการรบ, ฯลฯ แม้แต่ XO (Tic-Tac-Toe) และเป่ายิงฉุบก็เป็นเกมได้นะ! สร้างได้ไม่ยากด้วย!


ใช้โปรแกรมอะไรไม่สำคัญ สิ่งสำคัญคือสร้างเกมให้ทำงานได้อย่างไร

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



เริ่มต้นสร้างเกม Step-by-Step

Step 1: กำหนดหัวข้อ

มีไอเดียอยากสร้างเกมโผล่มา อย่าปล่อยให้ลอยหายไป จดไอเดียนั้นไว้ บอกด้วยว่าเกมนั้นเป็นเกมประเภทใด เล่นได้กี่คน ใช้เวลาเล่นเท่าไร และสิ่งที่พอคิดได้คร่าว ๆ ยังไม่ต้องลงลึกในเนื้อเรื่องเกมและ gameplay มากนัก ส่วนชื่อเกมยังไม่ใช่สิ่งที่ต้องรีบคิดในขั้นตอนนี้ ยังไม่ต้องมีชื่อเกมก็ได้

ตัวอย่างการกำหนดหัวข้อ
ชื่อเกม : Daf's Adventure Free!
ประเภท : เกมสวมบทบาท (RPG), ไขปริศนา
จำนวนผู้เล่น : 1 คน
เวลาที่ใช้เล่น : 30 - 60 นาที
ไอเดียที่คิด : พรุ่งนี้เป็นวันเกิดน้องสาว พี่ชายต้องการหาของขวัญให้น้องสาว แต่วันนี้ดันเป็นวัน April Fool's Day เสียนี่!

เกมในตัวอย่างนี้มีอยู่จริงนะ! เราแจกเกมนี้ฟรี! ไม่ล็อกเกมด้วย! เปิดให้คุณได้ศึกษาการสร้างเกมนี้เต็ม ๆ ดาวน์โหลดเล่นฟรีได้ที่ [RMVXA] Daf's Adventure Free! : สุขสันต์วัน April Fool's Day 2018


Step 2: ออกแบบเกม

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

บทความน่าสนใจ
แนะนำโปรแกรมสร้างเกม (เกมเอนจิน)


Step 3: เขียนอัลกอริทึม

นำเนื้อเรื่องของเกมมาเขียนเป็นขั้นตอนจากต้นไปจบ ถ้าเป็นเกมที่ไม่มีเนื้อเรื่อง ให้เขียนขั้นตอนการทำงานของเกม เช่น เกมเริ่มต้นจากอะไร, ลำดับต่อไปคืออะไร, คลิกปุ่มนี้แล้วเกิดอะไรขึ้น อัลกอริทึมเป็นสิ่งสำคัญที่ต้องเขียนก่อนลงมือสร้างเกม เราจะใช้อัลกอริทึมในการสร้างเกมต่อไป ลองเขียนอัลกอริทึมในกระดาษดูสิ!

บทความน่าสนใจ
สอนออกแบบอัลกอริทึม, Flowchart, และ Pseudo Code
แบบฝึกหัดอัลกอริทึม + เฉลย | ฝึกทำเยอะ ๆ จะได้เก่ง

ตัวอย่างอัลกอริทึมของเกม Tic-Tac-Toe

เกมในตัวอย่างนี้มีอยู่จริงนะ! เราสอนสร้างเกมและแจก Source Code ของเกมนี้ในบทความ [Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย)


Step 4: ลงมือสร้างเกมในโปรแกรม

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


Step 5: ทดสอบและแก้ไขเกม

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



คุณต้องการอะไรอีก?

บทความนี้สอนสร้างเกมแบบเข้าใจง่าย บทเดียวจบ ก็สอนวิธีสร้างเกมไปแล้วข้างบน 5 Steps คุณยังต้องการอะไรอีก?

การสร้างเกมมีประมาณนี้ล่ะ อาจมีการวางแผนการสร้างเกมในกรณีที่เกมมีขนาดใหญ่หรือมีคนสร้างเกมหลายคน อาจมีเรื่องการจ้าง outsource ช่วยสร้างเกม มีการเผยแพร่และโฆษณาเกม แต่นั่นไม่ใช่สิ่งจำเป็นสำหรับทุกเกม


ทำไมไม่สอนใช้โปรแกรมสร้างเกม?

บทความนี้เขียนมาเพื่อสอนสร้างเกม ไม่ใช่สอนใช้โปรแกรม ไม่ใช่รีวิวโปรแกรมสร้างเกม การสร้างเกมกับโปรแกรมสร้างเกมเป็นคนละเรื่องกัน โปรแกรมสร้างเกมเป็นเพียงเครื่องมือในการช่วยสร้างเกมเท่านั้น และไม่จำเป็นต้องใช้โปรแกรมสร้างเกมใด ๆ ในการสร้างเกมเลยก็ได้ (เขียนโปรแกรมล้วน ๆ) คุณต้องศึกษาวิธีใช้โปรแกรมสร้างเกมเพิ่มเติมเอง

บทความน่าสนใจ
RPG Maker MV โปรแกรมสร้างเกมยอดนิยม
สร้างเกม Visual Novel ด้วยโปรแกรม Ren'Py


ลงลึกกว่านี้หน่อยได้ไหม?

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

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


เรียนเพิ่มเติมได้จากที่ไหน?

มีหนังสือเยอะแยะที่สอนสร้างเกม บางเล่มเป็นหนังสือภาษาอังกฤษ ใช้อินเทอร์เน็ตให้เป็นประโยชน์ สมัยนี้เว็บภาษาไทยมีสอนสร้างเกมเยอะไป ถ้าอยากไปให้สุดในการสร้างเกมก็ควรเขียนโปรแกรมเป็นบ้าง

ในบล็อกนี้ Planila Game Developer สอนสร้างเกมตั้งแต่มือใหม่จนถึงขั้นสูง มีบทความสอนสร้างเกมมากมายในบล็อกนี้ มีทั้งสอนสร้างเกมจริง ๆ, สอนอัลกอริทึม, สอนใช้โปรแกรมสร้างเกม, แจก source code ของเกมพร้อมอธิบายการสร้าง, แจกเกมฟรี, และวิธีแก้ปัญหาต่าง ๆ ในการสร้างเกม นอกจากนี้เรายังมีเพจ Facebook ชื่อเพจว่า Planila Game Developer กด Like และกดติดตามเพจของเรา เพื่อรับข่าวใหม่จากเราได้ก่อนใคร นอกจากนี้ยังสามารถพูดคุยและขอความช่วยเหลือจากเราได้ที่เพจ


สรุปการสร้างเกม

ขั้นตอนการสร้างเกมมี 5 ขั้นตอนได้แก่ กำหนดหัวข้อ, ออกแบบเกม, เขียนอัลกอริทึม, ลงมือสร้างเกมในโปรแกรม, และทดสอบและแก้ไขเกม การสร้างเกมไม่จำเป็นต้องเขียนโปรแกรม จะเลือกใช้โปรแกรมอะไรไม่สำคัญ สิ่งสำคัญคือไอเดียและอัลกอริทึม เขียนขั้นตอนการทำงานของเกม แบ่งเป็นข้อ ๆ จากต้นไปจบ การสร้างเกมกับโปรแกรมสร้างเกมเป็นคนละเรื่องกัน อย่านำมาปนกัน ถ้าสนใจสายสร้างเกมจริง ๆ ทักษะการเขียนโปรแกรมเป็นสิ่งสำคัญที่ช่วยได้มาก

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


ปุ่มแชร์บทความอยู่ตรงนี้แล้ว กดเลย!


คลิกที่รูปภาพเพื่อเปิดเพจของเรา

30 กรกฎาคม 2562

Ren'Py พื้นฐาน | บทที่ 4 ตัวแปรและตัวดำเนินการ

บทนี้จะเป็นเนื้อหาเกี่ยวกับการเขียนโปรแกรม ผู้อ่านที่ไม่เคยเขียนโปรแกรมมาก่อนไม่ต้องกังวลไป โปรแกรม Ren'Py ใช้รูปแบบเดียวกับภาษา Python ซึ่งเข้าใจง่ายกว่าภาษาคอมพิวเตอร์หลายตัว (เช่น C, Java) จุดประสงค์ของบทนี้คือเพื่อให้ผู้อ่านใช้งานตัวแปรเบื้องต้นได้ ไม่ได้สอนภาษา Python เต็มตัว ผู้เขียนละเนื้อหาเชิงเทคนิคที่ซับซ้อนไว้ เพื่อให้นักสร้างเกมที่ไม่เคยเขียนโปรแกรมสามารถเข้าใจได้ง่าย ๆ สำหรับผู้อ่านที่ต้องการเขียนโปรแกรมเต็มตัวให้ศึกษาภาษา Python จากตำราสอนเขียนโปรแกรม

คำสั่งของโปรแกรม Ren'Py ไม่มีตัวแปรใด ๆ เลย นั่นหมายความว่าเราไม่สามารถเก็บข้อมูลลงหน่วยความจำได้ แต่เกมแนว Visual Novel หลายเกมจำเป็นต้องเก็บข้อมูล เช่น เก็บค่าความรักของนางเอก, หรือเก็บตัวเลือกที่ผู้เล่นเคยเลือก เพื่อนำไปสู่ฉากจบที่แตกต่างกัน กรณีที่ต้องใช้ตัวแปรหรือเก็บข้อมูลแบบนี้ ถึงคราวที่ต้องใช้ภาษา Python แล้วล่ะ!

เนื้อหาในบทนี้จะเป็นเนื้อหาทฤษฎี เราจะนำเนื้อหาในบทนี้ไปต่อยอด และลงมือปฏิบัติจริงกันในบทต่อไป


ประเภทของตัวแปร

ตัวแปร (Variable) คือสิ่งที่เก็บข้อมูล เมื่อเกมหรือโปรแกรมทำงานบางครั้งมีข้อมูลที่ต้องใช้งานต่อในอนาคต เราต้องเก็บข้อมูลนั้นไว้ สิ่งที่เก็บข้อมูลก็คือตัวแปร เมื่อถึงเวลาที่ต้องการก็เรียกใช้ข้อมูลจากตัวแปรนั้น
(เชิงเทคนิค : ในทางทฤษฎีตัวแปรเป็นเพียงสิ่งที่สมมติขึ้น เพื่อใช้อ้างอิงตำแหน่งที่เก็บข้อมูลในหน่วยความจำ ตัวแปรไม่ได้เก็บข้อมูลจริง ๆ แต่ตามตำรามักสอนว่าตัวแปรเก็บข้อมูล เพื่อให้คนที่เพิ่งเรียนเขียนโปรแกรมเข้าใจง่าย)

ตัวแปรที่ควรทราบในภาษา Python มี 2 ประเภทได้แก่
  • ตัวแปรตัวเลข (Number) เก็บข้อมูลที่เป็นจำนวนเต็ม (Integer) หรือทศนิยม (Floating-Point) เช่น 0, -5, 91, -12.67
  • ตัวแปรข้อความ (String) เก็บข้อมูลที่เป็นตัวอักษรหรือข้อความ เช่น "A", "Planila Game Developer", 'Visual Novel'

ภาษา Python แตกต่างจากหลายภาษา (เช่น C, Java) ตรงที่ตัวแปรจะถูกประกาศทันทีที่ใช้งาน ไม่ต้องประกาศตัวแปรล่วงหน้า และไม่ต้องระบุประเภทของตัวแปร วิธีใช้ตัวแปรเพียงแค่ใส่ชื่อของตัวแปร (Identifier) และกำหนดค่าให้ตัวแปร ถ้าตัวแปรนั้นไม่เคยมีมาก่อนจะถือว่าเป็นการประกาศตัวแปรโดยอัตโนมัติ และโปรแกรมจะเลือกประเภทของตัวแปรให้โดยอัตโนมัติ ตัวอย่างเช่น


ตัวแปรตัวเลขแบ่งย่อยเป็นตัวแปรจำนวนเต็ม (Integer) และตัวแปรทศนิยม (Floating-Point) ความแตกต่างคือการเก็บค่าทศนิยม เช่น x = 1 เป็นตัวแปรจำนวนเต็ม, แต่ y = 1.0 เป็นตัวแปรทศนิยม (สังเกตจากการใส่จุดทศนิยม ไม่สนใจว่าเลขหลังทศนิยมคือเลขอะไร)

ข้อความหรือตัวอักษรที่ใส่ในตัวแปรข้อความต้องอยู่ในเครื่องหมาย ' ' หรือ " " เช่น name = 'Planila' หรือ name = "Planila" ก็มีค่าเหมือนกัน ภาษา Python ไม่มีตัวแปรตัวอักษร (Character) โดยเฉพาะเหมือนภาษา C ดังนั้นตัวแปรที่เก็บตัวอักษรเพียงตัวเดียวจะถูกจัดอยู่ในตัวแปรข้อความ

Boolean คือส่วนหนึ่งของ Integer

ภาษา Python ไม่มีตัวแปรตรรกศาสตร์ (Boolean) โดยเฉพาะเหมือนภาษา C หรือ Java แต่สามารถเก็บค่าทางตรรกศาสตร์ลงในตัวแปรจำนวนเต็มได้ (Boolean เป็นส่วนหนึ่งของ Integer) ผลลัพธ์ทางตรรกศาสตร์ในภาษา Python ได้แก่ 0 (และ 0.0) คือเท็จ (False) และนอกจากนั้นคือจริง (True) แต่โดยทั่วไปมักกำหนดให้จริงเท่ากับ 1 การกำหนดค่าตรรกศาสตร์ต้องใส่เป็นตัวเลขเท่านั้น เช่น love = 1 ไม่สามารถใส่เป็น True หรือ False ได้

นอกจากนี้ภาษา Python ยังมีตัวแปรประเภทอื่น เช่น Lists, Tuple, Set ตัวแปรเหล่านี้สามารถใช้ในโปรแกรม Ren'Py ได้ แต่ผู้เขียนจะไม่สอนในบทความนี้ เนื่องจากเป็นเนื้อหาที่ลึกและไม่จำเป็นสำหรับนักสร้างเกมมือใหม่

23 กรกฎาคม 2562

Ren'Py พื้นฐาน | บทที่ 3 กล่องข้อความ

กล่องข้อความคือส่วนสำคัญในเกมแนว Visual Novel เนื่องจากเป็นส่วนที่แสดงคำพูดของตัวละคร โปรแกรมเกมเอนจิน Ren'Py มีลูกเล่นเกี่ยวกับกล่องข้อความมากมาย นักสร้างเกมสามารถสร้างกล่องข้อความสวย ๆ ได้อย่างง่ายดาย สำหรับผู้อ่านที่ต้องการใช้ภาษาไทยในโปรแกรม Ren'Py ให้ท่านเปลี่ยนฟอนต์ก่อนทดสอบเกม อ่านเพิ่มเติมได้ในหัวข้อ "เปลี่ยนฟอนต์ ขนาด และสีตัวอักษร (ทั้งเกม)"
กล่องข้อความในเกมที่สร้างด้วยโปรแกรม Ren'Py แบ่งเป็น 3 ส่วนดังรูปที่ 3.1 ได้แก่
  • ส่วนที่ 1 ชื่อตัวละคร
  • ส่วนที่ 2 ข้อความหรือคำพูดตัวละคร
  • ส่วนที่ 3 พื้นหลังกล่องข้อความ
รูปที่ 3.1 กล่องข้อความในเกมที่สร้างด้วยโปรแกรม Ren'Py

คำสั่งที่แสดงข้อความในกล่องข้อความมี 2 รูปแบบ รูปแบบแรกมีสองส่วนคือส่วนชื่อตัวละครและส่วนคำพูดตัวละคร แต่ละส่วนอยู่ภายในเครื่องหมาย " " รูปแบบนี้เหมาะสำหรับคำพูดทั่วไป

รูปแบบที่สองมีเพียงส่วนเดียวคือส่วนคำพูดตัวละครที่อยู่ในเครื่องหมาย " " คำสั่งรูปแบบนี้จะแสดงเฉพาะคำพูดตัวละคร ไม่แสดงชื่อตัวละคร รูปแบบนี้เหมาะสำหรับประโยคที่ตัวละครคิดในใจ หรือข้อความแจ้งเตือนจากเกม


ตัวอย่างคำสั่งที่ใช้แสดงข้อความในรูปที่ 3.1 คือ



ประกาศตัวแปรเก็บชื่อตัวละคร

ก่อนเรียนเรื่องการใช้กล่องข้อความต่อ ผู้เขียนมีเทคนิคการใส่คำสั่งให้สั้นลง เกมแนว Visual Novel ต้องแสดงข้อความหรือคำพูดจำนวนมาก จึงต้องแสดงชื่อตัวละครเดิมซ้ำกันหลายครั้ง โปรแกรม Ren'Py มีเทคนิคที่จัดการกับชื่อตัวละคร แทนที่จะใส่ชื่อตัวละครเดิมซ้ำกันทุกครั้ง เราสามารถประกาศตัวแปรและใส่ชื่อตัวละครลงในตัวแปรแทนได้ในรูปแบบดังนี้

ตัวอย่างเช่น ประกาศตัวแปร a แล้วใส่ชื่อตัวละคร Aiya ลงในตัวแปร a คำสั่งแสดงข้อความไม่ต้องใส่เครื่องหมาย " " ในส่วนชื่อตัวละครที่เป็นตัวแปร (ถ้าส่วนชื่อตัวละครไม่ใช่ตัวแปรจะต้องใส่เครื่องหมาย " " ทุกครั้ง) เราสามารถแสดงข้อความดังรูปที่ 3.1 ด้วยเทคนิคตัวแปรดังนี้


จากตัวอย่างข้างบนจะเห็นว่าใช้ตัวอักษรเพียงตัวเดียวคือ a เพื่อแสดงชื่อตัวละคร Aiya ซึ่งมีสี่ตัวอักษร ความสะดวกนี้จะเห็นได้ชัดเจนขึ้นเมื่อตัวละครมีชื่อยาว เช่น เก็บชื่อตัวละคร Princess Sofia de Lupier ลงตัวแปรชื่อ s แล้วเรียกใช้ชื่อตัวละครผ่านตัวแปร s ทำให้ไม่ต้องพิมพ์ชื่อยาว ๆ ทุกครั้งที่ใส่คำสั่งแสดงข้อความ การประกาศตัวแปรให้ประกาศเพียงครั้งเดียวก่อนใช้ จากนั้นสามารถใช้ตัวแปรนั้นได้ตลอดทั้งเกมโดยไม่ต้องประกาศตัวแปรใหม่ ถ้ามีตัวแปรที่เก็บชื่อตัวละครหลายตัวแปร ตัวแปรแต่ละตัวต้องมีชื่อที่ไม่ซ้ำกัน

16 กรกฎาคม 2562

Ren'Py พื้นฐาน | บทที่ 2 เริ่มต้นกับ Ren'Py

นักสร้างเกมหลายคนอยากสร้างเกมแรกเร็ว ๆ ผู้เขียนจึงพยายามยัดพื้นฐานการสร้างเกมด้วย Ren'Py ภายในบทเดียว เมื่ออ่านบทนี้จนจบผู้อ่านจะสามารถสร้างเกมอย่างง่ายด้วยโปรแกรม Ren'Py ได้ ในบทนี้เราจะเรียนกันเรื่องการสร้างโปรเจ็กต์ใหม่ การทดสอบเกม การแสดงคำพูด การแสดงรูปพื้นหลัง การแสดงรูปตัวละคร และการใส่คอมเมนต์


สร้างโปรเจ็กต์ใหม่ และทดสอบเกม

หัวข้อนี้จะเรียนการสร้างโปรเจ็กต์เกมใหม่และการทดสอบเกม สาเหตุที่นำสองอย่างนี้มารวมในหัวข้อเดียวกันเพราะเป็นสิ่งที่ต้องใช้โปรแกรม Ren'Py จริง นอกจากนั้นจะเป็นการใส่คำสั่งด้วยโปรแกรมประเภท Text Editor นี่ฟังดูแปลก ถึงจะบอกว่าเป็นการสร้างเกมด้วยโปรแกรม Ren'Py แต่ส่วนใหญ่กลับไม่ได้ใช้โปรแกรม Ren'Py ในการสร้างเกม
รูปที่ 2.1 หน้าต่างโปรแกรม Ren'Py

การสร้างโปรเจ็กต์ใหม่

1. คลิก Create New Project ด้านซ้ายของโปรแกรม (ดูรูปที่ 2.1)
2. โปรแกรมจะแสดงข้อความ Information ให้คลิก Continue
3. ตั้งชื่อโปรเจ็กต์ (ตัวอักษรอังกฤษหรือตัวเลขเท่านั้น) จากนั้นคลิก Continue
4. เลือกขนาดหน้าต่างเกม แนะนำให้เลือกขนาด 1280 x 720 จากนั้นคลิก Continue
5. เลือกสีหลักของเกม การแสดงแบบเต็มจอหรือหน้าต่าง และความเร็วตัวอักษรในเกม จากนั้นคลิก Continue
รูปที่ 2.2 เลือกสีและตั้งค่าได้ตามใจชอบ

5 วิธีแก้ไขปัญหา Not Responding ที่ต้นเหตุ

Not responding เป็นปัญหาโลกแตกที่หลายคนเจอ พอเด้งขึ้นมาแต่ละทีก็ทำใจหายไปหมด ยิ่งถ้ายังไม่ได้กดบันทึกแล้วความน่ากลัวจะเพิ่มขึ้นมหาศาล เล่นเกมมาตั้งนาน ปั่นงานมาเกือบเสร็จ ต้องเริ่มต้นใหม่เลยเหรอเนี่ย!

เจ้า not responding นี่เป็นอาการครอบจักรวาลเสียด้วย ถ้าเปรียบเทียบกับมนุษย์แล้ว not responding ก็คืออาการปวดหัวนั่นล่ะ เป็นอาการเบื้องต้นที่เกิดได้จากหลายสาเหตุมาก วิธีแก้ไขปัญหา not responding มี 2 ทาง วิธีแรกคือแก้ไขปัญหาตามอาการ รักษาตามที่เห็นภายนอก และอีกวิธีคือแก้ไขปัญหาที่ต้นเหตุ ซึ่งยากกว่ากันเยอะและอาจแก้ด้วยตัวเองไม่ได้เลย

CAUSE: โปรแกรมยังทำงานไม่เสร็จ

สาเหตุปลายทางของอาการ not responding คือโปรแกรมนั้นยังทำงานไม่เสร็จ ไม่ว่าจะทำงานไม่เสร็จด้วยสาเหตุใดก็ตาม ถ้าโปรแกรมยังทำงานไม่เสร็จและเราพยายามให้โปรแกรมนั้นทำงานเพิ่ม (แม้แต่การคลิกบนโปรแกรมนั้นเฉย ๆ ก็ถือว่าเป็นการทำงานเพิ่มด้วย เพราะโปรแกรมต้องทำงานว่าจะตอบสนองกับการคลิกอย่างไร) โปรแกรมจะไม่ตอบสนองต่อคำสั่งใหม่ของเรา เพราะการทำงานเก่ายังไม่เสร็จ อธิบายง่าย ๆ คือโปรแกรมแบบนี้ทำงานได้ทีละอย่างเท่านั้น ถ้ากำลังทำงานอยู่ก็ไม่ว่างตอบสนองกับเรา พอโปรแกรมไม่สามารถตอบสนองกับเราด้วยตัวเองได้ ระบบปฏิบัติการจะตอบสนองแทนว่า "โปรแกรมไม่ตอบสนอง (Not Responding)" ระบบปฏิบัติการเองก็ไม่รู้เหมือนกันว่าโปรแกรมกำลังทำงานอะไรอยู่ จึงไม่สามารถให้รายละเอียดได้

โปรแกรมทำงานไม่เสร็จเป็นแค่สาเหตุปลายทางเท่านั้น ถ้าจะแก้ไขปัญหา not responding จริง ๆ ต้องแก้ไขที่สาเหตุต้นทาง อะไรที่ทำให้โปรแกรมทำงานไม่เสร็จก็แก้ที่ตรงนั้น สาเหตุต้นทางของปัญหานี้มีมากมาย ผู้เขียนรวบรวมสาเหตุต้นทางและวิธีแก้ไขมาไว้ในบทความนี้

9 กรกฎาคม 2562

Ren'Py พื้นฐาน | บทที่ 1 สร้างเกม Visual Novel ด้วย Ren'Py

เกมแนว Visual Novel หรือที่คุ้นเคยว่าเกมจีบสาว/เกมจีบหนุ่มเป็นเกมอีกแนวที่ได้รับความนิยม ตัวเกมแนว Visual Novel สร้างง่ายกว่าเกมแนวอื่น เพียงแค่ใส่ภาพ เสียง และตัวอักษรก็ได้เป็นเกมแล้ว จริง ๆ แล้วเกม Visual Novel ไม่จำเป็นต้องเป็นเกมจีบสาวหรือเกมจีบหนุ่มเท่านั้น แนวคิดของเกม Visual Novel คือนิยายที่นำเสนอออกมาเป็นภาพให้ผู้อ่านเข้าใจเนื้อเรื่องได้ จะเป็นนิยายต่อสู้ แฟนตาซี หรือว่าอะไรก็ได้ เพียงแค่นิยายจีบสาวหรือจีบหนุ่มได้รับความนิยมสร้างเป็นเกม Visual Novel มากกว่าเนื้อเรื่องแบบอื่นเท่านั้นเอง

บทความ "Ren'Py พื้นฐาน" ชุดนี้จะสอนสร้างเกมแนว Visual Novel ด้วยโปรแกรมเกมเอนจิน Ren'Py ผู้เขียนแนะนำให้ใช้โปรแกรม Ren'Py เนื่องจากเป็นโปรแกรมฟรี คุณภาพดี ได้รับความนิยม และมีเกม Visual Novel หลายเกมที่สร้างด้วยโปรแกรม Ren'Py ส่วนโปรแกรมเกมเอนจินตัวอื่นที่เสียเงินซื้อผู้เขียนลองดูแล้วสามารถสร้างเกม Visual Novel ได้ไม่แตกต่างจากเกมที่สร้างด้วย Ren'Py นักเท่าไร คงเป็นเพราะเกมแนว Visual Novel ไม่ได้มีลูกเล่นอะไรมากอยู่แล้ว ดังนั้นผู้เขียนจึงแนะนำให้ใช้โปรแกรม Ren'Py ซึ่งเป็นโปรแกรมฟรีจะดีกว่า
รูปที่ 1.1 เกมแนว Visual Novel ที่สร้างด้วยโปรแกรม Ren'Py

บทความที่เกี่ยวข้อง
เกมเอนจิน (Game Engine) คืออะไร?


แนะนำโปรแกรม Ren'Py

Ren'Py คือโปรแกรมเกมเอนจินสำหรับสร้างเกมแนว Visual Novel (VN) วิธีสร้างเกมด้วยโปรแกรม Ren'Py คือการใส่คำสั่ง (Code) ลงในไฟล์สคริปต์ของเกมด้วยโปรแกรมประเภท Text Editor (เช่น Notepad) จากนั้นจึงแปลคำสั่ง (Compile) ด้วยโปรแกรม Ren'Py เพื่อให้ได้ออกมาเป็นเกม

โปรแกรม Ren'Py แตกต่างจากโปรแกรมเกมเอนจินสำหรับสร้าง Visual Novel ตัวอื่นตรงที่ต้องใช้งานคู่กับโปรแกรมอื่น (ซึ่งหมายถึง Text Editor) ไม่ได้สร้างเกมด้วยการคลิกปุ่มต่าง ๆ จนออกมาเป็นเกม ส่วนนี้อาจทำให้นักสร้างเกมที่ไม่ชอบการเขียนโปรแกรมไม่ชอบโปรแกรมนี้ แต่ไม่ต้องกังวลไป ถ้าเทียบกับการเขียนโปรแกรมอย่าง Java หรือ Visual Basic แล้ว คำสั่งของโปรแกรม Ren'Py นั้นเข้าใจง่ายและเรียนรู้ง่ายกว่ากันเยอะเลย ผู้เขียนได้เลือกโปรแกรมมาให้เหมาะสำหรับนักสร้างเกมมือใหม่แล้ว
รูปที่ 1.2 โปรแกรม Ren'Py