Tóm tắt đồ án Xây dựng game 2D Space War

pdf 20 trang thiennha21 14/04/2022 8860
Bạn đang xem tài liệu "Tóm tắt đồ án Xây dựng game 2D Space War", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftom_tat_do_an_xay_dung_game_2d_space_war.pdf

Nội dung text: Tóm tắt đồ án Xây dựng game 2D Space War

  1. TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA CÔNG NGHỆ THÔNG TIN  XÂY DỰNG GAME 2D SPACE WAR TÓM TẮT ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN (ƢDPM) HSSV thực hiện : Nguyễn Hải Huy MÃ HSSV : CCCT17A006 Cán bộ hƣớng dẫn : TS. Nguyễn Văn Lợi Khóa đào tạo : 2017 - 2020 Đà Nẵng, 01/2020
  2. MỞ ĐẦU Hiện nay Công nghiệp giải trí hiện đang rất phát triển trên thế giới, gồm các thành phẩn cơ bản như: Game, thời trang, âm nhạc, các chương trình truyền hình, điện ảnh, Gameshow, liveshow, Các mảng nằm trong giải trí không chỉ mang tính giải trí mà còn mạng nhiều giá trị về văn hóa, phong tục của từng cùng miền, đồng thời quảng bá hình ảnh của đất nước tới bạn bè khắp thế giới. Có thể nói một trong những ngành giải trí chiếm phần lớn thị trường nhất là ngành Game cộng thêm sự hội nhập của công nghệ 4.0, các sản phẩm công nghệ ngày càng chịu sự đánh giá khắt khe hơn từ phía người dùng, đặc biệt là sản phẩm game được nhận rất nhiều sự đánh giá từ phía game thủ. Ngành công nghiệp game hiện nay có thể nói là bùng nổ với tốc độ phát triển chóng mặt, hàng loạt tựa game hay và đình đám đã được ra mắt trong thời gian qua. Những Game phát triển và nổi tiếng như vậy đều có một Game Engine. Game Engine là một công cụ hỗ trợ giúp người phát triển viết Game một cách nhanh chóng và đơn giản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mã nguồn cao do có thể phát triển nhiều Game từ một Game Engine. 1. Lý do chọn đề tài Với xu hướng hiện nay, công việc mỗi người ngày càng nhiều nhu cầu giải trí sau những giờ làm việc căng thẳng, game 2d là sự lựa chọn hoàn hảo với tính chất game nhanh, độ giải trí cao, xã stress tốt. Trải qua thời gian, game 2D dường như chưa bao giờ là lỗi thời đối với người chơi, ngày càng khẳng định được vị trí của mình trên thị trường game rộng lớn. Từ đó em đã chọn đề tài xây dựng game Space War 2D trên unity. Đồ án sẽ nghiên cứu về Engine Unity – là 1
  3. một Game Engine rất phổ biến và mạnh mẽ để thực hiện việc phát triển một game 2D Space War. Vậy nên, em chọn đề tài “Xây dựng game Space War trên Unity” để làm đồ án tốt nghiệp của mình. 2. Mục tiêu và nhiệm vụ nghiên cứu - Mục tiêu: o Hiểu biết về Unity. o Biết được các ưu nhược điểm của phần mềm. o Biết cách cài đặt được phần mềm. o Biết xây dựng game bằng Unity. - Nhiệm vụ: o Nghiên cứu các bài giảng và các tài liệu để xây dựng game trên Unity. o Xây dựng được một game minh họa. 3. Đối tƣợng và phạm vi nghiên cứu - Đối tượng nghiên cứu: o Những game đã hoàn thành trên mạng. o Những video hướng dẫn cơ bản. o Quy trình xây dựng game 2D trên unity. 4. Phƣơng pháp nghiên cứu. - Nghiên cứu các lý thuyết về Unity. - Phương pháp nghiên cứu lý luận: Tìm hiểu các tài liệu nghiên cứu, giáo trình, các bài viết và các nguồn thông tin trên Internet có liên quan, ngôn ngữ lập trình là C#. - Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng dẫn và các chuyên gia khác để có thể hoàn thành về mặt nội dung cũng như hình thức của đề tài 5. Ý nghĩa khoa học và thực tiễn. 2
  4. - Nghiên cứu cách làm game 2D. - Trình bày lý thuyết về xây dựng game trên Unity. - Nâng cao kiến thức tích lũy kinh nghiệm về làm game. - Học hỏi thêm nhiều kỹ năng tạo ra một trò chơi. - Xây dựng được game để phục vụ cho nhu cầu giải trí của xã hội. 3
  5. CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. TỔNG QUAN VỀ UNITY 1.1.1. Unity là gì? 1.1.2. Lịch sử của Unity 1.1.3. Tính năng của Unity 1.1.4. Các thành phần trong Unity 1.2. CÁC KHÁI NIỆM TRONG UNITY 1.3. CÀI ĐẶT UNITY 1.4. TỔNG QUAN KIẾN TRÚC GAME ENGINE 4
  6. CHƢƠNG 2: MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP KHI XÂY DỰNG GAME TRÊN ENGINE UNITY 2.1. CHUYỂN ĐỘNG MÔ HÌNH NHÂN VẬT 2D 2.1.1. Vấn đề Chúng ta đã load được mô hình 2D vào trong game, vậy làm sao để mô hình 2D này có thể chuyển động trong game. 2.1.2. Giải pháp Cần phải có sẵn Animation bên trong mô hình 2D. Khi import mô hình vào Unity, Animation trong mô hình tự động chuyển thành một AnimationClip. Trước hết ta phải tạo AnimationClip từ animation có sẵn của mô hình. Lấy một mô hình làm mô hình chính, có thể không cần animation kèm theo cũng được. Các mô hình còn lại, tên phải có 2 phần cách nhau bởi „@‟, phần đầu phải trung với mô hình chinsg đã chọn phần thứ 2 sẽ là tên của animation Với cách đặt tên như vậy, khi đưa các mô hình này vào project để sử dụng thì unity sẽ tự động đổi tên animation mặc định trong mô hình thành tên trùng với phần tên mô hình nằm sau chữ‟@‟. Tiếp theo để thực hiện gọi một animationclip trong một đối tượng ta dùng hàm CrossFade() của thuộc tính animationm trong GameObject. 2.1.3. Kết luận 2.2. THÊM SỰ KIỆN VÀO CHUYỂN ĐỘNG CỦA NHÂN VẬT 2.2.1. Vấn đề Trong lúc lập trình game, chúng ta muốn biết khi nào một nhân vật chuyển động xong để có bước xử lí tiếp theo. Ví dụ như sau 5
  7. khi nhân vật thực thi chuyển động chết thì chúng ta phải hủy đối tượng đó khỏi bộ nhớ. Trong unity, khi một chuyển động chạy xong không tự phát ra sự kiện. 2.2.2. Giải pháp Unity hỗ trợ lớp AnimationEven giúp thêm sự kiện vào frame bất kì trong một AnimationClip. Trước hết phải có một file Scrips chứa hàm sẽ thực thi sau khi sự kiện xảy ra. Sau đó chúng ta tạo file Scrips khác dùng để thêm event và gắn file scrips này vào đối tượng bất kì. Khi đã gắn code, chúng ta đã thêm một sự kiện vào frame cuối của AnimationClip. Khi đó chúng ta phải thêm file Scrips chứa hàm xảy ra sự kiện. 2.2.3. Kết luận 2.3. XÂY DỰNG GIAO DIỆN GAME 2.3.1. Vấn đề Giao diện đồ họa người dùng là một phần không thể thiếu trong khi xây dựng một ứng dụng game hay bất cứ một ứng dụng nào để vẽ các đối tượng đồ họa như button, label, slider, lên màn hình. 2.3.2. Giải pháp Để làm được điều này chúng ta dùng lớp GUI, GUI là viết tắt của “Graphical User Interface”-“Giao diện đồ họa người dùng”. Để sử dụng được các phương thức trong GUI ta phải gọi thực hiện từ trong hàm OnGUI() giống như sự kiện Pain trong C#. Ví dụ sau đây sẽ tạo ra một button đơn giản: Hình 2.1. GUI button 6
  8. Để tạo một button hay một thành phần trong GUI đẹp hơn, chúng ta sử dụng GUIStyle – style cài đặt cho cac thành phần của GUI. GUIStyle chứa thông tin về font chữ, vị trí đặt biểu tượng, hình nền, khoảng cách, Chỉ cần định nghĩa và áp dụng cho một bất kỳ thành phần nào như button, label, checkbox, ta có thể xem GUIStyle như CSS khi thiết kế web vậy. 2.3.3. Kết luận 2.4. ÂM THANH TRONG GAME 2.4.1. Vấn đề Âm thanh là yếu tố không kém phần quan trọng. Thật là nhàm chán khi một cảnh đánh nhau, bắn nhau hay các hiệu ứng mà không có âm thanh. 2.4.2. Giải pháp Để chơi được một file âm thanh trong unity chúng ta phải có sẵn các file âm thanh và import vào project. Sau khi import, nếu file hợp lệ chúng sẽ thấy như hình sau và có thể nhấn nút play để nghe thử. Hình 2.2. Thông tin file âm thanh 7
  9. Tạo menu của Unity, vào GameObject →Create Empty Chọn đối tượng vừa tạo và gắn thành phần AudioSourcer cho đối tượng. AudioSoucer là một đối tượng âm thanh. Muốn play hay stop, thay đổi cách lặp tăng giảm volume thì phải thông qua đối tượng này. Hình 2.3. Thêm thành phần Audio Source Sau khi gắn thành phần âm thanh cho đối tượng vừa tạo, chúng ta dễ dàng chỉnh sửa các thông số và gán file âm thanh cho thành phần AudioSource này. Hình 2.4. Thêm file âm thanh cho thành phần AudioSource Thực hiện xong các bước trên, chúng ta có thể chạy game để nghe thử. Việc tạo đối tượng âm thanh trên giao diện khá đơn giản. 2.4.3. Kết luận 8
  10. CHƢƠNG 3: XÂY DỰNG GAME TRÊN UNITY 3.1. GIỚI THIỆU GAME Đặc trưng của dòng game mà em xây dựng tại một thời điểm chỉ có một người chơi, trò chơi sẽ có 1 màn hình chơi, người chơi sẽ được cung cấp 1 mạng và vũ khí nhất định, người chơi sẽ bắn đễ loại bỏ những quân địch và các vật thể khác, cố gắng lấy được càng nhiều điểm càng tốt. Khi người chơi trúng đạn sẽ chết và màn hình GameOver sẽ xuất hiện thông báo cho người chơi số điểm. Hình 3.1. Màn hình để bắt đầu chơi 3.2. CÁC QUY LUẬT CHƠI CHÍNH 3.2.1. Di chuyển Hình 3.2. Màn hình để chơi game 9
  11. 3.2.2. Tấn công Hình 3.3. Đạn của máy bay địch Hình 3.4. Đạn của người chơi 3.2.3. Điểm Hình 3.5. Điểm của người chơi 10
  12. 3.2.4. Tạm dừng game Hình 3.6. Màn hình pause 3.3. DỮ LIỆU GAME 3.3.1. Màn hình bắt đầu lập trình Hình 3.7. Các Sence để lập trình 3.3.2. Code trong game Hình 3.8. Code C# trong game 11
  13. 3.3.3. Một số Script trong game Hình 3.9. Code của player 3.3.4. SpawnEnemy 12
  14. Hình 3.10. Code tạo ra địch. 3.3.5. Bullet Hình 3.11. Code tạo ra đạn 13
  15. KẾT LUẬN Sau nhiều ngày suy nghĩ kĩ để chọn đề tài tốt nghiệp, cuối cùng em cũng đã chọn được đề tài làm game 2D trên Unity game bắn máy bay. Bước đầu tìm hiểu về Unity và Game Engine em gặp rất nhiều khó khăn trong việc tìm tài liệu và xây dựng lên ý tưởng game vì tài liệu về unity đa phần bằng tiếng anh, nhưng sau khoảng 1 tháng cố gắng tìm tòi học hỏi các anh chị của các khóa trước thì em cũng đã làm xong cho mình một game gần hoàn chỉnh để phục vụ cho đề tài tốt nghiệp. Trong thời gian làm đề tài em cũng có một số những vấn đề đạt được và chưa đạt được. Đạt đƣợc - Hiểu được cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng trên Unity. - Nâng cao kiến thức lập trình và tiếng anh chuyên ngành thông qua các trang web, các tài liệu liên quan đến Unity bằng tiếng anh. - Xây dựng được các nhân vật trong game bằng các công cụ chỉnh sửa hình ảnh như photoshop, paint. - Tổ chức load các tương tác thông qua các button. - Xây dựng được các chức năng như điểm, tạm dừng, thông qua ngôn gnwx lập trình C# trên Visual Studio. - Tạo ra âm thanh cho trò chơi và 1 số chức năng khác. Ngoài những thứ đạt được thì bên cạnh đó em cũng còn rất nhiều những vấn đề chưa đạt được. Chƣa đạt đƣợc - Do kiến thức của em về Unity còn hạn hẹp nên các chức năng trong game còn nghèo nàn. 14
  16. - Chưa xây dựng được một game hoàn chỉnh như mong muốn - Các Scrips vẫn chưa được tổ chức rõ ràng - Sắp xếp địch và chế độ chơi chưa được logic. Thuận lợi - Vận dụng được các kiến thức về C# mà em được học ở trường để làm đồ án này - Được sự hướng dẫn tận tình của thầy và sự giúp đỡ nhiệt tình của các bạn. - Có khá nhiều tài liệu trên internet. Khó khăn - Unity là một môi trường lập trình mới và hoàn toàn khác với môi trường em được học ở lớp, đối với em khi bắt tay làm thì em không biết bắt đầu như thế nào làm từ đâu và cảm thấy bối rối, bỡ ngỡ. - Lần đầu xây dựng game nên vẫn thiếu sót nhiều cái. - Việc tìm hiểu và sử dụng được unity khá khó đối với em. Kinh nghiệm rút ra - Phải biết sắp xếp thời gian rõ ràng hợp lí nếu không sẽ gặp rất nhiều khó khăn. - Để hoàn thành tốt một game thì không thì làm được một mình mà phải biết chia sẽ và phân công công việc cho mọi người. - Phải tập trung mới hoàn thành được thì nếu không tập trung thì sẽ mất phương hướng khiến công việc khó khăn hơn. Hƣớng phát triển - Tăng thêm màn chơi cho người chơi nhiều lựa chọn. - Thêm vũ khí, nâng cấp máy bay. - Cung cấp thêm nhiều loại máy bay cho người chơi có thể chọn. 15
  17. - Tạo thêm độ khó cho trò chơi. 16