7/31/2013

UNITY VÀ CON ĐƯỜNG GAME DEV – Kỳ 2: Tôi đã chọn Unity như thế nào? (Phần 2)




Phần 2: So sánh một số game engine

*Chú thích:
Bài viết sẽ có nhiều quan điểm cả chủ quan lẫn khách quan, vì bản thân tác giả chưa có cơ hội trải nghiệm hết/sâu những engine mà tác giả đề cập. Theo một lẽ tự nhiên, chủ đề chính – Unity sẽ luôn trở nên nổi bật.

Việc so sánh nhiều engine có nhiều đặc điểm khác nhau nhằm mục đích tìm cái nhìn tổng quan chứ không phải là so sánh khặp khiển.

Tác giả vừa tìm hiểu vừa viết bài, thế nên tác giả khuyến khích mọi người cùng tham gia thảo luận và chia sẻ với tác giả. Trường hợp phát hiện ý tác giả nói đến không đúng, hãy “chỉnh” ngay để “dằn mặt” tác giả. :’>

Bài viết tham khảo quan điểm, ý kiến một số người dùng nguồn trên một số diễn đàn.


*Mở đầu:

Để chuẩn bị cho phần 3 - phần kết của kỳ, tập trung chủ yếu vào Unity Engine, ở kỳ này chúng ta sẽ cùng nhau điểm qua một số engine dựa trên những tiêu chí đã nêu ra ở phần 1.

II. Khảo sát sơ lược một số game engine:

1. UDK:

Hình: Gear Of War – series game “lưu danh sử sách” được làm từ Unreal Engine. 

Tại sao tôi lại chọn UDK là engine đầu tiên để khảo sát? Vì nó quá nổi tiểng với số lượng đầu game đồ sộ!

Target platform: Unreal hỗ trợ rất nhiều platform, từ Xbox 360, Apple iOS, Adobe Flash, Sony PS3, Android, PC, Mac đến cả PSVita… tuy nhiên UDK thì chỉ hỗ trợ Window và iOS.

API: UDK sử dụng UnrealScript, một ngôn ngữ tương tự C++. Điều này đồng nghĩa với việc bạn sẽ phải học thêm (dù ít hay nhiều) trước khi có thể làm việc trơn tru với nó.

Graphic API: Direct X 9, 11

Physic Engine: Physic X

Game features:

Pathfinding: Có

Builtin MMO: Không

Unlimited Sized Worlds: Không

Editors:
  • World editor: Có
  • Collaborative World Editing: Không
  • Version Control Server: Không

Graphic features: Không có gì để nghi ngờ UDK khi nói về graphic feature, bỏ qua một số engine “mới nổi” gần đây như Frostbite (non public) thì Unreal và Cry đã từ lâu là 2 engine hỗ trợ graphic mạnh mẽ, cho phép tạo ra những hình ảnh, hiệu ứng tuyệt với nhất.
  • Deffered Render: Có
  • Forward Render: Không
  • Ambient Collision: Có
  • Parallax Mapping: Có
  • Per Object Motion Blur: Có

Physic features: UDK sử dụng PhysicX, một physic engine nổi tiếng đến từ ông lớn chuyên về card đồ họa NVIDIA. Điều này khẳng định vị thế về những tính năng vật lí mà UDK có thể hỗ trợ.
  • Physical Clothing: Không (Có đối với Unreal Engine 3)
  • Ragdolls: Có
  • Destructible Object: Có

Price/license: Tương đương với sức mạnh cũng như sự nổi tiếng, để sở hữu Ureal, bạn sẽ có số tiền sấp sỉ 1.000.000$, tuy nhiên Unreal không hề bỏ quên các “anh em” nhà nghèo khi UDK hoàn toàn miễn phí trong quá trình phát triển, trường hợp release với mục đích thương mại, bạn sẽ phải bỏ ra 99$ cùng 25% doanh thu thu được (sau khi đạt mốc 50.000$).

Community: Ở thời điểm hiện tại có thể nói rằng cộng đồng UDK vẫn chưa đủ lớn, thử thụt lại hơn 1 năm, bạn sẽ phải vất vả để tìm ra một cái tutorial “ra ngô ra khoai” về UDK.


2. Cry SDK:


Hình: Crysis 1 của năm 2007, thiên đường nhiệt đới là đây!

Đối thủ của Unreal, có thể nói Cry gần đây có phần nào đó nhỉnh hơn Unreal với những tựa game có chất lượng đồ họa “hảo hạn”, tuy nhiên điều đó cũng làm cho Cry vô tình lọt top “tiêu chuẩn benchmark” với việc những tựa game “không chơi với người nghèo”. Không biết là do các nhà sản xuất hay lỗi từ “hạt nhân” Cry mà đa số các sản phẩm làm từ Cry hiện tại đều tỏ ra nặng nề khi chạy trên PC.

Target platform: Tương tự như Unreal, Cry cũng sở hữu một bộ sưu tập platform phong phú như: Window, PS3, XBOX, iOS, Android… nhưng rất tiếc người dùng Cry SDK chỉ có thể làm việc với một platform duy nhất là Window.

API: Cry SDK sử dụng LUA, một ngôn ngữ lâu đời, nhanh, mạnh mẽ và linh hoạt, khá phổ biến trong game dev hiện nay.

Graphic API: Direct X 9, 10, 11

Physic Engine: Tùy chọn.

Game features:

Pathfinding: Có

Builtin MMO: Không

Unlimited Sized Worlds: Có

Editors: Công dụ editor mang tên “Sandbox” của Cry được đánh giá là một trong những công cụ mạnh mẽ linh hoạt nhất trong các game engine. Tuy nhiên song song với điều này là độ phức tạp, bạn sẽ mất kha khá thời gian để làm quen với nó.
  • World editor: Có
  • Collaborative World Editing: Không
  • Version Control Server: Không

Graphic features: Cái nổi tiếng nhất khi nhắc đến Cry chính là đồ họa, thế nên cũng không có gì lạ khi CrySDK cũng tỏ ra không kém cạnh bất kỳ ông lớn nào với những hỗ trợ về mảng này.
  • Deffered Render: Có
  • Forward Render: Không
  • Ambient Collision: Có
  • Parallax Mapping: Có
  • Per Object Motion Blur: Có

Physic features: Không biết đến lúc code thì như thế nào, nhưng từng có cơ hội tham gia một hội thảo của Cry ở VN, nhìn nhận ở phương diện tổng quát thì tôi thấy Physic feature Cry tỏ ra khá ổn.
  • Physical Clothing: Không
  • Ragdolls: Có
  • Destructible Object: Có

Price/license: Tương đương với Unreal, Cry cũng có mức giá có thể giết chết bất kỳ ai yếu tim nghi nghe nói đến (ghê chưa!). Về cơ bản mà nói thì cơ chế license của Cry cũng tương đối đa dạng, tôi đã từng nghe qua trong hội thảo Cry mà tôi đã tham dự, tuy nhiên nó chẳng có gói nào thật sự ấn tượng với một indie developer như tôi. Riêng về Cry SDK, bạn sẽ chỉ được sử dụng nó cho mục đích phi thương mại, trường hợp muốn kiếm tiền từ nó thì bạn sẽ phải contact với Crytek để “biết thêm chi tiết”.

Community: Tương tự với đối thủ UDK, Cry SDK cũng có cộng đồng không mấy nổi bật.


3. Cocos2d-x:

Hình: Contra Evolution – một tựa game làm từ Cocos2d-x

Điểm mạnh đầu tiên phải nói khi nhắc đến Cocos2d-x đó là full open source, bạn sẽ chẳng cần bỏ ra một xu nào để đưa nó về với đội của mình.

Target platform: Được xây dựng từ nền tảng Cocos2D chỉ giành cho iOS, Cocods2d-x hỗ trợ thêm một số nền tảng phổ biến khác như Windows, Linux, BlackBerry, Window Phone 8 và Android.

API: Cocos2d-x hỗ trợ C++, Lua và Javascript. API của Cocos2D đã được implement rất nhiều function để những người lập trình có thể tạo game 1 cách nhanh chóng như Move To, Move By, Call Function, Sequence, Action hay tạo animation cho sprite như Animate, Repeat Once, Repeat Forever, cả cho những game theo thể loại như Tile Mapping.

Editors: Sử dụng Cocos2d-x, bạn sẽ có CocosBuider tượng tự như một IDE, hỗ trợ từ việc thiết kế giao diện đến lập trình. Tuy nhiên CocosBuilder hiện tại chỉ có phiên bản chạy trên Mac mà thôi.

Physic features: Cocos2d-x được hỗ trợ Box2D và Chipmunk, 2 2d physic engine nổi tiếng và được sử dụng rất phổ biến.

Price/license: Free/Open source

Community: Kể từ khi ra đời, Cocos2d-x rất được cộng đồng game developer ủng hộ, cộng đồng người dùng lớn cũng là một trong những lợi thế của Cocos2d-x.


4. Construct:

Đưa cocos vào khi đang so sánh Cry SDK và UDK đã là một sự khập khiễn, lại đưa Construct vào thì càng khập khiển gấp bội lần. Tuy nhiên, với mục đích ban đầu mà tôi đã nói, so sánh những engine có nhiều khác biệt về đặc điểm, tính chất để tìm một cái nhìn tổng quan, vấn đề quan trọng vẫn là Unity – đối tượng chỉnh của series này.

Hình: Làm game? Với Construct 2 thì chỉ cần kéo thả!

Quay lại với đề mục, Construct là một game engine không dùng đến khái niệm lập trình, thay vào đó người làm game sẽ làm toàn bộ trò chơi bằng logic, sử dụng hệ thống event, builtin behavior mà engine cung cấp. Ở một phương diện nào đó mà nói, construct có thể sử dụng như một tool tuyệt vời để làm prototype dành cho các Game Designer.

Target platform: Construct hỗ trợ hầu hết các platform phổn biến như iOS, Andoird, Window Phone, Mac, Window, …

API: Mặc dù không cần lập trình cũng có thể làm được game, nhưng construct 2 cũng hỗ trợ một bộ Javascript SDK cho phép developer tạo ra các plugin hỗ trợ, mở rộng thêm cho Construct.

Editors: Hỗ trợ thiết kế game hoàn toàn bằng giao diện đồ họa.

Physic features: Buildin drag and drop physic.

Price/license: Bạn có thể build ra web để chạy offline hoặc chạy trên nền facebook, riêng nhu cầu xuất bản ra tập tin exe chạy trên window hay xuất mobile thì bạn phải bỏ ra 27 euro với phiên bản Personal và 259 euro cho bản Business.

Community: Cộng đồng construct khá lớn và hữu ích, thử lướt qua cộng đồng này bạn sẽ dễ dàng bắt gặp rất nhiều plugin của các thành viên tự phát triển và chia sẻ nhau.


III. Tản mạng chuyện “chọn game engine”:

Hình: Lựa chọn lúc nào mà chẳng khó! 

Như tôi đã từng nói, chọn engine thì tùy thuộc vào đủ thứ vấn đề, nào là khả năng, mục đích, platform nhắm tới..vv.. Thế nên bạn đừng nói với tôi rằng “tao chọn cái này luôn!!!!”, dù là “mối ruột” của Unity nhưng cá nhân tôi cũng chẳng dám khẳng định là mình sẽ chỉ sử dụng nó cho đến lúc “về với đất mẹ”…

Mỗi engine có một đặc điểm, thế mạnh khác nhau. Nếu là một indie developer, chuyên phát triển game 2d , những engine 2d như Cocos hay Construct là một sự lựa chọn phù hợp. Nếu một ngày nào đó bạn có trong tay một đội ngủ nhân lực, kỹ thuật mạnh mẽ và muốn làm một dự án seriuos game, một game 3d “hoành tá tràng”, bạn sẽ phải chọn một engine khác thích hợp hơn ví dụ như Cry, Unreal… chẳng hạn.

Tóm lại tùy vào mỗi giai đoạn, mỗi hoàn cảnh, mỗi mục đích khác nhau… mà chúng ta hãy linh hoạt chọn cho mình một engine thích hợp để sử dụng, riêng đối với những bạn mới làm quen với game dev hay những người vẫn còn đang loay hoay phân vân không biết chọn cái nào, thì tôi khuyên hãy chọn Unity, vì sao ư? Hãy đón đọc phần 3. Ở phần 3 tôi sẽ trình bày đầy đủ các phương diện/khía cạnh/nguyên nhân khiến Unity trở thành lựa chọn số 1, hứa hẹn là phần hấp dẫn nhất trong 2 kỳ mở đầu của series này.

(Nguồn vietgamedev.net)

No comments:

Post a Comment