พัฒนาเกมลง iOS ด้วย Swift และ SpriteKit ตอนที่ 2 SpriteKit vs Cocos2D vs Unity

หลายคนอาจมีคำถามว่า แล้ว SpriteKit กับ Swift มันมีอะไรน่าสนใจที่เราจะเลือกมาทำเกม เพราะจริงๆ ก็มีเครื่องมือ หรือ เฟรมเวิร์ค อื่นๆ ที่ใช้เขียนเกม 2 มิติ ตั้งหลายตัว

ดังนั้นก่อนจะลงมือเริ่มทำเกมลง iOS เราลองมาดูเปรียบเทียบข้อดี ข้อเสียหรือจุดด้อย ของเครื่องมือที่ใช้สำหรับพัฒนาเกม 2 มิติ ที่ได้รับความนิยมในปัจจุบันกันก่อน ว่าเป็นอย่างไรบ้าง

แต่ก่อนที่จะไปเปรียบเทียบเครื่องมือหรือเฟรมเวิร์ค เรามาทำความรู้จักกับ SpriteKit และ Swift ทั้งสองตัวนี้ก่อนว่ามันคืออะไร

เริ่มต้นจาก SpriteKit ก่อน

SpriteKit เป็นชุดเฟรมเวิร์ค (Framework) ที่ใช้สำหรับทำเกม 2D โดยเฉพาะ มีชุดคำสั่งในการประมวลผลภาพนิ่ง และภาพเคลื่อนไหวแอนิเมชัน มีชุดเครื่องมือทำ Particle Effect ระเบิด ควัน ไฟ ต่างๆ มีระบบฟิสิกส์ที่ทำให้การเคลื่อนไหวดูสมจริง มีระบบตรวจสอบการชน การสร้างแสงเงา ให้เกมดูสวยงามและสมจริงมากขึ้น ซึ่ง SpriteKit ได้ถูกผูกติดมากับ Xcode พร้อมใช้งานได้ทันที โดยไม่ต้องดาวน์โหลดอะไรเพิ่มเติม

ทีนี้เรามาทำความรู้จักกับ Swift ว่าคืออะไร

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

เมื่อเรารู้จักกับ SpriteKit และ Swift คร่าวๆ แล้ว เรามาลองเปรียบเทียบกับเฟรมเวิร์คตัวอื่นที่เคยใช้ทำเกมลง iOS กันดีกว่า

ตัวแรก Cocos2D เป็นเฟรมเวิร์คที่ได้รับความนิยมทำเกมลง iOS ก่อนหน้านี้ ลงมาเปรียบเทียบข้อดีกัน

SpriteKit Vs. Cocos2D

ข้อดีของ SpriteKit มีอะไรบ้าง

  • แน่นอนมันเป็น Native Framework ทำให้มีประสิทธิภาพในการรันบน iOS ดีกว่าเห็นๆ
  • สามารถเชื่อมต่อกับฟีเจอร์หลักๆ ของระบบอื่นๆ ของ iOS APIs ได้ เช่น iAd, In-App Purchases เป็นต้น
  • ใช้งานง่าย สำหรับคนที่เคยใช้พวก Objective-C หรือคนที่เคยพัฒนาแอพลง iOS อยู่แล้วก็จะคุ้นเคยกับสภาวะแวดล้อมในการพัฒนา
  • เป็นเฟรมเวิร์คที่พัฒนาโดย Apple โดยตรง ดังนั้นรับรองได้ว่ามีการสนับสนุนแน่นอน แล้วการอัพเดทเวอร์ชันก็จะไม่ค่อยมีปัญหา หรือถ้ามีก็ค่อนข้างน้อย
  • เป็นเฟรมเวิร์คที่ติดมากับ Xcode ซึ่งเป็นเครื่องมือหลักในการพัฒนาเลย ไม่ต้องไป install อะไรให้ยุ่งยาก
  • ข้อดีที่สำคัญอีกอย่างคือ ฟรี ไม่มีโฆษณา หรือเก็บเงินเพิ่มเติมใดๆ ทั้งสิ้น

ข้อเสียของ SpriteKit ก็มีนะ

  • สำคัญเลยก็คือพัฒนาแล้วลงได้แพลตฟอร์มเดียว คือ iOS
  • ถ้าใครที่ไม่เคยเขียนภาษา Swift มาก่อน ก็อาจเป็นเรื่องยากบ้างในการปรับตัว

แล้วข้อดีของ Cocos2D ล่ะ มีอะไรบ้าง

  • สามารถทำลงได้หลายแพลตฟอร์ม ได้ทั้ง iOS และ Android และมีแพลตฟอร์มอื่นๆ ด้วย
  • เป็น Open Source ทำให้มีการพัฒนาอย่างรวดเร็วถ้ามีคนใช้งานเยอะๆ ช่วยกันพัฒนาได้
  • มี Tutorial ออกมาค่อนข้างเยอะเพราะมีมานานแล้ว

แล้วข้อเสียของ Cocos2D ล่ะ

  • เนื่องจากเป็น Open Source ถ้าวันหนึ่งไม่ค่อยมีคนใช้ ทำให้การอัพเดทช้า
  • ต้องมีการ install ก่อนใช้งาน เพราะมันไม่ได้มีมาให้เลยใน Xcode
  • ต้องคอยอัพเดทเวอร์ชันตาม เพราะถ้า Apple เปลี่ยนแปลงระบบ ก็จะต้องอัพเดทเฟรมเวิร์คตามอยู่เรื่อยๆ ไม่อย่างนั้นก็จะไม่สามารถใช้งานได้

ที่นี้ถ้าเทียบกับเครื่องมือที่ใช้พัฒนาเกมที่กำลังได้รับความนิยมอย่าง Unity ล่ะ จะเลือกใช้อันไหนดี

SpriteKit Vs. Unity

จากข้างต้นเราดูข้อดีข้อเสียของ SpriteKit ไปแล้ว งั้นเรามาดูข้อดีข้อเสียของ Unity กันบ้าง

ข้อดีของ Unity

  • Cross-Platform เมื่อสร้างเกมด้วย Unity แล้วสามารถพอร์ตลงแพลตฟอร์มได้หลายแพลตฟอร์มมาก แทบจะทุกแพลตฟอร์มที่ใช้เล่นเกมเลยก็ว่าได้
  • ใช้งานง่าย เนื่องจากมีเครื่องมือที่ใช้สำหรับการออกแบบเกมให้เห็นภาพแบบ Realtime ทำให้ง่ายและรวดเร็วต่อการพัฒนาเกม
  • มี Asset store ให้เราได้ดาวน์โหลด Asset ต่างๆ ได้จากผู้พัฒนาคนอื่นที่เขาวางขาย หรือแม้กระทั่งของฟรีดีๆ ก็มีให้ดาวน์โหลดมาใช้งานได้ทันที
  • มีประสิทธิภาพสูง เนื่องจากทำมาเพื่อขายคนทำเกมโดยเฉพาะ ทำให้เป็นซอฟต์แวร์ที่มีประสิทธิภาพสูงและอัพเดทอย่างต่อเนื่อง

จะเห็นได้ว่าข้อดีของ Unity นี่เจ๋งๆ ทั้งนั้นเลย แล้วจะมีข้อเสียด้วยหรือ

ข้อเสียหรือข้อด้อยของ Unity ก็มีนะ

  • ไม่ฟรี  ถึงแม้ว่าเบื้องต้นจะใช้งานได้ฟรีแต่ก็ต้องมีโลโก้ Unity ติดเข้ามาใน Splash Screen  แต่ถ้าทำรายได้ถึงที่กำหนดก็ต้องจ่ายเงิน
  • ยุ่งยากในการพอร์ตลง iOS เนื่องจากว่าถ้าจะพัฒนาเกมด้วย Unity เพื่อลง iOS จะต้อง Build ออกมาเป็น Xcode Project ก่อน แล้วเปิดด้วย Xcode แล้วรันลงอุปกรณ์ iOS อีกที ทำให้มีกระบวนการที่ยุ่งยากอยู่พอสมควร

 

พออ่านข้อดี ข้อด้อย ของ SpriteKit, Cocos2D และ Unity ก็เลือกใช้ไม่ถูกกันเลยทีเดียว จริงๆ 3 ตัวนี้เอาแค่มาเปรียบเทียบเบื้องต้น จริงๆ ยังมีเฟรมเวิร์ค หรือเครื่องมืออื่นๆ อีกมากมายที่ใช้ทำเกม 2 มิติ

แล้วเราจะเลือกใช้อะไร?

คือถ้าเราเคยใช้ Xcode เคยเขียน Swift หรือ Objective-C อยู่แล้ว เราก็เลือกใช้ SpriteKit น่าจะดีกว่า เพราะจะทำให้ทำงานได้เร็ว คุ้นเคย และไม่ต้องเรียนรู้อะไรใหม่ๆ มากนัก

แต่ถ้าต้องการที่จะทำเกม Cross-Platform เช่นต้องการทำลง Android หรือแพลตฟอร์มอื่นๆ ด้วย ก็เลือกใช้ Cocos2D หรือ Unity ไปเลย เพราะจะสะดวกและรวดเร็วและมีประสิทธิภาพกว่า

 

ขอบคุณข้อมูลและรูปภาพจาก
https://developer.apple.com/spritekit/
http://cocos2d.org/
https://unity3d.com/

 

Aj.Montri