Metroid

Metroid

โตมากับเกมของ Nintendo แต่แทบไม่เคยได้ยินชื่อเกม Metroid มาก่อนเลย ตอนเด็กๆก็เล่นแต่ Rockman จนหลายปีก่อน เล่นเกม Hollow Knight แล้วชอบมาก เลยได้รู้จักกับเกมประเภทที่เรียกว่า Metroidvania ซึ่งตั้งชื่อตามเกม Metroid คิดดูว่า Metroid เป็นเกมตำนานระดับเอามาตั้งชื่อเป็นประเภทนึงของเกมเลย Metroidvania นิยามของเกม Metroidvania คร่าวๆคือเป็นเกม action-adventure หรือ platformer ที่ด่านไม่ได้เป็นเส้นตรงแบบจากจุดเริ่มต้นถึงเส้นชัย(แบบ Mario) แต่เป็นแผนที่ใหญ่ๆ ที่ผู้เล่นไปได้แค่บางโซนก่อน แล้วค่อยๆปลดล็อกไปเรื่อยๆ ผู้เล่นจะเริ่มจากโซนเล็กๆ มีความสามารถ/อาวุธจำกัด แล้วผู้เล่นจะต้องหาทางไปต่อเอง(ก็จะหลงเยอะหน่อย) เปิดโซนใหม่ๆและขยายแผนที่ไปเรื่อยๆ โดยการแก้ปริศนาหรือหาอาวุธ/ความสามารถใหม่ๆ เช่น เก็บชุดกันความร้อนเพื่อเดินผ่านโซนที่เป็นลาวาได้ ปราบบอสเพื่อเอาปืนที่ใช้โหนตะขอข้ามหลุมใหญ่ๆได้ เป็นต้น หลายครั้งคือจะเปิดห้องๆนึง ต้องไปหาของที่ซ่อนอยู่อีกฝั่งนึงของแผนที่ ก็จะเดินผ่านด่านเดิมๆอยู่หลายรอบ แต่ประสบการณ์ของผู้เล่นอาจจะต่างไปในแต่ละรอบ มอนสเตอร์ที่เคยฆ่ายาก อาจจะง่ายขึ้น เพราะผู้เล่นมีอาวุธดีขึ้น เลือดเยอะขึ้น เกมที่ออกแบบดีๆ ตัวผู้เล่นจะพัฒนาไปพร้อมๆกันแบบเนียนมากๆ นอกจากของที่ต้องเก็บเพื่อไปต่อ ก็จะมีของที่เป็น optional คือไม่ต้องเก็บก็ได้ แต่มีประโยชน์คือเก็บแล้วก็จะเก่งขึ้น หรืออยากจะจบเกมแบบ 100% ก็ต้องเก็บให้หมด Metroid Universe พอ Metroid ปล่อยภาคใหม่ชื่อ Metroid Dread ออกมา เลยกลายเป็นเกม Metroid เกมแรกที่ได้เล่น เล่นจบแล้วก็ชอบมากๆๆ ชอบจนเล่นจบ 100% เลย...

August 6, 2024 · teerapapc
Cross-compilation build script

Make mangafmt Run on Windows

หลังจากเดือนก่อนปล่อย mangafmt ซึ่งพัฒนาบน WSL2 และ Build/Run ได้บน Linux เท่านั้น ความตั้งใจถัดมาคือ อยากทำให้มันรันได้บน Windows/OSX ด้วย เพราะคนส่วนใหญ่ใช้ และส่วนตัวก็ใช้ Windows เป็นหลัก หลังจากค้นๆ อยู่แป๊ปนึงก็พบว่า Go มัน cross-compile ง่ายมาก! ตามรูปปกด้านบนเลย แค่ set environment variable ชื่อ GOOS และ GOARCH แค่นั้นก็ build ได้ทั้งข้าม OS และ Architecture แต่โลกไม่สวยงามแบบนั้น ถ้าโค้ดเรามีเรียกใช้ C library อยู่ ชีวิตจะยุ่งยากขึ้นมากในการ build และ lib ที่เราใช้คือ ImageMagick ซึ่งมันทั้งใหญ่และ dependencies ตามมาอีกเพียบ แถมมีเวอร์ชั่น 6 กับ 7 ซึ่งแต่ละ platform อาจจะใช้คนละเวอร์ชันกันอีก หลังจากลองพยายามอยู่ซักพัก ก็ไม่เอาดีกว่า แก้เป็น pure Go ดีกว่า ข้อดีคือ build ง่าย และ executable ที่ออกมา คือรันได้เลย ไม่ต้องลง runtime dependencies เพราะงั้น ต้องเอา ImageMagick ออก...

July 14, 2024 · teerapapc
Example output page on kobo libra 2

Project mangafmt

ช่วง 2-3 อาทิตย์ที่ผ่านมา นั่งทำโปรเจคใหม่ของตัวเอง ชื่อว่า mangafmt เป็นโปรแกรมไว้แปลงไฟล์หนังสือการ์ตูน (บนอินเทอร์เน็ตเรียกตามญี่ปุ่นว่า มังงะ/Manga) เพื่อให้อ่านบน E-ink reader ได้สวยงามและสะดวกมากขึ้น นั่งทำช่วงหลัง 3 ทุ่มเป็นต้นไปของแต่ละวัน เรียกว่าหมกมุ่นได้เลย แทบไม่ได้เล่นเกม/ดูซีรียส์ ขับรถก็คิดถึง ว่าจะทำออกมายังไงดี ใช้วิธีไหนดี บางคืนคิดถึงจนนอนไม่หลับ ไม่ได้สนุกกับการเขียนโปรแกรมแบบนี้มานานมากแล้ว ได้ทำสิ่งที่เราอยากได้เอง กำหนดเองได้ว่าจะทำอะไรหรือไม่ทำอะไร จะทำออกมาแบบไหน โปรแกรมทำอะไรได้บ้าง ตอนนี้ v0.2.1 เสร็จแล้ว สิ่งที่ทำได้คือ (ฟีเจอร์เด็ด) ตรวจจับหน้าคู่ได้ (แบบคร่าวๆ) แล้วเอา 2 หน้ามาต่อกันกลายเป็นหน้าใหญ่หน้าเดียวตามแนวนอนได้ หน้าคู่คือ คนวาดจะวาดใช้พื้นที่ 2 หน้าต่อกัน ซึ่ง e-reader โดยทั่วไปมันแสดงได้ทีละหน้า ทำให้เวลาอ่านจริงๆเสียอรรถรสอยู่พอสมควร เพราะฉากหน้าคู่มักจะเป็นฉากที่มี impact แต่ดันเห็นแค่ทีละครึ่ง ย่อขนาดรูปให้เหมาะกับขนาดจอ รวมทั้งหมุนรูปด้วยถ้าเป็นแนวนอน ตัดขอบพื้นที่สีขาวว่างๆของแต่ละหน้าได้ (เรียกว่า trim) เพื่อจะใช้พื้นที่บนจอเล็กๆได้คุ้มขึ้น ตัวหนังสือจะใหญ่ขึ้นอีกหน่อย ลดจำนวนสีเป็นขาวดำ 16 สี (4-bits grayscale) เพราะจอ e-reader มันแสดงภาพสีไม่ได้ รองรับไฟล์ที่อ่านจากขวาไปซ้าย (เปิดแบบหนังสือการ์ตูนญี่ปุ่น) แปลงไฟล์เป็น EPUB/KEPUB/CBZ มายังไง ทำไปทำไม พอดีเริ่มหันมาอ่านการ์ตูนบน Kobo Libra 2 ที่ตัวเองมี โดยซื้อการ์ตูนจาก Google Play Books แปลงไฟล์นิดหน่อย แล้วได้มาเป็นไฟล์ PDF แต่พอเปิดอ่านในเครื่องก็พบว่า เวลาเปลี่ยนหน้ามัน lag นิดหน่อยเพราะเป็น PDF คนบนเน็ตก็แนะนำให้แปลงไฟล์เป็น EPUB/KEPUB แล้วจะลื่นขึ้น (ซึ่งจริง) ลองใช้โปรแกรมที่เค้านิยมกันชื่อ KCC แปลงดู...

June 3, 2024 · teerapapc
Computer parts

Build Gaming PC 2024

เมื่อปลายปีที่แล้ว ประกอบ PC เครื่องใหม่ สาเหตุที่อยากได้เครื่องใหม่เพราะ อยากได้เครื่องเล่นเกม และเริ่มเบื่อ Nintendo Switch ที่เล่นอยู่ ตอนแรกจะรอ Switch 2 แต่ดูวี่แววแล้ว คงอีกปีกว่าๆ รอไม่ไหว มีดูๆ PS5 ไว้ด้วย แต่ดูจากเกมที่ตัวเองชอบเล่นแล้ว ไม่เหมาะ เครื่องเดิมจะ 10 ปีแล้ว และ Mac Mini ที่ซื้อมาใช้แทนก็เล่นเกมไม่ได้ Mac Mini ที่ไม่ค่อยได้ใช้ก็ขายต่อไป ความต้องการ เริ่มวางความต้องการของตัวเองก่อน สิ่งที่ต้องการคือ เล่น PC Game ปัจจุบันที่อยากเล่นได้ แบบ 4K เช่น Tekken 8 (4k Ultra settings) Flight Simulator 2020 Hogwart Legacy Baldur Gate’s 3 Witcher 3 ใช้เป็นเครื่องหลัก เล่นเน็ต เขียนโปรแกรมทั่วไปได้ อันนี้ง่าย งบไม่เกิน 45k หลังจาก research อยู่ 2 อาทิตย์ ก็ได้สเปคมาตามนี้ Motherboard: ASUS TUF GAMING B760M-PLUS WIFI (DDR5) CPU: Core i5-13400F Case: Asus PRIME AP201 Black mesh Power supply: (80+ BRONZE) 650W ASUS TUF GAMING 650B GPU: Asus DUAL RTX 4070 Ram: KINGSTON FURY BEAST DDR5 5600 16GBx2 SSD: WD BLACK SN770 1TB Fan: be quiet!...

May 19, 2024 · teerapapc
hugo new site command

New Blog

👋 สวัสดีและยินดีต้อนรับสู่ blog ใหม่ของผมครับ ในชีวิตผมเคยเขียน blog มาหลายรอบ ตั้งแต่สมัยมัธยมรอบนึง มหาลัยรอบนึง และช่วงทำงานใหม่ๆ อีกรอบนึง แต่ละช่วงก็เขียนเรื่องต่างๆกันไป ย้อนกลับไปอ่าน ก็เขินๆ เราเขียนอะไรไปวะเนี่ย แต่ก็หยุดเขียนไปได้เกือบ 10 ปีแล้ว เพราะทำงานด้วยและไปทวีตออกทาง Twitter แทนหมด ไม่ได้เขียนอะไรเป็นเรื่องเป็นราวนานแล้ว แต่ยังชอบอ่าน blog ของคนอื่น และมีความอยากเขียนอยู่เรื่อยๆ เพราะบางเรื่อง twitter มันก็สั้นเกินไป Static Site Generator แอบซุ่มใช้เวลาวันหยุดต่างๆทำ blog นี้ขึ้นมา ทำวันละนิดวันละหน่อย จนในที่สุดออกมาได้ รอบนี้ไม่อยากใช้พวก wordpress แต่อยากลองทำด้วย static site generator บ้าง แล้วก็ host บน Github เอา แต่เดิมก็มีทำ homepage ไว้อยู่แล้วแค่เปลี่ยนเป็น blog แทน ไม่อยากใช้ Jekyll ที่คนนิยมเพราะไม่อยากยุ่งกับ ruby/gem เลยลองหาดูตัวอื่น แล้วก็จบที่ Hugo เพราะไม่ต้อง setup dev environment เยอะ เป็น golang ลงแล้วใช้ command เดียวจบ แต่ก็เสียเวลาตบ theme ให้ถูกใจอยู่นานเหมือนกัน...

May 12, 2024 · teerapapc