Thiết kế và phát triển game 3D top down với Unity

MỤC LỤC

Mục tiêu

Hiện nay video game là một trong những hình thức giải trí phổ biến nhất của giới trẻ trong thời gian rảnh. Do ngày nay gần như ai cũng sở hữu máy tính cá nhân và các hệ thống phân phối game rất phổ biến nên các game do những nhóm phát triển nhỏ dễ đến được tay người chơi hơn. Dựa theo nhu cầu giải trí của mọi người, nhóm em quyết định chọn đề tài phát triển một game 3D top down.

Phạm vi

- Người chơi có thể nhận được xu khi hoàn thành nhiệm vụ hoặc hoàn thành màn chơi nhỏ trong nhiệm vụ/ từ bảng thành tựu của game để mua item và nâng cấp vũ khí. - Người chơi có thể thay đổi và nâng cấp nhiều loại súng khác nhau để thích hợp cho từng tính huống chiến đấu.

Kế hoạch làm việc

 Tìm kiếm tài nguyên cần thiết cho đồ án: đồ họa, âm thanh, hiệu ứng thư viện, menu: button, inventory, upgrape,.  Thiết kế nội dung game: Câu chuyện game, nội dung nhân vật, bối cảnh, cách chơi,.

GIỚI THIỆU CHUNG

CƠ SỞ LÝ THUYẾT

Unity Engine

Đối với game 3D, Unity cho phép đặc tả kỹ thuật texture compression, mipmap và cài đặt độ phân giải cho mỗi nền tảng mà engine hỗ trợ và cung cấp hỗ trợ cho bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture và full-screen post-processing effects. C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.

Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên dịch trực tiếp thành mã thực thi của hệ điều hành.Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (C#, VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft intermediate language). Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở thành mã thực thi của hệ điều hành. C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), phát triển game, ứng dụng Web, ứng dụng Mobile trở nên rất dễ dàng.

Microsoft Visual Studio

Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ.

GIỚI THIỆU VỀ TOP-DOWN GAME

Một số game tiêu biểu

    Được biết đến với hình ảnh pixel art và tốc độ nhanh chóng, series game Hotline Miami đưa người chơi vào một thế giới bạo lực với phong cách top-down. Người chơi sẽ trải qua các cấp độ đầy khó khăn, sử dụng sự linh hoạt và chiến lược để hoàn thành các nhiệm vụ ám sát. Người chơi cần di chuyển nhanh, đánh bại kẻ thù và hoàn thành mục tiêu một cách nhanh nhất có thể.Tựa game yêu cầu người chơi thử nghiệm và lặp lại nhiều lần các cấp độ để hiểu rừ định hỡnh và tỡm ra cỏch tiếp cận tốt nhất.

    Hơn nữa người chơi cú thể chọn từ một loạt vũ khí khác nhau, mỗi loại vũ khí đều có ưu điểm và nhược điểm riêng. Trong thế giới của "Nuclear Throne," bạn sẽ chiến đấu qua các màn chơi ngẫu nhiên, thu thập vũ khí và tiến lên hạ ngai vàng. Trò chơi đặt bạn vào một thế giới hậu hậu tận thế, nơi đầy rẫy với quái vật, vũ khí và môi trường đầy nguy hiểm.

    Từ súng cơ bản đến các loại vũ khí siêu năng lượng và biến thể của chúng, người chơi có thể chọn lựa và tận dụng để thích nghi với môi trường chiến đấu. Điều này tạo ra trải nghiệm chơi game cộng đồng, nơi mà bạn và đồng đội của mình phải hợp tác chặt chẽ để vượt qua các thách thức.

    Hình 3.5. Game Hotline Miami Series
    Hình 3.5. Game Hotline Miami Series

    Một số thể loại game trong dòng game Top-down

      Helldivers được thiết kế để chơi cùng bạn bè hoặc người chơi khác thông qua chế độ hợp tác đa người chơi. - RPG Top-Down: Kết hợp yếu tố nhập vai với hành động, người chơi thường có cơ hội nâng cấp nhân vật và vũ khí. - Exploration Games: Thường là những game mà người chơi khám phá và tìm hiểu một thế giới rộng lớn từ góc nhìn từ trên xuống.

      - Real-Time Strategy (RTS): Mô phỏng các cuộc chiến đấu chiến lược theo thời gian thực từ góc nhìn từ trên cao. - Tower Defense Games: Người chơi xây dựng và quản lý các tháp phòng thủ để chống lại lượng lớn kẻ địch tiến tới. - Roguelike Games: Thường có yếu tố chết chỉ sống một lần, với việc ngẫu nhiên hóa các màn chơi mỗi lần chơi lại.

      - Dungeon Crawlers: Người chơi khám phá và chiến đấu qua các hang động, hầm ngầm, thường từ góc nhìn từ trên xuống. - City or Base Building Games: Xây dựng và quản lý thành phố hoặc cơ sở từ góc nhìn từ trên xuống.

      PHÂN TÍCH THIẾT KẾ

      Phân tích thiết kế 1. Class diagram

        10 AttackSkill Abstract class định nghĩa các thuộc tính, phương thức dùng chung cần thiết để enemy thực hiện tấn công. Singleton quản lý quá trình save và load game 14 FileDataHandler Hiện thực việc đọc, lưu trữ gamedata sang file. 4 Move() Void Ghi đè phương thức ở lớp cha, điều khiển kiểu di chuyển của turret.

        1 playerAnimator Animator Là 1 thuộc tính được unity định nghĩa, điều khiển hoạt ảnh của nhân vật. 2 platformLayer LayerMask Là 1 thuộc tính được unity định nghĩa, lưu trữ danh sách các layer được coi là platform. 5 playerInputActions PlayerInputActions Là 1 thuộc tính được unity định nghĩa, xử lý thông tin bàn phím và chuột.

        7 meleeAttack InputAction Là 1 thuộc tính được unity định nghĩa, lưu trữ thông tin của sự kiện meleeAttack. 9 Awake() Void Là 1 phương thức được unity định nghĩa, thực hiện các công việc sau khi khởi tạo đối tượng. 4 Animator Animator Thuộc tính được unity định nghĩa, thực hiện việc điều khiển hoạt ảnh của đối tượng.

        6 ExcuteAttack() Void Hàm xử lý thực hiện đòn tấn công 7 AttackToUse AttackBase Phương thức để xử lý xem nên sử. 9 IsInRange(float ) Bool Phương thức để kiểm tra đối tượng cần tấn công có trong tầm. 10 CanExcuteAttack() Bool Phương thức dùng để kiểm tra xem có thể thực hiện đòn tấn công này hay không.

        Bảng 6.24. Danh sách class
        Bảng 6.24. Danh sách class

        State diagram

          1 PlayerPosition Vector3 Vị trí của người chơi hiện tại 2 playerHealth Float Lượng máu hiện tại của người.

          Bảng 6.42. Chuyển đổi state của Destroyar
          Bảng 6.42. Chuyển đổi state của Destroyar

          Thiết kế UI 1. Yêu cầu

          • Mô tả chi tiết

            Main menu Screen có: 1 image làm background, 1 image làm title, 7 buttons: PlayGameButton, BackButton, SettingButton, StoreButton, MissionButton, GunSelectButton, BoomSelectButton, ItemSelecButton. - Nhấn nút SettingButton: Mở Settings Menu - Nhấn nút StoreButton: Mở Store Menu - Nhấn nút MissionButton: Mở Mission Menu - Nhấn nút GunSelectButton: Mở Gun Menu - Nhấn nút BoomSelectButton: Mở Boom Menu - Nhấn nút ItemSelecButton: Mở Item Menu. Mỗi GunSelectPanel: 1 Image súng, 1 text làm tên súng, 1 text làm level, 3 button: SelectButton, UpgrapeButton, Close Button.

            Mỗi ItemSelectPanel: 1 Image item, 1 text làm tên item, 1 text làm số lượng item hiện có, 2 button: SelectButton, Close Button. Shop gun Menu có 1 text làm tiêu dề, 2 scroll view: OptionView (chứa nhiều optionButton) và GunView (chứa nhiều GunPanel) và 1 button: Close button. Shop item Menu có 1 text làm tiêu dề, 2 scroll view: OptionView (chứa nhiều optionButton) và GunView (chứa nhiều ItemPanel) và 1 button: Close button.

            Pause game menu dùng để hiển thị những lựa chọn trong lúc đang chơi game. Game win menu dùng để hiển thị thông tin và lựa chọn khi người chơi hoàn thành một màn chơi. Game Over menu dùng để hiển thị những lựa cho khi người chơi thua game.

            HUD dùng để hiển thị những thông số của người chơi lúc đang chơi game.

            Hình 6.22. Main menu
            Hình 6.22. Main menu

            CÀI ĐẶT VÀ KIỂM THỬ