Bộ giáo dục và đào TẠo trường đại học công nghệ TP. HCM ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM PHẦN MỀM GAME CHRISTMAS EVE NGÀNH: CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn: Tạ Thu Thủy Sinh viên thực hiện: Họ và tên MSSV Lớp Trần Đức Huy 1711062522 17DTHD3 Nguyễn Minh Hiền 1711060430 17DTHD3 Trần Quang Nghĩa 1711061993 17DTHD3 Huỳnh Nhật Sang 1711062371 17DTHD3 Phạm Mai Hương 1711062334 17DTHD3 TP. Hồ Chí Minh, 2020 BỘ GIÁO DỤC VÀO ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM PHẦN MỀM GAME CHRISTMAS EVE NGÀNH: CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn: Tạ Thu Thủy Sinh viên thực hiện: Họ và tên MSSV Lớp Trần Đức Huy 1711062522 17DTHD3 Nguyễn Minh Hiền 1711060430 17DTHD3 Trần Quang Nghĩa 1711061993 17DTHD3 Huỳnh Nhật Sang 1711062371 17DTHD3 Phạm Mai Hương 1711062334 17DTHD3 TP. Hồ Chí Minh, 2020 LỜI MỞ ĐẦU Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càng chịu sự đánh giá khắt khe hơn từ phía những người dùng, đặc biệt là về sản phẩm Game được nhận rất nhiều sự đánh giá từ phía các Game thủ, hay chỉ là những người chơi bình thường. 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 đến chóng mặt, rất nhiều những Game hay và hấp dẫn đã được ra đời trong thời gian qua. Phía sau 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ợ, một Middleware 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. Từ xu hướng phát triển và những bất cập trên, đồ án này sẽ khảo sát và nghiên cứu về Engine Unity – một Game Engine rất phổ biến và không kém mạnh mẽ hiện nay nhằm thực nghiệm việc phát triển một trò chơi (Demo) 2D. Chuẩn bị kiến thức và kỹ năng cho định hướng nghề nghiệp sau này của chúng em, góp phần vào sự phát triển của ngành công nghiệp Game nước nhà. Các chương đầu trong tài liệu sẽ trình bày lần lượt các khái niệm chung về Game Engine và thế giới 2D. Các chương tiếp theo sẽ giới thiệu về Engine Unity bao gồm các đặc điểm, tính năng, công cụ và thành phần trong Engine này. Sau những nội dung về thiết kế, tài liệu sẽ trình bày về việc lập trình trên Unity khi giới thiệu về ngôn ngữ lập trình cùng các lớp, hàm trong thư viện dựng sẵn của Unity thông qua các ví dụ thực tế khi phát triển một game 2D. Cuối cùng là giới thiệu về bối cảnh, cốt truyện, tài liệu hướng dẫn sử dụng của trò chơi Demo cùng chương tổng kết về các khó khăn và những thành quả trong suốt quá trình phát triển trò chơi Demo trên Unity. LỜI CÁM ƠN Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, Trường Đại học Công nghệ Thành phố Hồ Chí Minh (HUTECH) đã tạo điều kiện tốt cho chúng em thực hiện đề tài này. Em xin chân thành cảm ơn Cô Tạ Thu Thủy, là người đã tận tình hướng dẫn em, chỉ bảo em trong suốt thời gian học tập. Mặc dù chúng em đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý Cô và các bạn. Sinh viên thực hiên Trần Đức Huy Nguyễn Minh Hiền Phạm Mai Hương Huỳnh Nhật Sang Trần Quang Nghĩa ĐIỂM VÀ NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Bảng phân công nhiệm vụ Họ và tên Nhiệm vụ Nguyễn Minh Hiền Programer+Word báo cáo Huỳnh Nhật Sang Graphics Designer+Power point báo cáo Phạm Mai Hương Graphics Designer+Word báo cáo Trần Đức Huy Audio Maker+Word báo cáo Trần Quang Nghĩa Tester+Powerpoint báo cáo Mục lục CHƯƠNG 1: TỔNG QUAN 7 1. Lý do chọn đề tài 7 2. Đối tượng nghiên cứu 8 CHƯƠNG 2: UNITY ENGINE 9 1. GIỚI THIỆU CHUNG 9 2. CÁC THÀNH PHẦN TRONG UNITY 11 2.1 Assets 12 2.2 Scenes 13 2.3 Game Object 13 2.4 Components 14 2.5 Scripts 15 2.6 Prefabs 16 3. GIAO DIỆN CỦA UNITY 17 CHƯƠNG 3: MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP KHI XÂY DỰNG GAME ENGINE TRÊN UNITY 18 1. LOAD HOẠT HỌA 18 1.1 Vấn Đề 18 1.2 Giải Pháp 18 2. CHUYỂN ĐỘNG MÔ HÌNH NHẬT VẬT 2D 19 2.1 Vấn Đề 19 2.2 Giải Pháp 19 3.THÊM SỰ KIỆN VÀO CHUYỂN ĐỘNG CỦA NHÂN VẬT 21 3.1 Vấn đề 21 3.2 Giải pháp 21 4.XÂY DỰNG GIAO DIỆN GAME 23 4.1 Vấn đề 23 4.2 Giải pháp 23 5.ÂM THANH TRONG GAME 25 5.1 Vấn đề 25 5.2 Giải pháp 26 CHƯƠNG 4 ỨNG DỤNG GAME PHÁT TRIỂN TRÊN UNITY 29 1. GIỚI THIỆU GAME 30 2. CÁC QUY LUẬT CHƠI CHÍNH 31 2.1 Di chuyển 31 2.2 Điểm 32 3. DỮ LIỆU GAME CHRISTMAS EVE 33 3.1 Màn Hình Bắt Đầu Lập Trình 33 3.2 Code Trong Game 34 4. MỘT SỐ CLASS QUAN TRỌNG TRONG GAME 35 4.1 Santafailscript 35 4.2Backgroudscript 36 4.3Gamecontroller 37 5. MÔ HÌNH CHI TIẾT TỪNG MÀN HÌNH 42 Đạt Được 48 Thuận Lợi 49 Khó Khăn 49 Kinh Nghiệm Rút Ra 49 Hướng Phát Triển 49 CHƯƠNG 1: TỔNG QUAN 1.Lý do chọn đề tài Xã hội ngày càng phát triển, nhu cầu giải trí của con người ngày càng tăng cao. Cùng với sự phát triển của công nghệ thông tin, điện tử, các thiết bị chơi game ngày càng phổ biến. Trong những năm gần đây ngành công nghệ game nổi lên và đem lại doanh thu khổng lồ. Có thể nói game không chỉ là một phương tiện giải trí cơ bản, nó còn là một lĩnh vực đáng quan tâm và theo đuổi. Thiết kế game là một công việc không dễ dàng đòi hỏi rất nhiều thời gian và công sức, tuy nhiên qua đó ta có thể biến những dòng code khô khan thành những trải nghiệm thú vị cho người chơi, đồng thời có thể học hỏi những kiến thức mới về nền tảng Unity Framework và củng cố ngôn ngữ C. 2.Đối tượng nghiên cứu Nền tảng Unity Engine Cách thiết kế nhân vật, tạo bản đồ, khung cảnh, character animation, xử lý va chạm, điểm số, hoạt ảnh, UI, xử lý hiệu ứng hình ảnh, âm thanh,… CHƯƠNG 2: UNITY ENGINE 1.GIỚI THIỆU CHUNG Hình 1.1 Logo của Unity Engine Nhà phát triển: Unity Technologies Phiên bản mới nhất : 5 (phát hành vào ngày 1142012) Được viết bởi ngôn ngữ : C++, C Phát triển Game cho các hệ điều hành : Windows, Mac OS X (tạo và đóng gói), Wii, iPhoneiPad, Xbox 360, Android, PS3 (chỉ đóng gói ; cần giấy phép bổ sung cho từng nền tảng) Giấy phép: Độc quyền Website: www.unity3d.com Unity là một 3D Game Engine, là một công cụ thiết kế Game dành cho PC, Mac và nhiều hệ máy di động khác. Unity được sự hỗ trợ của JustInTime 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ể tận dụng lợi thế của tốc độ 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ều này rất quan trọng cho Game để thực thi code vào những thời điểm cần thiết trong suốt thời gian chạy (Runtime). 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ền khác vào chức năng của nó, như Engine mô phỏng vật lý PhysicX 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. 2. CÁC THÀNH PHẦN TRONG UNITY 2.1 Assets Assets là những tài nguyên xây dựng nên một dự án Unity. Từ những tập tin hình ảnh, mô hình 3D đến các tập tin âm thanh. Unity gọi các tập tin mà chúng ta dùng để tạo nên trò chơi là tài sản (Assets). Điều này lí giải tại sao tất cả các tập tin, thư mục của các dự án Unity đều được lưu trữ trong một thư mục có tên là “Assets”. Hình 1.2 Asset trong Uinty 2.2 Scenes Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) nghĩa là một màn chơi riêng biệt hoặc một khu vực hay thành phần có trong nội dung của trò chơi (ví dụ như Game menu). Bằng cách tạo nên nhiều Scenes cho trò chơi, chúng ta có thể phân phối thời gian tải hoặc kiểm tra các phần khác nhau của trò chơi một cách riêng lẻ. Hình 1.3 Các Scene của Unity 2.3 Game Object Khi Assets được sử dụng trong Scene, chúng trở thành Game Object – một thuật ngữ được sử dụng trong Unity (đặc biệt là trong mảng lập trình). Tất cả các Game Object đều chứa ít nhất một thành phần là Transform. Transform là thông tin về vị trí, góc xoay và tỉ lệ của đối tượng, tất cả được mô tả bởi bộ 3 số X, Y, Z trong hệ trục tọa độ. Thành phần này có thể được tùy biến lại trong quá trình lập trình nhằm thay đổi vị trí, góc quay và tỉ lệ của đối tượng qua các đoạn mã. Hình 1.4 Kéo tài nguyên vào Scene để sử dụng 2.4 Components Components có nhiều hình thức khác nhau. Chúng có thể xác định hành vi, cách xuất hiện,… hay ảnh hưởng đến các khía cạnh khác trong chức năng của Game Object trong trò chơi. Bằng cách “gắn” chúng vào trong Game Object, chúng ta ngay lập tức có thể áp dụng tác động của chúng lên đối tượng. Những Components phổ biến trong quá trình phát triển trò chơi đều được Unity hỗ trợ sẵn. Hình 1.5 Các thành phần trong đối tượng camera 2.5 Scripts Được Unity xem như một Components, Script là một thành phần thiết yếu trong quá trình phát triển trò chơi và đáng được đề cập đến như một khái niệm “chìa khóa”. Unity cung cấp cho chúng ta khả năng viết Script bằng cả 3 loại ngôn ngữ là: JavaScript, C và Boo (một dẫn xuất của ngôn ngữ Python). Hình 1.6 Cách tạo file script mới Một đoạn script muốn thực thi được thì nó phải được gắn vào một đối tượng Hình 1.7 Một file Script đang gắn vào đối tượng 2.6 Prefabs Prefabs cho phép chúng ta lưu trữ các đối tượng với những Components và những thiết đặt hoàn chỉnh. Hình 1.8 Một số đối tượng trong Prefabs 3.GIAO DIỆN CỦA UNITY Giao diện của Unity có khả năng tùy chỉnh bố trí tương tự như nhiều môi trường làm việc khác. Dưới đây là một kiểu bố trí điển hình trong Unity: Hình 1.9 Giao diện của Unity ∗ Chú thích: Scene (1): Nơi mà trò chơi sẽ được xây dựng Hierarchy (2): Danh sách các Game Object trong scene Inspector (3): Những thiết lập, thành phần, thuộc tính của đối tượng (hoặc Asset) đang được chọn Game (4): Cửa sổ xem trước, nó chỉ hoạt động trong chế độ “Play” (Preview – xem trước) Project (5): Danh sách các Assets của dự án, được ví như thư viện của dự án CHƯƠNG 3: MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP KHI XÂY DỰNG GAME ENGINE TRÊN UNITY 1.LOAD HOẠT HỌA 1.1 Vấn Đề Game 2D được xây dựng từ nhiều mô hình 2D được đặt lên không gian 2 chiều sao cho hài hòa với nhau để tạo thành cảnh vật trong game. Do đó việc nạp và hiển thị được mô hình 2D trong game là vô cùng quan trọng. 1.2 Giải Pháp Các mô hình 2D, 3D thông thường được thiết kế sẵn bằng các phần mềm thiết kế 3D chuyên dụng như Adobe InDesign, Adobe Photoshop, CorelDRAW,... Sau đó, mô hình sẽ được đưa vào game engine để sử dụng. Ta có thể kéo thả để đưa các mô hình 2D vào mục sprite unity như sau: Hình 2.1 Minh họa kéo thả các mô hình 2D vào thư mục Sprite Engine Unity hỗ trợ rất nhiều định dạng mô hình 2D, 3D khác nhau như: PNG, JPG ... Unity có hỗ trợ load mô hình bằng cách kéo thả SPRITE vào vị trí bất kỳ trong Scene. 2.CHUYỂN ĐỘNG MÔ HÌNH NHẬT VẬT 2D 2.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.2 Giải Pháp Trước tiên mô hình 2D cần phải có sẵn animation bên trong. Khi import mô hình vào Unity, animation trong mô hình được tự động chuyển thành một AnimationClip. Điều này giúp animation này có thể dùng cho các mô hình khác trong project. Trước hết ta phải tạo AnimationClip từ animation có sẵn của mô hình. Có 2 loại mô hình 2D có sẵn animation: Loại thứ nhất: Mô hình 2D có chứa nhiều animation bên trong .Đối tượng santa (ông già noel) có 2 animation là ridding và flyhigh. Hình 2.2 Mô hình 2D bên trong chứa nhiều animation Loại thứ hai: Mô hình 2D chỉ chứa một animation.Đối tượng presents (hộp quà) chỉ có một animation là presentsglown. Hình 2.3 Mô hình 2D chứa một animation Tiếp theo, để gọi thực hiện một AnimationClip trong một đối tượng ta chọn vào đối tượng muốn thêm animation. Sau đó chọn window mở cửa sổ animation và tạo một animation mới bằng thao tác kéo thả quen thuộc trong unity: Hình 2.4 Tạo animation bằng cách kéo thả. 3.THÊM SỰ KIỆN VÀO CHUYỂN ĐỘNG CỦA NHÂN VẬT 3.1 Vấn đề Trong lúc lập trình kịch bản 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. Trong Unity, khi một chuyển động chạy xong không tự phát ra sự kiện. 3.2 Giải pháp Hình 2.5 Đặt điều kiện flypower để chuyển animation. 4.XÂY DỰNG GIAO DIỆN GAME 4.1 Vấn đề Giao diện đồ họa người dùng là một phần quan trọng 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, Checkbox, Slider, … lên màn hình. 4.2 Giải pháp Để làm được điều này chúng ta dùng cách click phải chuột tạo new gameobject với dạng UI. Sau đó click chọn CANVAS Hình 2.6 Tạo UI để thêm button Sau đó tạo click phải chuột tương tự để tạo button trong canvas như sau: Hình 2.7 Tạo Button Để vẽ một Image ra panel, chúng ta sử dụng kéo thả sprite vào ô source image của đối tượng panel đó như sau: Hình 2.8 Chèn ảnh nền vào panel 5.ÂM THANH TRONG GAME 5.1 Vấn đề Âm thanh là yếu tố không kém phần quan trọng trong ứng dụng game. Thật nhàm chán khi một cảnh đánh đánh nhau, bắn nhau hay các hiệu ứng đẹp mắt mà không có âm thanh. Âm thanh 3 chiều sẽ làm cho game thực hơn và sống động hơn. 5.2 Giải pháp Để chơi được một file âm thanh trong Unity có 2 cách: bằng code hoặc trên giao diện. Dù chọn cách nào thì trước hết chúng ta phải có sẵn các file âm thanh và import vào project. Sau khi import âm thanh vào project, nếu file hợp lệ chúng ta sẽ thấy như hình sau và có thể nhấn nút play để nghe thử. Hình 2.9 Thông tin file âm thanh Cách 1: Tạo trên giao diện Trên 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 “AudioSource” cho đối tượng này. AudioSource là một đối tượng âm thanh. Muốn Play hay Stop, thay đổi cách lặp, tăng giảm volume nhạc thì phải thông qua đối tượng này. Hình 2.10 Thêm thành phần Audio Source Hình 2.11 Thêm file âm thanh cho thành phần AudioSource Nếu 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, nhưng để áp dụng vào cho game thì không được linh hoạt bằng cách sử dụng script. Cách 2: Cách chơi nhạc bằng code Gán đường dẫn file nhạc cho âm thanh: Sau đó chỉ cần gọi các phương thức Play() để chạy file âm thanh Chương 4 ỨNG DỤNG GAME PHÁT TRIỂN TRÊN UNITY 1.GIỚI THIỆU GAME Giáng sinh năm này, khi Ông Già Noel cùng những chú Yêu Tinh lùn đang chuẩn bị những món quà cho mọi đứa trẻ đang trông chờ. Hằng năm, những chú Yêu Tinh sẽ được nghỉ trước ngày Giáng Sinh 30 ngày. Vậy mà, vì hiện tượng bùng nổ dân số đang ngày càng trầm trọng, nên số lượng quà mỗi năm càng ngày càng tăng vì số lượng trẻ em càng ngày càng tăng. Thế là, con số 30 ngày nghỉ của các chú Yêu Tinh cứ rút lại dần chỉ còn 20 ngày, 15 ngày, 10 ngày…. Đến nay, sau khi đã hoàn thành tất cả những món quà cho trẻ em trên khắp thế giới thì kì nghỉ Giáng Sinh của những chú Yêu Tinh gần như chả còn ngày nào. Từ đó, đã gây nên sự tức giận trong lòng các chú Yêu Tinh lùn. Họ muốn được những kì nghỉ như mọi năm, họ lo sợ rằng trong khi mình chuẩn bị sẵn sàng cho mọi đứa trẻ đón Giáng Sinh thì chính mình còn không có được kì nghỉ Giáng Sinh. Cuối cùng, những chú Yêu Tinh đã quyết định, trút hết cơn giận của mình vào đêm Giáng Sinh năm nay. Họ đã lên kế hoạch làm thủng túi quà của Ông Già Noel để làm rơi hết quà. Ông ấy không hề biết đến đều này, và Giáng Sinh của chúng ta đang có nguy cơ tan thành mây khói. Trong khi số quà mang theo đang dần dần rơi ra hết, may mắn thay, Ông Già Noel đã phát hiện ra túi quà bị hỏng, thế là, nhiệm vụ của chúng ta là phải giúp ông ấy thu thập lại số quà đã mất để kịp thời cứu lấy đêm Giáng Sinh. Hình 4.1 Màn hình để bắt đầu chơi. 2.CÁC QUY LUẬT CHƠI CHÍNH 2.1 Di chuyển Người chơi sẽ di chuyển bằng cách nhấn chuột hoặc chạm vào màn hình cảm ứng trên điện thoại di động. Di chuyển lên xuống để né các vật cản (đỉnh băng nhọn và cây thông). Tích điểm bằng cách thu thập hộp quà. Chỉ có thể di chuyển trong phạm vi màn hình camera. . Hình 4.2 Màn hình để chơi game 2.2 Điểm Người chơi sẽ được cộng điểm khi ăn được hộp quà, mỗi lần ăn được 1 hộp quà người chơi sẽ được cộng 1 điểm, nếu người chơi va chạm với chứng ngại vật thì game over. Hình 4.3 Số hộp quà người chơi nhận được 3.DỮ LIỆU GAME CHRISTMAS EVE 3.1 Màn Hình Bắt Đầu Lập Trình Game được hình thành bởi 2 Sence trên màn hình và hoạt họa. Hình 4.4 Tổng thể các Sence để lập trình game 3.2 Code Trong Game Ngôn ngữ được chọn để lập trình game là ngôn ngữ C trên MonoDeveloper được Unity hỗ trợ. Hình 4.5 Code C có trong game 4.MỘT SỐ CLASS QUAN TRỌNG TRONG GAME 4.1 Santafailscript Hình 4.6 Class santafailscript Ý nghĩa: đây là đoạn script của đối tượng santa (ông già noel) để điều khiển cách di chuyển của đối tượng này. +Hàm start(): Đây là hàm mặt định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo file âm thanh bellClip (tiếng chuông ông già noel) và đặt các giá trị, biến được dùng là flyPower , gameover (nếu đối tượng gameover là null thì tìm với tag là “gameover” được đặt trước). +Hàm gameover(): dừng phát âm thanh (bellClip) và gọi hàm gameover từ class gamecontroller. +Hàm update(): ở hàm này chương trình sẽ nhận vào input là 1 lần click chuột trái hoặc 1 chạm vào màn hình để tăng vị trí trục y của đối tượng santa thêm flyPower đơn vị. +Hàm OnTriggerEnter2D(): đây là một trong những hàm đặc biệt của unity để xử lý va chạm xuyên vật thể để kích hoạt một hành động nào đó – Trong trường hợp này là tính điểm khi va chạm với hộp quà (gift) trong game. +Hàm OnCollisionEnter2D():hàm đặc biệt của unity để xử lý va chạm vật thể để kích hoạt một hành động nào đó – Trong trường hợp này là gọi hàm gameover và đặt biến gameover là true. 4.2 Backgroudscript Hình 4.7 Class Backgroundscript Ý nghĩa: đây là đoạn script của hình nền (back ground) để điều khiển vòng lặp của đối tượng này. +Hàm start(): Đây là hàm mặt định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là đặt vị trí ban đầu của hình nền (startpossition) và tốc độ chạy của hình nền (tranSpeed), giới hạn vòng lặp (loopRange). +Hàm Update(): khi hình nền chạy đến điểm dừng loop range thì hàm này sẽ tạo vòng lặp đặt hình nền game về lại vị trí cũ. 4.3 Gamecontroller Hình 4.8 Class Gamecontroller Ý nghĩa: đây là đoạn script điều khiển hoạt động của game (nó có khả năng quyết định khi nào game chạy và kết thúc). +Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo file âm thanh chrisSong (last christmas) và ngưng động thời gian của chương trình, mở giao diện khởi động game (begin panel) cùng với đó là ẩn đi giao diện game over. +Hàm Update(): đặt điều kiện nếu game over thì dừng phát âm thanh.Khi nhận vào Input là một lần click chuột trái hoặc một chạm cảm ứng thì bắt đầu game bằng cách cho thời gian tiếp tục chạy. +Hàm startOver(): dùng để cài vào chức năng của nút restart để khởi động lại toàn bộ game (scene1). +Hàm clickbegin(): tắt giao diện bắt đầu game (begin panel) và phát âm thanh nền (chrisSong). +Hàm getpoint(): đây là hàm tính điểm khi nhân vật santa va chạm với hộp quà. +Hàm GameOver(): khi người chơi thua thì hàm này sẽ mở gameover panel và ngưng động thời gian, hiện điểm số người chơi thu được. +Hàm QuickGame(): cài vào nút trở về menu để chuyển sang màn hình menu 4.4 Menucontroller Hình 4.9 Class Menucontroller Ý nghĩa: Dùng để điều khiển các chức năng trong màn hình menu như: +Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là ẩn đi các panel sẵn có của menu là info panel (panel thông tin nhà phát triển) và tutorials panel (panel hướng dẫn chơi). +Hàm clickplay(): dùng để cài vào nút play – Mở màn hình game chính để chơi game. +Hàm update(): rỗng (đây là hàm để cập nhật các biến đổi theo tốc độ khung hình – Trong trường hợp này là không cần đến). +Hàm openexitpanel(): dùng để hiện panel exit game (bản thông báo thoát game) khi nhấn nút có biểu tượng exit (mũi tên đỏ). +Hàm clickexit(): cài vào chức năng của nút yes (trong bản thông báo thoát game) để thoát chương trình. +Hàm infoClick(): cài vào chức năng nút info (bên góc phải trên cùng của menu) để mở panel info. +Hàm canelBtn(): cài vào chức năng của nút no (trong bản thông báo thoát game) để hủy thoát game (tắt bản thông báo thoát game). +Hàm backclick(): cài vào nút back (trong bản info) để tắt panel info. 4.5 Snowfalling Hình 4.10 Class Snowfalling Ý nghĩa: đây là đoạn script của hiệu ứng tuyết rơi để điều khiển vòng lặp của đối tượng này. +Hàm start(): Đây là hàm mặc định trong unity, những câu lệnh trong hàm này sẽ được áp dụng trực tiếp khi màn hình (scene) chứa nó được mở ra – Trong trường hợp này là khai báo các vị trí ban đầu x,y,z và đặt tốc độ rơi của đối tượng tuyết. +Hàm Update(): di chuyển vị trí (x,y) của tuyết để tạo hiệu ứng rơi +Hàm OnTriggerEnter2D(): đây là một trong những hàm đặc biệt của unity để xử lý va chạm xuyên vật thể để kích hoạt một hành động nào đó – Trong trường hợp này dùng để tạo vòng lặp (đặt lại vị trí ban đầu) cho đối tượng tuyết. 4.6 Treeiceloop Hình 4.11 Class Treeiceloop Ý nghĩa: đây là đoạn script tương tự như Snowfalling chỉ khác ở điểm là nó chỉ di chuyển trục x chứ không phải cả x và y. 5.MÔ HÌNH CHI TIẾT TỪNG MÀN HÌNH DANH SÁCH BIẾN CỐ VÀ XỬ LÝ TRÊN TỪNG MÀN HÌNH Màn hình giao diện bắt đầu của game (Scene Menu): Hình 5.1 Màn hình bắt đầu của game STT Biến cố Ý nghĩa Xử lý tương ứng Mã số xử lý 1 Play Bắt đầu game Mở Scene Main 1 2 Thoát Thoát phần mềm Mở UI panel exit 2 3 Info Thông tin game Mở UI panel infor 3 4 Turtorials Cách chơi và luật Mở UI panel Turtorials 4 Bảng 5.1 Biến cố trên màn hình STT Mã số Loại Ý nghĩa Ghi chú 1 1 Button Mở Scene Main 2 2 Button Thoát game 3 3 Button Thông tin game 4 4 Button Hướng dẫn chơi Bảng 5.2 Xử lý biến cố Màn hình main STT Biến cố Ý nghĩa Xử lý tương ứng Mã số xử lý 1 Tap to play Bắt đầu game Run time 5 2 Click, tap Điều khiển Santa Flypower = +38 6 3 Va chạm quà Thu thập quà Score = +1 7 4 Va chạm vật cản Kết thúc game Xuất hiện Panel game over 8 Hình 5.2 Màn hình chơi game Bảng 5.3 Biến cố trên Scene Main STT Mã số Loại Ý nghĩa Ghi chú 1 5 Click, tap Bắt đầu run time Runtime = 1 2 6 Click, tap Điều khiển Santa bay lên Flypower=+38 3 7 Textbox Điểm số Score=+1 4 8 Panel Kết thúc game gameoverPanel Bảng 5.4 Xử lý biến cố Màn hình game over: Hình 5.3Màn hình game over. STT Biến cố Ý nghĩa Xử lý tương ứng Mã số xử lý 1 Restart Bắt đầu lại game Mở Scene Main 9 2 Thoát Thoát ra màn hình lúc đầu Mở Scene Menu 10 3 Score Số điểm người chơi nhận được Thông qua số quà nhặt được 11 Bảng 5.5 Biến cố trên màn hình over STT Mã số Loại Ý nghĩa Ghi chú 1 9 Button Tạo mới game, mở Scene main 2 10 Button Trả về màn hình đầu tiên 3 11 Textbox Trả về số hộp quà Bảng 5.6 Xử lý biến cố Sơ đồ use case KẾT LUẬN Sau nhiều ngày suy nghĩ kĩ để chọn đề tài tốt, cuối cùng chúng em cũng đã chọn được đề tài làm game 2d trên Unity Game Chirstmas Eve. Bước đầu tìm hiểu về Unity và Game Engine chúng em gặp rất nhiều khó khăn trong việc tìm tài liệu và xây dựng ý 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 bạn đi trước thì chúng em cũng đã làm cho mình được 1 game gần hoàn chỉnh để phục vụ cho đề tài báo cáo. Trong thời gian làm đề tài chúng 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 những tài liệu về Unity bằng tiếng Anh. Xây dựng được các nhân vật trong game bằng phần mềm hỗ trợ photoshop. Tổ chức load các màn tương ứng thông qua các button. Xây dựng các chức năng như điểm, máu, màn chơi thông qua ngôn ngữ lập trình C trên MonoDevelop. Tạo âm thanh cho cho trò chơi và 1 số chức năng khác. Ngoài những thứ đặt được thì em 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 chúng em về Unity còn hạn hẹp nên các chức năng trong game còn chưa được tốt. Chưa xây dựng được hoàn chỉnh 1 game. Các Script trong Unity tổ chức chưa thực sự rõ ràng. Chưa có sự phong phú trong màn chơi và nhân vật. Thuận Lợi Vận dụng được các kiến thức đã học trong. Được sự giúp đỡ từ cô và các bạn. Tài liệu rất nhiều trên Internet. Khó Khăn Môi trường lập trình mới. Cần thời gian để thích nghi và tìm hiểu. Kinh Nghiệm Rút Ra Quản lý và sắp xếp thời gian một cách hợp lý. Cải thiện làm việc nhóm. Tập trung trong công việc. Hướng Phát Triển Tối ưu hóa. Tăng thêm màn chơi. Cung cấp thêm công cụ. Phát triển ứng dụng trên nền hệ điều hành IOS. TÀI LIỆU THAM KHẢO Ý tưởng khởi nguồn từ flappy bird: 1 http:vneconomy.vncuocsongso10lydoflappybirdgaysot20140207112014692.htm 2 https:news.zing.vnnhunggamedidongtunggaysottoancaupost390933.html Tìm hiểu về Unity 3https:vi.wikipedia.orgwikiUnity_(ph%E1%BA%A7n_m%E1%BB%81m_l%C3%A0m_game) 4 https:unity.comlearneducators 5 https:xemtailieu.comtailieubaibaocaodoancosonganhlaptrinhgamebansungunity3d1854023.html 6 https:viblo.asiapgioithieuveunityenginegameenginephobiennhathiennayV3m5WBj8lO7 7 https:techblog.vngioithieuveunityenginegameenginephobiennhathiennay Các game tham khảo 8 Flappy Bird 9 Game bắn máy bay 2D
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM PHẦN MỀM GAME CHRISTMAS EVE NGÀNH: CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn: Tạ Thu Thủy Sinh viên thực hiện: Họ tên MSSV Lớp Trần Đức Huy 1711062522 17DTHD3 Nguyễn Minh Hiền 1711060430 17DTHD3 Trần Quang Nghĩa 1711061993 17DTHD3 Huỳnh Nhật Sang 1711062371 17DTHD3 Phạm Mai Hương 1711062334 17DTHD3 TP Hồ Chí Minh, 2020 BỘ GIÁO DỤC VÀO ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM PHẦN MỀM GAME CHRISTMAS EVE NGÀNH: CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn: Tạ Thu Thủy Sinh viên thực hiện: Họ tên MSSV Lớp Trần Đức Huy 1711062522 17DTHD3 Nguyễn Minh Hiền 1711060430 17DTHD3 Trần Quang Nghĩa 1711061993 17DTHD3 Huỳnh Nhật Sang 1711062371 17DTHD3 Phạm Mai Hương 1711062334 17DTHD3 TP Hồ Chí Minh, 2020 LỜI MỞ ĐẦU Trong thời đại công nghệ thông tin nay, sản phẩm công nghệ ngày chịu đánh giá khắt khe từ phía người dùng, đặc biệt sản phẩm Game nhận nhiều đánh giá từ phía Game thủ, người chơi bình thường Ngành cơng nghiệp Game nói bùng nổ, với tốc độ phát triển đến chóng mặt, nhiều Game hay hấp dẫn đời thời gian qua Phía sau Game phát triển tiếng có Game Engine Game Engine công cụ hỗ trợ, Middleware giúp người phát triển viết Game cách nhanh chóng đơn giản, đồng thời cung cấp khả tái sử dụng tài nguyên mã nguồn cao phát triển nhiều Game từ Game Engine Từ xu hướng phát triển bất cập trên, đồ án khảo sát nghiên cứu Engine Unity – Game Engine phổ biến không mạnh mẽ nhằm thực nghiệm việc phát triển trò chơi (Demo) 2D Chuẩn bị kiến thức kỹ cho định hướng nghề nghiệp sau chúng em, góp phần vào phát triển ngành công nghiệp Game nước nhà Các chương đầu tài liệu trình bày khái niệm chung Game Engine giới 2D Các chương giới thiệu Engine Unity bao gồm đặc điểm, tính năng, cơng cụ thành phần Engine Sau nội dung thiết kế, tài liệu trình bày việc lập trình Unity giới thiệu ngơn ngữ lập trình lớp, hàm thư viện dựng sẵn Unity thông qua ví dụ thực tế phát triển game 2D Cuối giới thiệu bối cảnh, cốt truyện, tài liệu hướng dẫn sử dụng trò chơi Demo chương tổng kết khó khăn thành suốt trình phát triển trò chơi Demo Unity LỜI CÁM ƠN Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, Trường Đại học Cơng nghệ Thành phố Hồ Chí Minh (HUTECH) tạo điều kiện tốt cho chúng em thực đề tài Em xin chân thành cảm ơn Cơ Tạ Thu Thủy, người tận tình hướng dẫn em, bảo em suốt thời gian học tập Mặc dù chúng em cố gắng hoàn thành đồ án phạm vi khả cho phép, chắn không tránh khỏi thiếu sót, kính mong cảm thơng tận tình bảo quý Cô bạn Sinh viên thực hiên Trần Đức Huy Nguyễn Minh Hiền Phạm Mai Hương Huỳnh Nhật Sang Trần Quang Nghĩa ĐIỂM VÀ NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Bảng phân công nhiệm vụ Họ tên Nguyễn Minh Hiền Huỳnh Nhật Sang Nhiệm vụ Programer+Word báo cáo Graphics Designer+Power point Phạm Mai Hương Trần Đức Huy Trần Quang Nghĩa báo cáo Graphics Designer+Word báo cáo Audio Maker+Word báo cáo Tester+Powerpoint báo cáo Mục lục CHƯƠNG 1: TỔNG QUAN Lý chọn đề tài Đối tượng nghiên cứu CHƯƠNG 2: UNITY ENGINE .9 GIỚI THIỆU CHUNG CÁC THÀNH PHẦN TRONG UNITY .11 2.1 Assets 12 2.2 Scenes 13 2.3 Game Object 13 2.4 Components 14 2.5 Scripts 15 2.6 Prefabs 16 GIAO DIỆN CỦA UNITY 17 CHƯƠNG 3: MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP KHI XÂY DỰNG GAME ENGINE TRÊN UNITY 18 LOAD HOẠT HỌA 18 1.1 Vấn Đề 18 1.2 Giải Pháp 18 CHUYỂN ĐỘNG MƠ HÌNH NHẬT VẬT 2D .19 2.1 Vấn Đề 19 2.2 Giải Pháp 19 3.THÊM SỰ KIỆN VÀO CHUYỂN ĐỘNG CỦA NHÂN VẬT 21 3.1 Vấn đề 21 3.2 Giải pháp .21 4.XÂY DỰNG GIAO DIỆN GAME .23 4.1 Vấn đề 23 4.2 Giải pháp .23 5.ÂM THANH TRONG GAME .25 5.1 Vấn đề 25 5.2 Giải pháp .26 CHƯƠNG ỨNG DỤNG GAME PHÁT TRIỂN TRÊN UNITY 29 GIỚI THIỆU GAME 30 CÁC QUY LUẬT CHƠI CHÍNH .31 2.1 Di chuyển 31 2.2 Điểm 32 DỮ LIỆU GAME CHRISTMAS EVE 33 3.1 Màn Hình Bắt Đầu Lập Trình 33 3.2 Code Trong Game34 MỘT SỐ CLASS QUAN TRỌNG TRONG GAME 35 4.1 Santafailscript 35 4.2Backgroudscript .36 4.3Gamecontroller .37 MƠ HÌNH CHI TIẾT TỪNG MÀN HÌNH 42 Đạt Được 48 Thuận Lợi 49 Khó Khăn 49 Kinh Nghiệm Rút Ra 49 Hướng Phát Triển 49 10 Hình 4.5 Code C# có game MỘT SỐ CLASS QUAN TRỌNG TRONG GAME 4.1 Santafailscript Hình 4.6 Class santafailscript Ý nghĩa: đoạn script đối tượng santa (ông già noel) để điều khiển cách di chuyển đối tượng 34 +Hàm start(): Đây hàm mặt định unity, câu lệnh hàm áp dụng trực tiếp hình (scene) chứa mở – Trong trường hợp khai báo file âm bellClip (tiếng chuông ông già noel) đặt giá trị, biến dùng flyPower , gameover (nếu đối tượng gameover null tìm với tag “gameover” đặt trước) +Hàm gameover(): dừng phát âm (bellClip) gọi hàm gameover từ class gamecontroller +Hàm update(): hàm chương trình nhận vào input lần click chuột trái chạm vào hình để tăng vị trí trục y đối tượng santa thêm flyPower đơn vị +Hàm OnTriggerEnter2D(): hàm đặc biệt unity để xử lý va chạm xuyên vật thể để kích hoạt hành động – Trong trường hợp tính điểm va chạm với hộp quà (gift) game +Hàm OnCollisionEnter2D():hàm đặc biệt unity để xử lý va chạm vật thể để kích hoạt hành động – Trong trường hợp gọi hàm gameover đặt biến gameover true 4.2 Backgroudscript 35 Hình 4.7 Class Backgroundscript Ý nghĩa: đoạn script hình (back ground) để điều khiển vòng lặp đối tượng +Hàm start(): Đây hàm mặt định unity, câu lệnh hàm áp dụng trực tiếp hình (scene) chứa mở – Trong trường hợp đặt vị trí ban đầu hình (startpossition) tốc độ chạy hình (tranSpeed), giới hạn vịng lặp (loopRange) +Hàm Update(): hình chạy đến điểm dừng loop range hàm tạo vịng lặp đặt hình game lại vị trí cũ 4.3 Gamecontroller 36 Hình 4.8 Class Gamecontroller Ý nghĩa: đoạn script điều khiển hoạt động game (nó có khả định game chạy kết thúc) +Hàm start(): Đây hàm mặc định unity, câu lệnh hàm áp dụng trực tiếp hình (scene) chứa mở – Trong trường hợp khai báo file âm chrisSong (last christmas) ngưng động thời gian chương trình, mở giao diện khởi động game (begin panel) với ẩn giao diện game over +Hàm Update(): đặt điều kiện game over dừng phát âm thanh.Khi nhận vào Input lần click chuột trái 37 chạm cảm ứng bắt đầu game cách cho thời gian tiếp tục chạy +Hàm startOver(): dùng để cài vào chức nút restart để khởi động lại toàn game (scene1) +Hàm clickbegin(): tắt giao diện bắt đầu game (begin panel) phát âm (chrisSong) +Hàm getpoint(): hàm tính điểm nhân vật santa va chạm với hộp quà +Hàm GameOver(): người chơi thua hàm mở gameover panel ngưng động thời gian, điểm số người chơi thu +Hàm QuickGame(): cài vào nút trở menu để chuyển sang hình menu 4.4 Menucontroller Hình 4.9 Class Menucontroller Ý nghĩa: Dùng để điều khiển chức hình menu như: 38 +Hàm start(): Đây hàm mặc định unity, câu lệnh hàm áp dụng trực tiếp hình (scene) chứa mở – Trong trường hợp ẩn panel sẵn có menu info panel (panel thông tin nhà phát triển) tutorials panel (panel hướng dẫn chơi) +Hàm clickplay(): dùng để cài vào nút play – Mở hình game để chơi game +Hàm update(): rỗng (đây hàm để cập nhật biến đổi theo tốc độ khung hình – Trong trường hợp không cần đến) +Hàm openexitpanel(): dùng để panel exit game (bản thông báo game) nhấn nút có biểu tượng exit (mũi tên đỏ) +Hàm clickexit(): cài vào chức nút yes (trong thơng báo game) để chương trình +Hàm infoClick(): cài vào chức nút info (bên góc phải menu) để mở panel info +Hàm canelBtn(): cài vào chức nút no (trong thơng báo game) để hủy game (tắt thơng báo game) +Hàm backclick(): cài vào nút back (trong info) để tắt panel info 4.5 Snowfalling 39 Hình 4.10 Class Snowfalling Ý nghĩa: đoạn script hiệu ứng tuyết rơi để điều khiển vòng lặp đối tượng +Hàm start(): Đây hàm mặc định unity, câu lệnh hàm áp dụng trực tiếp hình (scene) chứa mở – Trong trường hợp khai báo vị trí ban đầu x,y,z đặt tốc độ rơi đối tượng tuyết +Hàm Update(): di chuyển vị trí (x,y) tuyết để tạo hiệu ứng rơi +Hàm OnTriggerEnter2D(): hàm đặc biệt unity để xử lý va chạm xuyên vật thể để kích hoạt hành động – Trong trường hợp dùng để tạo vòng lặp (đặt lại vị trí ban đầu) cho đối tượng tuyết 4.6 Treeiceloop 40 Hình 4.11 Class Treeiceloop Ý nghĩa: đoạn script tương tự Snowfalling khác điểm di chuyển trục x khơng phải x y MƠ HÌNH CHI TIẾT TỪNG MÀN HÌNH DANH SÁCH BIẾN CỐ VÀ XỬ LÝ TRÊN TỪNG MÀN HÌNH Màn hình giao diện bắt đầu game (Scene Menu): 41 Hình 5.1 - Màn hình bắt đầu game STT Biến cố Ý nghĩa Xử lý tương ứng Mã số Play Bắt đầu game Thốt Thốt phần mềm Info Thơng tin game Turtorials Cách chơi luật Bảng 5.1 - Biến cố hình Mở Scene Main Mở UI panel exit Mở UI panel infor Mở UI panel Turtorials xử lý STT Mã số Loại 1 Button 2 Button 3 Button 4 Button Bảng 5.2 - Xử lý biến cố Ý nghĩa Mở Scene Main Thốt game Thơng tin game Hướng dẫn chơi Ghi Màn hình main STT Biến cố Tap to play Ý nghĩa Bắt đầu game Xử lý tương ứng Mã số Run time 42 xử lý Click, tap Va chạm quà Va chạm vật Điều khiển Santa Thu thập quà Kết thúc game cản Hình 5.2 Màn hình chơi game Flypower = +38 Score = +1 Xuất Panel game over Bảng 5.3 Biến cố Scene Main ST Mã số Loại Ý nghĩa Ghi T Click, tap Click, tap Textbox Panel Bắt đầu run time Điều khiển Santa bay lên Điểm số Kết thúc game Runtime = Flypower=+38 Score=+1 gameoverPane l Bảng 5.4 - Xử lý biến cố Màn hình game over: 43 Hình 5.3-Màn hình game over STT Biến cố Ý nghĩa Xử lý tương ứng Mã số Restart Thoát Bắt đầu lại game Thoát hình lúc Mở Scene Main Mở Scene Menu Score đầu Số điểm người chơi Thông qua số quà 11 nhận Bảng 5.5 - Biến cố hình over ST Mã số Loại xử lý 10 nhặt Ý nghĩa Ghi T Button Tạo game, mở Scene main 10 Button Trả hình 11 Textbox Trả số hộp quà Bảng 5.6 - Xử lý biến cố Sơ đồ use case 44 KẾT LUẬN Sau nhiều ngày suy nghĩ kĩ để chọn đề tài tốt, cuối chúng em chọn đề tài làm game 2d Unity Game Chirstmas Eve Bước đầu tìm hiểu Unity Game Engine chúng em gặp nhiều khó khăn việc tìm tài liệu xây dựng ý tưởng game tài liệu unity đa phân tiếng anh, sau khoảng tháng cố gắng tìm tịi, học hỏi bạn trước chúng em làm 45 cho game gần hoàn chỉnh để phục vụ cho đề tài báo cáo Trong thời gian làm đề tài chúng em có số vấn đề đạt chưa đạt Đạt Được - Hiểu cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng Unity - Nâng cao kiến thức lập trình tiếng anh chuyên ngành thông qua tài liệu Unity tiếng Anh - Xây dựng nhân vật game phần mềm hỗ trợ photoshop - Tổ chức load tương ứng thông qua button - Xây dựng chức điểm, máu, chơi thơng qua ngơn ngữ lập trình C# MonoDevelop - Tạo âm cho cho trò chơi số chức khác Ngoài thứ đặt em cịn nhiều vấn đề chưa đạt Chưa Đạt Được - Do kiến thức chúng em Unity hạn hẹp nên chức game chưa tốt - Chưa xây dựng hoàn chỉnh game 46 - Các Script Unity tổ chức chưa thực rõ ràng - Chưa có phong phú chơi nhân vật Thuận Lợi - Vận dụng kiến thức học - Được giúp đỡ từ cô bạn - Tài liệu nhiều Internet Khó Khăn - Mơi trường lập trình - Cần thời gian để thích nghi tìm hiểu Kinh Nghiệm Rút Ra - Quản lý xếp thời gian cách hợp lý - Cải thiện làm việc nhóm - Tập trung cơng việc Hướng Phát Triển - Tối ưu hóa - Tăng thêm chơi - Cung cấp thêm công cụ - Phát triển ứng dụng hệ điều hành IOS TÀI LIỆU THAM KHẢO Ý tưởng khởi nguồn từ flappy bird: 47 [1] http://vneconomy.vn/cuoc-song-so/10-ly-do-flappy-bird-gay-sot- 20140207112014692.htm [2] https://news.zing.vn/nhung-game-di-dong-tung-gay-sot-toan-cau- post390933.html Tìm hiểu Unity [3]https://vi.wikipedia.org/wiki/Unity_(ph%E1%BA%A7n_m%E1%BB %81m_l%C3%A0m_game) [4] https://unity.com/learn/educators [5] https://xemtailieu.com/tai-lieu/bai-bao-cao-do-an-co-so-nganh- lap-trinh-game-ban-sung-unity-3d-1854023.html [6] https://viblo.asia/p/gioi-thieu-ve-unity-engine-game-engine-pho- bien-nhat-hien-nay-V3m5WBj8lO7 [7] https://techblog.vn/gioi-thieu-ve-unity-engine-game-engine-pho- bien-nhat-hien-nay Các game tham khảo [8] Flappy Bird [9] Game bắn máy bay 2D 48