<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ittidate Chansatit on Medium]]></title>
        <description><![CDATA[Stories by Ittidate Chansatit on Medium]]></description>
        <link>https://medium.com/@ittidatechansatit?source=rss-307e56fcdaac------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*XPoE2fnTGCZQTxrK.</url>
            <title>Stories by Ittidate Chansatit on Medium</title>
            <link>https://medium.com/@ittidatechansatit?source=rss-307e56fcdaac------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 10:10:16 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@ittidatechansatit/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Orientation2018 — Dev.Game]]></title>
            <link>https://medium.com/alchemist-itbangmod/orientation2018-dev-game-5e5472cd4d36?source=rss-307e56fcdaac------2</link>
            <guid isPermaLink="false">https://medium.com/p/5e5472cd4d36</guid>
            <category><![CDATA[phaserjs]]></category>
            <category><![CDATA[orientation2018]]></category>
            <category><![CDATA[kmutt]]></category>
            <category><![CDATA[game-development]]></category>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Ittidate Chansatit]]></dc:creator>
            <pubDate>Mon, 27 Aug 2018 03:33:52 GMT</pubDate>
            <atom:updated>2018-08-27T03:33:52.753Z</atom:updated>
            <content:encoded><![CDATA[<p>สวัสดีค้าบบบบ~~ก็จะมาเล่าประสบการณ์การทำ project game ที่ 2 งานนี้เป็นงานปฐมนิเทศของคณะเทคโนโลยีสารสนเทศ(SIT) มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี ประจำปี 2561 จบงานไปเมื่อวันที่ 7 สิงหาคมที่ผ่านมาา</p><p>ไปดูบรรยากาศในงานกันก่อนเนอะๆ~~</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*E5LYUjV1dMpbIKJu-7ezgg.jpeg" /><figcaption>Poster PR (สงสารคนทำไม่ได้นอน ถถถถถ)</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*iI4AmxW4Xtqy_c7gR76zhw.jpeg" /><figcaption>คนเยอะมากกประเด็นคือรอบนี้มีผู้ปกครองด้วยตื่นเต้นมากก</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0zw6rodBzCK6gGmjInNsEg.jpeg" /><figcaption>เราเป็นคนคุม monitor แหละๆ</figcaption></figure><p>รู้สึกได้ถึงความกดดันว่าจะล่มหรือไม่ล่ม 555555 (เดี๋ยวเฉลยตอนท้ายน่ะครับบบ ) มาเข้าเรื่องกันเถอะๆ</p><p>พวกเราเริ่มวางแผน การทำงานตั้งแต่วันที่ 17 มิถุนายน 2561 พวกเราใช้เวลาทำกันไปทั้งหมด 2 เดือนเศษ เผางานไหม ?? (จะเรียกว่าเผาได้ไหมอ่ะเจอบัคตอนช่วงวันสุดท้ายพอดีเลย)</p><p>เริ่มด้วยจากการที่พวกเราตกลงกันว่าจุดประสงค์ของตัวเกมที่เราจะทำกันว่าอยากจะสื่ออะไรและต้องการทำอะไร ซึ่งพวกเราได้ข้อสรุปออกมา 2 อย่างคือ</p><ol><li>อยากให้น้องๆรู้จักและติดตามข่าวสารข้อมูลต่างๆของมหาลัยและในคณะนั้นก็คือที่มาทำให้ให้เกิด เกม Phase 1 ขึ้นมาก็คือให้น้องเลี้ยงดูฟูมฟักไข่ที่ได้รับไป</li><li>เพื่อให้เกิดความแปลกใหม่ไม่เหมือนใครในงานปฐมนิเทศเพราะปกติปฐมนิเทศในส่วนใหญ่ความคิดทุกคนคงคิดว่าปฐมนิเทศเป็นอะไรที่น่าเบื่อพวกเราจึงใส่เกมลงไปที่ให้ไม่น่าเบื่อและ ส่วนนี้คือเกมใน Phase 2 นั้นเอง</li></ol><p><strong>Phase 1 และ Phase 2</strong> คืออะไร Phase 1 จะเป็นช่วงก่อนน้องๆจะมางานปฐมนิเทศน้องๆทุกคนจะได้รับไข่ไปคนละใบ เอาไปเลี้ยงว่า อยากให้ไดโนเสาร์ของน้องๆออกมาเป็นแบบไหนโดยจะมี Event ให้น้องๆเข้ามาตอบคำถามเพื่อกระตุ้นการเจริญเติบโตของไข่ที่น้องได้รับไป และทำให้น้องๆทราบข่าวสารต่างๆทางมหาลัย</p><p>Phase 2 จะเป็นในงานปฐมนิเทศ ไข่ที่น้องๆเลี้ยงดูจะฟักออกและได้เป็นพันธ์ุต่างๆตามที่น้องๆได้เลี้ยงดูไข่ และนำไปต่อสู้กับบอสไดโนเสาร์ เพื่อที่จะคัดเลือกอาจารย์ออกมาพูดนั้นเอง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/183/1*SkdPyVL4hScko0EYg2yX7A.jpeg" /></figure><h3>Stackที่พวกเราใช้ ก็คือ…</h3><ul><li>Phaser (ใช้ตอน Phase 1 และ 2)</li><li>React (ใช้ตอน Phase 2)-เป็นตัวคุมเกมในงานปฐมนิเทศ</li><li>Vue (ใช้ตอน Phase 2)-หน้าProjector ที่คอยแสดงภาครวม</li><li>MariaDB (ใช้ตอน Phase 1 และ 2)</li><li>Redis (ใช้ตอน Phase 1 และ 2)</li><li>Socket.io(ใช้ตอน Phase 1 และ 2)</li><li>Express (ใช้ตอน Phase 1 และ 2)</li></ul><h3>พอเราวางแผนทุกอย่างเสร็จก็ลุยโล้ด</h3><p>ในช่วงแรกๆตอนไปหาความรู้ Hello world(phaser 3) ความพีคคือเขาสั่งให้ใช้ Phaser 3 ดันไปใช้ Phaser 2 ความบันเทิงจึงเกิดขึ้น…โค้ดตีกันเละเลยพร้อมข้าม <br>Framework กันเลยต้องไป ศึกษาPhaser 3 ใหม่พร้อมกับทำงานจริงไปด้วยช่วงแรกๆของ Phase 1 รู้สึกได้ถึงความมืดมิดเพราะ ไม่ค่อยมีใครใช้ Tool ตัวนี้เลยเศร้า…..<br>แต่พอผ่านช่วงนั้นไปได้ทุกคนก็เริ่มใช้งานกันได้คล่องแล้วจนได้ตัว เกมขึ้นมานั้นเอง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*SA1eeYyEteGegRfyY71hKg.png" /><figcaption>ง่อววว ได้ไข่มาแล้ววว</figcaption></figure><h3>Authentication with Facebook</h3><p>มีตัวเกมแล้วที่ขาดไม่ได้เลยต้องมีการเข้าสู่ระบบเพื่อตรวจสอบว่าเราใช้ไข่ใบไหนนั่นเอง การเข้าสู่ระบบเราใช้ SDK ของ Facebook เป็นตัวสู่ระบบ เหตุผลที่ใช้ Facebook เพราะคิดว่าทุกคนต้องมี Facebook กันทุกคนอยู่แล้ว และอีกทั้งยังง่ายต่อการ config รับค่าที่ล็อกอินเข้ามาอีกด้วย ใครสนใจ Auth ของ Facebook ตัวนี้สามารถเข้า ไปดูได้ที่ <a href="https://developers.facebook.com/docs/facebook-login">https://developers.facebook.com/docs/facebook-login</a> จะมีสอนวิธีการใช้การรับค่าต่างๆมาทั้งหมดเลย สนใจลองไปศึกษาดูได้น่ะๆ</p><p><a href="https://developers.facebook.com/docs/facebook-login">Facebook Login - Documentation - Facebook for Developers</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/386/1*qIT2qGmBeD2cm2QHO9Ej_w.png" /><figcaption>มาแล้ววหน้าล็อคอินนน</figcaption></figure><h3>Api-BackEnd(การต่อหน้าบ้านเข้าหลังบ้าน)</h3><p>มีหน้าบ้านแล้วมีการยืนยันตัวตนแล้วงั้นเราเหลืออะไรหล่ะก็ต้องเก็บข้อมูลที่เราเล่นสิไม่งั้นที่เลี้ยงไข่มาก็หายหมดกันพอดีเพราะฉะนั้นเราต้องเก็บข้อมูลด้วย(ในส่วนนี้ ฝั่ง BackEnd จะไม่ค่อยได้ไปเขียนเยอะเพราะ พี่ซันจะเป็นคนเขียนให้น่ะครับเพราะฉะนั้นเรื่อง ลายละเอียดเดี๋ยว รออ่าน Med ของพี่เขาน่ะครับ )แล้วหน้าบ้านกับหลังบ้านคุยกันยังไงหล่ะ พวกเราใช้ Tool ที่ชื่อว่า Axiosเป็นตัวคุยนั้นเองมันจะทำหน้าที่เป็น API ส่งข้อมูลไปหลังบ้านและหลังบ้านส่งไปให้ DB จัดเก็บข้อมูลหรือเวลาเราจะต้องการข้อมูลของผู้เล่นเราก็จะใช้ตัวนี้แหละเป็นตัวดึงข้อมูลมานั้นเอง ใครสนใจเรื่องวิธีการเรียการรับการส่งข้อมูลไปอ่านที่นี้ได้เลย <a href="https://github.com/axios/axios">https://github.com/axios/axios</a> จะมี ตัวอย่างการสอนอยู่หลายแบบพอตัวๆ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*tXQ4Eci6dyrYm63dHjuWfg.jpeg" /><figcaption>มีคนมาเล่นตั้ง 300 กว่าคนแหนะๆ 55555 (ภาพหลังปล่อยเกมไปแล้ว)</figcaption></figure><h3>Deploy-Phase 1 !!!</h3><p>หน้าบ้าน-พร้อม , หลังบ้าน-พร้อม , DB-พร้อม เราทำได้ปล่อยกันเลย! และเราก็ปล่อยเกม Phase แรกไป แต่ก่อนปล่อยเราต้องไปคุยกับ Infraก่อนว่าเราใช้อะไรบ้างต้องการอะไรบ้างเพื่อที่เขาจะไป config server ได้ถูกต้องสามารถไปอ่าน วีรกรรมการปล่อยเกมได้ที่ Med ของ ข้าวตูได้เลยน่ะ จะมีลายระเอียดต่างเกี่ยวการทำ Server ประสบการณ์ต่างๆที่เกี่ยวกับงานฝั่ง Infra น๊าาเป็นผู้มีพระคุณที่อยู่กับเรามา 5555<br>ไม่มี ข้าวตู ก็จะไม่มีเกม SIT DINO อยู่บน Server ถถถถถ</p><p><a href="https://medium.com/@kaotu/1-%E0%B9%80%E0%B8%94%E0%B8%B7%E0%B8%AD%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%A3%E0%B8%B9%E0%B9%89-project-orientation2018-infrastructure-b510f500e4e5">1 เดือนกับการเรียนรู้ Project Orientation2018 (Infrastructure)</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*ji29v-XiqHHMk1XXW6Yq9w.jpeg" /><figcaption>มี Domain แล้ววว</figcaption></figure><p><strong>แล้วก็ปล่อยขึ้น Server<br> เย้ จบ Phase 1</strong></p><h3>ปัญหาที่เจอในช่วง Phase 1 (แก้อันนี้ไปเจออันนี้)</h3><p>test เรียบร้อยไม่มีปัญหาในด้านหน้าเกมเข้าเกมเล่นได้ปกติ <strong>แต่ </strong>พอเอาไปลองจริงเท่านั้นแหละพังตั้งแต่หน้า เข้าสู่ระบบ ถึง หน้าเล่นเกม 5555 มันพังอะไรบ้าง ?<br><strong>-พังหน้า Responsive </strong>(หนักสุดเพราะไม่เคยลองกับโทรสัพจริง) แต่ก็แก้มาได้โดยการสร้าง logic Responsive ที่เป็นของตัวเองขึ้นมา โดยสามารถเข้าไปอ่าน วีรกรรมการ config ตัวนี้ได้ที่ Med ของ ลาร่า น่ะครับยอมใจจริงคนนี้ HardCode Responsive <br><strong>-พังDB กับ SQL</strong> เนื่องจากไม่ได้เขียนเงื่อนไขรองรับชื่อประหลาดๆเลยพังตั้งแต่หน้างานวันแรกที่ทดสอบเลย แต่ก้แก้ได้แล้วน่ะครับ<br><strong>-พังปัญหาหยิบย่อย </strong>จำพวก Function การเรียก ใช้ asycn,await การโหลดรูปการหลัง เป็นต้น แต่ก็แก้ได้สำเร็จและ ปล่อยจริงๆในวันที่ <strong>3 สค พร้อมกับ PR เกม</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*LnouqI5-_D-MD8e34_dDTA.jpeg" /><figcaption>ในที่สุดก็ได้ปล่อยเกม 55555</figcaption></figure><h3>เริ่ม Phase 2 กัน(กลาย เป็น Full Stack ของแท้)</h3><p>phase 1 จบแล้วต่อไปก็ Phase 2 ซึ่งในส่วนนี้จะเป็นการที่ไข่ฝักออกและดึงค่าสถานะต่างๆออกมาเพื่อแปลงไดโนเสาร์แต่ละตัวตามที่เราเลี้ยงดูไว้นั้นเอง และต้องอ่านเพิ่มเกี่ยวกับ socket พอสมควรเพราะต้องทำระบบ Real Time กับผู้เล่นในวันงานจริง <br>ซึ่งต้องเข้าใจหลายเรื่องอยู่พอสมควรใน Phase 2 จะแบ่งออกเป็น 3 ฝั่งนั้นก็คือ ฝั่งClient, ฝั่ง Projector และฝั่ง Monitor นั้นเองความพีคของมันคือมันใช้คนละ Framework เขียน…อ่าวทำไงหล่ะเราก็ต้องเข้าใจ 3 อย่างหรอ ? ( ใช่ครับเราต้องเข้าใจ 3 Framework ในเวลา 1 อาทิตย์นิดๆ เอื้อกกกเกือบตายยย 5555 สนุกดี มันก็จะมีตีกันนิดหน่อยๆมั่ง~~ ) แต่มันก็ผ่านไปด้วยดีอ่ะน่ะ <br><strong>จากตอนแรกอ่านแค่ socket แท้ๆเศร้าา</strong></p><h3>3 Framework ก็คือ…</h3><ul><li>Phaser (เราเป็นคนเขียนหลัก)-หน้า client</li><li>React (พี่เบ้นส์เป็นคนเขียนหลัก)-หน้า Monitor เป็นตัวคุมเกมในงานปฐมนิเทศ</li><li>Vue (พี่ซันเป็นคนเขียนหลัก)-หน้า Projector ที่คอยแสดงภาครวมในเกม</li></ul><p>และมี API = Socket.io เป็นตัวคุยระหว่าง 3 ตัวนี้</p><h3>ทำไมต้องเข้าใจ 3 Framework?</h3><p>เพราะว่าเราต้องใช้ Socket คุยกับทั้ง 3 อันแล้วคนที่เข้าใจการทำงานทั้งหมดตอนนี้คือเรานั้นเองและสามารถแกะโค้ดหน้าบ้าน เป็นพันกว่าบรรทัดในเวลาไม่นานได้มีเราคนเดียว 5555 เศร้าใจยิ่งนัก เพราะฉะนั้นเราเลยต้องทำความเข้าใจ ทั้ง 3 ตัวว่าเวลาใช้งานส่งค่าของแต่ละตัวมันใช้ยังไง React จะใช้ง่ายสุดเพราะทำแค่ปุ่มควบคุมส่งค่า และลองลงมาคือ Phaser ที่ชำนาญในการ config ส่งและรับค่าต่างๆอยู่แล้ว แต่ที่ยากที่สุดคือ Vue เพราะต้องช่วยพี่ซันทำหน้า Projector ทำให้เกิดการ 1 night miracle Vue ขึ้นมานั้นเอง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UWP-a-RI9Ee3SPIKr6xgeQ.png" /><figcaption>เวลาทำก็จะเปิด 3 อย่างเลยน่ะ 55555</figcaption></figure><h3>Vue ประสบการณ์และปัญหาแปลกๆ</h3><p>อยากบอกว่าเป็นครั้งแรกที่ใช้ Vue เขียนหน้าบ้านโดยจะมีพี่ซันมาคอยช่วยแก้บัคและช่วยเขียนให้สิ่งที่เราได้จากการทำ Vue คือการใช้ Componentและการสร้างการเรียกใช้ Tag Function ต่างๆของ Vue การส่งสลับหน้าของ Route วิธีการใช้ Props และ Pop(แต่สุดท้ายก็ไปใช้ VueX 5555)ซึ่งง่ายกว่าเยอะเลย</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/804/1*y_TcdxaSXaPTh4y3OSr5Ag.png" /><figcaption>และแล้วก้ได้หน้า Projector มาเย้!!</figcaption></figure><p>ปัญหาที่เจอตอนใช้ Vue ที่เจอคือ เรื่อง Arrow Function ที่บางที VueX ก็ไม่รู้จัก หรือบางทีเวลาใส่เสียงไปต้อง Refresh ก่อนถึงจะมารู้สึกงงๆเหมือนกันว่าทำไมแต่ไม่เจอสีแดงเลยไม่เจออะไรเลยแต่แค่ค่าไม่มาเฉยๆเป็นความรู้ใหม่ว่า VueX เรียก Arrow Function แล้วบางที่อาจจะบัคได้ และสิ่งที่เจอต่อมาคือ ทีมเราไม่มีใครเก่ง css เลยต้องใช้เวลานานมากกว่าจะทำได้หน้านึง 55555</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_A80BQg9uHqmhJRiHJGXYA.png" /><figcaption>เรียกแล้วไม่เจอค่าอะไรเลย</figcaption></figure><h3>Deploy Phase 2</h3><p>เหมือน Phase 1 เลยทุกอย่างปกติ test localhost ผ่านใช้ได้ดีพอไปให้ Infra Deploy เท่านั้นแหละ….พังอีกแล้วว พัง monitor พัง client พัง projector พังมันทุกอย่าง 5555 ก็ไล่แก้บัคไป monitor จะมีปัญหาตอนที่รับข้อมูลมาคำนวณค่าต่างๆ เหมือนจะบัคที่ logic ต่อมาเป็นฝั่ง client พลาดตอนดักเงื่อนไข สลับจอและการกดเลือกบอส ทำให้สามรถกดซ้ำๆได้และมีปัญหาตอนส่งค่าและรับค่าต่างๆ และสุดท้าย projector พังที่ตอนรับค่าเรียก Vuex ไปแล้วมีปัญหาเรื่องการโหลดช้าโหลดเร็วและการเรียก Arrow Function นั้นเอง</p><h3>โอกาสสุดท้ายก่อนวันจริง…</h3><p>วันจันทร์ที่ 6 สิงหาคม เป็นวันที่อาจารย์นัดเรียนเพิ่มตั้งแต่เช้าถึงเย็น ได้กลับมาทำ Projector อีกทีช่วง 6 โมงเย็น .env ใช้งานไม่ได้สิ่งที่ทำคือไปช่วย infra vimเข้าไป config ที่ socket กันตรงๆเลยตอนนั้นทำขึ้น เซิฟ Dev ก็ใช้ได้ปกติเยี่ยมเตรียมขึ้นจริง</p><p>แล้วก็ได้เวลาขึ้น production ตู้ม!! เจอปัญหาเหมือนเดิม<strong>ต่อกับ socket ไม่ติด</strong> <br>error ที่เจอคือมันบอกหา socket ไม่เจอ แล้วทุกคนแก้นั่งงมกันต่อไป 5555<br>ช่วงนั้นก็ทั้งแก้บัคส่วนอื่นๆด้วยแล้วก็ช่วยกกันหาสาเหตุว่าทำไม socket มีปัญหา และสุดท้าย เวลาประมาณตี 4 เราใช้ตัวเลือกสุดท้าย ขอความช่วยเหลือจากพี่ปุ๊ ให้มาช่วยแก้ไขจนสุดท้ายก็เอาขึ้นได้หมดแล้ว ตรบมือออ~~</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/377/1*Wp58fPHgiX3crzJPSGIzTA.gif" /><figcaption>พร้อมไปตบบอสแล้ว</figcaption></figure><p>เหลือเวลาอีก 4 ชมก่อนใช้งานจริงไล่เครียบัคทุกอย่างที่เจอะและดักทุกอย่างที่จะเป็นไปได้ทำให้เกิดบัค…</p><h3><strong>ถึงเวลาใช้งานจริง(ตื่นเต้นมาก)</strong></h3><p>ทุกคนเตรียมตัวกับงานนี้มาอย่างดีและคิดว่าต้องผ่านไปได้ดีแน่นอน</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*emiK15zi7X3D-ohOTaiDAQ.jpeg" /><figcaption>รูปของทีม อินฟรา ขอให้เปิด restart server รอเลย 55555 ดับปุ่ม enter เลยน่ะ</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*Kppiq8rDvRmqJXc4Pjm69w.jpeg" /><figcaption>รูปในกระจกคือเราเอง อิอิ คุมอยู่ข้างหลัง กับ พี่ซัน</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y0Il_Ckb_nvg0tIZFB_ctw.png" /><figcaption>หน้าในโน้ตบุ๊คว่าต้องคุมต้องเห็นอะไรบ้าง</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BvtMbyQ6p3LF5cPQyAl-nQ.png" /><figcaption>บัคจำนวนผู้เล่นไปเรียบร้อยย 5555</figcaption></figure><h3>แล้วก็ผ่านไปได้ด้วยดีถึงแม้ว่าภายในงานจะมีปัญหาติดขัดอยู่บ้างก็ตาม<br>จบงานนเย้!!!</h3><h3>มาดูปัญหาที่เจอมากันเถอะ</h3><ul><li>ทุกอย่างช้ากว่ากำหนด แล้วก็รู้สึกผิดที่ทำให้ infra รู้สึกกดดันขอโทษข้าวตู่จริงๆ</li><li>ใช้ .env ใน phase 2 ไม่ได้ต้องขอโทษทีม infra จริงๆที่ทำให้เจอปัญหาน่ะครับ (คราวหน้าจะปรับปรุงน่ะครับ)</li><li>โดนเจาะระบบ API ตอนส่งค่า Status ผิดพลาดเขาเลยดักปลายทางได้โดย postman(ยังดีที่เจาะ DB ไม่ได้ คราวหน้าจะป้องกันให้ดีขึ้นน่ะครับโดยการจะ<br>ใช้ post ทุกตัวแล้วครับ)</li><li>ต้องฝึก logic อีกหลายๆท่าเลยมีอะไรที่ต้องเรียนรู้อีกเยอะเลย</li><li>ในวันงานเกิดความผิดพลาดอาจารย์ซ้ำกัน คาดการณ์ว่าเป็นที่การส่ง socket เพราะว่าข้อมูลใหญ่และ user ส่งไม่เท่ากันทำให้เกิดการคาดเคลื่อนและอาจารย์ออกมาพูดซ้ำได้ หรืออีกกรณีคือ เรามือลั่นไปกด ปุ่มเบิ้ลทำให้ข้อมูลตีกันเอง<br>(คิดว่าน่าจะแก้ได้โดยการดักกรอง user มาให้ครบให้หมดก่อนแล้วค่อยส่งไปอีก stage นึง และทำ ปุ่มป้องกันการมือลั่นของตัวเอง)**</li></ul><h3><strong>ประสบการณ์ที่ได้รับ</strong></h3><p>เยอะมากกกกกกกก ได้เข้าใจหลายๆ เรื่องจากเมื่อก่อน ทำเป็นแค่ Phaser หน้าบ้านตอนนี้คือสามารถเข้าใจได้ทั้ง 2 ฝั่ง เลย ทั้งหน้าบ้านและหลังบ้านสามารถเข้าใจแล้ว เข้าใจเรื่อง api ของ Socket.io , Axios ได้ประสบการณ์ การเขียน 3 Framework พร้อมกัน(ใครสนใจต้องลองสนุกดีๆ 5555)</p><p>..และสุดท้ายนี่คืองานชิ้นที่ 2 และเป็น Project แรกที่ได้ทำในนามของ Alchemist อย่างเต็มตัว ขอบคุณพี่ๆและเพื่อนๆทุกคนที่ช่วยกันจนเกิดงานนี้ขึ้นมาน๊าา</p><p>ถ้าอธิบายตรงไหน งง หรือใช้คำผิด ก็ ขอโทษด้วยน่ะค้าบบบบ</p><h3>แปะ..(เผื่อใครอยากศึกษา api น่ะๆ).. แปะ</h3><p><a href="https://github.com/axios/axios">https://github.com/axios/axios</a><br><a href="https://github.com/socketio/socket.io">https://github.com/socketio/socket.io</a></p><p>ช่วยได้จริงๆ สองอันนี้</p><p>แล้วก็ฝากไว้ด้วย Git ของเราเองอิอิ</p><p><a href="https://github.com/pepea23">pepea23 (pepea23)</a></p><h3>Good Bye~</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5e5472cd4d36" width="1" height="1" alt=""><hr><p><a href="https://medium.com/alchemist-itbangmod/orientation2018-dev-game-5e5472cd4d36">Orientation2018 — Dev.Game</a> was originally published in <a href="https://medium.com/alchemist-itbangmod">Alchemist</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[สวัสดีครับทุกคนวันนี้ผมจะมาเล่าถึงประสบการณ์เกี่ยวกับ การทำเกมในทีม Dev ของผม และเกมใน ค่าย WIP…]]></title>
            <link>https://medium.com/@ittidatechansatit/%E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%97%E0%B8%B8%E0%B8%81%E0%B8%84%E0%B8%99%E0%B8%A7%E0%B8%B1%E0%B8%99%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B8%9C%E0%B8%A1%E0%B8%88%E0%B8%B0%E0%B8%A1%E0%B8%B2%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%B2%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%AA%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%93%E0%B9%8C%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3%E0%B9%80%E0%B8%81%E0%B8%A1%E0%B9%83%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B8%A1-dev-%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%9C%E0%B8%A1-%E0%B9%81%E0%B8%A5%E0%B8%B0-%E0%B9%80%E0%B8%81%E0%B8%A1%E0%B9%83%E0%B8%99-%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B8%A2-4bc7d38abbe4?source=rss-307e56fcdaac------2</link>
            <guid isPermaLink="false">https://medium.com/p/4bc7d38abbe4</guid>
            <category><![CDATA[games]]></category>
            <category><![CDATA[wipcamp]]></category>
            <category><![CDATA[game-development]]></category>
            <category><![CDATA[development]]></category>
            <dc:creator><![CDATA[Ittidate Chansatit]]></dc:creator>
            <pubDate>Sun, 10 Jun 2018 12:18:35 GMT</pubDate>
            <atom:updated>2019-01-31T16:30:39.299Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*9akagI4Xt-O6Y-JBb8Beyg.jpeg" /></figure><blockquote>WIPCamp#10-ประสบการณ์การทำเกมในทีม Dev</blockquote><p>สวัสดีครับทุกคนวันนี้ผมจะมาเล่าถึงประสบการณ์เกี่ยวกับ การทำเกมในทีม Dev ของผม และเกมใน ค่าย WIP Camp</p><p>(Way to Information Technology Professional Camp)</p><p>ก่อนที่ผมจะได้ทำเกมค่าย ผมได้มีโอกาศเข้าไปทำ workshop ของ <strong>Alchemist </strong>ชื่อว่า <strong>HelloWorld #Alpaca</strong> โดยมีแนวทางว่าาเป็นการส่งต่อประสบการณ์ให้แก่รุ่นน้องๆ ว่าเราเจออะไรมาบ้าง ผ่านอะไรมาบ้าง ช่วงนั้นเป็นช่วงที่ลำบากอยู่พอสมควร ตอนนั้นผม มี สมาชิกทีมในการทำเกม อยู่ <strong>4 คน </strong>ในตอนนั้นผมรู้สึกว่าตัวเองเอาแต่ใจมากๆ เพราะ ไม่ค่อยฟังเสียงส่วนรวมเท่าไหร่นัก ซึ่งเกม ที่ผมทำมีชื่อว่า <strong>Forest </strong>เป็นเกมแนว <strong>horror-fps </strong>และ <strong>engine </strong>ที่ผมใช้คือ <strong>unity </strong>เป็น <strong>engine </strong>ที่หน้าสนใจพอตัว แต่ก็มีปัญหาคือ 1.)พวกเราก็ยังใช้กันไม่ค่อยเป็น 2.)ภาษาที่พวกเราใช้เป็นภาษาที่ยังไม่เคยลองใช้มาก่อน (<strong> C# </strong>) <br>และตอนนั้นทำให้รู้สึกว่าเราไม่ได้ทำงานกันเป็นทีมเลยเหมือนต่างคนต่างทำและสุดท้ายก็ export ตัวเกมไม่สำเร็จ และไม่ได้เอางานนี้ส่งไป แต่เอาผลงานจาก <strong>rpg-marker</strong> ไปส่งแทน แต่ถึงยังไงก็ต้องขอบคุณเพื่อนๆในทีมที่ร่วมทำงานกันจนสำเร็จ</p><h3><strong>ตอนนั้นที่ทำให้รู้ว่าเราควรฝึกทำงานเป็นทีม<br>ไม่ใช่เก็บเอาไว้คนเดียว</strong></h3><p>(ตอนนั้น ไม่ได้ ถ่ายรูปตัวเกมไว้เลยไม่มีนะครับ 55555)</p><p>และต่อมาพี่ๆก็เปิดโอกาศให้ผมเข้าร่วมทีม Dev เพื่อที่จะทำเกมค่าย <strong>WIP Camp</strong> ซึ่งเกมของพวกเราใช้เวลาทำประมาณ 6 เดือน เป็นการทำงานครั้งแรกของผมที่ใช้ระบบ <strong>Agile </strong>เข้ามาช่วยการจัดการทำงานทำให้รู้สึกว่าเราทำงานเป็นทีมเข้ากับคนอื่นได้ดีขึ้น ซึ่งเวลามีปัญหาอะไรก็ช่วยกันแก้ไข</p><p>ตอนแรกในทีมนี้มีสมาชิกทั้งหมด 7 คน(ตอนนี้ มี 8 คนแล้วน๊าา) <strong>Design </strong>2 คน <strong>Sound </strong>2 คน และ <strong>Dev </strong>3 คน ถึงแม้ว่าทุกคนต่างมีหน้าที่เป็นของตัวเอง แต่ถ้าเกิดปัญหาทุกคนก็จะช่วยกันแก้ไขให้ผ่านไปได้ด้วยดี</p><p>เกมแรกของพวกเราเรียกว่า<strong> รามรัน </strong>เป็นเกมแนว <strong>Adventure </strong>โดยการวิ่งนับระยะทางสามารถเลือกตัวละครได้สองฝั่งว่าเป็น ลิง หรือ ยักษ์ และจะมีไอเทมคอยช่วยระหว่างการวิ่ง มีฉากทั้งหมด 3 ฉาก</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*woWlhZpJZcSf23r3ZqI7pg.png" /><figcaption>ภาพ CutScene</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/922/1*jDYOBIGRZVzlOIZNQZD9SQ.png" /><figcaption>หน้าล็ออิน</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*MF9_L-GifsjmU8W_R50JJg.png" /><figcaption>เลือกตัวละคร</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/914/1*geh5lqEVBasR9l3XK5HddQ.png" /><figcaption>หน้าเมนู</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/916/1*KZxQzHXFZTaOIP5uTqb-ag.png" /><figcaption>หน้าเมนู</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/912/1*cFoIHM94kgAt5LykexUnzA.png" /><figcaption>วิธีเล่น</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*8ypPyCEcGKfTvCgngGWmOw.png" /><figcaption>ตัว Gameplay</figcaption></figure><p>engine ที่พวกเราเลือกใช้คือ <strong>Phaser ภาษา Javascript </strong><a href="https://phaser.io/"><strong>https://phaser.io/</strong></a></p><p>เรามาดูกันว่าตลอด 6 เดือนเราพัฒนาอะไรขึ้นมาบ้าง</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*umPmOuG1T6P8xGs2FsWJIw.jpeg" /></figure><p>เริ่มจากพวกเราวาง story ตัวเกมว่าจะเป็นยังไงบ้างช่วงนั้นได้ลองผิดลองถูกกันหลายๆอย่างเลย 5555</p><p>ตอนช่วงแรก ๆ ใช้เวลาเดือนกว่า ๆ ในการศึกษา Code และลองทำอะไรหลาย ๆ อย่างพอสมควร จนได้ระบบ gameplay หลักขึ้นมา</p><p>เรามาดูพัฒนาการของเกมกันว่ามีอะไรเกิดขึ้นบ้าง</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDaD1twwsgVM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDaD1twwsgVM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/ac4cb6d19d0565707d6ffb502f2f6853/href">https://medium.com/media/ac4cb6d19d0565707d6ffb502f2f6853/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDsQfCG1q0F8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDsQfCG1q0F8%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/426818fff1f01aeccf3e51a0e48b6b60/href">https://medium.com/media/426818fff1f01aeccf3e51a0e48b6b60/href</a></iframe><p>เป็นครั้งแรกที่พวกเราลองเอาโค้ดของทั้ง 3 คนมารวมกัน เป็นอะไรที่ยากมากเพราะสไตล์การเขียนโค้ดต่างกันพอสมควร 55555 และช่วงนั้นยังไม่ได้ใช้ GitHub เลยทำให้พวกเราโดนรุ่นพี่ดุ 😣 หลังจากนั้นพวกเราก็ถึงเริ่มใช้ GitHub กัน</p><p>ช่วงนี้จะเป็นช่วงแรก ๆ ที่เริ่มใช้ GitHub เป็นอะไรที่ใช้ไม่ค่อยเป็นเลย ทำให้พวกเรา Push งานกันมั่วมาก 5555 😖 แต่พอใช้ไปสักพักก็เริ่มลงตัวขึ้นและการส่งงานการเอางานแต่ละคนมารวมกันเป็นเรื่องที่ง่ายมากเลย</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDk1SM7Cv87o&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDk1SM7Cv87o%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/c1f7027bce9eff12ae2b40964bc7a84a/href">https://medium.com/media/c1f7027bce9eff12ae2b40964bc7a84a/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fxv7Gwd-c1Wk&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dxv7Gwd-c1Wk&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2Fxv7Gwd-c1Wk%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1a5b0f8a5f3cfc0e0d6389fac58959fa/href">https://medium.com/media/1a5b0f8a5f3cfc0e0d6389fac58959fa/href</a></iframe><blockquote>พอทำ<strong> Game Play </strong>ได้พอสมควรแล้วก็เริ่มทำส่วนอื่นๆ ไม่ว่าจะเป็นการทำ <strong>Cut Scene</strong> การภาคเสียง แก้ไขเรื่อง <strong>object </strong>ต่างๆ การทำ ระบบ <strong>Game Over</strong> ทำระบบ <strong>Pause </strong>ทำ <strong>End Credit</strong> การทำระบบ <strong>FireBase</strong> และ ระบบอื่นๆ</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DaWsJ8zv76RE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FaWsJ8zv76RE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/87fb824f1d91f1cf10929dabda5ec8c4/href">https://medium.com/media/87fb824f1d91f1cf10929dabda5ec8c4/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQg08aaccHq8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQg08aaccHq8%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/f5ee6e781d2bb35312f6f3883da4f014/href">https://medium.com/media/f5ee6e781d2bb35312f6f3883da4f014/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjnqDZzBm8sA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FjnqDZzBm8sA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/fd2a01d392f41fe486ce5301c5123120/href">https://medium.com/media/fd2a01d392f41fe486ce5301c5123120/href</a></iframe><blockquote>จากประสบการณ์ทั้งหมดที่ผมเล่ามาทำให้ผมได้เรียนรู้สิ่งใหม่ๆ ไม่ว่าจะเป็น ภาษา <strong>Javascript</strong> หลักการทำเกมยังไงให้ออกมามีคนสนใจ วิธีการทำงานเป็นทีมของระบบ <strong>Agile </strong>การทำ <strong>FireBase </strong>การเปิด <strong>Stack Overflow</strong> ตลอดเวลาที่ติดบัค 5555</blockquote><p>จนสุดท้ายพวกเราก็ทำสำเร็จออกมาเป็นรามรันที่เห็นกันทุกวันนี้ ถึงยังไม่ค่อยสมบูรณ์มากนักแต่พวกเราก็จะพัฒนาและแก้ไขให้ดียิ่งขึ้น และ ขอขอบคุณพี่ๆที่คอยสอนคอยให้คำแนะนำต่างๆ และ เพื่อนที่คอยอยู่ด้วยกันทำงานเป็นทีมจนงานสำเร็จออกมาด้วยดี และ ขอขอบคุณ <strong>Stack Overflow</strong> ที่คอยช่วยแก้ปัญหาเวลาติดบัค 😃</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLF2qs4g9cL3kgnHXcKW2B-bMraMIGAkNA&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dh5vXsEHmKMI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fh5vXsEHmKMI%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b1ce4cdff011b749abad5a0be1d100d6/href">https://medium.com/media/b1ce4cdff011b749abad5a0be1d100d6/href</a></iframe><p>มาทำความรู้จักคำศัพท์กัน</p><h4>Agile คืออะไร ?</h4><p>ต้องบอกว่า<strong><em> ‘Agile’ </em></strong>ไม่ใช่รูปแบบการทำงานแต่เป็นแนวคิดในการทำงานที่เป็นทางเลือกทางหนึ่ง เพราะก่อนหน้านี้องค์กรส่วนใหญ่จะทำงานด้วยระบบ Project Management คือมี Project Manager และทีมงานมานั่งวางแผนกันก่อนเริ่มโปรเจ็คต์ ทั้งเรื่องเงิน เวลา คน และอื่นๆ ตั้งแต่เริ่มต้นจนจบโปรเจ็คต์ ซึ่งเป็นงานทำงานแบบ ‘Waterfall Process’ แต่แนวคิด Agile จะส่งผลให้มีรูปแบบการทำงานที่ต่างออกไป</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*CG8eQdblUSFqU2Xz.png" /><figcaption><em>การทำงานแบบ ‘Waterfall Process’ // ที่มา : </em><a href="http://beyondmanaging.com/2015/03/project-management-toolkit/"><em>http://beyondmanaging.com/2015/03/project-management-toolkit/</em></a></figcaption></figure><p>ซึ่งแท้จริงแล้ว Agile นั้นเกิดขึ้นมาจากบริษัทที่ทำในเชิง Software Development เป็นหลัก เพราะปัญหาของระบบเดิมที่บรรดาบริษัท Software เจอก็คือ</p><ul><li><strong>ความยากในการวางแผน</strong> การนั่งคิดทุกอย่างตั้งแต่เริ่มจนถึงจบโปรเจ็คต์นั้น เป็นเรื่องยากที่จะวางแผนทุกอย่างได้ลงตัวและแม่นยำ ทั้งในเรื่องของงบประมาณที่อาจจะบานปลายหรือเวลาที่ไม่ลงตัว</li><li><strong>กว่าจะรู้ว่าผิดพลาดก็อาจจะสายไปเสียแล้ว </strong>ในระบบแบบ Waterfall กว่าที่จะมีการทดสอบโปรดักส์หรือ Software นั้นก็ต้องเป็นในขั้น Test ซึ่งการ Design + Develop นั้นแทบจะเสร็จอยู่แล้ว ถ้าไปเจอความผิดพลาดตอนนี้ไม่ว่าจะด้วยเข้าใจ Requiement ผิดพลาดหรือมีการเปลี่ยนแปลงก็ตามแต่ การแก้ไขก็จะทำได้ยาก (บางครั้งอาจถึงขั้นต้องรื้อทำใหม่)</li></ul><p>เพื่อจัดการกับปัญหาเหล่านี้ แนวคิด Agile ก็เลยถูกนำมาประยุกต์ใช้คือวางแผน และทำงานไปทีละนิดๆ และคอยประเมินว่าไปต่อได้ดีไหม ไปถูกทางไหม แล้วจึงไปต่อ กำหนดเป้าระยะสั้นและค่อยๆ ไป เพื่อที่เมื่อเจอปัญหาจะได้แก้ไขง่ายขึ้น หรือเมื่อ Requirment เกิดการเปลี่ยนแปลงก็สามารถรับมือได้ดีขึ้น</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*Ktd4xOliIXfRRzMj.gif" /><figcaption><em>เปรียบเทียบระหว่าง ‘Waterfall’ กับ ‘Agile’ // ที่มา : </em><a href="http://www.albalenys.com/posts/16"><em>http://www.albalenys.com/posts/16</em></a></figcaption></figure><h3>แนวคิดสำคัญของ Agile</h3><p>จริงๆ Agile นั้นไม่ได้มีการระบุเป็นกฎไว้อย่างชัดเจน ผมขอสรุปจากการประสบด้วยตัวเองและอ่านจากหลายๆ ที่ไว้ให้แล้วกันครับ โดยหลักการสำคัญของ Agile ที่เห็นได้ชัดๆ นั้นจะประกอบไปด้วย</p><ul><li><strong>ไม่เน้นกระบวนการและเอกสาร </strong>ให้เน้นไปที่การพัฒนาโปรดักส์ให้ดีที่สุดมากกว่าจะยึดติดกับเอกสารต่างๆ (ไม่ใช่ว่าไม่จำเป็นแต่ให้ความสำคัญน้อยกว่า) คือต่อให้มีเอกสารยืนยันแล้วว่าจะทำอะไร แต่มีอีกทางที่ส่งมอบ Value ให้กับลุกค้าได้ดีกว่า Agile จะเลือกทางนั้น ไม่ใช่ทางเอกสาร</li><li><strong>ยอมรับความเปลี่ยนแปลง </strong>เพราะ requirement อาจเปลี่ยนแปลงได้ตลอด แนวคิดแบบ Agile จะไม่ฟูมฟายกับการเปลี่ยนแปลง ไม่มีการทำงานหรือยึดติดกับ Gantt Chart แต่จะทำงานแบบ ค่อนข้าง Flexible ตามสิ่งที่เกิดขึ้นจริงเป็นหลัก สามารถเปลี่ยนแปลงได้ตลอดเวลา</li><li><strong>ทำทีละนิดแต่ทำบ่อยๆ</strong> คือมีการส่งมอบงานอะไรบางอย่างให้ทีมหรือลูกค้าอย่าต่อเนื่องทีละเล็กทีละน้อย เช่นส่งมอบอะไรใหม่ทุกๆ 2 อาทิตย์หรือทุกๆ เดือน จะไม่ให้ลูกค้ามีการรอ 3–6 เดือนเพื่อรอโปรเจ็คต์ใหญ่เสร็จแล้วค่อยส่งมอบทีเดียว</li><li><strong>ผิดพลาดให้เร็ว </strong>คือไม่กลัวที่จะลงมือทำเพื่อที่จะเจอกับความผิดพลาดและแก้ไขไปทีละนิด จะไม่ใช่การวางแผนโดยละเอียดเพื่อป้องกันความผิดพลาด แต่พอเจอสิ่งที่ผิดไปจากแผนจริงๆ (เพราะอย่างที่รู้ว่าน้อยครั้งนักที่เราจะทำตามแผนได้ทั้งหมด) ก็อยู่ในภาวะที่เป็น Point of No Return ไปแล้ว</li><li><strong>ทำงานเป็นทีมมากกว่าที่จะสนใจกระบวนการ </strong>คือเน้นที่การมีปฏิสัมพันธ์ระหว่างบุคคลมากกว่าที่บอกว่าต้องเป็นไปตามกระบวนการ มีปัญหาอะไรให้พูดคุยกับทีมเลยทันที บางครั้งอาจถึงขั้นเอา Programmer ไปเจอลูกค้าเพื่อให้เข้าใจ requirement ที่แท้จริงด้วย ให้ลูกค้าเข้ามามีส่วนร่วมตั้งแต่เริ่มกระบวนการ ซึ่งทีมมักจะประกอบด้วยหลายๆ ตำแหน่ง และมีอำนาจมากพอที่จะตัดสินใจทำหรือไม่ทำอะไรเพื่อ Drive ให้งานที่ทีมรับผิดชอบสำเร็จตามเป้าหมาย</li></ul><p>และเกมที่สองของเรากำลังออกแบบแต่ก็ล่มเหลวไปเพราะติดสอบ 55555</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/540/1*fVgFF5HTaOeB2i_DnqaqaA.jpeg" /><figcaption>Design ของ เกมที่ 2 (ยกเลิกโปรเจ็คแล้ว 5555 )</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4bc7d38abbe4" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>