Bạn sẽ chọn công cụ nào để hiện thực hóa ý tưởng game của mình?

Trong bài viết này, chúng ta sẽ cùng nhau khám phá một số engine và framework lập trình game nổi tiếng, cùng chỉ ra những điểm nổi bật của các engine đó, từ đó bạn sẽ có thêm nhiều sự lựa chọn cho ý tưởng của mình. Lưu ý là bài viết chỉ bao hàm trong mảng lập trình game 2D của các nền tảng trên.

1. Cocos2D

Cocos2d là một framework miễn phí, mã nguồn mở và tương thích với cả Swift và Objective-C, cũng như hỗ trợ cả các hệ điều hành iOs và OSX và Android qua SpriteBuilder Android plugin.

Project trong Cocos2d được tạo qua SpriteBuilde, một môi trường thiết kế đồ họa mà trong đó bạn có thể nhanh chóng tạo prototype và xây dựng game.Bạn không bắt buộc phải sử dụng SpriteBuilder để lập trình game, tuy nhiên quá trình tạo project phải được hoàn thiện qua SpriteBuilder

Cocos2D

Việc quản lý các phân cảnh được làm qua class  CCDirector , với khả năng sử dụng nhiều Transitions qua class CCTransition . Các hoạt cảnh được cung cấp qua class  CCAnimation  và các chuyển động, cân chỉnh hay xoay vòng qua class  CCAction . Cocos2d hỗ trợ cho particle system với class  CCParticleSystem và hỗ trợ bản đồ với  CCTiledMapclass.

Cocos2d cũng sử dụng OpenGL để render và Chipmunk như một engine Vật Lý. Nếu bạn yêu thích Objective-C hoặc Swift và bạn muốn thiết kế một game đa nền tảng thì Cocos2d là một framework rất đáng được cân nhắc.

2. Cocos2d-x

Cocos2d-x là phiên bản port qua C++ của Cocos2d mà có có thể biên dịch trên nhiều môi trường. Cocos2d-x có thể biên dịch ra iOS, Android, Window Phone, OSx, Window, Linux..

Cocos2d-x

Cocos2d-x không tương thích với SpriteBuilder. Tuy nhiên nó lại có một vài projects thú vị, như Cocos Creator, cung cấp framework, biên kịch hoạt cảnh, sửa lỗi và xuất ra nhiều nền tảng.

3. Unity

Unity là một engine lập trình game di động hỗ trợ C# và UnityScript, một ngôn ngữ được thiết kế đặc biết cho Unity. Unity là một engine đa nền tảng và có thể thiết lập trên nhiều môi trường, bao gồm PlayStation và Xbox. Unity có một phiên bản miễn phí và một phiên bản professsional edition với nhiều tính năng hơn. Bạn có thể tham khảo thêm qua website của Unity.

Trong Unity có một sprite editor được dựng sẵn giúp bạn có thể cắt ghép ảnh và một của sổ cho phép bạn cân đối, sắp xếp các chuyển động và thêm các khung hoạt hình vào trong sprites. Bạn cũng có thể thiết kế  particle systems bên trong Unity editor.

Unity

Unity sở hữu một engine vật lý độc quyền và là một engine cực kỳ mạnh mẽ khi lập trình game. Một điểm hay nữa của Unity đó là asset store khi bạn có thể tìm kiếm và trang bị những thứ bạn cần cho game của bạn. Nếu bạn cần một giải pháp đa nền tảng trong đó có khả năng chạy được trên nhiều thiết bị, và bạn thích lập trình bằng C# hoặc UnityScript, thì Unity là sự lựa chọn tốt nhất. 

4. SpriteKit

SpriteKi là framework phát triển game 2D độc quyền của Apple, và tất nhiên nó chỉ sử dụng cho nền tảng iOS và OSX. SpriteKit hỗ trợ cả Swift lẫn Object

Việc quản lý phân cảnh trong game được giao cho class  SKView  và có một lượng lớn các transitions bên trong class  SKTransition . Điểm cốt lõi của SpriteKit là các actions, thuộc class  SKAction , nơi bạn sử dụng nó để di chuyển, xoay vòng hay căn chỉnh các đối tượng của game. Các actions cũng xử lý âm thanh và thực  thi các đoạn code tùy biến.

SpriteKit

Bạn có thể thiết kế các màn chơi của game qua scene editor, đồng thời thiết kế particle system bằng paritce editor. Có một số các particle system đã được thiết kế sẵn như hiệu ứng lửa và mưa..

SpriteKit sử dụng Box2d làm engine vật lý, cung cấp một wrapper thân thiện xung quanh Box2d, khiến nó trở nên dễ sử dụng hơn. SpriteKit cũng có một built-in camere qua class  SKCameraNode , khiến điều hướng trong thế giới game dễ dàng hơn.Nếu bạn muốn gắn bó với hệ sinh thái của Apple, thì SpriteKit là một lựa chọn không tồi.

5. Titanium

Titanium là một framework sử dụng JavaScript làm ngôn ngữ lập trình. Trong bối cảnh nhưng ngôn ngữ lập trình truyền thống thường được sử dụng để lập trình ứng dụng thay vì game, thì Titanium là một nền tảng lập trình game khả thi. Titanium miễn phí trong suốt quá trình lập trình game, nhưng nếu bạn muốn phát hành game của mình, bạn cần phải có một chứng chỉ.

Titanium hỗ trợ rất nhiều native controls từ iOS đến Android. Điều này khiến công việc hiệu ứng các views và images dễ dàng hơn. 

Titanium

Một điểm hay khác của Titanium là chợ ứng dụng market place, nơi mà các lập trình viên có thể tải về các module tùy biến, ví dụ như Box2D. Titanium không phải là một lựa chọn lý tưởng cho những game có nhiều moving parts hay particle explosions. Sử dụng Titanium cho những dòng game đánh bài, game trivia hoặc những game có giới hạn các đối tượng di chuyển sẽ là phương án khả thi hơn.

6. PhoneGap

PhoneGap cho phép bạn sử dụng kỹ năng HTML, CSS và JavaScript để đóng gói thành một ứng dụng mobile hoàn chỉnh. Cơ chế của chúng là nhúng một web view vào trong app và tải những tài nguyên của bạn vào trong web view đó. Có nghĩa là bạn có thể sử dụng Canvas API để lập trình game.

PhoneGap cũng cho phép truy cập tới các native API, như camera, microphone và thứ tối quan trọng trong lập trình game, cảm biến gia tốc

PhoneGap

7. Phaser

Phaser là một engine mã nguồn mở JavaScript dùng để viết các trò chơi 2D đồn thời sử dụng Canvas  hoặc WebGL nếu có. Phaser hỗ trợ các hiệu ứng, particles, scale và rotare sprites. Phaser có sẵn bản đồ lưới và sử dụng 3 engines vật lý khác nhau, phụ thuộc vào nhu cầu của bạn. Nó cũng có built-in camera dùng để hỗ trợ điều hướng trong thế giới game.

Phaser

Có một vài plug-in cho Phaser, bao gồm particle system designer và Box2D plugin. Nếu bạn ưa thích ngôn ngữ JavaScript, Phaser kết hợp với PhoneGap là một sự lựa chọn tốt cho bạn.

8. Unreal Engine

Unreal Engine là một engine sử dụng C++ làm ngôn ngữ lập trình. Bạn có thể dùng miễn phí nhưng sẽ có một vài giới hạn và bạn có thể xuất ra 2 nền tàng iOS và Android. 

Unreal Engine có chứa một Blueprint Editor, trong đó cho phép bạn có thể biên kịch ứng dụng của mình mà không cần lập trình. Trình thiết kế cho phép bạn thiết kế các màn chơi, thêm giả lập vật lý, giao diện, hiệu ứng, chuyển động và hơn thế nữa.

Unreal Engine

9. Corona SDK

Corona SDK là một công cụ lập trình phần mềm sử dụng  Lua  làm ngôn ngữ chính. Corona có trên cả Windows và OS X. Bạn có thể lập trình game hoặc ứng dụng miễn phí với Corona SDK, tuy nhiên, Perk, công ty sở hữu Corona Labs, cung cấp một gói mô hình doanh nghiệp trong đó cấp quyền truy cập vào cái thư viện/APIs và vài tính năng khác.

The Corona SDK exports to iOS, Android, Kindle, and Windows Phone 8. Windows and OS X exports are in private beta and will be coming soon. 

Corona SDK có thể xuất ra iOS, Android, Kindle và Windows Phone 8. Corona Lab cung cấp một vài tính năng hấp dẫn như  Corona Editor, một Sublime Text plugin chứa trình sửa lỗi, hoàn thiện code, và vài tính năng hay ho khác. Composer GUI, cho bạn một môi trường đồ họa mà bạn có thể thiết kế màn chơi và xem những đối tượng tương tác với nhau như thế nào qua Corona's physics engine.

Corona SDK

Corona SDK sử dụng OpenGL để render và  Box2D cho cơ chế vật lý, Corona SDK cũng bao gồm hàng nghìn APIs mà bạn có thể sử dụng để dựng lên game của mình.

Có điều, Corona SDK không có tùy chọi build sprite atlases và việc sử dụng một khung phức tạp cho hiệu ứng va chạm vật lý sẽ là rất khó.Tuy nhiên, Tuy nhiên có một vài ứng dụng bên thứ ba có thể giải quyết vấn đề này như Texture Packer và Physics Editor.  Nhìn chung, Corona SDK là một engine tuyệt vời nếu như bạn đang tìm một giải pháp đa nền tẳng và muốn tận dụng sự dễ dàng của Lua scripting.

10. Gideros

Gideros, giống như Corona, cũng sử dụng Lua làm ngôn ngữ kịch bản. Gideros miễn phí và mã nguồn mở, biên dịch được trên iOS, Android, Windows Phone, OS X, Windows, và Windows RT.

Gideros sở hữu scene manager với toàn bộ các kiểu transitions, một MovieClip class cho việc chuyenr động và thư viện  GTween cho phép bạn di chuyển, cân chỉnh các đối tượng. 

Gideros Mobile

Giống như Corona, Gideros sử dụng Box2D cho hiệu ứng vật lý, mặc dù Box2D API cho Gideros khó sử dụng hơn Box2D API bình thường.

và là một platform tuyệt vời nếu bạn đang muốn phát triển game đa nền tảng với ngôn ngữ Lua.

Lời kết

Chúng tôi hy vọng rằng qua bài viết trên, bằng những công cụ đã được liệt kê, bạn có thể có được một cái nhìn tối ưu hơn và chọn được một phương án tối ưu nhất cho ý tưởng của bạn. 

Techmaster là trung tâm đào tạo lập trình di động từ năm 2011. Chủ trương không cấp bằng, nhưng đào tạo cẩn thận, tỷ mỷ, phương pháp sáng tạo, làm dự án thật, đảm bảo việc làm cho học viên tốt nghiệp.

Khóa học lập trình game Unity 2d
Khóa học iOS Swift 2.x

Phát hiện và phòng ngừa quay trộm màn hình trong iOS 11 Phát hiện và phòng ngừa quay trộm màn hình trong iOS 11 Nguyễn Duy Khánh Blog Home Bước ngoặt tỷ đô của các ứng dụng di động Bước ngoặt tỷ đô của các ứng dụng di động Techmaster team
Nguyễn Duy Khánh

iOS Developer, Former Student and Content Editor of TechMaster