Skip to content

Stupid Hackathon 8 และเบื้องหลัง Nokorun

Posted on:July 18, 2024 at 10:00 AM

สารบัญ

เปิดสารบัญ

Stupid Hackathon คืออะไร

Stupid Hackathon คืองาน Hackathon ที่คนมารวมตัวกันเพื่อทำอะไรโง่ ๆ ขำ ๆ ไม่ต้องมีประโยชน์ ต่างจาก Hackathon ทั่วไปที่ควรจะสร้างของบางอย่างที่มีประโยชน์ขึ้นมาในเวลาอันสั้น

ในไทย Stupid Hackathon ก็จัดมาเป็นครั้งที่ 8 แล้ว (ครั้งล่าสุด)

เข้ามาได้ยังไง

ตอนแรกผมส่งตั๋ว Challenge ไป แต่ว่าไม่ติด เลยส่งตั๋ว Pitching ไปอีกรอบหนึ่ง ผม Pitch Idea Chrome hard mode พูดง่าย ๆ คือ extension ที่ทำให้การใช้งาน web browser ลำบากขึ้น เช่น ต้องใช้ AI ในการสั่งงาน หน้าเว็บกลายเป็นภาษารัสเซียโดยไม่มีเหตุผล หรือต้องใช้อุปกรณ์เฉพาะในการพิมพ์

วันแรก

วันแรกผมหลง555 กะว่าจะเดินลัดผ่านคณะรัฐศาสตร์แต่เหมือนมันจะเป็นทางตันและมีตึกเยอะมาก เลยเสียเวลาเดินอ้อมไปนิดนึง สถานที่จัดปีนี้คือคณะวิศวกรรมศาสตร์จุฬา ก็มีฟัง talk ในห้อง auditoriuim ก่อน

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

เอาจริง ๆ ผมไม่ได้ฟอร์มทีมกันตรงนั้น แต่ว่าผมไปร่วมกับน้องอีกสองคน คนแรกชื่อทีเค อีกคนหนึ่งชื่อไอเดีย ที่พอทำเว็บเป็นทั้งคู่ แต่ว่าผมรู้สึกว่าอยากทำเกม (Chrome extension เป็นของ cliche ไปแล้ว) ก็เลยเสนอไอเดียสร้างเกมที่ควบคุมผ่านเว็บแทนการเล่นปกติ ผมรับผิดชอบในส่วนของเกม น้องทีเคเป็นคนทำ pixel art ส่วนไอเดียเป็นคนทำ web

สิ่งที่คิดไว้

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

Noko Stack

หลักการของเกมที่ควรจะเป็น (เดี๋ยวผมอธิบายทีหลัง อ่านต่อ ๆ) คือ Godot จะส่ง HTTP request ไปหา server ทุก ๆ 5 วินาทีเพื่อเอาคำสั่งของ Nokotan มาใช้ในเกม ในส่วนของเว็บจะมีหน้า frontend ที่จะควบคุม Nokotan จากมือถือ นอกจากนี้ถ้า Nokotan เก็บข้าวเกรียบกวางได้ก็จะส่งไปที่ server เพื่อให้ทาง frontend ปลดล็อกสกิลของ Nokotan

วันที่สอง

ผมมาสายนิดหน่อย เพราะว่าวันก่อนหน้าผมไปกิน MK.JS แล้วกลับค่อนข้างดึก + ทำงานนี้ต่ออีกนิดหน่อย

ผมยอมรับว่าผมลืมที่จะคุยกับ backend กับดูว่า tech ฝั่ง backend ใช้ได้ไหม ที่สำคัญคือ backend ยังไม่มา เพราะว่าผมไม่ได้ยุ่งกับ backend ตรงนั้น ผมเลยต้องทำงานส่วนที่เหลือโดยการ mock ไปก่อนและ clone backend มาทำ local เอง จนมันรันได้

การแก้ปัญหาก่อน present

เนื่องจากงานส่วนของ backend เป็นงานที่ไม่ได้ดูละเอียดและรีบทำ ทำให้ลืมดูไปว่าสามารถทำงานได้จริงรึเปล่า ซึ่งพอรันใน localhost มันก็ใช้ได้จริง ๆ ติดปัญหาคือการรันใน pages.dev กลับไม่สามารถใช้งานได้ คงเป็นเพราะว่า SvelteKit ที่รันตรงนั้นจะเป็นแบบ stateless ทำให้ข้อมูลแต่ละ request ไม่เหมือนกัน

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

รางวัล

Stupid Hackathon จะมีธรรมเนียมการแจกรางวัลแบบแปลก ๆ ซึ่งกลุ่มผมก็สุ่มได้ปูนกับตุ๊กตาเด็ก

Cement from Stupid Hackathon

เรียนรู้อะไรไปบ้าง

เยอะ

ส่งท้าย

ขอขอบคุณทั้งทีเคและไอเดียที่มาช่วยกันทำโปรเจคนี้ รวมถึงสตาฟทุกคนที่มาร่วมจัดงาน Stupid Hackathon 8 ด้วยนะครับ