Asset game là gì

Diễn Đàn Công Nghệ Thông Tin

Trang Chủ Diễn Đàn > B - Thư Viện Điện Tử > Tổng Hợp >

Unity là một phần mềm Game Engine, công cụ hỗ trợ thiết kế game 2D và 3D đa nền tảng phổ biến trên thị trường phát triển game. Hiện tại, Unity chỉ hỗ trợ ngôn ngữ lập trình C#.

Các thành phần trong Unity

Assets

Assets là những tài nguyên được sử dụng trong việc phát triển game trong Unity.

Các Assets này có thể là hình ảnh, mô hình 3D, âm thanh, hiệu ứng, ... được tạo ra bởi các nhà phát triển, có thể được download miễn phí hoặc trả phí. Tính năng này giúp giảm thiểu rất nhiều thời gian cho việc thiết kế và lập trình game.

Các Assets được đăng tải trên trang chính thức Unity Asset Store.

Unity Asset Store

GameObject

Unity định nghĩa GameObject là đối tượng đại diện cho các Assets trong game như nhân vật, cây cỏ, công cụ, đạo cụ, camera, hiệu ứng ... Các GameObject đều chứa một thuộc tính cơ bản là Transform, dùng để thiết lập vị trí, hướng và kích thước của GameObject. 

Components

Components là các thuộc tính thêm vào GameObject như là Animation, âm thanh, mô hình 3D, hiệu ứng, … nhằm xây dựng, kết hợp các yếu tố khác nhau để xác định các hình thái, hành vi, hiệu ứng, ... của đối tượng mong muốn trong game.

Các Components trong Unity

Scenes

Trong Unity, Scene là một cảnh game, không gian game nơi thiết lập bố cục của các GameObjects, hoặc là một phần chứa các thiết lập giao diện như các menu trong game.

Tạo ra nhiều Scenes sẽ giúp linh hoạt trong việc phân phối tối ưu tài nguyên, quản lý các phân đoạn trong game một cách độc lập.

Một scene trong game

Scripts

Scripts là một Component trong Unity. Đây là thành phần thiết yếu dùng để tương tác với các hành động của người chơi, hoặc quản lý các sự kiện để thay đổi chiều hướng của game tương ứng với kịch bản game.

Unity cung cấp cho lập trình viên khả năng viết Script bằng ngôn ngữ C#.

Script C# được thêm vào GameObject

Prefabs

Prefabs là một GameObject hoàn chỉnh sau khi thêm các thuộc tính và được lưu trữ lại để tái sử dụng. Các GameObject được nhân bản từ một prefab sẽ giống nhau hoàn toàn.

Để tạo ra một prefab, ta chỉ cần kéo một GameObject từ cửa sổ Hierarchy vào cửa sổ Project.

Prefabs trong Unity

Camera

Camera trong Unity dùng để thể hiện khung hình, góc nhìn mà người chơi có thể nhìn thấy được trong game.

Trong một game có thể thiết lập nhiều camera để chia nhỏ màn hình người chơi, tạo các hiệu ứng, hoặc tùy chỉnh như nhìn được từ phía sau, bản đồ thu nhỏ, …

Camera trong Unity

Light

Light là một phần thiết yếu của mỗi scene. Light xác định màu sắc và độ sáng của môi trường Game. Việc kết hợp nhiều lights trong scene giúp tạo ra các hiệu ứng ánh sáng phù hợp với từng trò chơi.

Light trong Unity

Thông tin thêm

Tên tài sản chung Tên tập tin

FREE DOWNLOAD

Mở hơn 300 định dạng tệp với File Viewer Plus.

Các chương trình mở tệp ASSETS

Đã cập nhật 2 / 16 / 2017

Mục tiêu của chúng tôi là giúp bạn hiểu tệp có hậu tố * .assets là gì và cách mở tệp.

Loại tệp Tài sản Unity, mô tả định dạng tệp và các chương trình Mac và Windows được liệt kê trên trang này đã được nghiên cứu và xác minh riêng lẻ bởi nhóm TapTin. Chúng tôi cố gắng cho độ chính xác 100% và chỉ xuất bản thông tin về các định dạng tệp mà chúng tôi đã kiểm tra và xác nhận.

Nếu bạn muốn đề xuất bất kỳ bổ sung hoặc cập nhật nào cho trang này, xin vui lòng cho chúng tôi biết.

2 năm trước, tôi chỉ là một cậu học sinh trung học 17 tuổi, không hề biết gì về code. Nhưng tôi vẫn không ngại tìm tòi học hỏi và trong vòng vài tháng tôi đã cho ra trò chơi đầu tiên của mình trên Steam.

Tính tới thời điểm hiện tại, tôi đã làm ra hơn 10 tựa game khác nhau cho cả web, và mobile, với tổng cộng hơn 1,9 triệu lượt chơi.

Vì vậy, dù cho bạn ở bất cứ cấp độ nào thì bạn vẫn có thể làm trở thành lập trình viên game. 2 năm trước, tôi nghĩ rằng điều đó là không thể, nhưng vẫn thử làm [cho biết]. Đó cũng là điều khó khăn nhất mà tôi từng làm nhưng kết quả nhận được thì vô cùng xứng đáng. Giờ đây, tôi nhận ra việc làm game giống như bất kỳ kỹ năng nào – bạn chỉ trở nên tốt hơn bằng cách làm thử => thất bại => cải thiện 

Có thể nói rằng tôi đã tự học mọi thứ mình biết và bây giờ tôi sẽ hướng dẫn lại cho bạn

Để phát triển một trò chơi, bạn phải trải qua 6 giai đoạn: Design, Art, Code, Audio, hoàn thiện, quảng cáo

Trong bài viết này, tôi sẽ chia mỗi giai đoạn thành 2 phần:

  • Lời khuyênbài học mà tôi đã rút ra được
  • Resource cần thiết cho các bạn

1. Design ?

Lời khuyên

Bạn đã có một ý tưởng tuyệt vời*

Nhưng làm thế nào để bạn có thể viết nó lên giấy?

Mỗi người sẽ có một cách riêng. Một số có thể soạn tài liệu lên đến 60 trang. Những người khác, giống như tôi, chỉ viết một trang ghi chú khá cẩu thả, chỉ có thể một mình hiểu. Thành thật thì tôi không biết điều gì tốt nhất cho bạn nhưng tôi có thể đưa ra gợi ý về những gì cần viết:

  • Hook – mồi câu: Điều gì làm cho ý tưởng trò chơi của bạn tuyệt vời? Đối với tôi, đây là điều quan trọng nhất để viết ra. Một khi bạn nắm bắt được điều này, bạn có thể viết xuống ba điểm tiếp theo dễ dàng hơn nhiều. Trò chơi của bạn có phải là thứ kích thích tư duy không? Hay gây tranh cãi? Là nó có một kết cục bất ngờ? Hoặc, nó đang làm điều gì đó chưa bao giờ được thực hiện trước đây?
  • Mechanic – Cách chơi: Người chơi của bạn cần phải  làm gì? Và vì mục đích gì? Đây chính là phần gameplay của bạn. Nó có thể đơn giản như cách nhấn QWOP để di chuyển trong trò chơi QWOP, hay bấm các nút để trò chuyện trong Mystic Messenger, tới hàng tấn combo wombo nút bấm trong Dwarf Fortress.
  • Story – Cốt chuyện: Người chơi nên nhớ về cốt chuyện của trò chơi như thế nào? Những cảm xúc nào họ nên có khi hoàn thành trò chơi của bạn? Mỗi trò chơi đều có một câu chuyện. Có thể là những con số trong 2048, hay xây dựng một quốc gia trong Civilization, hoặc những tương tác thầm lặng trong Monument Valley. Hãy nghĩ về câu chuyện sẽ được người chơi cảm nhận trong trò chơi của bạn.
  • Mood – cảm xúc: Trò chơi của bạn tạo ấn tượng gì? Hình ảnh? Âm thanh? Ấn tượng đầu tiên rất là quan trọng. Ấn tượng đầu tiên sẽ cuốn người chơi vào trò chơi. Có lẽ, bạn sẽ cung cấp cho trò chơi của bạn một sự rung cảm retro với đồ họa pixel và âm nhạc chiptune.

Bạn gặp khó khăn để nghĩ ra một ý tưởng hay ho, đừng lo bạn không phải là người duy nhất… 

Hãy tham gia game hackathon/jam. Bạn và những người tham gia khác sẽ được giao nhiệm vụ tạo ra trò chơi trong một khoảng thời gian ngắn. Trong suốt quá trình đó, bạn sẽ được hỗ trợ từ những jammer khác. Bạn sẽ cảm thấy vô cùng phấn khích và sáng tạo cứ thế tuôn ra thôi. Nếu không biết bắt đầu từ đâu? Hãy thử Ludum Dare, một trong những game hackathon/jam lớn nhất.

  • Giữ một danh sách các ý tưởng. Tôi và các nhà phát triển khác luôn ghi lại ý tưởng của mình. Bằng cách đó, chúng ta có thể tham khảo lại khi bị bí ý tưởng mới.
  • Khi nảy ra ý tưởng mới, hãy dừng mọi thứ bạn đang làm và viết ý tưởng đó xuống.

Resources ?

Để ghi Note:

  • Notes for Mac [?]
  • Google Docs [?]
  • Trello

Để làm việc:

  • Google Drive
  • GitHub [?] Cần có git và Unity .gitignore.
  • Unity Collab. Dễ nhất trong cả ba nhưng phiên bản free có nhiều giới hạn.

Game design:

  • The Art of Game Design bởi Jesse Schell
  • Gamasutra

2. Art ?

Lời khuyên

Nếu bạn đã lên kế hoạch cho ý tưởng của mình; xin chúc mừng, bạn đã làm được khá tuyệt vời! Bây giờ, bạn có thể phát triển trò chơi thực sự.

[Nếu bạn không biết cách viết code, tôi khuyên bạn nên thực hiện bước 3, Code, trước Art]

Không biết làm thế nào để vẽ? Đừng sợ. Bất cứ ai cũng có thể vẽ ra một thứ đẹp đẽ với 3 nguyên tắc hình ảnh cơ bản: màu sắc, hình dạng, không gian.

UI

Hãy suy nghĩ về cách bạn có thể làm cho nó trở nên độc đáo – có một bảng phối màu riêng biệt, phông chữ, hình dạng và [các] biểu tượng – nhưng vẫn thực tiễn. Những thông tin quan trọng có thể đọc rõ và dễ hiểu hay không? Có gặp phải vấn đề phân tâm do màu sắc / phông chữ / biểu tượng?

2D animation

Bạn có hai lựa chọn:

  • Bone-based. Vẽ ra từng khung hình của animation. Đối với điều này, bạn nên sử dụng các sprite sheet với TexturePacker [hoặc nếu bạn đang sử dụng Unity, thì xài Sprite Packer].
  • Bone-based. Vẽ từng chi tiết động, sau đó tạo hiệu ứng cho vị trí. Có thể nhanh hơn, dễ dàng hơn và tiết kiệm bộ nhớ. Nếu bạn đang thực hiện 2D và sử dụng Unity, hãy thử chỉnh sửa các trục sprites hoặc Anima2D.

Misc

Dưới đây là một số mẹo miscellaneous art tip áp dụng không chỉ trong trò chơi mà còn trong các phần mềm khác.

Tile patterned asset để tạo hình ảnh lát gạch và lưu bộ nhớ.

9-patch/9-slice asset với các đường viền không thể mở rộng được nhưng bên trong thì có thể mở rộng để tạo các hình ảnh có thể mở rộng và giúp tiết kiệm bộ nhớ.

Đặt kích thước của từng asset là bội số của 4 hoặc lũy thừa là 2 để tiết kiệm bộ nhớ. Điều này phụ thuộc vào cách bạn đang nén asset.

Nếu bạn đang sử dụng Photoshop, hãy sử dụng “File > Export > Layers to Files” để xuất nhanh mỗi layer dưới dạng tệp [ví dụ: PNG, JPEG].

Resources ?

Tạo UI:

Cách tạo UI đẹp:

  • Google Material Design [?].
  • Apple’s UI Do’s and Don’ts.

Tạo 2D assets:

  • Photoshop [?].
  • Gimp.
  • Paint Tool SAI. Nếu bạn thích phong cách smooth/anime.

Tạo 3D assets:

  • Blender [?]. Cực kì mạnh nhưng khó học
  • Maya. Tốt cho animation.
  • Max. Tốt cho rendering.

Các asset miễn phí:

Cảm hứng:

  • Dribbble. Các thiết kế từ designers.
  • Behance [?]. Các thiết kế từ bất cứ ai.
  • itch.io [?]. Những indie game tuyệt vời.

3. Code ?

Debug.Log[“Oh boy! Time to code!! ^_^”];

Bước đầu tiên của bạn? Quyết định về một game engine và một IDE [Integrated Development Environment  – về cơ bản, nó là một ứng dụng cho phép bạn viết mã].

Bước thứ hai? Lập trình.

Bạn không biết cách viết code? Đừng lo lắng. Bạn có thể học.

Những nguyên tắc cơ bản của CS này là đủ để bắt đầu. [Tất cả các ví dụ code ở đây là trong C ++, một trong những ngôn ngữ chính mà framework phát triển game Unity 3D sử dụng.]

1] Kiểu dữ liệu [Data type] và biến [variable]. Bản chất của Code chính là Data. Data đó được lưu trữ trong các biến. Bạn có thể khai báo một biến như sau:

int i = 0;

Trong đó, int là kiểu dữ liệu. i là tên biến. Và  = 0 gán 0 là giá trị biến.

Vậy đây là gì?

string s = "pusheen is best cat";

string là kiểu dữ liệu.  s  là tên biến. Và  “pusheen is best cat” là giá trị biến.

Một số kiểu dữ liệu phổ biến:  int  và  long là số nguyên. `float và double là số thập phân. Và chuỗi [string] là bất kỳ câu nào.

Bạn muốn biết thêm? Hãy xem thêm tại đây.

2] If statement. Nếu câu lệnh đánh giá nếu một điều kiện nhất định là đúng. Nếu có, thì code bên trong câu lệnh  if  sẽ được chạy:

if [true]{ //true is always true! doThings[]; //I'm inside the if statement's brackets; run me! }

Nếu điều kiện không đúng, sẽ chuyển qua đánh giá các điều kiện else ifkhác nếu có:

int i = 1; if [i == 0]{  doThings[]; } else if [i == 1]{  doOtherThings[]; //I'm gonna be run! }

Hoặc, chỉ cần chạy một số mã khác với  else:

int i = 60000; if [i == 0]{ doThings[]; } else { doOtherThings[]; //I'm still gonna be run. }

3] For/while loop. Trong khi các vòng lặp code tiếp tục khi một điều kiện nhất định vẫn đúng, khi điều kiện là sai, vòng lặp while loop sẽ thoát.

while [someBool == true]{ //condition  doThings[]; //We'll keep doing things until someBool is false }

Vòng lặp while loop này sẽ chạy trong bao lâu?

while [true]{ doThings[]; }

Đối với vòng lập là while loop trong đó:

int i = 0; while [i < condition]{   doThings[];   i++; //increment after doing things }

Điều đó tương đương với:

for [int i = 0; i < condition; i++]{   doThings[]; }

4] Cấu trúc dữ liệu cơ bản: Chúng ta có dữ liệu và giờ thì cần phải đánh giá và sử dụng dữ liệu đó. Ngoài ra, ta cũng có thể lưu trữ dữ liệu đó thành một dạng cấu trúc – hay còn gọi là cấu trúc dữ liệu. Cấu trúc dữ liệu bạn nên biết là arrays, lists, queues, stacks, và sets.

Ví dụ nhanh về Arrays:

/* Say you have numbers 0 through 9 that you want to store somewhere. You can store it in an array! */ int[] arr = new int[10]; /* The [] brackets declare an array. We assign a new array to arr of size 10 - that means it can hold 10 elements. Arr now looks like this: arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for [int i=0; i

Chủ Đề