![](https://www.daydev.com/wp-content/uploads/2014/04/cocos2dVSSPrite.jpg)
ช่วงหลังเน้นหนักไปนิดในเรื่องของ Mobile Game บน iOS ก็เลยคิดว่าจะลองวิเคราะห์ความแตกต่างระหว่าง Cocos2D และ SpriteKit ไหนดีกว่ากัน ครับ ก็เลยไปหาข้อสรุปมา
สำหรับ iOS Developer ทุกคนที่กำลังเริ่มต้นพัฒนาเกมครับ ก็จะทราบดีว่าเครื่องมือมากมายในการพัฒนาเกมนั้นมีหลายตัว โดยเฉพาะ 2D เกมครับ ก็จะมีตัวฟรีเด่นๆ คือ Cocos2D และสิ่งที่มากับ iOS7 อย่าง SpriteKit ครับ
ผมเองก็มี Tutorial ของการพัฒนาเกมจากทั้ง 2 Framework นี้อยู่เหมือนกัน คือ
และ
จะเห็นว่าโดยส่วนตัวผมมองว่า SpriteKit นั้นเขียนง่ายกว่า Cocos2D ครับเพราะใช้ภาษาที่ใกล้เคียงกับ Objective C ต่างกับ Cocos2D ที่ออกไปเชิง C++ และ Java ซะมากกว่า แต่บางครั้งมันก็จะเจอบางสิ่งที่ขัดใจเหมือนกัน ก็เลยมาลองวิเคราะห์เครื่องมือกันดูครับ
![เกม Chroma Squad โดย Behold Studio กำลังพัฒนาบน iOS และ Android](https://www.daydev.com/wp-content/uploads/2014/04/incoming2014-37.jpg)
![Scrolls ของทีม Mojang ที่กำลังพัฒนาลง iOS และ Android](https://www.daydev.com/wp-content/uploads/2014/04/incoming2014-16.jpg)
ข้อดีของการใช้ Native Framework อย่าง SpriteKit
เรื่องการรองรับ และประสิทธิภาพของการทำงานของเกม ที่ปราศจากการ Lack ใดๆครับ และไม่ต้องกังวลในเรื่องการเปลี่ยน OS Version ของเจ้า iOS ทีเปลี่ยนบ่อย เสียเหลือเกิน ต่างกับ Cocos2D ที่จะต้องมีการ Integrate กันเล็กน้อยกับเวอร์ชันของ OS ครับ
กลายเป็นว่าข้อดีสุดๆ ของ SpriteKit ก็คือ
- ความเป็น Native Framework เรื่องของ Performance นั้นไม่ต้องห่วง
- ใช้งานง่าย ไม่ต้องจำภาษาที่แตกต่างจาก Objective C
- มีการดึงประสิทธิภาพการประมวลผลกราฟิกผ่าน Core Image เลย
- มี Physics Simulation ให้ใช้
ข้อเสียของ SpriteKit คือ
- มันไม่ใช่ Open Source เพราะมันมากับ XCode 5 และ iOS7 มันจะ Port ไปแพลตฟอร์มอื่นไม่ได้
- มันเล่นได้แค่ iOS7 เป็นต้นไป
- เรื่องของ Shaders และ Camera หากทำเกม 2.5D จะลำบาก
ทีนี้มาดูฝั่ง Cocos2D ครับ Framework ที่กึ่งๆ 3rd Party ตัวนี้นั้นมีอะไรดีบ้าง
- ความเป็น Open Source ที่ทำงานได้ทั้งบนแพลตฟอร์มของ iOS และ Android ช่วงหลังมี Cocos2D-X มาร่วมอีก
- เรื่องของ Shaders และ Camera หายห่วง มี Tutorial มากมายที่พิสูจน์เรื่องนี้
- มีตัวอย่างให้ศึกษาเยอะกว่า SpriteKit และรองรับ iOS เวอร์ชันก่อนหน้า iOS7 ด้วย
- เรื่องกราฟิกอาจจะไม่ดีเท่า SpriteKit แต่ก็ใช้ง่ายกว่า OpenGL
ข้อเสียของ Cocos2D คือ
- Syntax ที่ไม่เกี่ยวกับ Native ของ Objective C เลย
- Physic Simulation นั้นต้องใช้ Template ของ Chipmunk หรือ Box2D ตั้งแต่แรกเริ่มก่อนพัฒนา
![เกม Death Road to Canada โปรเจ็ค Kickstarter ของทีม Madgarden and RocketCat เตรียมลง iOS](https://www.daydev.com/wp-content/uploads/2014/04/incoming2014-10.jpg)
ดังนั้น การวางแผนพัฒนาเกมนั้น เราจะเลือกอะไรดี ระหว่าง SpriteKit และ Cocos2D
ให้มองว่า สเกล และแพลตฟอร์มเป็นตัวเลือกครับ ถ้ามีการวางแผนจะขยายข้ามแพลตฟอร์มแนะนำว่า Cocos2D และเป็นเกมขนาดใหญ่ๆ แต่ไฟล์ไม่ใช่ ส่วน SpriteKit นั้นถ้าเป็นเกมเล็กๆ หรือขนาดใหญ่ไฟล์จะใหญ่มาก และไม่สามารถข้ามแพลตฟอร์มได้นอกเหนือจาก iOS อย่างเดียว
ก็จะทราบแนวทางการเลือกพัฒนาแล้วนะครับ 😀 ว่าจะเลือกใช้อะไรดี ในการเริ่มต้น