Công cụ phát triển game di động: ưu và nhược điểm
Bài viết được lược dịch từ http://www.developereconomics.com/top-game-development-tools-pros-cons/
Theo như một khảo sát vào quý 3 năm 2014, trên hơn 10000 developer của Developer Economy thì có khoàng 29% số developer phát triển game mà không dùng bộ công cụ phát triển của bên thứ 3, nghĩa là họ tự xây dựng nên bộ khung game của mình
Trong bài báo này tác giả phân tích một số ưu nhược điểm của một số công cụ phát triển game phổ biến hiện nay
Unity
3D and 2D game engine
Unity là một engine được thiết kế để hỗ trợ phát triển game 3D nhưng hoàn toàn có thể phát triển game 2D trên engine này. Việc xây dựng game 2D được thực hiện bằng cách xây dựng cái đối tượng 2D trên nền 3D với camera được cố định ở trục Z
Ngôn ngữ hỗ trợ
Unity hỗ trợ 3 ngôn ngữ phát triển chính là C#, UnityScript (dựa trên Javascript) và Boo. Boo là ngôn ngữ ít được sử dụng nhất và thường được khuyên không nên dùng. C# là ngôn ngữ được dùng phổ biến nhất trong cộng đồng Unity với rất nhiều plugin và ví dụ sử dụng ngôn ngữ này. Bạn có thể cân nhắc sử dụng Unityscript tuy nhiên có thể bạn sẽ gặp vấn đề khi tương tác với một số plugin được viết bằng C#
Ưu điểm
Unity có rất nhiều tính năng tuyệt vời:
- Unity có một cồng đồng rất lớn về asset và plugin – trong đó có rất nhiều resources free và có nhiều thứ rất đáng bỏ tiền
- Unity có bộ công cụ rất trực quan và editor có thể mở rộng bằng plugins
- Unity hỗ trợ rất nhiều định dạng asset khác nhau và có thể tự động chuyển đổi đến định dạng phù hợp nhất với nền tảng thích hợp
- Unity hỗ trợ nhiều nền tảng: di động, desktop, web và console
- Việc triển khai đến các nền tảng khác nhau cũng khá dễ quản lý
- Bạn có thể dễ dàng xây dựng một game 3D mà không cần cấu hình quá phức tạp
- Unity bản free có hầu hết những tính năng quan trọng nhất
- Unity bản trả phí phù hợp với các developer chuyên nghiệp
Nhược điểm
Tuy nhiên Unity cũng có vài nhược điểm mà bạn cần cân nhắc:
- Việc hợp tác rất khó khăn. Unity sử dụng một server asset rất hiệu quả để hỗ trợ các đội phát triển phần mềm hợp tác với nhau. Tuy nhiên nếu bạn không sử dụng nó thì việc chia sẽ code và asset giữa các thành viên trong team có thể gây ra những vấn đề nghiêm trọng. Lựa chọn tốt nhất là sử dụng một số công cụ quản lý resource bên ngoài nhưng có một vài binary file không thể merge được với nhau và việc cập nhật asset có thể gây nên một số vấn đề trong scenes, mất kết nối đến script và các đối tượng khác
- Hiệu năng chưa thật sự ấn tượng cho đến khi Unity 5 ra mắt. Unity 5 đã chạy hầu hết trên một luồng duy nhất và hầu như không sử dụng thêm 1 nhân phụ nào trên các thiết bị di động. Bộ biên dịch chưa được tối ưu tốt cho các bộ xử lý ARM trên hầu hết các thiết bị di động. Để giải quyết vấn đề này thì Unity đã quyết định transpile (source-to-source compiler) sang C++ và sử dụng LLVM để tối ưu được nhiều hơn thay vì giải quyết vấn đề này trực tiếp trên các phiên bản sau này
- Mã nguồn của engine không được công bố kể cả cho những người dùng chấp nhận trả tiền. Điều đó có nghĩa là nếu bạn gặp một bug với engine bạn phải chờ Unity fix chúng trong các bản tiếp theo. Điều này có thể gây nên những vấn đề nghiêm trọng với project của bạn
Cocos2d
Cái tên nói lên tất cả, Cocos2D là một engine game 2D. Nó được ra đời vào khoảng cùng thời điểm với iPhone SDK và nhanh chóng được chuyển sang Objective-C, phát triển thành một trong những engine miễn phí và tốt nhất cho game di động. Tuy nhiên, gần đây Apple đã cho ra mắt một engine “chính chủ” tối ưu cho Objective-C được gọi là SpriteKit. Vì vậy với sự phát triển của Android, đã thúc đẩy cộng đồng phát điển Cocos2d tập trung cho phiên bản cross-platform của nó Cocos2d-x được viết bằng C++
Các ngôn ngữ hỗ trợ
Có khá nhiều phiên bản khác nhau của Cocos2d hỗ trợ nhiều ngôn ngữ như Objective-C, C++, C#, Java, JavaScript và Ruby. Trong đó phiên bản C++ là được tập trung nhiều sự chú ý nhất và cũng hỗ trợ được nhiều nền tảng nhất. Tuy nhiên cũng có binding cho các ngôn ngữ script như Lua và Javascript sang C++ cho phép các nhà phát triển sử dụng ngôn ngữ script yêu thích và vẫn tận dụng được sức mạnh của một ngôn ngữ native như C++
Ưu điểm
Cocos2d có nhiều ưu điểm của 1 nền tảng mã nguồn mở:
- Hỗ trợ nhiều nền tảng, đặc biệt là cho di động.
- Hoàn toàn miễn phí và mã nguồn mở (MIT license).
- Nhiều extensions, công cụ và mã nguồn được chia sẻ
- Có cộng đồng lớn mạnh cung cấp nhiều ví dụ và tài liệu thực hành
- Hỗ trợ nhanh nhờ vào cộng đồng sử dụng
- Hỗ trợ tăng tốc phần cứng
- Hỗ trợ âm thanh
Nhược điểm
Tuy nhiên cũng có nhiều vấn đề với Cocos2d:
- Không có một cộng đồng chuyên nghiệp để hỗ trợ và fix lỗi. Việc bạn có thể tự mình fix lỗi rất là tuyệt với, cộng đồng người dùng có thể giúp bạn sửa lỗi miễn phí. Tuy nhiên khi một dự án lớn hoặc là có một vấn đề gì về hiệu năng xảy ra đúng lúc sắp đến ngày release thì bạn chỉ muốn thuê 1 ai đó có đủ khả năng giải quyết nó giúp bạn
- API có một phần nào đó không chính thống. Dự án cocos2d khởi nguồn với ngôn ngữ Python và được chuyển sang Objective-C từ rất sớm. Objective-C không hoàn toàn theo một chuẩn và khi được port sang C++ nó vẫn còn những thứ mang phong cách Objective-C
- Cocos2d không cung cấp một cấu trúc tốt cho app của bạn. Bạn có thể dễ dàng tìm được rất nhiều ví dụ về cocos2d với những hàm rất dài
Unreal Engine 4
Unreal Engine có một lịch sử lâu đời là một trong những engine game 3D phát triển nhất cho PC và console. Unreal Engine 3 đã hỗ trợ nền tảng mobile nhưng mà nó thực sự chỉ dành cho những nhà phát triển đam mê tìm tòm với UDK giới hạn hoặc là hàng triệu $ tiền bản quyền cho engine để port game từ console sang mobile. Vào tháng 3/2014, Epic Games đã phát hành Unreal Engine 4 cho tất cả mọi người với phí 19$/ tháng + 5% tiền chia sẻ doanh thu. Offer này bao gồm toàn bộ quyền truy cập vào engine source code và các công cụ.
The Unreal Engine has a long history as one of the top 3D games engines for PC and console platforms. The 3rd generation of the engine supported mobile platforms but it was really only for hobbyist developers tinkering with their limited UDK or the multi-million dollar licensees of the engine for console games porting their titles to mobile devices. In March this year, Epic Games released the Unreal Engine 4 to anyone for $19/month plus 5% revenue share. This offering includes full access to the engine source code and their suite of tools. This change was not long enough before our survey was launched to see significant adoption by developers but 13% were using it with only 3% as their primary tool.
Các ngôn ngữ hỗ trợ
Unreal Engine được viết bằng C++ và chỉ hỗ trợ duy nhất C++. Tuy nhiên, Unreal Engine có thể giúp bạn thực hiện rất nhiều việc phát triển mà ko phải viết bất cứ đoạn code nào nhờ vào Blueprints – một một trường phát triển trực quan
Ưu điểm
Unreal engine có chất lượng được đánh giá cao:
- Hiệu năng đáng kinh ngạc. Unreal engine đã được Apple sử dụng để trình diễn ở WWDC. Nó có thể cho ra những game có chất lượng đồ họa rất cao trên các thiết iOS và những thiết bị Android cao cấp
- Có nhiều công cụ hỗ trợ cho phát triển game
- Cho phép developer truy cập vào tất cả source code
- The pricing model is an excellent match for the high risks of failure on the App Store.
Nhược điểm
Unreal Engine là một engine cho những nhà phát triển chuyên nghiệp:
- Phát triển bằng C++ không phải là một ngôn ngữ thân thiện cho người mới bắt đầu
- Việc sử dụng Unreal Engine thực sự cần một quá trình nghiên cứu nghiêm túc
- Các thiết bị đời cũ không được hỗ trợ
- Phí khá là đắt cho một tựa game thành công
Ref:
http://www.developereconomics.com/top-game-development-tools-pros-cons/
https://www.developereconomics.com/reports/developer-economics-q3-2014/