เกม Dark Souls กับเขียนโปรแกรม

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

ทำความรู้จัก Dark Souls เกมยากในตำนาน

Dark Souls ภาคแรกเปิดตัวในปี 2011 หรือ 8 ปีที่แล้ว (ส่วนที่ภาคที่ผมเล่นจะเป็น Dark Souls Remastered ที่ออกในปี 2018 ที่ผ่านมา) จากค่าย FromSoftware (บริษัทสตูดิโอเกมในญี่ปุ่น) เป็นเกมแนว Action สวมบทบาท ในโลกยุคโบราณ (โลกสมมุติ) อารมณ์แนวโลกที่มีอัศวิน มังกร เวทย์มนตร์และปีศาจ หลายๆ คนอาจจะคิดว่าก็ไม่เห็นจะต่างจากเกมอื่นๆ เลย อย่าง Skyrim หรือ The Witcher ถึงแม้ว่าธีมหลักของเรื่องจะออกแนวคล้ายๆ กัน คือถึงแม้เป้าหมายหลักของเราคือ เกิดมาเพื่อไปปราบเหล่าปีศาจและช่วยโลกก็ตาม แต่อย่าเพิ่งตัดสินว่าธีมเหมือนกัน อารมณ์จะได้เหมือนกัน ผมเองเคยเล่น Skyrim มาก่อนครับ ยอมรับเลยว่าอารมณ์ที่ได้ค่อนข้างต่างกันมากจริงๆ

เริ่มต้นเราจะได้เป็น Undead ผู้ติดคำสาป Dark Souls (หมายความว่าเราจะไม่มีทางตาย คือต่อให้ตายก็จะกลับมาเกิดใหม่ ณ จุด checkpoint เสมอ) แต่ยังมีสติอยู่กับตัว ที่ต้องเดินทางตามหาวิธีแก้คำสาป ซึ่งระหว่างทางคุณจะต้องเจอผู้คน สิ่งมีชิวิตต่างๆ ที่ติดคำสาป Dark Souls ที่กลายร่างเป็นลักษณะ Zombie หรืออสูรกาย ที่พร้อมจะฆ่าคุณ เมื่อใดที่เข้าใกล้

Hollow ภาพจาก vignette.wikia.nocookie.net
Dragon ภาพจาก windowscentral.com

จุดสังเกต หากเข้าใกล้แล้วพร้อมพุ่งเข้าฆ่าคุณ สิ่งมีชีวิตนั้นกลายเป็น Hollow ไปแล้ว กล่าวคือไม่มีสติกับตัว แต่หากเป็น Undead หรือคนที่ยังไม่ติด Dark Souls เรายังพอที่จะคุยกับเขาได้ รวมถึงสามารถซื้อขายกับพวกเขาได้

สำหรับภาคที่ผมเล่นจะเป็น Dark Souls ฉบับ Remastered ซึ่งได้รวมต่างๆ DLC มาพร้อมกับเกมเลย ทำให้ถ้าซื้อก็ถือว่าคุ้มค่ามาก เพราะไม่ต้องไล่ซื้อ DLC เหมือนหลายๆ เกม

ระบบการเล่น

  • มีชุดเลือกใส่ เลือกใส่ได้ตามที่เราชอบ โดยชุดอาจจะได้มากจากการฆ่ามอนข้างทาง หรือเอาเงินไปซื้อกับ NPC หรือเราจะไม่ใส่อะไรเลยก็ได้
  • เลือกอาวุธที่ถนัด อาวุธค่อนข้างหลากหลาย ทั้งดาบสั้น ดาบยาว หอก ขวาน ธนู โล่ และอื่นๆ
  • ขวดยาเติมเลือด ซึ่งถ้าใช้หมด เราไปเติมได้ที่จุด checkpoint หรือเรียกว่า bornefire แต่ถ้ากดปุ๊ป มอนที่เราตีมาทั้งหมด จะได้เกิดใหม่ทันที (ยกเว้นบางตัวตายแล้วตายเลย)
  • ของเสริม เช่น พวกแหวนเพิ่มพลัง, แหวนเพิ่มความทนทานไฟ
  • NPC สามารถคุย และทำเควสเนื้อเรื่องของแต่ละคนได้ (โดยไม่มีสถานะบอกเหมือนหลายๆ เกม)
  • Humanity เป็นของสำหรับคืนชีพเป็นคนอีกครั้ง ทั้งยังโคตรจะสำคัญ ทั้งช่วยเพิ่มโอกาสเจอ item ชิ้นอื่นๆ มากขึ้น และจะได้เมื่อฆ่ามอนข้างทาง หรือได้จากการชนะบอส
  • อัพเลเวล เราสาารถเลือกอัพเลเวลส่วนค่าสถานะที่เราต้องการได้ เช่น เลือด, ความแข็งแกร่ง, ความอึด, สติปัญญา (ไว้ร่ายเวทย์)
  • เข้าแก๊งค์ หรือ covenent ต่างๆ ถ้าเราเข้าร่วมเราจะได้ item เป็นการตอบแทน

ความน่าสนใจของ Dark Souls

  • ไม่มีแผนที่ ใช่แล้วครับ ผมไม่ได้เขียนผิดแต่อย่างใด Dark Souls เป็นเกมที่จะไม่มีแผนที่ให้ผู้เล่นเลย เราต้องหาทางเอาเอง จดจำเส้นทางเอง บ่อยครั้งด้วยความที่แผนที่เกมนี้มันช่างสลับซับซ้อน ทำให้หลงเอาได้ง่ายๆ
  • จะไปตีบอสตัวไหนก็ได้ ถ้าไปได้ เป็นเกมที่ค่อนข้างอิสระกับผู้เล่น คือเราสามารถไปตีบอสตัวไหนก่อนก็ได้ ถ้าเราสามารถไปหาบอสตัวนั้นได้ ดังนั้นถ้าคิดว่าเอาไหว ก็ไฟท์ได้เลย
  • ไม่เน้น RPG ถึงแม้จะมีระบบอัพเลเวลในเกม แต่หาใช่ความสำคัญของเกมนี้เลยแม้แต่น้อย คือถ้าฝีมือคุณถึงจริง ไม่จำเป็นต้องอัพเลเวลแต่อย่างใด คือเล่นด้วยเลเวลเดิมจนจบเกมก็ได้ ใช้อาวุธต้นเกมจนจบเกมก็ได้ ดังนั้นเกมนี้ถึงเกิดมาเพื่อเน้นฝีมือจริงๆ
  • เงินตกถ้าตาย เงินหายถ้าตายอีก เกมนี้ถ้าเราตาย เงินที่เราเก็บได้ซึ่งเรียกว่า Souls จะตกใกล้ๆ ที่เราตาย ดังนั้นถ้าเราอยากจะได้คืน ต้องรีบวิ่ง ฝ่าฝูงมอนไปเก็บ ถ้าตายระหว่างทาง เงินเหล่านี้จะหายไปตลอดกาล (เกมมีแหวนที่ใส่แล้ว เงินจะไม่หายอยู่นะ)
  • ความตายเป็นสิ่งธรรมดา เคยไหมที่โดนลูกกระจ๊อกข้างทาง ที่เราคิดว่ากากฆ่าเราตาย ตกเหวหรือตกลิฟต์ตาย โดนหมาฟันตาย โดนยุงกัดตาย หรือแม้แต่โดนหนูกัดตาย ใช่แล้วครับที่ผมพูดมาทั้งหมดไม่ได้เวอร์แต่อย่างใด มอนสเตอร์ทุกตัวในเกมนี้ฆ่าเราได้ทั้งหมดครับ (ยกเว้นพวกที่ไม่โจมตีเราถ้าเราไม่ได้ตีเขาก่อน) แต่เกมยังใจดีถ้าตายแล้วก็แค่กลับไป checkpoint ที่เรากดล่าสุด
  • การกระทำล้วนมีผลตามมา ถ้าเราเผลอตี NPC ละก็เขาอาจจะไล่ฆ่าเรา ไม่ขายของให้เรา และ NPC ตายแล้วตายเลย คือถ้าคุณฆ่า NPC เพื่อหวังเงินหรือเพื่อความซะใจ คุณจะไม่ได้เจอเขาอีกเลยตลอดการเล่นเกม หากเผลอกดพลาดแล้วอยากแก้ไข ใช่แล้วครับมีทางแก้ แต่ต้องหาเงินไปไถ่บาป อารมณ์เสียค่าปรับ ถ้าเราเผลอกดตีพลาด แล้วยังไม่ได้ฆ่า NPC ทิ้งนะครับ ถ้าเราเลือกเข้าแก๊งค์ไหนก็ตาม หากเข้าแล้วอาจจะมีคนแก๊งค์ตรงข้ามมาไล่ฆ่าคุณ ด้วยระบบที่ online ได้ โดยมีเงื่อนไขว่าคุณต้องเป็นคน ถึงจะมีคนมาไล่ฆ่าคุณได้ ดังนั้นหากกลัวก็ปิด online ก็ได้อิๆ
  • บททดสอบความพยายาม บอสด่านแรก (ไม่เชิงด่านแรก แต่เป็นด่านที่แนะนำวิธีเล่นมากกว่า)ที่จะเจอเลยคือ Asylum Demon ซึ่งหลายๆ คนคิดว่าน่าจะฆ่าได้ง่ายๆ ผิดคาดเลยครับ ตอนแรกที่เล่นคือเริ่มเข้าใจละ ว่าทำไมเกมนี้หลายๆ คนจึงบอกว่ายากขนาดบอส Tutorial ถ้าเราโดนทุบสองทีก็ตายไปเลย TT ฟังไม่ผิดหรอกครับ เกมนี้สอนให้เรารู้จักตายก่อนนั้นเอง (แต่หลายคนอาจจะชนะในครั้งแรกได้ อันนี้ถือว่าแล้วแต่คนนะครับ :D)

    ถึงแม้จะผ่านไปได้ ก็จะได้เจอบททดสอบความพยายามอีกมากมายกับบอสที่หลากหลาย ที่หลายๆ คนถอดใจเลิกเล่น หรือปาจอยทิ้งก็มี ผมก็เกือบถอดใจเลิกเล่นสองครั้ง คือช่วงกลางเกม กับท้ายเกม เมื่อเราสามารถผ่านบททดสอบความพยายามนี้ไปได้ ในแต่ละบอส เราจะพบกับความโล่งใจ ดีใจหรืออาจจะร้องไห้ ว่าอย่างน้อยความพยายามของเราก็มีผลซะที (มีบอส Manus, Father of the Abyss ที่กว่าจะผ่านต้องตายซ้ำตายซาก 20 รอบ พอชนะก็เกือบร้องไห้เลย เพราะมันยากจริงๆ)
Manus, Father of the Abyss ภาพจาก darksouls.wiki.fextralife.com

อ่านมาตั้งนานแล้วมันเกี่ยวอะไรกับการเขียนโปรแกรมใช่ไหมล่ะ? หลายๆ คน ถ้าอ่านไปแล้วคิดตาม จะเริ่มเข้าใจในบทความมากขึ้น ว่าผมต้องการจะสื่อถึงอะไร ถ้าอยากรู้ จะเฉลยโดยฟรีๆ เลย 555+

เขียนโปรแกรมเกี่ยวอะไรกับเล่นเกม Dark Souls

ย้อนวันวานเมื่อแรกเริ่ม

เคยสงสัยไหมการเขียนโปรแกรม ทำไมตอนฝึกกับตอนทำงานลูกค้า งานแรกช่างต่างกันมาก สำหรับผมแล้วต้องย้อนไปสมัยเริ่มฝึกเขียนโปรแกรม ในช่วง ม.4 ภาษาแรกที่ผมได้เรียนรู้คือภาษา C

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

ช่วงเวลาที่ผ่านมาก็พยายามฝึกฝนกับหลายภาษาทั้ง PHP, JavaScript, Java, Kotlin, Ruby, Python กับภาษาอื่นๆ ทั้งชอบบ้าง ทั้งเบื่อบ้าง

ที่ผมชื่นชอบที่สุดก็คงจะเป็น JavaScript ด้วยความสะดวกหลายๆ อย่าง ทั้งทำ หน้าบ้าน frontend (react, vue, angular, jquery) ทั้งหลังบ้าน backend (node.js + express) ทำแอพก็ได้ (react native, ionic) ทำเกมก็ดี (phaser.io) เรียกว่าเรียนรู้ครั้งเดียว ทำของได้เยอะมากๆ

ความรู้สึกกับงานครั้งแรก

ผมได้รับงานแรกด้วย react.js เป็นงาน frontend (ผมฝึกเขียน react ยังไม่ถึง 3 เดือน) หน้าที่หลักๆ คือทำส่วนของหน้าบ้านเว็บไซต์ แบ่งเป็น component ย่อยๆ, call api จาก backend ฟังดูแล้วอาจจะดูเหมือนง่ายใช่ไหม

ก็แหงละ แล้วถ้าลองคิดดูว่าเราเหมือนเริ่มเล่น Dark Souls ครั้งแรก โดยไม่เคยทำอะไรแบบนี้มาก่อน ความรู้สึกจะประมาณนั้นเลย คือคุณจะเจอปัญหามากมาย เช่น ติด cross origin จะแก้อย่างไร, จะเขียนต่อกับ Redux ท่าไหน เป็นต้น ทำให้เราต้องศึกษาหาข้อมูล พร้อมๆ กับเจอหน้า error ของ react รัวๆ ไม่ต่างจากการเล่น Dark Souls แล้วตายซ้ำตายซากนั่นเอง

ตัวอย่างหน้าเตือน Error ของ react.js ภาพจาก github

และเมื่อเราสามารถแก้ปัญหาเหล่านั้นได้ ก็ดูเหมือนว่ามันจะยังมีปัญหาหรือบอสตัวต่อไป ให้เราต้องเผชิญ หลายคนก็คงคิดว่าจะกลัวอะไร ถ้ามี stackoverflow อยู่ จริงครับผมก็เคยคิดเช่นนั้น การเอาโค้ดคนอื่นมา แล้วมันอังเบิญใช้ได้ ก็ถือว่าโชคดีไป แต่ถ้าเอามาแล้วใช้ไม่ได้ แล้วต้องหาไปเรื่อยๆ

ความรู้สึกที่มีต่องานแรกก็คงจะสรุปได้ง่ายๆ ” นี่มันงานอะไรกัน ” เพราะลำพังแค่ react ในตอนแรกๆ ก็ถือว่าเข้าใจยาก สำหรับผมแล้ว ยังต้องมาเจอกับ killer boss ในตำนานอย่าง redux อีก เรียกว่างานแรกแทบกระอักเลือด (เวอร์ไป) แต่ด้วยการที่เราแข็งใจ พยายามจนทำงานสำเร็จ ก็ยิ่งทำให้เราได้เรียนรู้มากขึ้น

ความอดทนและพยายามคือแก่นแท้ของความสำเร็จ

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

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

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

Ornstein and Smough บอสคู่สุดหิน ภาพจาก darksouls.wiki.fextralife.com

อย่างบอสคู่ Ornstein and Smough ที่หลายคนรู้จักในชื่ออ้วนผอม เป็นบอสกลางเกมที่ทำให้หลายๆ คนเลิกเล่นเกมกันเลยทีเดียว เพราะปกติแค่บอสตัวเดียวก็รับมือยากสุดๆ แล้ว นี่ยังมีบอสอีกตัวที่ต้องรับมือ คือเราจะต้องรับมือทั้งสองด้านพร้อมกัน เรียกว่าถ้าไม่กัดฟันสู้จริงๆ ก็คงผ่านไม่ได้

การเขียนโปรแกรมก็เหมือนกันตรงที่ คุณจะต้องมีความพยายามไม่น้อยไปกว่าการเล่น Dark Souls เลย คือการที่ต้องรับมือกับ error, รับมือกับ null, callback hell เอย พวกนี้ล้วนแต่เป็นปัญหาที่เราต้องใช้ความเข้าใจและ

  • ความพยายามในการแก้ปัญหา พยายามหาวิธีต่างๆ ค้นหา สอบถามจากผู้รู้
  • ความอดทนในการไล่หาสาเหตุว่า method หรือ function ไหน บรรทัดไหนที่มีปัญหา ที่อาจจะก่อให้เกิดปัญหา

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

การพัฒนาอย่างไม่หยุดยั้ง

Dark Souls หากเราเล่นแล้ว ต่อให้มีอาวุธหรือชุดเกราะดีแค่ไหน เราก็ไม่มีวันชนะ หากไม่เรียนรู้บอส และพัฒนาทักษะไปด้วย ความหมายคือ

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

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

พึงระลึกไว้เสมอว่าเทคนิคหรือความรู้เดิม ที่ไม่ได้รับการขัดเกลา หรือพัฒนาอยู่เสมอวันนี้มันอาจจะใช้ได้ แต่วันข้างหน้ามันอาจจะใช้ไม่ได้แล้ว ไม่ได้หมายถึงว่าความรู้เก่าๆ ให้ทิ้งมันซะ แต่เราเองควรจะหมั่นศึกษาหาความรู้เพิ่มเติม เพื่อเพิ่มพูนทักษะที่เรามีอยู่แล้วให้มากยิ่งขึ้น

การศึกษาไม่จำกัดอายุ ไม่จำกัดเวลา ไม่จำกัดเพศ ไม่จำกัดสถานที่

ยิ่งในยุคปัจจุบันที่เรียกว่ามีแหล่งความรู้มากมายมาถึงมือขึ้นผ่านโลกอินเทอร์เน็ต ซึ่ง WWW (Word-Wide-Web) ก็เพิ่งอายุครับ 30 ปีเศษ นั้นมีข้อมูลให้เราศึกษาทั้งฟรีและเสียตังค์ ทั้งแบบบทความ วิดีโอ เสียง ดังนั้นอย่าอ้างว่าไม่มีคนสอน หรือไม่รู้จะไปเรียนได้จากที่ไหน

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

สรุป

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

หมั่นฝึกฝนและพัฒนาสกิลให้พร้อม และจะได้รับมือกับบอสในวันข้างหน้าได้

ภาพจาก steam
Leave a Reply