งานสัมนา National Cyber Security Conference 2012 ปีนี้จัดขึ้นตามแนวนโยบายที่เกี่ยวข้องกับการป้องกัน ความปลอดภัยทางอินเตอร์เน็ตซึ่งเป็นเรื่องระดับประเทศและระดับภูมิภาคอาเซียนเลยทีเดียว งานเปิดตัวด้วยรัฐมนตรีกระทรวงไอซีทีมาปาฐกถาเกี่ยวกับ National Cyber Security Policy ซึ่งได้ร่างออกมาเป็นที่เรียบร้อยแล้ว และจะนำเสนอคณะกรรมการ National Cyber Security Commitee อีกครั้ง ซึ่งการออก Policy ด้าน Security นี้ทำให้ภาครัฐรวมไปถึงกองทัพต้องตระหนักเรื่อง Security มากขึ้น มาตรฐาน ISO 27000 Series นี้ถือว่าเป็นมาตรฐานระดับพื้นฐานที่หน่วยงานของรัฐจะต้องมี ครั้งนี้มีวิทยากรจาก กองทัพสหรัฐมาบรรยายด้วย ซึ่งมาบรรยายถึงภัยคุกคามที่ US เคยเจอและการขยายตัวของภัยคุกคามที่มากขึ้น ไม่ใช่เพียงแค่ก่อกวน สร้างความเสียหาย แต่ยังรวมไปถึงเรื่องของ Cyber Warfare และ Advance Persistent Thread ในกลุ่ม Hacktivism และกลุ่มที่มีภาครัฐหนุนหลังอีกด้วย ภัยคุกคามทั้งหลายนี้มาได้หลายรูปแบบ เพราะระบบเครือข่ายอินเตอร์เน็ตถูกเชื่อมโยงถึงกัน กลุ่ม Hacker ก็สามารถสร้างความเสียหายได้ไม่ว่าจะอยู่ที่ใดในโลก

อาจารย์ปริญญา หอมเอนก มาเล่าเรื่องของ Technology Trend ซึ่ง Gartner ได้พยากรณ์เอาไว้ว่าปี 2013 ที่จะมาถึงนี้ เทคโนโลยีเหล่านี้มาอย่างแน่นอน ซึ่งภัยคุกคามก็จะตามมาติดๆ กับ Technology Trend เหล่านี้เช่นกัน อาจารย์ปริญญาเล่ากรณีศึกษาของการ Hack iCloud ของ Apple โดยใช้วิธีการกู้รหัสผ่านของ Apple ID โดยการประกอบข้อมูลจาก บริการอื่นๆ ของเหยื่อ เช่น E-mail Account, ที่อยู่, เบอร์โทรศัพท์ ฯลฯ เพื่อหลอกให้ระบบ iCloud ของ Apple ส่งรหัสผ่านใหม่มาให้คนร้าย ซึ่งกรณี Hack iCloud นี้เป็นกรณีศึกษาที่ดีอย่างหนึ่ง ซึ่งถึงแม้การตั้งรหัสผ่านที่ยากขึ้นแล้ว Hacker ก็ยังสามารถหาวิธีการอื่นๆ มาขโมย Apple ID ไปได้ อาจารย์ยังแนะนำว่าคำถามที่ใช้กู้รหัสผ่านมีความจำเป็น แต่คำตอบที่ใช้ตอบสำคัญมากกว่า เพราะถ้าตอบตามความเป็นจริง Hacker ก็สามารถใช้ข้อมูลเหล่านี้ขอกู้รหัสผ่านได้เช่นกัน เพราะฉนั้นคำถามแบบหนึ่งให้ตอบอีกแบบหนึ่งน่าจะดีกว่า

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

สำหรับในวันที่ 2 นี้ เนื้อหาออกจะคล้ายวันแรก และออกไปในแนวทางการนำเสนอ Solution ด้านความปลอยภัยของเหล่า Vender ซึ่งผมเองคงไม่ขออธิบายอะไรมานัก เดี๋ยวจะกลายเป็นเสนอขายของไป เอาเป็นว่าให้ไปลองค้นหาดูจากเว็บผู้ให้บริการเอาละกันครับ

ห่างหายจากการอัพเดทเรื่อง Cloud Computing ไปนาน เนื่องจากรู้สึกอิ่มตัวกับเรื่องนี้มาก เล่นมาเกือบหมดทุกค่ายแล้ว เหลือแต่ Microsoft Azure ที่ยังไม่กรอกเลขบัตรเครดิต :P และยังหากำลังใจในการใช้ผลิตภัณฑ์ของ Microsoft ไม่ได้ พอมีงานสัมนา Public Cloud Day ก็เลยอยากไปฟังอัพเดทอะไรใหม่ๆ บ้าง อยากรู้ว่าสถานะ Public Cloud ในประเทศไทยเป็นอย่างไรบ้าง Blog นี้ขอสรุป section ที่ผมสนใจ หากมี Bloger ท่านอื่นๆ เขียนเรื่องเดียวกันนี้อยู่ผมคง Tag ไปให้อ่านเพิ่มเติมครับ

ช่วงแรกหลังเปิดงานโดย อ.ธนชาติ มี Case Study จากธนาคารไทยพาณิชย์ที่ได้ใช้ Cloud ในการบริหารจัดการลูกค้าสัมพันธ์ โดยใช้บริการของ Saleforce.com และบริการ Platform as a Service ด้าน Workflow รายหนึ่ง (ผมจำชื่อบริการไม่ได้) ทางธนาคารเล่าให้ฟังถึงการเปลี่ยนผ่านระบบ CRM ระหว่างระบบเดิมที่มีอยู่เป็นอย่างไร และระบบที่เพิ่มเข้ามาเป็นอย่างไร เข้ามามีบทบาทอย่างไรในการบริการของธนาคาร ประเด็นสำคัญของการใช้ Cloud Service ของไทยพานิชย์คือ ธนาคารต้องการรู้จักลูกค้ามากขึ้น และนำเสนอสินค้าและบริการได้ตรงใจลูกค้ามากขึ้นนั่นเอง ตลอดจนปรับเปลี่ยนรูปแบบการบริการของธนาคารให้ดียิ่งขึ้นด้วย ทั้งในด้านการอนุมัติสินเชื่อได้เร็วยิ่งขึ้น เนื่องจากข้อมูลได้ถูกประมวลผลทุกๆ คืนเพื่อส่งข้อมูลไปยัง Saleforce.com เพื่อให้สาขาของธนาคารได้ใช้ข้อมูลผ่าน Saleforce.com อีกด้วย หลายคนอาจเป็นกังวลว่าอ้าวข้อมูลลูกค้าขึ้นไปอยู่บน Cloud แล้วจะปลอดภัยมั๊ย ทางธนาคารมีเทคนิคในเรื่องการจัดการข้อมูลได้ดีมากเรียกว่าวิธี Mash Up ข้อมูลลูกค้ายังอยู่ที่ธนาคาร แต่ข้อมูลที่อยู่บน Saleforce.com ที่ถูกประมวลผลแล้วจะถูกดึงลงมาใช้คู่ข้อมูลกับลูกค้าที่อยู่กับธนาคารอีกครั้ง ซึ่งวิธีการแบบนี้เป็นวิธีการหนึ่งที่ใช้ใน Hybridge Cloud ซึ่ง Hybridge Cloud เองไม่ได้กำหนดวิธีการที่ตายตัวในการเชื่อมโยงระหว่าง Public Cloud และ Private Cloud หากมุมมองในเรื่องของ Infra ก็จะเป็นมุมมองหนึ่ง กรณี Mash Up นี้เป็นการเรียกใช้ข้อมูลระหว่าง Public Cloud (ข้อมูลที่ได้จากการประมวลผลจาก Saleforce.com) และ Private Cloud (ข้อมูลลูกค้าของธนาคาร) เคยมีคนพูดเรื่องนี้ใน HP Cloud Forum เขาเรียก Hybridge Cloud ว่า Delivery Services ซึ่งมุมมองไม่ได้อยู่ที่ Infra อย่างเดียว แต่สามารถมีได้ในทุกๆ Layer ของ Cloud ทั้ง IaaS, PaaS และ SaaS ธนาคารได้เริ่มใช้ Saleforce.com และ implement ควบคู่กับระบบ CRM เดิมทีละน้อย เพื่อดูความเป็นไปได้ในการใช้บริการ โดยเริ่มต้นที่ 10 Users และค่อยเพิ่มมากขึ้นเรื่อยๆ ในแต่ละปี ซึ่งในปีนี้ สาขาในกรุงเทพมหานครได้ใช้ Saleforce.com กันแล้ว ในปีหน้าเราจะได้บริการที่เข้าถึงความต้องการและเหมาะกับตัวเรามากขึ้นอีกจากธนาคารพาณิชย์โดยเฉพาะเรื่องการอนุมัติสินเชื่อที่ไม่จำเป็นต้องรอข้อมูลหรือการอนุมัติจากส่วนกลาง (สาธุ…)

ถัดมาเป็นเสวนาจากผู้ประกอบการที่ใช้บริการ Public Cloud อยู่แล้วได้แก่ Okbee, อรุณสวัสดิ์ดอทคอม และ อีโฟลซิส ขอสรุปคร่าวๆ ดังนี้

  • Okbee บริการ E-Book, Magazine Online ผู้ใช้ 2.5 ล้านราย ช่วงแรกใช้ Amazon AWS ในการ Scale Up/Down ของ Instance เพื่อรองรับปริมาณของผู้ใช้ในแต่ละช่วงเวลา ซึ่งให้บริการผู้ใช้จากทั่วโลก ปัจจุบันลูกค้าเริ่มมีมากขึ้นเพราะขยายธุรกิจไปยังประเทศเพื่อนบ้านไม่ว่าจะเป็นเวียดนาม อินโดนีเซีย ฯลฯ ปัจจุบันเริ่มมาใช้ Microsoft Azure แต่ยังคง Instance ครึ่งหนึ่งอยู่ที่ Amazon และอีกครึ่งหนึ่งอยู่ที่ Azure เนื่องจากระบบหลังบ้านพัฒนาบน Platform ของ Microsoft การใช้ License บน Amazon และ Azure จึงไม่แตกต่าง แต่ต่างตรงที่ Microsoft มีข้อตกลงทางธุรกิจที่ดีกว่าเท่านั้น Okbee เป็น Case Study ให้ Microsoft ในการใช้ Azure ด้วย

  • อรุณสวัสดิ์ดอทคอม มีบริการสำหรับบริษัทประกันภัย “มาเร็วเคลมเร็ว” คือคอนเซปที่บริษัทให้กับลูกค้า เพื่อให้บริษัทประกันภัยส่งมอบสิ่งที่ดีที่สุดให้ลูกค้าได้ตามคอนเซปข้างต้น สำหรับอรุณสวัสดอทคอมใช้บริการ Azure เช่นกัน และมีการพัฒนาซอฟต์แวร์เพื่อใช้ความสามารถ Hybridge Cloud ของ Azure เอาข้อมูลของลูกค้าที่อยู่กับลูกค้า (ไม่ได้เอาขึ้น Azure) มาเชื่อมโยงกับ SaaS ที่พัฒนาบน Azure เพื่อใช้งานร่วมกัน ทั้งในรูปแบบ Web Application และ Mobile Application

  • อีโฟลซิส มีบริการ ERP บน Cloud ซึ่งใช้ Azure เช่นเดียวกัน แก้ไขซอฟต์แวร์เดิมให้สามารถทำงานบน Cloud ได้อย่างมีประสิทธิภาพ (Multi Core Computing) และเรียกใช้คุณสมบัติ HA ของ Azure ทำให้ บริการของบริษัททำงานมีความต่อเนื่องมากยิ่งขึ้น

ถัดมาเป็นช่วงการนำเสนอของผู้ให้บริการ Cloud ในประเทศไทยจาก TCA ดังนี้

  • DCS (DWork)
  • Cloud Creation (IBM Cloud Burst)
  • Anise Asia (Joyent ~ StarAnise)
  • TOT (VMWare)
  • True (Aspen, VMWare)

มานำเสนอความพร้อมของการให้บริการ Public Cloud ในประเทศ พร้อมเป็นคู่ค้ากับ ISV ในประเทศ

สำหรับมุมมองของผมในฐานะ “คนกลาง” ผมมองหาผู้ให้บริการ Cloud หรือที่เรียกว่า Cloud Provider ในประเทศอยู่ 2 แบบคือ

  • ผู้ให้บริการ Cloud ทั้ง IaaS และ PaaS ได้เทียบเท่ากับ AWS มีช่องทางการบริการผ่านทาง Web Management Console และ Service APIs ต่างๆ
  • ผู้ให้บริการ Cloud ในรูปแบบ IaaS หรือ PaaS โดยเป็น Market Place ให้กับ ISV ที่พัฒนา SaaS เพื่อที่จะได้ไม่ต้องมากังวล เรื่องการบริหารจัดการในฝั่ง IaaS หรือ PaaS อีก ISV มีหน้าที่ทำ SaaS และหาลูกค้าเท่านั้น ที่เหลือให้ Cloud Provider เป็นคนจัดการ

สำหรับผม 4 ปีที่ผ่านมา ผมยังมองไม่เห็น Cloud Provider ในประเทศ (ไม่นับบริษัทที่ซื้อ Technology หรือเป็นบริษัทลุกในต่างประเทศ) ทำได้อย่างที่ผมต้องการ ผมอาจจะเรื่องมากไปก็ได้ แต่บริการที่สนองความ “ขี้เกียจ” ของลูกค้านี่เป็นสิ่งที่ดี จะเป็นอย่างไร ถ้า ISV สามารถขาย SaaS เป็นสินค้าผ่าน Market Place ของ Cloud Provider หรือ Market Place ของตัวเอง (ผ่านการให้บริการ Service APIs ของ Cloud Provider เพื่อ Provisioning หรือ Management อีกทอด) ลูกค้าจะมีช่องทางการซื้อบริการที่ง่าย สะดวก และรวดเร็ว ซึ่งเป็นปัจจัยสำคัญในการให้บริการอย่างดีเลยทีเดียว เราจะเห็น Time Delivery ของ SaaS เพียงไม่กี่นาทีจริงๆ ไม่ต้องรอ Provisioning จาก Call Center ของผู้ให้บริการ อยากได้ซอฟต์แวร์อะไรก็ “กดปุ๊ปได้ปั๊บ” เหมือนกดสวิทไฟ ผมว่านี่เป็นเรื่องที่ดีเลยทีเดียว

*** อ้อลืมบอกไปว่า Service Catalog หรือ Market Place นี้อย่าหวังให้ภาครัฐทำให้เพราะภาครัฐเองยังก้าวไปได้ช้าในเรื่องของ Cloud Computing ภาคเอกชนควรก้าวนำหน้าและหันมาสั่งสอนภาครัฐเสียบ้าง ***

ผมกลับมาใช้ OpenShift อีกรอบเนื่องจากมีโครงการเฉพาะกิจ พัฒนาเกมส์บวกเลขเก็บสถิติบน Cloud ซึ่งตอนแรกคิดว่าจะใช้ GREE แต่เนื่องจากติดปัญหาเรื่อง Build Package บน GREE เลยล้มเลิกไปและกลับมาใช้ OpenShift อีกรอบพัฒนา RESTFul Web Services เก็บข้อมูล High Score เอาเอง ปัญหาของคนที่ใช้ OpenShift มักจะถามบ่อยครั้งมาที่ผมและทีม OpenShift ที่ RedHat คือ จะวัดได้อย่างไรว่า App ที่พัฒนาใช้ Resource มากน้อยแค่ไหน สมควรที่จะเพิ่ม Gear เพื่อทำ horizontal Scaling หรือไม่ จากที่ได้ใช้บริการ Cloud ของหลายที่ จะมีเครื่องมือ Monitoring และ Auto Scaling ให้เสมอแต่ OpenShift ยังไม่มี เพิ่งจะมีออกมาเป็น Experimental (รุ่นทดลอง) ชื่อ OpenShift Metrics ครับ เป็น Cartridge เพิ่มเข้าไปใน Gear ได้โดยตรง วิธีการเพิ่มก็เข้าไปที่หน้า Add Catridge ดังนี้

จากนั้นเลือก OpenShift Metrics Cartridge เมื่อติดตั้งเรียบร้อยแล้ว เราจะสามารถเข้าไปดูส่วน Monitoring ได้โดยใช้ URL ดังนี้

https://appname-namespace.rhcloud.com/metrics

อยากดูของจริงก็เข้าไปดูของผมได้ครับที่ https://rest-redlinemobi.rhcloud.com/metrics/ ยังไม่มีรายงานสรุป แต่มี Graph แบบ real time ซึ่งดูแล้วงงนิดหน่อย เพราะดูไม่ค่อยทัน แต่ก็ยังดีกว่าไม่มีครับ :P

ใครที่ใช้ OpenShift อยู่ก็ไปลองกดเล่นๆ ดูได้ครับ

ผ่านมา 6 วัน วันนี้วันสุดท้ายแล้วครับ สำหรับ Blog สไตล์ Reality ตามติดชีวิตเด็กโข่งสร้างเกมส์ เข้าเรื่องกันเลยดีกว่า เมื่อวานถอดใจกับ GREE แล้วไปซบอก OpenShift Cloud Platfrom as a Service และ CakePHP สร้าง RESTFul Web Service ขึ้นมาเพื่อทำหน้าที่แทน GREE ทำหน้าที่เก็บ Score ของเกมส์จากผู้เล่นทั่วโลก (ดูยิ่งใหญ่มากเลย) วันนี้จะมาเชื่อมโยง Mobile App ไปยัง Web Service กันครับ

หน้าที่หลักของ Web Service ของเราตอนนี้คือการรับข้อมูลจาก Mobile App ในกรณีที่ Mobile App ประมวลผลแล้วว่าจะส่งข้อมูลไปยัง Server โดยใช้เงื่อนไข 2 อย่างคือ

  • มีคะแนน High Score
  • เชื่อมต่อ Internet ได้

เมื่อผู้เล่นรู้ผลคะแนน App จะทำการเชื่อมต่อกับ Web Service และส่งผลคะแนนไปยัง Server โดยอัตโนมัติ กรณีที่ส่งผลคะแนนไม่ได้ก็เสียใจด้วยครับ :) หน้าตาของ World Leaderboard เป็นอย่างนี้ครับ

สำหรับท่านใดอยากลองฝีมือบวกเลขก็ดาวน์โหลด App ไปเล่นได้ที่

เกมส์นี้ใช้สัญญาอนุญาติแบบ GNU/GPL V3 พัฒนาต่อยอดได้ที่ GitHub

ตั้งใจว่าจะดู GREE Social Network Game ต่อแต่ลงทะเบียนสร้าง App บน Cloud PaaS (Platform as a Service) ของ OpenShift ไว้ก็เลยได้กกลับมาตายรัง ขอถอนตัวจาก GREE มาซบอก OpenShift อีกครั้ง (ไปไหนไม่รอด) ในเมื่อตัดสินใจแล้วก็ต้องเดินหน้าต่อครับ แผนคือเราจะมาสร้าง RESTFul Web Service บน OpenShift กัน ซึ่ง Service ที่มีได้แก่

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

ระบบเก็บข้อมูลคร่าวๆ แบบนี้ครับ ถ้าดูเผินๆ จะเหมือนกับ Service อื่นทั่วไป ถ้าใครเคยใช้ GREE ก็คงจะคุ้นกันอยู่ :P แฮะๆ ลอก GREE มาอ่ะ การเก็บข้อมูลและฟีเจอร์จะไม่ละเอียดเหมือนกับ GREE ครับ แต่วิธีการใช้งานเหมือนกัน (พยายามลากให้ดูดี จริงๆ กะจะลอกจาก GREE ต่างหาก) หน้าตาจะแบนๆ อย่างนี้

นี่คือ OpenShift Cloud PaaS ที่เราใช้กัน (Cloud ของจริงนะจ๊ะ ไม่ใช่ Hosting)

หน้าตาแบนๆ ของ Service ยังไม่ได้ทำอะไรเพิ่ม และยังใช้ไม่ได้ T_T

ทดสอบบนเครื่อง local ส่งค่าเพื่อลงทะเบียน App ไม่มี pubkey ลงทะเบียนไม่ได้นะจ๊ะ

ผลตารางคะแนนหน้าตาประหลาดๆ

เอาข้อมูลมาทำให้สวยหน่อย

สุดท้ายได้ Mock up ตาราง Leader Board ดังนี้

อ้อลืมบอกไปว่า RESTFull Web Service ผมใช้ CakePHP จริงๆ จะใช้อะไรก็ได้ แต่อยากย้อนความหลังกันนิดหน่อย เลยกลับมาเขียน CakePHP อีกรอบ :) วันนี้มีความคืบหน้าแค่นี่ครับ กำลังสงสัยว่าอาทิตย์นี้ เกมส์จะเสร็จมั๊ยเนี่ย มีคนถามว่าผมใช้เครื่องมืออะไรพัฒนาซอฟต์แวร์ ขอสรุปให้นิดนึงครับ

  • Eclipse JDT, ADT, PDT ~ รวมอยู่ในตัวเดียว
  • Java ~ ผมเกลียด Java มาก จากใจจริงเลยล่ะ
  • PHP ~ บางครั้งใช้ Zend Platform เกาะ Zend Server บน PHP Cloud แล้วแต่อารมณ์จะพาไป
  • CakePHP, Zend Framwork, Lanai-Core ~ ว่างๆ ก็ใช้ Framework เขียน App แต่ตัวหลังขายใปละและไม่ได้ทำต่อ
  • Git + GitHub ~ ย้ายมาหลายที่ ใช้เครื่องมือจัดการโค้ดมาหลายตัว จบที่ GitHub ไม่ใช่เพราะ GitHub ถูกใจผม แต่เพราะว่าโควต้าของที่อื่นเต็มหมดแล้ว T_T
  • MySQL ~ ส่วนใหญ่ใช้ Command Line ไม่รู้เลิกใช้ Command Line ไม่ได้ซักที
  • MySQL Workbench + Admin + Browser ~ เป็น MySQL GUI ที่ใช้งานง่าย ไม่ยังไม่เท่า dbDesigner ที่เคยใช้ (เดี๋ยวนี้เขายังทำต่อมั๊ย)
  • PHP MyAdmin ~ Web GUI ใช้เฉพาะช่วงย้ายข้อมูลไปที่ Server ที่ไม่ให้ใช้ Command Line พอจบงานก็เอาออก :)
  • Cloud (IaaS,PaaS) ~ อันนี้แล้วแต่อารมณ์และลักษณะงาน แปรผันตามจำนวนเงินในกระเป๋า บางทีใช้ AWS ไม่ก็ HP Cloud พอเงินเริ่มหมดก็ไปใช้ Cloud Sigma, EngineYard, dotCloud, Zend Developer Cloud ลงท้ายที่ OpenShift

…ติดตามตอนต่อไป

กลับมาเขียน Blog ต่อ เนื่องจากแก้ไขเกมส์อยู่หลายอย่าง ทั้งส่วนตั้งคำถาม เกณฑ์การให้คะแนนแบบใหม่ เพราะคะแนนกระโดดเยอะมากไปหน่อย หันมาใช้ Bonus เป็นเวลาที่เหลือเป็นคะแนนเสริม และแก้ Bug เล็กน้อย เช่น ได้ได้เรื่อยๆ โดยเวลาไม่จำกัด T_T เป็นต้น วันนี้ตั้งใจจะมาลอง OpenFeint ซึ่งเป็นโซเชียลเน็ตเวิร์คของคนเล่นเกมส์ เก็บคะแนนแข่งกันกับเพื่อนๆ ที่เล่นเกมส์เดียวกันได้ แต่ทว่า OpenFeint ถูกซื้อโดย GREE บริษัทยักษ์ใหญ่จากญี่ปุ่นทำให้ ต้องไปใช้ GREE โดยปริยาย ซึ่งจากที่ทดสอบ GREE ในเบื้องต้น พบว่า Package หลักในส่วน GreePlatform ผม Build ไม่ผ่าน เนื่องจากสาเหตุอะไรไม่ทราบ ก็เลยขอพักเรื่อง GREE ไปก่อน

วันนี้ก็เลยได้มาทำส่วน UI เพิ่มอีก 2 ส่วนคือ ส่วนแสดงผลคะแนน หากยังจำกันได้ของเดิมเป็น Dialog Box ธรรมดาๆ ครั้งนี้ก็เลยเปลี่ยนมาเป็น Custom Layout ซะเลย ได้หน้าตาสวยแบบนี้ครับ

ดูใน Tablet จะหน้าตาแบบนี้

อีกส่วนที่เพิ่มเข้ามาเป็นเสียงครับ ผมเลือกเสียง Effect และเพลงอยู่ 10 กว่าเพลง แล้วให้ Game Tester ซึ่งเป็นใครไม่ได้นอกจากคุณมะระมาช่วยฟังช่วยเลือก คำแนะนำที่ได้คือ ควรจะเป็นเสียงโรงเรียน อ็อดเข้าเรียนอะไรประมาณนี้ ก็เลยได้เพลงสบายๆ ก็อกๆ แก็กๆ มา 1 เพลง และเสียงอ็อดเข้าเรียนอีก 1 เสียง ตบท้ายด้วยเสียงที่ผมชอบมากคือ เสียงสมองระเบิด สำหรับผู้เล่นที่บวกเลขไม่คล่อง :P เรียกได้ว่าสะใจดีครับ วันนี้ก็เลยได้ใกล้ความเป็นเกมส์มากขึ้นแล้ว สำหรับการเก็บคะแนนผ่านทาง Social Network เกมส์อย่าง GREE นั้น ผมไม่แน่ใจว่าจะได้ใช้บริการ GREE หรือเปล่า ถ้ายังแก้ปัญหาไม่ได้ในอาทิตย์นี้คงไปใช้ตัวอื่นแทน ผมก็เลยทำ Custom Layout ส่วนกรอกชื่อเอาก่อน สำหรับ เก็บคะแนนผ่านทาง Social Network เกมส์ ผมอาจจะเขียน Score Services ขึ้นใช้เอง เอ…รู้สึกจะไม่จบง่ายละ เอาเป็นว่าติดตามตอนต่อไปครับ

นึกเล่นๆ ว่าอยากเขียนเกมส์ เนื่องจากมี App บน Play Store เยอะพิสมควร แต่ยังไม่มีเกมส์เป็นของตัวเองเลยอยากลองเขียนดูบ้าง ก็เลยได้เริ่มคิดว่าจะเขียนเกมส์อะไรดี ใช้เวลาว่างประมาณ 1-2 อาทิตย์ น่าจะทำเสร็จ ก็เลยคิดว่าอยากทำเกมส์คิดเลขเร็ว (ง่ายดี) ซึ่งแนวคิดดังนี้

  1. คำตอบมีแค่ บวก, ลบ, คูณ หรือ หาร
  2. ไม่ต้องตั้งโจทเองเพราะขี้เกียจ ให้โปรแกรมตั้งให้
  3. เล่นไปเรื่อยๆ เก็บคะแนนที่ได้มากที่สุด post ขึ้นระบบสะสมคะแนน
  4. ส่งคะแนนผ่าน wall facebook / social network จัด range ได้ + โชว์พาว + ทำ CRM
  5. เพิ่มความยากในการคิดขึ้นเรื่อยๆ
  6. จัดกิจกรรมแจกของรางวัลผ่านหน้า app fan page

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

ก็เลยเป็นที่มาของการเขียนเกมส์อัจฉริยะบวกเลข หรือ Plus Clever ครับ

หลังจากได้แนวคิด วิธีการเล่น ก็เลยเพิ่มกติกาและตัวแปรต่างๆ เพิ่มเข้ามา เช่น ตัวเลข, ด่านหลัก, ด่านย่อย, ความยาก, การให้คะแนน และ การกำหนดเวลา เป็นต้น ตัวเกมส์มีด่านหลักไม่จำกัด แต่มีด่านย่อย 10 ด่าน ต้องเล่นบวกเลขให้ครบ 10 ด่านจึงจะขึ้นด่านหลักต่อไปได้ ในแต่ละด่านหลักจะสัมพันธ์กับความยากง่ายของเกมส์ ซึ่งเบื้องต้นจะให้จำนวนตัวเลขก่อน ซึ่งจำนวนตัวเลขจะเพิ่มทีละ 1 หลัก ต่อด่านหลัก เช่น ด่าน 1 มีเลขให้บวก 2 ตัว, ด่าน 2 มีเลขให้บวก 3 ตัว ไปเรื่อยๆ แต่จำนวนตัวเลขสูงสุดจะอยู่ที่ด่าน 9 คือมีตัวเลขให้บวก 10 ตัว และคงที่ไปเรื่อยๆ การให้คะแนนจะให้คะแนนแต่ละด่านและด่านย่อยไม่เท่ากัน ใช้สูตรคำนวนคือ คะแนนแต่ละด่านย่อย = (เลขด่านย่อย) ยกกำลัง (เลขด่าน) บวกกันไปเรื่อยๆ สำหรับเวลาในการเล่นคือ 20 วินาทีต่อเกม ตอบถูกได้เวลาคืน 20 วินาที กติกาง่ายๆ ตอบถูกได้คะแนนและผ่านด่าน ตอบผิดเริ่มเล่นใหม่ตั้งแต่ต้น เกมส์จะเก็บคะแนนครั้งที่ได้มากที่สุดเท่านั้น ถ้าคะแนนได้น้อยกว่าครั้งที่ผ่านมา ก็ต้องเล่นสะสมคะแนนกันใหม่ ถือว่าโหดมากๆ เมื่อได้แนวคิดแล้วก็ได้ เวลาออกแบบเกมส์ … ติดตามตอนหน้าครับ :)

*** เห็นน้องฮง ชอบสร้างเกมส์และเขียน Blog เรื่องสร้างเกมส์อยู่พักหนึ่ง ชื่อ ตามติดชีวิตเด็กสร้างเกมส์ ก็เลยขอลองเขียน Blog อย่างนี้บ้าง ให้ชื่อเรื่องเป็น ตามติดชีวิตเด็กโข่งสร้างเกมส์ ละกันครับ :P

หลังจากแก้ไขเกมส์ตามคำแนะนำของ Game Tester คือคุณมะระ ก็เลยคิดว่าน่าจะออกแบบหน้าตาเกมส์จริงๆ จังๆ ดูบ้าง เอาแบบรวดเร็วไม่คิดมากจะได้ออกรุ่นทดสอบได้อย่างจริงจัง มีไอเดียมาจากเพื่อนที่ทำงานบอกว่าก็ทำเป็นกระดานดำ ไหนๆ จะเล่นบน Tablet อยู่แล้วก็เป็นรูปกระดานดำดีกว่า ~ เหมือนพกกระดานชนวนอิเลคทรอนิกส์ :) เอ้า ตามคำขอก็เลยหา background ใส่ลงไปเพิ่มเติมได้หน้าจอของเกมส์เป็นแบบนี้

เพิ่มหน้าวิธีการเล่นและเทคนิคการคิดให้ด้วย

อ้อ ลืมบอกไปว่าเปลี่ยนฟอนต์จาก Roberto ที่เป็นฟอนต์หลักของ Android 4.0 มาเป็น Arabica ฝีมือออกแบบฟอนต์คนไทย เจ้าของเดียวกับฟอนต์ Super Store นั่นเองครับ

เนื่องจากเขียนเกมส์และทดสอบบนโทรศัพท์มือถือของตัวเองหน้าจอ 4 นิ้วเหมาะกับการเล่นเกมส์มาก แต่การแสดงผลบน Tablet ขนาดหน้าจอ 7 นิ้ว 10 นิ้ว การแสดงผลต้องต่างกัน ก็เลยได้ออกแบบ Layout สำหรับหน้าจอขนาดต่างๆ ดังนั้นต้องมีการออกแบบสำหรับหน้าจอขนาดต่างๆ ดังนี้

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

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

อ้อ ลืมบอกผู้สนับสนุนให้ยืม Tablet มาทดสอบ คือ Gadget Plus หากได้ Tablet 7 นิ้วคุณภาพสูงยี่ห้อ Ainol ก็ติดต่อคุณมะระได้ที่ gumaraa[at]gmail.com ครับ ตอนต่อไปจะทำอะไร เดี่ยว Blog มาให้อ่านอีกครั้งครับเพราะยังไม่จบ

ติดตามตอนต่อไป…

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

เพิ่มรายละเอียดเข้าไปอีกหน่อย

ทดลองเล่นเบื้องต้น และได้ Game Tester จำเป็นเพิ่มมาอีกคน คือ คุณมะระ ในฐานะที่นั่งติดกันก็เลยให้ช่วยเล่นหน่อย ปรับตรงไหน แก้ตรงไหนก็ว่ากันไป เอาเป็นว่าได้แก้หลายจุดจนพอใจ Game Tester ล่ะครับ อ้อสำหรับท่านที่อยากเขียน Mobile App หรือ Mobile Game ดูบ้าง ลองศึกษาการเขียน Mobile App ได้ที่ http://androidthai.in.th ได้ครับ ผมก็เรียนกับมาสเตอร์อึ่งผ่านเว็บไซต์และยูทูปนี่แหละครับ (ไม่เคยได้เรียนกับตัวจริงสักที)

… ติดตามตอนต่อไป