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)

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



Hãy bỏ chút thời gian để ngắm qua và làm quen với giao diện của Unity Editor nào. Cửa sổ chính của giao diện được chia ra làm nhiều thẻ khác nhau được gọi là View. Có rất nhiều loại View khác nhau, chúng được sắp xếp tùy thuộc vào mục đích của người dùng.

I/ Thẻ Project:

Đây là nơi bạn có thể truy cập và quản lý các tài nguyên trong project của bạn.



Phần bảng bên trái là nơi hiển thị các thư mục theo cấu trúc cây thư mục. Khi nhấp chọn một thư mục ở bên cây thư mục thì các dữ liệu sẽ được hiển thị ở phần bảng bên phải. Các tài nguyên khác nhau sẽ hiển thị các biểu tượng khác nhau tùy thuộc vào định dạng của chúng (script, vật liệu, thư mục cha,...). Các biểu tượng có thể thay đổi kích cở bằng cách sử dụng thanh trượt nằm ở góc dưới bên phải. Nếu con trượt chạy về phía bên trái thì các biểu tưởng sẽ được hiển thị dưới dạng cây thư mục. Phần khoảng trống phía bên trái con trượt giúp hiển thị đường dẫn đầy đủ của file đang được chọn.

Phía trên danh sách cây thư mục là mục Favorite, đây là nơi bạn có thể truy cập nhanh đến các dữ liệu bạn thường xuyên sử dụng. Bạn có thể kéo thả dữ liệu từ trong danh sách cây thư mục vào mục Favourite và cũng có thể lưu trữ các tệp được tìm kiếm ở đó.

Phía trên mục bảng chọn hiển thị các tệp chính là đường dẫn hiển thị đường dẫn đến thư mục chứa tệp đang xem. Các thư mục được phân chia rỏ rệt để dễ dàng truy cập. Khi tìm kiếm, thanh này sẽ được thay thế để hiển thị khu vực đang tìm kiếm (thư mục chủ của tài nguyên, thư mục đang được chọn hoặc Kho tài nguyên) tùy thuộc vào tài nguyên trả phí hay miễn phí trong kho tài nguyên. Ở mục General trong Preferences của Unity có thể tắt hiển thị số lượt đếm của Kho tài nguyên nếu nó không cần thiết đối với bạn.


Hình: Phía trên khung hiện danh sách dữ liệu là thanh đường dẫn



Phía bên trái thanh công cụ, mục Create giúp bạn thêm các tài nguyên mới và thư mục mới vào thư mục hiện tại. Nói tóm lại, nó giúp bạn tìm kiếm tài nguyên cho project của bạn.

Danh sách các mục chọn trong menu Window giúp bạn chuyển đổi dạng hiển thị về dạng bảng một cột, chỉ hiển thị cây thư mục mà không có các biểu tượng định dạng tệp. Biểu tượng khóa tệp nằm kế bên danh sách giúp bạn khóa tệp được chọn lại tránh trường hợp nó bị thay đổi khi làm việc.


Tìm kiếm:

Chức năng tìm kiếm mạnh mẽ ngay cả khi các tài nguyên nằm trong các khu vực lớn hay các project không phù hợp. Thanh tìm kiếm sẽ lọc ra các tài nguyên phụ thuộc vào các kí tự trong ô tìm kiếm.



Nếu bạn chỉ gõ 1 từ thì khung tìm kiếm sẽ hiển thị tất cả tệp liên quan, nếu bạn gõ coastal scene thì nó sẽ hiển thị những tài nguyên có tên liên quan đến từ "coastal" và "scene".

Bên phải khung tìm kiếm có 3 biểu tượng nút. Cái đầu tien giúp bạn lọc ra các tài nguyên phụ thuộc vào định dạng của chúng.



Nút biểu tượng kế tiếp giúp bạn lọc theo nhãn của các tài nguyên (Nhãn được đặt cho các tài nguyên ở Thẻ Innspector). Số lượng lọc theo nhãn là rất lớn so với khung nhìn rất hạn hẹp.



Bạn có thể thêm vào các phần mở rộng như "t:" để lọc theo định dạng, hay "l:" để lọc theo nhãn. Bạn có thể gõ trực tiếp lên khung tìm kiếm nếu bạn biết rõ dữ liệu bạn đang tìm. Bạn có thể tìm kiếm một lượt nhiều định dạng hay nhãn. Khi gõ thêm nhiều định dạng, tìm kiếm sẽ giao các kết quả tìm kiếm lại. Khi gõ thêm nhiều nhãn, bộ lọc sẽ hợp các kết quả tìm kiếm theo nhãn lại.



Biểu tượng nút cuối cùng sẽ lưu các kết quả tìm kiếm lại vào mục Favourites trong danh sách tài nguyên.

Tìm kiếm trong Kho tài nguyên

Thẻ Project còn cho phép bạn tìm kiếm các tài nguyên đang hiện có trên Kho tài nguyên của Unity, các tài nguyên trả phí và miễn phí đều được hiển thị ở đây. Việc tìm kiếm tương tự như tìm tài nguyên trong một project của Unity. Công cụ tìm kiếm sẽ kiểm tra tên tài nguyên trước rồi đến gói tên, gói nhãn và gói mô tả theo tuần tự (Vì thế các tài nguyên có tên gần nhất so với từ trong ô tìm kiếm sẽ được xếp trước rồi mới đến các tài nguyên được tìm thấy trong phần gói mô tả bộ sản phẩm).



Nếu bạn lựa chọn một tài nguyên từ danh sách tìm kiếm này, chi tiết mục trả phí hay tải về sẽ được hiển thị kèm theo bên dưới. Một vài tài nguyên còn có những phần mô tả để bạn có thể tham khảo trước khi mua. Ngoài ra còn có các mục để xem các chi tiết phụ trong Kho tài nguyên.

Phím tắt:

F - Chọn trang.
Tab - Chuyển đổi qua lại giữa cột thứ nhất và cột thứ hai.
Ctrl/Cmd + F - Tìm kiếm.
Ctrl/Cmd + A - Chọn tất cả các đối tượng hiện có trong danh sách.
Ctrl/Cmd + D - Nhân đôi tài nguyên đang được chọn.
Delete - Xóa có hộp thoại.
Delete + Shift - Xóa không có hộp thoại.
Backspace + Cmd - Xóa không có hộp thoại (OSX)
Enter - Đổi tên đối tượng được chọn (OSX)
Cmd + mũi tên xuống -  Mở tài nguyên được chọn (OSX)
Cmd + mũi tên lên - Đến thư mục cha (OSX)
F2 - Đổi tên đối tượng được chọn (Win)
Enter - Mở tài nguyên được chọn (Win)
Backspace - Đến thư mục cha (Win)
Mũi tên phải - Mở bung mục được chọn (xem dưới dạng cây thư mục và kết quả tìm kiếm). Nếu đối tượng đã được mở sẵn, nó sẽ chọn thư mục con đầu tiên
Mũi tên trái -  Thu gọn mục được chọn (xem dưới dạng cây thư mục và kết quả tìm kiếm). Nếu đối tượng đã được thu gọn, nó sẽ chọn thư mục cha.
Alt + mũi tên phải - Mở bung đối tượng khi đang xem thử tài nguyên.
Alt + mũi tên trái - Thu gọn đối tượng khi đang xem thử tài nguyên.