Chương 1: Trình bay van dé tai sao phải xây dựng một tựa game, những kiến thức cần có để có áp dụng vào và xây dựng tựa game dựa trên Unity engine. e Chương 2: Trinh bay về tổng quan ngành công nghiệp game hiện tai, cùng với đó là các công nghệ được sử dụng dé xây dựng nên tựa game này. e Chương 3: Mô tả chi tiết về tựa game từ các cốt truyện, nhân vật, đồ họa và luật chơi. Bên cạnh đó là mô tả về các chức năng và cách thức thiết kế của game này.
© Chương 4: Kết qua và đánh những gì đã làm và đạt được trên tựa game nay. CHƯƠNG 2: CÔNG NGHIỆP SẢN XUẤT GAME 2.1 Giới thiệu về game Game hay còn gọi là trò chơi là một hình thức có cấu trúc của việc chơi đùa, thường thực hiện nhằm mục đích giải trí hay vui vẻ, và đôi khi được sử dụng như một công cụ giáo dục. Trò chơi khác biệt với công việc, thường thực hiện dé nhận thù lao, va nghệ thuật, hay biểu hiện của các yếu tô thẩm mỹ hoặc tư tưởng. Tuy nhiên, sự phân biệt này là không rõ rang và nhiều trò chơi cũng được coi là công việc (chang hạn như người chơi thể thao chuyên nghiệp hoặc trò chơi có khán giả) hoặc nghệ thuật (chẳng hạn như trò chơi ghép hình hoặc trò chơi có bố cục nghệ thuật như mat chược, solitaire, hoặc một số trò chơi điện tử).
Trò chơi điện tử là một trò chơi sử dụng các thiết bị điện tử để tạo ra một hệ thống tương tác mà người chơi có thé chơi. Trò chơi video là hình thức trò chơi điện tử phổ biến nhất hiện nay và vì lý do này, hai thuật ngữ thường được sử dụng thay cho nhau. Các hình thức phô biến khác của trò chơi điện tử bao gồm các sản phẩm như trò chơi điện tử cầm tay, hệ thống độc lập (ví du: pinball, slot machine hoặc các máy trò chơi arcade cơ điện) và các sản phẩm không trực quan độc quyền (ví dụ: trò chơi âm thanh). Các thành phần làm cho trò chơi thú vị là mục tiêu, quy tắc, thử thách và tương tác.
Các trò chơi thường liên quan đến kích thích tỉnh thần hoặc thẻ chất, và thường là cả hai. Nhiều trò chơi giúp phát triển các kỹ năng thực hành, phục vụ như một hình thức tập thể dục hoặc thực hiện một vai trò giáo dục, mô phỏng hoặc tâm lý. Hiện nay thị trường game được phân hóa đa dạng và rộng rãi để phù hợp với từng độ tuổi và sở thích của mỗi người. Theo thống kê của trang statista của Mỹ thi độ tuổi chơi game phổ biến nhất là từ 18-34 tuổi.
50% 40% 38% roSeshpanfdt 30% 55-64 years 20% 20% + 9% 14% 12% 10% % 0% Under 18 years 18-34 years 35-44 years 45-54 years ii L_] : 55-64 years 65+ years Hình 2.1: Phân bó độ tuổi của game thủ Theo viettelstore đã thống kê thì có 6 thể loại game được chơi nhiều nhất đó là: Game bắn súng FPS Game nhập vai Game chiến thuật thời gian thực Game thé thao Game Moba Game giải tri câu đồ Dựa vào thống kê về độ tuổi thì ta thấy rằng số lượng gamer trong độ tuổi năng động chiếm rất cao đã ảnh hưởng khá nhiều đến bảng xếp hạng về thể loại game, đặc biệt tựa game FPS có một lượng fan đông đảo trong nhóm tuổi 18->34 đã nâng sự phổ biến rộng rãi của game này trên thị trường game thế giới.1 Tổng quan Unity Engine: Engine Unity hỗ trợ cho chúng ta UnityAPI đề viết script game. UnityAPI là API lập trình game trong Unity rất mạnh. UnityAPI chứa các đối tượng và phương thức hỗ trợ hầu hết các đối tượng và các loại thành phần trong Unity. Trong một scene thường có nhiều đối tượng game.
Mỗi đối tượng này có thể có hoặc không có đoạn script nào gắn lên đó. Nếu muốn gắn script vào đối tượng, ta bắt buộc phải kế thừa class đó từ lớp MonoBehaviour của UnityAPI và tên class phải trùng với tên file script. Mỗi script khi gắn lên đối tượng game đều được đối tượng game xem như một thành phan bên trong và được cấp phát vùng nhớ khi chạy game. MonoBehaviour Animation Light Rigidbody Component Projector ¥ Controller Collider Input Hình 2.2 Tổng quan kiến trúc Unity Engine Bên trong UnityApi có chứa rất nhiều lớp hỗ trợ lập trình game, tronng đó có một số lớp quan trọng như: 10 © MonoBehavior: Tat cả các script gắn vào gameObject buộc phải kế thừa từ class này GameObject: Lớp cha của tat cả thực thé trong unity Component: Lớp cha của tất cả thành phần có thể gắn vào đối tượng gameobject Transform: Lớp tọa độ vị trí của gameobject Input: Lớp hỗ trợ lập trình nhận các input từ các thiết bị Camera: Lớp lập trình camera Light: Lớp tạo ánh sáng trong game Projector: Lớp giúp chiếu texture lên bề mặt vật thể có định dạng ParticleEmitter: Lớp tạo các effect Audio: Lớp hỗ trợ lập trình với âm thanh Animation: Lớp chuyền động của mô hình nhân vật RigidBody: Lớp liên quan đến hiệu ứng vật lý nhưng trọng lực , lực day CharacterController: Lớp giúp điều khiển nhân vật Collider: Lớp hỗ trợ kiểm tra sự va trạm giữa các vật thể có hình dạng nhất định GUI: giúp lập trình giao diện của người dùng trên unity.2 Giới thiệu chung về Unity <Q} unity Hinh 2.3: logo Unity Engine Nha Phat trién: Unity Technologies Phiên bản mới nhất: 2021.0 b Phiên bản mới nhất 2021 (Phát hành vào ngày 16/12/2021) Được viết bởi ngôn ngữ C++, C# Phát triển game và ứng dụng cho các hệ điều hành: Windows, Mac, Iphone, Ipad, Xbox, Android Giấy phép: Độc quyền Website: www.com 11 Unity là một 3D game engine, là một công cụ thiết kế game dành cho PC,Mac Unity được hỗ trợ của Just in Time Compilation (JIT), sử dụng thư viện mã nguồn mở C++ Mono.
Bằng việc sử dụng JIT, những Engine như Unity có thể lợi thế biên dịch, Những đoạn code do chúng ta viết sẽ được Unity biên dịch ra Mono trước khi nó được thực thi. Điền này rat quan trọng cho game dé thực thi code vào những thời điểm cần thiết trong suốt thời gian chạy. Ngoài thư viện Mono, Unity cũng tận dụng chức năng của những thư viện phần mềm khác vào chức năng của nó, như Engine mô phỏng vật lý PhysX của Nvidia, OpenGL và DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm thanh. Tất cả các thư viện này được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity, vì thế chúng ta không cần phải lo lắng về việc phải học thế nào đề sử dụng chúng một cách riêng lẻ.
Unity có một cộng đồng người dùng rất mạnh (rất lớn) luôn chia sẻ những Plugins, công cụ của họ dưới hình thức gói phần mềm bồ sung. Có thể sản xuất các trò chơi theo tiêu chuân chuyên nghiệp, xuất bản 3D cho cả Mac và PC cũng như sở hữu riêng một Web Player của riêng mình. Unity là một trong những Game Engine có tốc độ phát triển nhanh nhất. Unity cũng có phiên bản phát trién Game cho hệ máy Wii của Nintendo và Iphone của Apple, có nghĩa là một khi chúng ta làm chủ được những vấn đề cơ bản, không chỉ phát triển Game cho máy tính cá nhân mà chúng ta còn có thé phát triển Game cho các hệ máy console và thiết bị di động.1 Rendering Giống như tat cả các Engine hoàn chỉnh khác, Unity hỗ trợ đầy đủ khả năng kết xuất hình ảnh (Redering) cùng nhiều hỗ trợ cho phép áp dụng các công nghệ phổ biến trong lĩnh vực đồ họa 3D nhằm cải thiện chất lượng hình ảnh.
Các phiên bản gần đây nhất của Unity được xây dựng lại thuật toán nhằm cải thiện hiệu suất kết xuất hình ảnh đồng thời tăng cường chất lượng hình ảnh sau khi kết xuất. Một số hỗ trợ: © Unity cung cấp sẵn 100 Shaders với day đủ các loại phổ biến nhất. Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer. e Hỗ trợ LOD.2 Lighting Ánh sáng là một điều thiết yếu giúp môi trường trở nên đẹp và thực tế hơn.
Unity cũng cung cấp nhiều giải pháp đa dạng cho phép chúng ta áp dụng ánh sáng một cách tốt nhất vào môi trường trong trò chơi với nhiều loại nguồn sáng như ánh sáng có hướng (Directional Light), ánh sáng điểm (Point Light),. Một số công nghệ va kỹ thuật về ánh sáng được Unity hỗ trợ: Lingtmapping, Realtime Shadows, hiệu ứng Sunshafts và Lens Flares.3 Terraints Terrains còn gọi chung là địa hình bao gồm phan đất nền của môi trường trong trò chơi cùng các đối tượng gắn liền như cây, cỏ,. Unity cung cấp một công cụ hỗ trợ rat tốt khả năng nay với tên gọi là Terrains Tools cho phép chúng ta thiết kế địa hình với các công cụ vẽ dưới dạng Brush có nhiều thông số tùy chỉnh đề tạo hình và lát Texture cho địa hình. Cùng với Terrain Tools là Tree Creator, một công cụ mạnh mẽ cho phép chúng ta tạo ra cây cối với hình dang, kích thước và kiểu cách đa dạng.4 Vật lý PhysX là một engine mô phỏng và xử lí vật lý cực kỳ mạnh mẽ được phát triển bở nhà sản xuất card đồ họa hàng đầu thế giới NVIDIA.
Unity đã được tích hợp Engine này để đảm bảo tối ưu mọi vấn đề vật lý 2.5 Animation Animation hay còn gọi là hoạt ảnh là một phần không thé thiếu trong các bộ phim hoạt hình anime cho tới các vũ trụ điện ảnh Hollywood tỷ đô và trò chơi điện tử cũng vậy. Việc thiết kế hoạt ảnh cực kì mắt thời gian với những tính năng ma Unity Engine cung cấp chúng ta có thể có những chuyền động animation mượt mà nhất trong khoảng thời gian ngắn 2.6 Animation Clip Animation Clip làm một thành phan chính của hệ thống hoạt ảnh của Unity, Animation Clip hay còn gọi là đữ liệu điểm ảnh trong một khoảng thời gian của một kiểu mô hình 2D hoặc 3D 15 Hình 2.7: Ví dụ hoạt động của Animation Clip Ở màn hình Animation chúng ta có thé hiểu rõ hơn các thông số sau đây Loop Time > Animator.Chest Left-Right: 00653: Loop Pose. Chest Twist 3e Anima Left-Right 0.1" Cycle orteat 0 Animator Head Nod Down-UP 0.088C Bake Into Pose 0 ‘Based Upon (at St Body Orientation > AnimatorJaw Left-Right Animator Up -0.655C > Anima Left tor Amfont-Back 0. *AnimatorLeftEye Down-Up 0 > AnimatorLeft Eye in-out | 0 > Animat Left Foot Tvistla-Out or.
-0,005 27Animator Foot Up-Down Left ___-2 ›7o: '> AnlmatorL Forearm eft Stretch 0 7999: ) Animator Forearm Left Twistin- -0 163° „ i 009 *>Animator.Left Lower Leg Stretct 0.560 iin lel meee abet rs *eAnlmator.Left Lower Leg Twist! 0.0950: Serie id Get OP cna a7 Animator Left Shoulder Down-U -o 744: pm aes '*-AnimatorLeft Shoulder Front-Be 0.308: đem mn oo “(302% seam: 77 > Animator Left Upper Leg Front-€ 0.