Sử dụng thuật toán a để xây dựng trò chơi tower defense bằng unity

52 23 0
Sử dụng thuật toán a để xây dựng trò chơi tower defense bằng unity

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC SƯ PHẠM – ĐẠI HỌC ĐÀ NẴNG KHOA TIN HỌC BÁO CÁO ĐỒ ÁN TỐT NGHIỆP TÊN ĐỀ TÀI SỬ DỤNG THUẬT TOÁN A* ĐỂ XÂY DỰNG TRÒ CHƠI TOWER DEFENSE BẰNG UNITY Giảng viên hướng dẫn: TS Nguyễn Đình Lầu Sinh viên: NGUYỄN VĂN HUẤN MSSV: 312022131130 Lớp sinh hoạt: 13CNTT Ngành: CỬ NHÂN CÔNG NGHỆ THÔNG TIN Khoa: KHOA TIN HỌC ĐÀ NẴNG, 04/2017 LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn quý thầy cô khoa Tin học quý thầy cô giảng dạy công tác trường Đại học Sư Phạm - Đại học Đà Nẵng truyền đạt kiến thức quý báu cho chúng em năm học vừa qua Đặt biệt, em xin chân thành cảm ơn thầy TS Nguyễn Đình Lầu thầy giáo Khoa Tin học, Trường Đại học Sư Phạm Đà Nẵng xin cảm ơn q thầy tận tình dạy bảo, giúp đỡ em suốt thời gian em thực đề tài Và cho em gửi lời cảm ơn đến Công Ty Gameloft chi nhánh Đà Nẵng,Công Ty Asian Tech tạo điều kiện cho em tham gia thực tập đơn vị cung cấp tất sở vật chất trang thiết bị cho em thời gian vừa qua Xin cảm ơn anh chị công ty, đặc biệt anh Đinh Bá Trí (Cơng ty GameLoft), anh Trương Văn Hồn anh Giang Hải Anh (Cơng ty Asian Tech) tận tình hướng dẫn giúp đỡ em suốt thời gian chúng em tham gia thực tập Xin trân trọng cảm ơn! Đà Nẵng, ngày 20 tháng 04 năm 2017 Sinh viên thực Nguyễn Văn Huấn Xây dựng trò chơi TOWER DEFENSE Unity LỜI CAM ĐOAN Em xin cam đoan: Những nội dung báo cáo thực hướng dẫn trực tiếp TS Nguyễn Đình Lầu anh chị Công ty Asian Tech Mọi tham khảo dùng báo cáo trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm Sinh viên thực Nguyễn Văn Huấn Xây dựng trò chơi TOWER DEFENSE Unity NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN Đà Nẵng, ngày tháng năm 2017 Cán hướng dẫn Xây dựng trò chơi TOWER DEFENSE Unity NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN Đà Nẵng, ngày tháng năm 2017 Hội đồng phản biện Xây dựng trò chơi TOWER DEFENSE Unity MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN DANH MỤC HÌNH ẢNH DANH MỤC BẢNG MỞ ĐẦU 10 Lý chọn đề tài 10 Khách thể đối tượng nghiên cứu 10 Giới hạn phạm vi nghiên cứu 10 Mục đích nghiên cứu 11 Nhiệm vụ nghiên cứu 11 Phương pháp nghiên cứu 11 Bố cục đề tài 11 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 12 1.1 Game thành phần 12 1.2 Sử dụng cho Unity 14 1.2.1 Giao diện Unity 14 1.2.2 Các đối tượng 16 1.3 Hệ thống đồ họa 17 1.4 Hệ thống vật lý 18 1.4.1 Rigidbody2D 18 1.4.2 Collider2D 20 1.4.3 Joint2D 20 1.4.4 Constant Force 2D 20 1.4.5 Effectors 2D 20 1.4.6 2D Raycaster 21 1.4.7 Physic Material 2D 21 1.5 Lập trình 22 1.6 Giao diện người dùng 23 1.6.1 Canvas 23 1.6.2 Layout 24 1.6.3 Các đối tượng UI Unity cung cấp 25 1.7 Thủ thuật tối ưu xuất trò chơi lên Android 26 1.7.1 Hình ảnh 26 1.7.2 Âm 26 1.7.3 Mã 27 Xây dựng trò chơi TOWER DEFENSE Unity 1.7.4 Xuất tảng Android 27 1.8 Thuật tốn tìm đường A* 28 1.8.1 Giới thiệu thuật toán: 28 1.8.2 Ý tưởng trực quan : 28 1.8.3 Các thành phần thuật toán : 28 1.8.4 Mô tả thuật toán : 29 CHƯƠNG : PHÂN TÍCH THIẾT KẾ 38 2.1 Mục tiêu đề tài : 38 2.2 Yêu cầu chức : 38 2.3 Yêu cầu phi chức : 38 2.4 Phân tích thiết kế hệ thống : 38 2.4.1 Ý tưởng trò chơi : 38 2.4.2 Thể loại trò chơi : 38 2.4.3 Đối tượng người chơi : 38 2.4.4 Lối chơi : 38 2.4.5 Phong cách đồ họa âm : 39 2.4.6 Gameplay 39 2.4.7 Cơ chế trò chơi : 39 2.5 Sơ đồ ca sử dụng trò chơi (Usecase diagram) : 45 2.6 Sơ đồ lớp : 46 2.7 Sơ đồ 48 CHƯƠNG : TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƯỢC 48 3.1 Môi trường triển khai : 48 3.2 Sản phẩm đạt : 49 3.2.1 Màn hình trị chơi : 49 3.2.2 Màn hình trị chơi qi vật xuất : 49 3.2.3 Màn hình thua : 50 KẾT LUẬN VÀ KIẾN NGHỊ 50 Ưu điểm : 50 Hạn chế : 51 Hướng phát triển : 51 TÀI LIỆU THAM KHẢO 52 Xây dựng trò chơi TOWER DEFENSE Unity DANH MỤC HÌNH ẢNH Hình Logo Unity 14 Hình Giao diện Unity 15 Hình Giao diện Scene 16 Hình Một số GameObject 16 Hình Các component Camera 17 Hình Component Rigidbody2D 18 Hình Một Capsule Collider 2D 20 Hình Minh họa sử dụng Joint2D 20 Hình Component Constant Force 2D 20 Hình 10 Angry Birds - tựa game sử dụng mơ vật lý 2D 21 Hình 11 Vòng đời GameObject 22 Hình 12 Một UI đơn giản Unity 23 Hình 13 Các thơng số Layout 24 Hình 14 Component Text 25 Hình 15 Component Image 25 Hình 16 Theo thứ tự: Button, Toggle, Slider, ScrollBar, Dropdown InputField 25 Hình 17 Một spritesheet chưa hình động nhân vật 26 Hình 18 Giao diệp export Android 27 Hình 19 Thuật tốn A* (H1) 29 Hình 20 Thuật toán A* (H2) 30 Hình 21 Thuật tốn A* (H3) 31 Hình 22 Thuật tốn A* (H4) 33 Hình 23 Thuật tốn A* (H5) 34 Hình 24 Thuật tốn A* (H6) 35 Hình 25 Thuật toán A* (H7) 36 Hình 26 Vịng đời chơi 39 Hình 27 Vị trí biểu tượng xây tháp pháo 40 Hình 28 Chuẩn bị xây dựng tháp pháo 41 Hình 29 Hệ thống tiền tệ trò chơi 41 Hình 30 Hệ thống lượt qi vật trị chơi 42 Hình 31 Sơ đồ ca sử dụng trò chơi 45 Hình 32 Sơ đồ lớp Tower, Monster lớp thừa kế 46 Hình 33 Sơ đồ lớp Debuff lớp thừa kế 47 Hình 34 Sơ đồ 48 Hình 35 Màn hình trị chơi 49 Hình 36 Màn hình trị chơi quái vật xuất 49 Hình 37 Màn hình thua trị chơi 50 Xây dựng trò chơi TOWER DEFENSE Unity DANH MỤC BẢNG Bảng Danh sách quái vật 43 Bảng Danh sách tháp pháo 44 Xây dựng trò chơi TOWER DEFENSE Unity 10 MỞ ĐẦU Lý chọn đề tài Ngày nay, thiết bị di động thông minh ngày phổ biến, ai có cho riêng điện thoại thông minh bên cạnh Hàng ngày người sử dụng điện thoại thông minh để liên lạc, làm việc đặc biệt giải trí Theo thống kê hàng ngày cửa hàng Play Store Google có 1300 lượt tải ứng dụng, thống kê năm 2015 loại hình ứng dụng tải nhiều trên cửa hàng trực tuyến game với số liệu 22% Appstore, 21% CHPlay 60% AmazonStore Điều cho thấy ngành cơng nghiệp game thiết bị di động ngày phát triển tương lại ngành cơng nghiệp đầu Trước đây, việc phát triển trị chơi điện tử địi hỏi nhiều cơng sức qua nhiều giai đoạn phức tạp vốn đầu tư lớn Nhưng chi phí ngày nhỏ lại, hồng loạt cơng cụ làm game miễn phí thị trường, giúp có niềm đam mê làm game bắt đầu thực dễ dàng Khách thể đối tượng nghiên cứu  Người dùng sử dụng thiết bị điện thoại thơng minh  Phần mềm Unity3D  Quy trình phát triển trò chơi di động Giới hạn phạm vi nghiên cứu  Tất người dùng sử dụng điện thoại thơng minh, máy tính bảng  Các trò chơi di động tương đương  Các tài liệu phát triển trò chơi di động  Các tài liệu Unity Xây dựng trò chơi TOWER DEFENSE Unity 38 CHƯƠNG : PHÂN TÍCH THIẾT KẾ 2.1 Mục tiêu đề tài : Xây dựng trò chơi thủ thành hành động tảng hệ điều hành Android sử dụng Game Engine Unity3D 2.2 Yêu cầu chức : - Một hình khởi đầu để bắt đầu trị chơi - Một hình thơng báo người dùng thua trị chơi - Một hình chính, nơi người dùng chơi trò chơi 2.3 Yêu cầu phi chức : - Trò chơi đơn giản dễ tiếp cận với người chơi - Giao diện trò chơi thân thiện dễ sử dụng, tạo cảm giác thoải mái cho người chơi - Trị chơi có hình ảnh đồ họa thân thiện, vui tươi tạo cảm giác thoải mái cho người chơi - Trò chơi hoạt động mượt mà không xảy tượng giật, vỡ khung hình chơi - Trị chơi hiển thị tốt kích thước hình điện thoại khác 2.4 Phân tích thiết kế hệ thống : 2.4.1 Ý tưởng trò chơi : Người chơi xây dựng tháp súng để cản đường quái vật nhằm gây khó khăn cho việc di chuyển quái vật từ nơi xuất phát đến đích 2.4.2 Thể loại trị chơi : Trò chơi thuộc thể loại trò chơi thủ thành 2.4.3 Đối tượng người chơi : Trò chơi phù hợp với người chơi u thích trị chơi thủ thành xen lẫn chiến thuật 2.4.4 Lối chơi : Người chơi xây tháp pháo nhằm cản trở việc di chuyển quái vật đến mục tiêu Quái vật theo đợt, với đợt sau mạnh đợt trước Xây dựng trò chơi TOWER DEFENSE Unity 39 Khi vào chơi người chơi có số tiền vốn để xây dựng tháp pháo, tiền kiếm cách tiêu diệt quái vật Người chơi cần phải suy nghĩ cho xây tháp pháo cách hợp lý nhằm kéo dài đường quái vật đến với mục tiêu Quái vật tự tìm đường để vòng qua tháp pháo mà người dùng xây 2.4.5 Phong cách đồ họa âm : Trò chơi mang đồ họa 2D màu sắc tươi vui 2.4.6 Gameplay Vịng đời chơi Hình 26 Vòng đời chơi Nhiệm vụ người chơi : Nhiệm vụ người chơi phải chống đỡ với đợt quái vật ngày mạnh số lượng chất lượng Việc sống sót qua số lượng đợt cơng tối đa mục đích trị chơi 2.4.7 Cơ chế trị chơi : 2.4.7.1 Hệ thống nguyên tố trò chơi : Trong trị chơi có ngun tố : băng, lửa, độc sét Các nguyên tố áp dụng quái vật tháp pháo Mỗi nguyên tố khác có hiệu ứng kèm khác Xây dựng trò chơi TOWER DEFENSE Unity 40 2.4.7.2 Hệ thống tháp pháo trò chơi :  Miêu tả phương thức xây dựng tháp pháo : Các biểu tượng tượng trưng cho tháp pháo xếp góc bên tay phải người chơi, người chơi muốn xây dựng tháp pháo nhấp chọn vào biểu tượng tháp pháo đó, vị trí tay người chơi xuất hình ảnh tháp pháo với vịng trịn xanh xung quanh tháp pháo biểu tầm đánh tháp pháo đó, sau người chơi cần kéo tháp pháo đến vị trí muốn đặt tháp pháo sau nhấp tay lần để xây dựng tháp pháo vị trí Hình 27 Vị trí biểu tượng xây tháp pháo Xây dựng trò chơi TOWER DEFENSE Unity 41 Hình 28 Chuẩn bị xây dựng tháp pháo 2.4.7.3 Hệ thống tiền tệ trò chơi : Trị chơi có hệ thống tiền tệ, tiền dùng để xây dựng tháp pháo trình chơi, tiền kiếm cách giết loại quái vật Các loại tháp pháo cần lượng tiền để xây dựng, lượng tiền cần để xây tháp pháo thể bên biểu tượng tháp pháo Hình 29 Hệ thống tiền tệ trị chơi Xây dựng trò chơi TOWER DEFENSE Unity 42 2.4.7.4 Hệ thống lượt quái vật trò chơi : Trò chơi chia làm lượt chơi nhau, với lượt chơi, loại quái vật xuất ngẫu nhiên đồng thời quái vật lượt sau mạnh quái vật lượt trước Người chơi theo dõi lượt chơi mà chơi phía bên chơi Hình 30 Hệ thống lượt quái vật trò chơi 2.4.7.5 Hệ thống quái vật trò chơi : Các quái vật tạo cổng màu xanh chơi di chuyển đến cổng màu đỏ, đến cổng màu đỏ quái vật biến làm máu người chơi giảm xuống Các thông số :  Máu : máu quái vật xuống quái vật chết  Nguyên tố : quái vật có nguyên tố [ lửa, băng, độc, sét ]  Tốc độ di chuyển : định việc di chuyển nhanh chậm quái vật Xây dựng trò chơi TOWER DEFENSE Unity 43 Bảng Danh sách quái vật STT NGUYÊN TỐ Lửa Băng Độc Sét HÌNH ẢNH 2.4.7.6 Hệ thống tháp pháo trò chơi Tháp pháo người chơi xây dựng nhằm mục đích tiêu diệt quái vật không cho chúng đến mục tiêu Các thông số :  Sát thương : sát thương gây quái vật  Nguyên tố : nguyên tố tháp pháo, tùy loại nguyên tố có hiệu ứng khác  Thời gian nghỉ : khoảng thời gian nghỉ lần bắn  Giá tiền : giá tiền cần để xây Xây dựng trò chơi TOWER DEFENSE Unity 44 Bảng Danh sách tháp pháo STT NGUYÊN TỐ SÁT THƯƠNG GIÁ TIỀN Lửa Băng Độc Sét HÌNH ẢNH Xây dựng trò chơi TOWER DEFENSE Unity 45 2.5 Sơ đồ ca sử dụng trò chơi (Usecase diagram) : Hình 31 Sơ đồ ca sử dụng trị chơi Xây dựng trò chơi TOWER DEFENSE Unity 46 2.6 Sơ đồ lớp : - Lớp tower, lớp monster lớp thừa kế Hình 32 Sơ đồ lớp Tower, Monster lớp thừa kế Xây dựng trò chơi TOWER DEFENSE Unity 47 - Lớp Debuff lớp thừa kế : Hình 33 Sơ đồ lớp Debuff lớp thừa kế Xây dựng trò chơi TOWER DEFENSE Unity 48 2.7 Sơ đồ Hình 34 Sơ đồ CHƯƠNG : TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƯỢC 3.1 Môi trường triển khai :  Cơng cụ lập trình : Các phần mềm Unity, Visual studio, ShoeBox, Paint NET, Paint, Google Docs hệ điều hành Windows 10  Nền tảng xuất bản: Android 4.1 trở lên Hỗ trợ thiết bị sử dụng cấu trúc SOC ARM lẫn x86  Ngôn ngữ lập trình : C#  Thiết bị sử dụng để kiểm thử : o Máy điện thoại Samsung galaxy S7, hệ điều hành Android 7.0 Xây dựng trò chơi TOWER DEFENSE Unity 49 3.2 Sản phẩm đạt : 3.2.1 Màn hình trị chơi : Hình 35 Màn hình trị chơi 3.2.2 Màn hình trị chơi qi vật xuất : Hình 36 Màn hình trị chơi quái vật xuất Xây dựng trò chơi TOWER DEFENSE Unity 50 3.2.3 Màn hình thua : Hình 37 Màn hình thua trị chơi KẾT LUẬN VÀ KIẾN NGHỊ Ưu điểm :  Củng cố áp dụng kiến thức tiếp thu vào thực tế  Làm quen thực theo quy trình làm việc chuyên nghiệp  Xây dựng thái độ làm việc nghiêm túc, tinh thần tự đánh giá thân  Tăng thêm kiến thức kinh nghiệm thân Unity quy trình phát triển game  Học cách tự lập, tự xây dựng nghiên cứu đề tài  Hoàn thiện phát triển kỹ mềm có nhìn nhận cơng việc Xây dựng trị chơi TOWER DEFENSE Unity 51 Hạn chế :  Ban đầu lúng túng chưa hiểu rõ cách thức làm việc quy trình thực  Trong trình thực hiện, cịn bất cẩn gây lỗi khơng đáng có  Sản phẩm hồn thiện khơng đầy đủ phong phú ý tương ban đầu  Thuật tốn xử lý cịn chậm  Chưa xử lý trường hợp khơng tìm thấy đường quái vật  Còn số lỗi chưa khắc phục  Xuất tảng di động lỗi Hướng phát triển : Đề tài phát triển theo số hướng sau:  Thêm số chế độ chơi lạ để tăng độ phong phú kích thích người chơi  Thêm quái vật tháp pháo để hấp dẫn người chơi  Chỉnh sửa tối ưu mã  Phát triển chức lưu, tải lại chơi  Thêm hệ thống phần thưởng, thành tựu vào game  Tích hợp dịch vụ Google Play phát hành cửa hang Google Play  Nâng cấp thuật toán nhằm tăng tốc độ xử lý  Xử lý trường hợp khơng tìm thấy đường qi vật Xây dựng trò chơi TOWER DEFENSE Unity 52 TÀI LIỆU THAM KHẢO [1] Unity Technologies (2017), “Unity Manual” Truy cập ngày 10 tháng năm 2017 < https://docs.unity3d.com > [2] Michel E.Moore (2011), “Basics of Game Design” [3] https://en.wikipedia.org/wiki/A*_search_algorithm [4] http://www.policyalmanac.org/games/aStarTutorial.htm [5] http://www.redblobgames.com/pathfinding/a-star/introduction.html [6] http://diendan.congdongcviet.com/threads/t203930::huong-dan-codethuat-toan-a-de-tim-duong-trong-me-cung.cpp [7] https://www.youtube.com/playlist?list=PLXuZVK_0K_4uNwvKian1bscP9mVvOp1M [8] https://www.raywenderlich.com/107525/create-tower-defense-gameunity-part-1 [9] https://www.raywenderlich.com/107529/unity-tower-defense-tutorialpart-2 Xây dựng trò chơi TOWER DEFENSE Unity ... ẢNH Xây dựng trò chơi TOWER DEFENSE Unity 45 2.5 Sơ đồ ca sử dụng trò chơi (Usecase diagram) : Hình 31 Sơ đồ ca sử dụng trò chơi Xây dựng trò chơi TOWER DEFENSE Unity 46 2.6 Sơ đồ lớp : - Lớp tower, ... Material 2D sử dụng để định ngh? ?a kiểu vật liệu cho đối tượng mà môi trường 2D Unity đặc tả hai thơng số Ma sát Độ nảy Hình 10 Angry Birds - t? ?a game sử dụng mô vật lý 2D Xây dựng trò chơi TOWER. .. người sử dụng sử dụng Visual Studio lẫn Visual Studio Code trình IDE bên thứ ba.Về bản, việc lập trình Unity xoay quanh việc định ngh? ?a cá lớp kế th? ?a từ Xây dựng trò chơi TOWER DEFENSE Unity

Ngày đăng: 11/05/2021, 16:27

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan