Hiển thị các bài đăng có nhãn unity 3d. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn unity 3d. Hiển thị tất cả bài đăng

Thứ Ba, 8 tháng 10, 2013

UNITY CĂN BẢN BÀI 2 - TÙY BIẾN KHÔNG GIAN LÀM VIỆC

Bạn có thể tùy ý thay đổi cấu trúc của các Views bằng cách clic-dragging những tab tới những nơi bạn muốn. Đặt cạnh một View nào đó, nó sẽ tự phân chia windows ra, đặt ra ngoài nó sẽ tự động tạo thành một windows riêng. (dịch thoáng).

Views có thể được đặt bên cạnh bên, hay bên dưới bất kỳ cửa sổ nào.




Các tab cũng có thể kéo ra ngoài cửa sổ chính và được sắp xếp theo ý thích người dùng. Nếu cần thiết, bạn cũng có thể cho nó nằm ngang hàng với các Views khác trong cửa sổ chính.


Cửa sổ Editor nổi cũng giống như cửa sổ Editor chính, ngoại trừ nó không có Toolbar (thanh công cụ)

Bạn cũng có thể lưu lại những thiết lập về cấu trúc của các Views, bằng cách click vào menu dropdown Layout ở thanh Toolbar, chọn Save Layout... Đặt tên cho nó và sau đó bạn dễ dàng gọi nó ra bằng cách chọn nó trong dropdown menu.

Một Layout đã hoàn toàn được chỉnh sửa

Bất kỳ lúc nào bạn cũng có thể right-click lên một tab của bất kỳ góc nhìn nào để xem những tính năng khác như Maximize hay thêm vào một tab mới trong cùng một cửa sổ.


UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 6: INSPECTOR




Games trong Unity được tạo ra bởi tập hợp rất nhiều GameObject, trong đó bao gồm meshes, scripts, âm thanh, hay những đối tượng graphic như nguồn sáng v..v... Inspector sẽ hiển thị mọi thông tin về đối tượng đang làm việc một cách chi tiết, kể cả những Components được đính kèm và những thuộc tính của nó. Tại đây bạn có thể điều chỉnh, thiết lập mọi thông số chức năng của những mối liên kết GameObject-Component.




















Mọi thuộc tính thể hiện trong Inspector đều có thể được tùy biến một cách trực tiếp. Ngay cả với những biến trong script cũng có thể được hiệu chỉnh mà không cần xem mã. Trong script, nếu bạn định nghĩa một giá trị là public cho một kiểu đối tượng (như GameObject hay Transform), bạn có thể drag-drop một GameObject hay một Prefab vào trong Inspector để gán giá trị cho nó.




 

Chúng ta có thể click lên icon hình bánh răng nhỏ bên phải hay click chuột phải lên tên cảu Component để xuất hện context menu dành cho những thiết lập của Component.

 



Inspector cũng sẽ thể hiện mọi thông số Import Setting của assets đang làm việc.


Sử dụng thanh sổ Layer để sắp xếp các lớp sẽ được hiển thị..Thanh sổ của mục Tag giúp bạn đặt tag cho đối tượng được chọn.

Labels (Nhãn)

Unity cho phép các tài nguyên được gắn Label để dễ dàng truy cập và phân loại. Mục nằm dưới cuối cùng của  thẻ Inspector là bảng lựa chọn nhãn cho tài nguyên.

Nút (...) ở góc dưới bên phải cho phép bạn truy cập đến danh sách các nhãn của tài nguyên đang có.

 
 
Bạn có thể chọn một hoặc nhiều nhãn từ danh sách để gắn nhãn cho tài nguyên. Nếu bạn đã lựa chọn nhãn rồi mà tiếp tục chọn lại nhãn đó, chương trình sẽ hủy bỏ việc gắn nhãn đó cho tài nguyên.

 
 
Danh sách có phần cho bạn tìm kiếm cách nhãn trong danh sách. Bạn có thể tạo thêm các nhãn mới bằng việc gõ vào khung textbox, nhãn mới sẽ được thêm vào danh sách và được gắn vào tài nguyên đang được chọn. Nếu bạn hủy bỏ việc gắn nhãn tự tạo của tất cả tài nguyên thì nhãn tự tạo đó sẽ biến mất trong danh sách.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 5: Khung nhìn trong game







Khung nhìn trong game chính là góc nhìn từ các Camera trong game của bạn. Nó là phần đặc trưng cho phần hậu kì sản xuất game. Bạn cần phải sử dụng một hoặc nhiều camera để điều khiển những gì người chơi của bạn sẽ nhìn thấy khi đang chơi game của bạn. Hãy tìm hiểu kĩ hơn về các camera trong phần Tài liệu component.

Chế độ chơi thử nghiệm:



Sử dụng các nút trong Toolbar để điều khiển chế độ chơi thử nghiệm và trải nghiệm cảm giác trò chơi của bạn sản xuất sẽ hoạt động ra sao. Khi bạn ở chế độ chơi thử nghiệm, bất kì sự thay đổi nào bạn làm nhất thời đều sẽ bị hoàn tác vụ khi thoát chế độ chơi thử nghiệm. Editor UI sẽ tối lại và nhắc nhở bạn điều này.

Thanh điều khiển góc nhìn:



Thanh sổ đầu tiên là thanh Tỉ lệ. Đây là nơi bạn có thể chỉnh tỉ lệ khung nhìn của góc nhìn trong game thành các giá trị khác nhau. Giúp bạn có thể kiểm tra game của bạn sẽ trông như thế nào trên màn hình với các tỉ lệ khung hình khác nhau.

Ở phía bên phải thanh này là Maximize on Play. Khi bạn kích hoạt, góc nhìn của game sẽ đạt kích thước 100% trong cửa sổ Editor khi chơi ở chế độ chơi thử nghiệm

Kế bên là nút Stats, đây là nút thể hiện thông số rất hữu dụng cho việc hiển thị hiệu suất đồ họa trong game của bạn.




Nút cuối cùng là Gizmos. Khi bật nút này, đối tượng trong Khung nhìn điều được hiển thị lên Khung nhìn trong game. Thanh sổ cạnh bên để bật, tắt hiển thị các Components khác nhau được sử dụng trong game.


Kế bên tên của các Component là các biểu tượng thiết lập liên quan của mỗi đối tượng. Mỗi biểu tượng đều có một hộp thoại để có thể điều chỉnh định dạng khác nhau.

Thứ Tư, 31 tháng 7, 2013

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 2: Thẻ Hierarchy

II/ Thẻ Hierarchy:




Thẻ Hierarchy bao gồm các GameObject (Các đối tượng làm nên một game hoàn chỉnh) trong Scene (một cảnh / một phân đoạn / một màn chơi riêng...) hiện hành. Nó bao gồm các tài nguyên như model 3D, prefabs (các gói tài nguyên), các đối tượng tự tạo góp phần tạo nên một game hoàn chỉnh. Bạn có thể lựa chọn các đối tượng trong thẻ Hierarchy và kéo nó vào một đối tượng khác để tạo mối liên hệ cha con cho đối tượng. Khi một đối tượng đượt thêm hay xóa trong scene, nó sẽ xuất hiện hoặc biến mất trong thẻ Hierarchy.

Quan hệ cha con:

Nếu bạn muốn bất kỳ GameObject thành con của một cái khác, bạn có thể kéo thả nó vào đối tượng khác trong thẻ Hierarchy. Một đối tượng con sẽ di chuyển và xoay tròn giống như đối tượng cha. Bạn có thể sử dụng tam giác nhỏ phía trước đối tượng cha để hiển thị và ẩn các đối tượng con nếu cần thiết.


Hình: Hai đối tượng bình thường.


Hình: Đối tượng cha và đối tượng con.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 3: Toolbar (Thanh công cụ)



Toolbar (Thanh công cụ) bao gồm 5 phần điều khiển cơ bản. Mỗi phần đều liên quan đến các mục đích khác nhau của Unity Editor.

: Bộ công cụ biến đổi -- sử dụng với Cửa sổ Scene.

: Biến đổi chốt Gizmo -- ảnh hưởng đến hiển thị khung nhìn Scene.

: Các nút Chạy/Ngưng/Chạy từng bước -- sử dụng để chạy thử game.

Thanh xổ Layer -- điều khiển các đối tượng được hiển thị trong khung nhìn Scene.

Thanh xổ Layout -- điều khiển việc bố trí giao diện màn hình.

UNITY CĂN BẢN BÀI 1 - TÌM HIỂU VỀ GIAO DIỆN - PHẦN 4: Khung nhìn Scene


 
Hình: Khung nhìn Scene

Khung nhìn Scene là nơi để bạn chọn và bố trí các đối tượng như cảnh quan, người chơi, camera, kẻ địch và mọi đối tượng khác trong game. Sự bố trí hoạt cảnh với khung nhìn Scene là một chức năng quan trọng nhất của Unity, vì thế chúng ta có thể thực hiện việc này một cách nhanh chóng. Unity cung cấp các phím tắt cho hầu hết các chức năng thông dụng.



Định hướng khung nhìn Scene:

Bài này mình chỉ nói sơ lược qua về phần định hướng khung nhìn Scene. Qua phần Nhập môn dựng cảnh mình sẽ nói rõ hơn.

Giữ chuột phải trong phần khung nhìn Scene để kích hoạt chế độ điều chỉnh góc nhìn. Sau khi giữ chuột phải, bạn hãy kết hợp với di chuyển chuột hoặc các phím WASD để di chuyển góc nhìn, phím Q và E để di chuyển góc nhìn lên và xuống.
Chọn bất kỳ một GameObject nào và ấn phím F để chuyển góc nhìn về đối tượng đã được chọn.
Sử dụng các phím mũi tên để di chuyển trên mặt phẳng tọa độ X/Z.
Giữ Alt và kéo thả chuột trái để xoay góc nhìn theo điểm trục.
Giữ Alt và kéo thả bằng nút giữa chuột để di chuyển góc nhìn.
Giữ Alt và kéo thả chuột phải để phóng to, thu nhỏ khung nhìn tương tự như bạn lăn chuột giữa.

Bạn có thể sử dụng Công cụ thủ công (phím tắt: Q) nếu như bạn sử dụng chuột một nút.
Nhấp chuột và kéo thả để di chuyển góc nhìn.
Giữ Alt và kéo thả chuột để xoay góc nhìn quanh điểm trục.
Giữ Ctrl và kéo thả chuột để phóng to thu nhỏ góc nhìn.

Phía trên bên phải khung nhìn Scene là biểu tượng Gizmo (trục tọa độ XYZ). Đây là nơi hiển thị góc nhìn định hướng hiển tại trong khung nhìn Scene, nó giúp bạn nhanh chóng thay đổi tọa độ góc nhìn.



Mỗi màu là một trục tọa độ khác nhau. Bạn có thể nhấp vào bất kỳ màu nào để xoay góc nhìn về phía trục tọa độ tương ứng.

Định hướng cho các GameObject:

Bài này mình chỉ nói sơ lược qua về phần định hướng cho các GameObject. Qua phần Nhập môn dựng cảnh mình sẽ nói rõ hơn.

Khi xây dựng game của bạn, bạn sẽ phải đặt rất nhiều đối tượng vào thế giới trong game của bạn. Để làm điều này bạn hãy sử dụng các công cụ biến đổi trên thanh công cụ như dịch chuyển, xoay và kéo dãn đối tượng. Mỗi công cụ đều có trục tọa độ được hiển thị xung quanh đối tượng được chọn. Bạn có thể dùng chuột và thao tác bất kỳ trục tọa độ để biến đổi đối tượng, hoặc bạn có thể gõ trực tiếp giá trị vào phần ô nhập giá trị trong thẻ Inspector.



Thanh công cụ điều khiển trong khung nhìn Scene:



Thanh điều khiển khung nhìn Scene giúp bạn xem dưới nhiều chế độ hiển thị như Textured, Wireframe, RGB, Overdraw và nhiều loại khác. Nó còn có thể xem các ánh sáng, các tác động hay nghe các âm thanh trong game. Để rõ hơn các bạn hãy xem trong bài tìm hiểu về giao diện phần Góc nhìn trong game.

UNITY VÀ CON ĐƯỜNG GAME DEV – Kỳ 1: Tôi muốn làm game!



*Chú thích:
- Game Dev ở đây, hiểu theo nghĩa tổng quát là Game Developers, tức nhà phát triển game chứ không chỉ riêng programmer.
- Bài viết sẽ có khá nhiều từ “tôi”, tức nó mang ý nghĩa chia sẽ những trải nghiệm mà tôi từng trải, ngoài đó tôi còn muốn lấy chính những trải nghiệm của mình để thuyết phục mọi người.



*Mở đầu:

Chào mọi người, rất vui khi gặp lại mọi người ở một series bài viết mới “toanh toanh” về một vấn đề cũ “cực kỳ”, đó là Unity Engine.

Hôm nay, qua một thời gian trải nghiệm “lại”, cũng như trải nghiệm thêm những thứ “mới mẻ” của Unity mà trước giờ chưa có điều kiện, tôi xin phép giới thiệu lại với mọi người Unity một cách chi tiết hơn, đồng thời cho mọi người biết tại sao tôi lại chọn Unity, và tôi muốn mọi người cũng chọn nó như thế nào.

Tôi và câu chuyện cơ duyên làm game

Năm thứ 2 cao đẳng CNTT tại một trường chả có tẹo nào là chuyên về CNTT, tôi bắt đầu nghĩ về một tương lai xa xôi rằng: “ra trường rồi đi làm cái gì đây?” (vì tôi không được đào tạo chuyên một mảng, cái gì của CNTT tôi đều được học, thế nên một khi không có định hướng rõ ràng, thì mơ hồ là chuyện bình thường.).

“Làm game chứ làm cái giề!”, “thằng bạn” mà vô tình tôi “với lấy” được, cũng là một anh chàng mê game, chơi game từ cái thuở “mới lọt lòng”. Thông thường mà nói, khi người ta thích cái gì thì người ta có xu hướng: 1 là muốn được trải nghiệm nó, 2 là muốn được trải nghiệm việc làm ra nó. Thế nên chẳng có gì là lạ khi tôi quyết định bắt tay cùng anh bạn này để cùng làm đồ án tốt nghiệp là game.

Thật ra trước đó, tôi đã có ý định làm game rồi, nhưng ngồi mò mẫn mãi không thấy được gì, tôi chán chường và chỉ nghĩ đến việc làm một phần mềm hay một trang web nào đó làm đồ án, thế là ra trường thôi, chứ game guốc gì, cao siêu quá. Tính ra thì tôi là một tay có máu lập trình, lập trình từ cái thuở còn học phổ thông, đến cái thời điểm đó, tôi đã code được một lượng kha khá phần mềm… để tự sướng! Đau một nổi là tôi càng ngày càng lười, tôi bắt đầu thật sự thích game từ cái năm 12, rồi đam mê duy trì đến lúc học cao đẳng, có lúc tôi muốn tự tạo một game cho mình, mò mẫn XNA, Direct X, OpenGL,… nhưng rồi tôi cũng bỏ cuộc, vì lười nhác và những cái tôi tìm hiểu thật sự khó đối với bản thân tôi lúc đó, cái thằng vốn quen viết soft bằng VB6, và thích kéo thả.


Ảnh minh họa: Tôi chỉ thích drag & drop, vậy thì chọn làm cái gì là phù hợp?


Sau cái duyên với anh bạn mê game đó, tôi và bạn ấy cùng nhau ra kế hoạch và bước đi những bước đầu tiên của cuộc đời mình theo “tiếng gọi của game”. Ban đầu là tìm hiểu những bước cơ bản tiếp cận với game dev, sau khi hiểu rằng nếu nắm trong tay một cái engine hay framework nào đó thì chúng tôi sẽ tiếp cận dễ hơn hẳn. Thế là tôi tự giao cho mình nhiệm vụ khảo sát engine để lựa chọn 1 cái mà đi theo.

Ở thời điểm đó, đã có “cả mớ” engine để lựa chọn, nào là ORGE Engine, Panda3D, UDK (Unreal Development Kit), Cry Engine danh tiếng cũng vừa ra mắt CrySDK miễn phí cho nghiên cứu và học tập.

Tôi bắt đầu khảo sát từng engine một, và nhận ra rằng chúng đều có những ưu nhược điểm nhất định, nhưng tụ chung là quá khó để tiếp cận với tôi.

Với tư tưởng mơ mộng hão huyền của một người mới bắt đầu nghĩ đến làm game, đầu tiên tôi chọn UDK và CrySDK để khảo sát (vì “chúng nó” đều là những engine đỉnh).



Hình minh họa: Giờ chọn cái nào đây cà!?

----------

Tạm dừng ở đây, một bài mở đầu “tự sướng”, thôi thì đợi đến bài sau, chúng ta sẽ cùng nhau so sánh sơ bộ giữa các engine và xem quyết định cuối cùng là engine nào nhé!


(Nguồn vietgamedev.net)

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



Phần 1: Một số tiêu chí đánh giá 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ả. :’>

Xin phép không đi sâu/chi tiết vào khái niệm của các vấn đề được trình bày, chúng ta sẽ nói về chúng ở một dịp khác.

Phần 1 nêu các tiêu chí đánh giá game engine, chưa đi vào việc đánh giá hay chấm điểm bất kỳ engine nào (cả Unity), chúng ta sẽ bàn việc này ở phần 2 và 3.


*Mở đầu:

Chào mọi người, tôi đã trở lại, và lợi hại vô biên…

Đùa thôi! Trở về và tiếp tục vấn đề ở kỳ 1, tôi đã chọn UDK và CrySDK để khảo sát, tiếp theo chúng ta sẽ thử điểm qua một số tiêu chí đánh giá game engine (phần 1), sau đó khảo sát 2 engine này và một vài engine khác (phần 2) để xem cuối cùng quyết định nên chọn engine nào nhé! (phần 3)


I. Tiêu chí đánh giá game engine:

Có khá nhiều thứ để bàn về một engine, vì thế cũng sẽ có khá nhiều tiêu chí để lựa chọn một engine, có thể nói một cách tổng quát rằng tùy vào nhu cầu, mục tiêu như thế nào mà mỗi cá nhân (nhóm/studio/công ty) sẽ chọn những engine khác nhau.

Theo quan điểm chủ quan, tôi chọn một số tiêu chí sau đây để đánh giá một game engine (phần rating là do cá nhân tôi tự đánh giá, nó phản ảnh độ ưu tiên khi tôi chọn engine)


1. Target platforms (8/10):
Ảnh. Một số platform.

Target platform là nền tảng (phần cứng, phần mềm/hệ điều hành) mà engine hỗ trợ (khả năng deploy game để chạy được trên platform đó.

Về cơ bản, một engine càng hỗ trợ nhiều platform sẽ càng thuận tiện hơn cho nhu cầu phát triển đa nền tảng.

Một số nền tảng phần mềm (hệ điều hành) phổ biến mà một engine “hợp thời” phải có: Window, iOS, Android.


2. API (8/10):


Ảnh: Lập trình C# trên IDE Mono develop.

Application Programming Interface – cái này quá quen với dân lập trình, chắc không cần phải bàn nhiều, nói đại khái (cho người không thuộc phân mảng lập trình) thì nó là khả năng hỗ trợ về lập trình (có thể lập trình bằng những ngôn ngữ nào? Thư viện dựng sẵn hỗ trợ về đồ họa, vật lý,… ).


3. Game features (8/10):

Ảnh: Một hình ảnh trong Project A* Pathfinding hỗ trợ pathfinding trên Unity free.


Là gì nhỉ? Um… nói nôm na thì nó thể hiện khả năng hỗ trợ về một số tính năng cơ bản của game như:

MMO (Multi massive Online): Hỗ trợ đa trực tuyến.

Path Finding: Tìm đường.

Unlimited Sized Worlds: Khả năng xây dựng thế giới/bản đồ in-game rộng lớn đến mức vô hạn.


4. Editors (8/10):


Ảnh: World/scene Editor trong Unity.


Editors – những công cụ/khả năng hỗ trợ về việc biên tập, xây dựng như:

-World Editor: Hỗ trợ về xây dựng thế giới, môi trường trong game.

-World Editor Collaborative Editing: Khả năng hỗ trợ việc biên tập, xây dựng thế giới trong game mà nhiều người có thể thực hiện cùng một lúc trong một màn chơi (một world map).

-Version Control: Hệ thống quản lí phiên bản.

-GUI Editor: Hỗ trợ thiết kế giao diện.


5. Graphic features (6/10):


Ảnh: Deffered Shading.

Hiểu nôm na là các tính năng, hỗ trợ về đồ họa như: Deffered Render, Forward Render, Ambient Collision, Parallax Mapping, Per Object Motion Blur…


6. Physic features (7.5/10):


Ảnh: Physic trong game Cell Factor


Bao gồm những hỗ trợ về vật lý trong game như:
-Physical Clothing.
-Ragdolls.
-Destructible Object.


7. Price/license (8.5/10):



Vấn đề liên quan trực tiếp đến hầu bao!

Có những hình thức phân phối như thế?
Giá cả như thế nào?
Có bản free for commercial use ko? :’>

Cơ chế license đa dạng, linh hoạt là một trong những yếu tố ảnh hưởng lớn đến quy mô của cộng đồng người dùng engine. Engine có phiên bản miễn phí dùng được cho mục tiêu thương mại hay những gói lựa chọn với giá phải chăng sẽ dễ trở thành mục tiêu của người dùng hơn. Ở phương diện của một người đang tìm engine thích hợp, thì mặc nhiên nó sẽ là một vấn đề cần phải quan tâm.


8. Community (9/10):



Community tức là cộng đồng người dùng engine và một số thứ liên quan như tài nguyên (hình ảnh, mã nguồn.v.v.. ) . Đối với tôi thì đây là một trong những yếu tố hàng đầu để quyết định có nên chọn engine nào đó hay không.

Lựa chọn một engine với một cộng đồng người dùng càng lớn nghĩa là bạn càng có nhiều cơ hội được hỗ trợ, đồng thời sẽ có nhiều nguồn tài nguyên cho bạn lựa chọn.

-------------

Tạm dừng tại đây, phần tiếp theo chúng ta cùng nhau khảo sát qua một số engine bằng cách điểm qua và dựa trên những tiêu chí đã đề cập.

-------------

(Nguồn vietgamedev.net)

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)