Xây dựng game phiêu lưu trên unity

52 673 2
Xây dựng game phiêu lưu trên 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

LỜI CẢM ƠN Em xin chân thành cảm ơn Thầy, Cô giáo khoa Công Nghệ Thông Tin, Đại Học Công Nghệ Thông Tin Truyền Thông giảng dạy em môn thời gian vừa qua Đặc biệt Cô Nguyễn Lan Oanh Thạc Sĩ Công Nghệ Thông Tin giáo viên hướng dẫn trực tiếp, tận tình bảo giúp đỡ em hoàn thành đồ án tốt nghiệp Trong trình làm đồ án trình làm báo cáo với giáo viên hướng dẫn khó tránh khỏi sai sót, mong Thầy, Cô bỏ qua Đồng thời trình độ lý luận kinh nghiệm thực tiễn hạn chế nên báo cáo tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp Thầy, Cô để em có thêm nhiều kinh nghiệm Chúc Thầy, Cô có sức khỏe dồi dào, thành công công việc, nghiệp sống Em xin chân thành cảm ơn! Sinh viên Lê Văn Thuyên LỜI CAM ĐOAN Em xin cam đoan rằng: Số liệu kết nghiên cứu đồ án hoàn toàn trung thực chưa sử dụng công bố công trình khác Mọi giúp đỡ cho việc thực đồ án cám ơn thông tin trích dẫn đồ án ghi rõ nguồn gốc Sinh viên Lê Văn Thuyên MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN VỀ UNITY .6 1.1 Giới thiệu Unity .6 1.2 Các khái niệm 1.3 Làm quen với môi trường Unity 10 1.3.1 Các thành phần bố trí .10 1.3.2 Tạo cấu hình với dự án 2D 11 1.3.3 Tạo đối tượng .13 CHƯƠNG PHÂN TÍCH THIẾT KẾ 28 2.1 Phân tích yêu cầu 28 2.1.1 Khảo sát 28 2.1.2 Mục tiêu cần đạt 28 2.2 Phân tích thiết kế hệ thống 29 2.2.1 Các chức chương trình 29 2.2.2 Biểu đồ Use Case (Use Case Diagram) .29 2.2.3 Biểu đồ trình tự (Sequence Diagram) 30 2.2.4 Biểu đồ lớp (Class Diagram) 33 2.2.5 Biểu đồ hoạt động (Activity Diagram) 34 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH 37 3.1 Giới thiệu chương trình 37 3.2 Kịch trò chơi 37 3.2.1 Nhân vật quái vật 37 3.2.2 Đạn, vũ khí 39 3.2.3 Bẫy game 40 3.3 Các công đoạn làm game 41 3.3.1 Tạo khu vực game 41 3.3.2 Tạo giới hạn di chuyển vùng tương tác game 43 3.3.3 Tạo chuyển động game .43 3.3.3 Viết code cho xử lý 45 3.3.4 Thiết lập âm Game 46 3.4 Giao diện trò chơi .47 KẾT LUẬN 50 Nhận xét, đánh giá 50 Hướng phát triển đề tài 50 TÀI LIỆU THAM KHẢO .51 LỜI NÓI ĐẦU Với phát triển cách nhanh chóng vũ bão công nghệ Internet giới nói chung Việt Nam nói riêng game gần không khái niệm xa lạ cá nhân, ngược lại cảm thấy gần gũi sống Chúng ta bắt gặp trò chơi thiết bị công nghệ nhỏ thiết bị công nghệ cao Nói đến game hẳn phần lớn người đồng ý loại hình giải trí có sức thu hút lớn,nhất với giới trẻ Đặc biệt sau đời Internet, game online xuất nhanh chóng gây sức hấp dẫn to lớn Chúng ta chơi game online mạng, game offline PC, game dòng máy chuyên Play Station hãng Sony với phiên PS2, PS3, PS4… game phát triển mạnh thiết bị di động điện thoại di động, máy Xbox…Hàng năm lợi nhuận từ game đem doanh thu lên đến hàng tỉ đô la cho công ty chuyên phát triển sản xuất game nước phát triển Nhật Bản, Mỹ có nhiều công ty chuyên sản xuất game Nintendo, Sony, Sega năm công ty đạt doanh thu hàng tỷ USD Hay với nước sau Hàn Quốc,Trung Quốc có ngành công nghê game mạnh nhờ có đầu tư đắn chiến lược phát triển tốt Một trò chơi mua với giá hàng ngàn hay chí hàng triệu, hàng tỷ đô la Không phải game cấu hình cao, đồ họa khủng đêm nguồn lợi nhuận khủng khiếp mà có game đơn giản cấu hình thấp, đồ họa năm giới công nghệ hấp dẫn thu hút người chơi với lối chơi đơn giản, đề khó hiểu thời đại công nghệ Mặc dù VINASA xếp game định hướng công nghệ chiến lược hiệp hội giai đoạn 2006-2010, bên cạnh định hướng phần mềm nhúng ERP thị trường game Việt Nam yếu CHƯƠNG TỔNG QUAN VỀ UNITY 1.1 Giới thiệu Unity - Unity3D môi trường phát triển tích hợp, mạnh mẽ, hỗ trợ thao tác kéo thả, tuỳ biến giao diện nhanh chóng, trực quan - Cung cấp công cụ xử lý đồ hoạ, tích hợp sẵn thư viện vật lý, tính toán va chạm - Hỗ trợ phát triển game 2D 3D - Hỗ trợ nhiều tảng thông dụng OSX, Linux, Window, Web, iOS, Window Phone 8, Android, PS3, BB… - Cộng đồng người dùng, hỗ trợ rộng lớn - Có phiên miễn phí chạy Window Mac OSX - Unity3D hướng tới người sử dụng chuyên nghiệp nghiệp dư, nên dễ để sử dụng Với ngôn ngữ lập trình C#, JavaScript BOO - Ngày nhiều nhà phát triển game lựa chọn Unity3D để phát triển khả hỗ trợ đa tảng mạnh mẽ tiện dụng Unity3D - Đến với Unity, bạn không cần phải băn khoăn vấn đề xử lý, khái niệm đồ hoạ phức tạp tất trở nên dễ dàng nhanh chóng với Unity - Một số game phát triển Unity AngryBird, Elegy of War,… - Ta vào để download cài đặt Unity3D trực tiếp trang chủ : http://unity3d.com/unity/download/ - Unity có loại phiên bản, cho người dùng free, phiên pro phí - Tải Unity cài đặt bình thường, đến kết thúc cài đặt bạn chọn phiên Pro cần phải mua, người dùng free chọn kích hoạt qua web, cần có kết nối mạng internet, sau chọn cài đặt thủ công nhập mail, chọn free sử dụng Unity free 1.2 Các khái niệm * GameObject - Một đối tượng cụ thể game gọi game object, nhân vật, đồ vật Ví dụ: cối, xe cộ, nhà cửa, người * Component - Một GameObject có nhiều thành phần cấu tạo nên hình ảnh (sprite render), tập hợp hành động (animator), thành phần xử lý va chạm (collision), tính toán vật lý (physical), mã điều khiển (script), thành phần khác thứ gọi component GameObject * Sprite - Là hình ảnh 2D game object hình ảnh đầy đủ, phận * Animation - Là tập hình ảnh động dựa thay đổi liên tục nhiều sprite khác * Key Frame - Key Frame hay Frame trạng thái animation Có thể tạo nên từ sprite hay nhiều sprite khác * Prefabs - Là khái niệm Unity, dùng để sử dụng lại đối tượng giống có game mà cần khởi tạo lại giá trị vị trí, tỉ lệ biến dạng góc quay từ môt đối tượng ban đầu Ví dụ: Các đối tượng đồng tiền game Mario có xử lý giống nhau, nên ta việc tạo đối tượng ban đầu, đồng tiền lại sử dụng prefabs Hoặc ta lát gạch cho nhà, viên gạch sử dụng prefabs * Sounds - Âm game * Script - Script tập tin chứa đoạn mã nguồn, dùng để khởi tạo xử lý đối tượng game - Trong Unity dùng C#, Java Script, BOO để lập trình Script * Scenes - Quản lý tất đối tượng chơi game * Assets - Bao gồm tất phục vụ cho dự án game sprite, animation, sound, script, scenes… * Camera - Là game object đặc biệt scene, dùng để xác định tầm nhìn, quan sát đối tượng khác game * Transform - Là phép biến đổi tịnh tiến, quay theo trục, phóng to thu nhỏ đối tượng 1.3 Làm quen với môi trường Unity 1.3.1 Các thành phần bố trí * Scenes - Phần màu đỏ số - Phần phần hiển thị đối tượng scenes cách trực quan, lựa chọn đối tượng, kéo thả, phóng to, thu nhỏ, xoay đối tượng - Phần có để thiết lập số thông số hiển thị ánh sáng, âm anh, cách nhìn 2D hay 3D * Game - Phần màu đỏ số - Phần hiển thị game thực thi, tab bên cạnh tab Scenes * Inspector - Phần số màu vàng - Phần hiển thị component Game Object thông số component * Project - Phần số màu xanh - Phần hiển thị thư mục Assets, chứa tất tài nguyên dự án game - Ở phần này, bên cạnh tab khác, có phần Console để hiển thị log trình debug 10 - Quái vật: Có loại quái vật với lượng máu, tốc độ di chuyển mức sát thương khác Kẻ thù loại 1:  Máu = 40  Tốc độ = 1.5  Sát thương = 10 Đây loại kẻ thù có số lượng lớn, nhiên chúng dễ bị tiêu diệt lượng máu thấp Kẻ thù loại 2:  Máu = 50  Tốc độ = 1.8  Sát thương = 15 Đây loại kẻ thù có tốc độ di chuyển nhanh Kẻ thù loại 3:  Máu = 60  Tốc độ = 1.3  Sát thương = 15 38 Đây loại kẻ thù có tốc độ vừa phải, nhiên chúng có thêm kiểu công phun độc Kẻ thù loại 4:  Máu = 80  Tốc độ =  Sát thương = 20 Đây loại kẻ thù có lượng máu cao nhất, nhiên chúng lại di chuyển chậm 3.2.2 Đạn, vũ khí - Người chơi bắt đầu với súng lục mặc định, người chơi thu thập vũ khí để tăng khả diệt kẻ thù Súng đạn tìm thấy số khu vực định Có loại vũ khí là: - Súng lục (mặc định): Loại súng có vô hạn đạn, phát bắn viên đạn Súng có ổ đạn chứa tối đa viên, bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi viên đạn có sức sát thương 10 đơn vị - Súng shotgun: Loại súng không vô hạn đạn, nhân vật phải thu thập thêm đạn Tuy nhiên bắn chùm mảnh đạn theo hình sẻ quạt, tầm sát thương rộng so với súng lục Súng có ổ đạn chứa tối đa viên bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi mảnh đạn có sức sát thương 10 đơn vị 39 - Súng phóng lựu: Loại súng không vô hạn đạn, nhân vật phải thu thập thêm đạn Tuy nhiên bắn đạn nổ có sức sát thương lớn, ảnh hưởng tới nhân vật đạn nổ gần Súng có ổ đạn chứa tối đa viên bắn hết viên người chơi phải bấm phím bắn để nạp đạn Mỗi đạn có sức sát thương 50 đơn vị với kẻ thù 25 đơn vị với nhân vật Hình 3.2: Các loại vũ khí game 3.2.3 Bẫy game Bẫy loại đối tượng mà nhân vật bị chết gặp tương tác Hình 3.3: Bẫy loại 40 Nhân vật gặp loại bẫy phòng đặc biệt Nếu người chơi lấy chìa khóa phòng bẫy kích hoạt Nhiệm vụ người chơi tìm cách lấy chìa khóa mà không làm kích hoạt bẫy Hình 3.4: Bẫy loại Nhân vật gặp loại bẫy khu vực tầng ngầm Bẫy chia thành ô có số ô qua Nhiệm vụ người chơi qua khu vực mà không bị sập bẫy Loại bẫy thay đổi ngẫu nhiên đáp án người chơi chơi lại game 3.3 Các công đoạn làm game 3.3.1 Tạo khu vực game - Sử dụng công cụ Photoshop để vẽ chi tiết bề mặt khu vực, chi tiết hình ảnh có kích thước 32 pixel x 32 pixel Hình 3.5: Một số chi tiết bề mặt 41 - Sử dụng công cụ Tiled để vẽ khu vực qua chi tiết bề mặt, lưu file tmx Hình 3.6: Giao diện công cụ Tiled - Sử dụng công cụ Tiled2Unity để convert file tmx thành dạng đối tượng Unity Hình 3.7: Giao diện công cụ Tiled2Unity 42 3.3.2 Tạo giới hạn di chuyển vùng tương tác game - Sử dụng thành phần Polygon Collider 2D để vẽ biên khớp với vùng giới hạn di chuyển tường, đồ vật, - Sử dụng thành phần Box Collider 2D kèm thuộc tính Is Trigger để vẽ biên khớp với vùng tương tác cánh cửa, đồ vật cần kiểm tra, Hình 3.8: Giới hạn vùng tương tác game 3.3.3 Tạo chuyển động game - Sử dụng công cụ Animation Unity để tạo chuyển động cho nhân vật quái vật Hình 3.9: Chuyển động nhân vật 43 Hình 3.10: Chuyển động quái vật - Sử dụng thành phần Animator để liên kết chuyển động với Hình 3.11: Animator 44 - Khai báo thành phần Aimator code Animator anim; anim = GetComponent(); anim.SetInteger("direction", 1); 3.3.3 Viết code cho xử lý Ở công đoạn ta cần nắm số hàm Unity như: - Hàm tạo chuyển động cho đối tượng Rigidbody2D rBody; rBody = GetComponent(); rBody.MovePosition(rBody.position + movement_vector * Time.deltaTime * speed); - Hàm chọn Animation Animator anim; anim = GetComponent(); anim.SetInteger("direction", 1); - Hàm kiểm tra va chạm void OnTriggerEnter2D(Collider2D coll) { //Do something } - Hàm sinh đối tượng Instantiate(gameObject, transform.position, transform.rotation); - Hàm hủy đối tượng Destroy(gameObject); - Hàm ẩn đối tượng gameObject.SetActive(false); - Tiểu trình Unity private IEnumerator auto_destroy() { yield return new WaitForSeconds(delay_time); } 45 3.3.4 Thiết lập âm Game - Sử dụng công cụ GodWave để thu chỉnh sửa âm Hình 3.12: Giao diện công cụ GodWave - Chọn âm cho đối tượng thành phần Audio Source Unity Hình 3.13: Chọn âm cho đối tượng 46 3.4 Giao diện trò chơi Hình 3.14: Giao diện Đây giao diện trò chơi, bao gồm Menu chính: - New Game : để bắt đầu chơi - Load : Tải game lưu lại - Quit : Để thoát trò chơi - Ngoài tùy chọn ẩn Survival xuất sau hoàn thành game Hình 3.15: Giao diện chơi 47 - Đây giao diện bắt đầu chơi, người dùng chạm vào vùng điều hướng bên trái để di chuyển nhân vật, nút mũi tên lên xuống để đổi súng, nút hình bàn tay để kiểm tra thu thập item nút hồng tâm để bắn súng tiêu diệt kẻ thù - Phần phía súng hiển thị số đạn ổ / tổng số đạn có Hình 3.16: Hiệu ứng quái vật bị tiêu diệt - Khi quái vật bị tiêu diệt hiệu ứng kích hoạt, kèm theo âm Hình 3.17: Vật phẩm game - Có loại vật phẩm là: Màu đỏ đạn: lần thu thập tăng tổng số đạn Màu xanh máu: lần thu thập số máu tăng lên Màu trắng khóa: lần thu thập mở cánh cửa tương ứng với khóa 48 Hình 3.18: Khi nhân vật bị chết - Đây hình ảnh nhân vật hết máu bị chết Hiệu ứng âm kích hoạt, đồng thời chữ “YOU ARE DEAD” Hình 3.19: Menu - Đây hình ảnh pause lên bảng tùy chọn Sẽ có Menu chính: Resume: Là quay lại trò chơi để tiếp tục chơi sau tạm dừng trò chơi Quit: Là quay giao diện trò chơi 49 KẾT LUẬN Nhận xét, đánh giá Qua trình khảo sát, thực hoàn thành đề tài, giúp em có nhìn tổng quát nhu cầu giải trí nói chung game nói riêng Hiện nhu cầu giải trí người ngày cao game biết đến nhu cầu giải trí giai đoạn phát triển nhanh chóng Đó dấu hiệu tốt ngành công nghệ thông tin ngày Tuy nhiên, thời gian có hạn kiến thức hạn chế nên chương trình nhiều thiết sót chưa thực chức upload điểm lên server Hướng phát triển đề tài Để đề tài hoàn hảo cần xây dựng thêm chức upload điểm, hình ảnh cần chăm chút âm cần đầu tư kỹ 50 TÀI LIỆU THAM KHẢO [1] https://unity3d.com/learn/tutorials [2] https://www.youtube.com/results?search_query=unity+tutorial [3] http://docs.unity3d.com/Manual/index.html [4] http://unityviet.com/ [5] http://unity3d.com.vn/ 51 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Thái nguyên, ngày tháng năm 2016 (Kí ghi rõ họ tên ) 52 [...]... trên máy tính mà phần lớn là trò chơi được tạo ra chủ yếu để phục vụ nhu cầu này Các trò chơi dành cho máy tính ngày càng đẹp hơn nhưng lại đòi hỏi cao về dung lượng, cấu hình, giá thành, Sau khoảng thời gian khảo sát em nhận thấy các trò chơi có nội dung phiêu lưu giải đố trên smart phone có nhiều ưu thế hơn so với các thể loại khác Tìm kiếm với từ khóa “google play adventure games” (game phiêu lưu) ... trên thế giới đang dần chú trọng vào phát triển game cho các thiết bị di động Rất nhiều sản phẩm game ra mắt trên smart phone có hàng tỉ lượt tải về đã mang lại nguồn lợi nhuận khổng lồ như Angry Bird, Flappy Bird, Candy Crush Saga, Do vậy em quyết định phát triển game trên smart phone vì những ưu thế đặc biệt đó 2.1.2 Mục tiêu cần đạt Với ý tưởng xây dựng một trò chơi với lối chơi đơn giản, kịch tính,... play puzzle games” (game giải đố) cho ra hơn 8 triệu kết quả và “google play simulation games” (game mô phỏng) là hơn 5 triệu Với sự tiến bộ vượt bậc của công nghệ những năm gần đây, smart phone đang ngày càng có cấu hình mạnh hơn, giá thành rẻ hơn cũng như ngày càng phổ biến hơn Mỗi năm có hàng trăm sản phẩm smart phone mới ra đời mà chủ yếu là nền tảng Android Các studio phát triển game trên thế giới... vật, khả năng phản xạ và trí tưởng tượng Game không đòi hỏi cấu hình quá cao và không tốn nhiều dung lượng bộ nhớ Từ đó em đã xây dựng thành công trò chơi “Tổ Quỷ” dựa trên ý tưởng đó 28 Phân tích thiết kế hệ thống 2.2 2.2.1 Các chức năng của chương trình Gồm 8 chức năng chính: STT Tên chức năng 1 New Game 2 Quit Mô tả Người chơi mở chương trình lên rồi bấm New Game để bắt đầu màn chơi Thoát trò chơi... được xem như một thành phần của một GameObject nên các lớp hầu như hoạt động độc lập với nhau 2.2.5 Biểu đồ hoạt động (Activity Diagram) a Menu lựa chọn Hình 2.10: Biểu đồ hoạt động Menu Khởi động trò chơi vào giao diện chính sẽ có các Menu để lựa chọn - New Game: Để chơi mới - Load: Để tải game đã lưu 34 - Survival: Lựa chọn đặc biệt chỉ xuất hiện khi hoàn thành game - Quit: Để thoát trò chơi Khi đang... sau đó để mặc định các thông số, chọn nút Slice, Unity sẽ tự động xác định vùng bao nhỏ nhất cho các sprite cho chúng ta Hoặc chúng ta có thể tự dùng chuột để xác định các vùng bao này 16 Sau đó nhấn nút Apply ở cửa sổ Sprite Editor để áp dụng Vậy là ta đã tạo xong hai loại sprite bằng Unity c Thêm Sprite render cho Empty GameObject - Tạo một Empty GameObject, đặt tên là Ground Sau đó chọn đối tượng... số trong file save vào game 8 Survival chơi bấm “Resume” để tiếp tục Quay trở lại chương trình chính như khi bật chương trình Chế độ chơi đặc biệt chỉ xuất hiện sau khi hoàn thành chế độ New Game 2.2.2 Biểu đồ Use Case (Use Case Diagram) a Biểu đồ Use Case tổng quát Hình 2.1: Biểu đồ Use Case tổng quát 29 - Biểu đồ - Bao gồ b Phân rã Use Case Game Play Hình 2.2: Phân rã Use Case Game Play 2.2.3 Biểu... dụng trong game sau này lần lượt là: Animations, Prefabs, Scripts, Sprites, Sounds, Scenes - Click chuột phải vào thư mục Assets ở cửa sổ Project, ta chọn Create, chọn Folder 12 - Kết quả như hình sau: 1.3.3 Tạo các đối tượng cơ bản 1.3.3.1 Game Object a Empty Object - Ở menu ta chọn GameObject, chọn Create Empty - Ta có thể đổi tên, sao chép hay xoá các đối tượng thông qua cửa sổ này - Empty game object... to, thu nhỏ các đối tượng + Ba nút ở giữa: (1) cho phép chạy demo game, (2) cho phép dừng game tại một frame nào đó, (3) cho phép chạy từng frame + Hai drop list bên phải: (1) cho phép tuỳ chọn hiển thị các layer, (2) cho phép chọn và lưu các bố trí do người dùng thiết lập + Ngoài ra còn có các cửa sổ khác của Unity, như Sprite Editor, Animation, Animator, Console và ta có thể tự tuỳ biến cho mình... quả, đặc biệt là tiết kiệm được nhiều bộ nhớ b Tạo animation bằng Unity - Cách tạo animation theo kỹ thuật Key Frame Cách tạo animation theo skeletal cũng tương tự - Từ phần trước chúng ta đã tạo được những Sprite cơ bản như sau: 19 + Bước 1: Tạo một Empty GameObject đặt tên là MainCharacter (Parent Object) + Bước 2: Tạo một đối tượng Empty GameObject nữa, đặt tên là Animations, là đối tượng con của MainCharacter ... dung phiêu lưu giải đố smart phone có nhiều ưu so với thể loại khác Tìm kiếm với từ khóa “google play adventure games” (game phiêu lưu) cho 11 triệu kết quả, từ khóa “google play puzzle games” (game. .. nhanh chóng với Unity - Một số game phát triển Unity AngryBird, Elegy of War,… - Ta vào để download cài đặt Unity3 D trực tiếp trang chủ : http:/ /unity3 d.com /unity/ download/ - Unity có loại phiên... chọn free sử dụng Unity free 1.2 Các khái niệm * GameObject - Một đối tượng cụ thể game gọi game object, nhân vật, đồ vật Ví dụ: cối, xe cộ, nhà cửa, người * Component - Một GameObject có nhiều

Ngày đăng: 09/12/2016, 01:22

Từ khóa liên quan

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

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

Tài liệu liên quan