Đồ án Lập trình game cờ vua 3D có source code game

37 394 5
Đồ án Lập trình game cờ vua 3D  có source code game

Đ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ập trình game cờ vua 3D trên nền tảng android dựa vào IDE Unity 3DGame vừa là một cách giúp chúng ta giải trí, giúp chúng ta có khả năng tư duy, đầu óc nhạy bén. Ngoài ra, game còn giúp con người có thể tập trung cao độ hơn, rèn luyện tính quyết tâm, kiên trì, tích lũy kinh nghiệm xử lý vấn đề… Một trong những game được yêu thích hiện nay là game cờ vua, nhóm chúng em sẽ xây dựng một ứng dụng di động tạo ra một biến thể cờ vua rất được lòng các game thủ chính là cờ vua 3D.Trong giới lập trình, game cờ là game chứa nhiều thuật toán xử lý về hướng đối tượng, trí tuệ nhân tạo và lập trình mạng. Cờ vua 3D còn thể hiện tài năng thiết kế ba chiều trong môi trường thiết kế Unity 3D. Tận dụng các lợi thế của ngôn ngữ C, một loại ngôn ngữ có tiềm năng lâu dài, được phát triễn bởi Microsoft với ưu thế đơn giãn, hướng đối tượng, mạnh mẽ. Mặc dù C loại bỏ một vài đặc tính của C++, nhưng bù lại nó tránh được lỗi thường gặp trong ngôn ngữ C++. Một điều quan trọng khác là với C++ là mã nguồn C không đòi hỏi phải có tập tin header. Tất cả mã nguồn được viết trong khai báo lớp.

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG VIỆT – HÀN KHOA HỌC MÁY TÍNH ĐỒ ÁN CƠ SỞ ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG GAME CỜ VUA 3D Nhóm sinh viên thực hiện: NGUYỄN NGỌC THƯƠNG NGUYỄN MINH TÙNG Lớp: 19IT5 Giảng viên hướng dẫn: ThS TRẦN THỊ TRÀ VINH Đà Nẵng, ngày … tháng … năm … ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT – HÀN KHOA HỌC MÁY TÍNH ĐỒ ÁN CƠ SỞ XÂY DỰNG ỨNG DỤNG GAME CỜ VUA 3D Đà Nẵng, ngày … tháng … năm … LỜI MỞ ĐẦU Hầu hết sinh viên học trường đào tạo khối ngành công nghệ tiếp cận với đủ thể loại tảng từ web tới mobile app, phần mềm hệ thống cho hệ điều hành Tuy nhiên hiểu biết nghề lập trình game cịn hạn chế, ngành nghề có tiềm phát triển lớn Trung bình lập trình game cấp trung kiếm 100,000 USD năm Mỹ làm việc cho Studio Game có tiếng, chưa tính khoản thưởng cho game đạt doanh thu cao Các kĩ sư lập trình game "ví von" người nghệ sĩ thực thụ, với cơng việc địi hỏi tính sáng tạo không ngừng khả chắt lọc, hấp thụ xu hướng Game vừa cách giúp giải trí, giúp có khả tư duy, đầu óc nhạy bén Ngồi ra, game cịn giúp người tập trung cao độ hơn, rèn luyện tính tâm, kiên trì, tích lũy kinh nghiệm xử lý vấn đề… Một game u thích game cờ vua, nhóm chúng em xây dựng ứng dụng di động tạo biến thể cờ vua lòng game thủ cờ vua 3D Trong giới lập trình, game cờ game chứa nhiều thuật tốn xử lý hướng đối tượng, trí tuệ nhân tạo lập trình mạng Cờ vua 3D cịn thể tài thiết kế ba chiều môi trường thiết kế Unity 3D Tận dụng lợi ngôn ngữ C#, loại ngơn ngữ có tiềm lâu dài, phát triễn Microsoft với ưu đơn giãn, hướng đối tượng, mạnh mẽ Mặc dù C# loại bỏ vài đặc tính C++, bù lại tránh lỗi thường gặp ngôn ngữ C++ Một điều quan trọng khác với C++ mã nguồn C# khơng địi hỏi phải có tập tin header Tất mã nguồn viết khai báo lớp LỜI CẢM ƠN Để đồ án sở đạt kết tốt đẹp, em nhận hỗ trợ, giúp đỡ thầy Với tình cảm sâu sắc, chân thành, cho phép bày tỏ lòng biết ơn sâu sắc đến tất quý thầy cô tạo điều kiện giúp đỡ trình học tập nghiên cứu phát triển đề tài Trước hết chúng em xin gửi tới thầy khoa Khoa học máy tính - Đại học Cơng nghệ thông tin truyền thông Việt – Hàn lời chào trân trọng, lời chúc sức khỏe lời cảm ơn sâu sắc Với quan tâm, dạy dỗ, bảo tận tình chu đáo giảng viên truyền tải kĩ cần thiết, đến chúng hồn thành đề tài Đồ án sở Đặc biệt chúng em xin gửi lời cảm ơn chân thành tới giảng viên – ThS Trần Thị Trà Vinh quan tâm giúp đỡ, giúp đỡ tận tình chúng em hồn thành tốt đồ án thời gian qua Với điều kiện thời gian kinh nghiệm cịn hạn chế, đồ án khơng thể tránh thiếu sót Chúng em mong nhận bảo, đóng góp ý kiến thầy để tơi có điều kiện bổ sung, nâng cao ý thức mình, phục vụ tốt công tác thực tế sau Chúng em xin chân thành cảm ơn! NHẬN XÉT (Của giảng viên hướng dẫn) Đà Nẵng, ngày…tháng…năm 2021 Giảng viên hướng dẫn Trần Thị Trà Vinh MỤC LỤC CHƯƠNG I: KIẾN THỨC TỔNG QUAN 1.1 Unity Engine 1.1.1 Giới thiệu Unity Engine 1.1.2 Ưu điểm Unity 10 1.1.3 Các thành phần Unity Editor 12 1.1.4 Các khái niệm Unity .13 1.2 Ngôn ngữ C#: 14 1.2.1 Giới thiệu: 14 1.2.2 Tại phái sử dụng ngôn ngữ C# 15 1.2.3 C# ngôn ngữ đại: 16 1.3 Visual Studio 17 1.3.1 Visual Studio gì? 17 1.3.2 Giới thiệu tính phần mềm Visual Studio 17 CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 20 2.1 Tác nhân hệ thống 20 2.2 Biểu đồ Use-case 20 2.3 Biểu đồ hoạt động 21 2.3.1 Biểu đồ hoạt động bắt đầu ván .21 2.3.2 Biểu đồ hoạt động chọn quân cờ 22 2.3.3 Biểu đồ hoạt động di chuyển quân cờ 23 2.3.4 Biểu đồ hoạt động tiêu diệt quân cờ đối phương 24 2.3.5 Biểu đồ hoạt động phong Hậu 25 2.3.6 Biểu đồ hoạt động nhập thành 26 2.3.7 Biểu đồ hoạt động chiếu vua 27 2.4 Biểu đồ lớp 28 CHƯƠNG III: GIỚI THIỆU SẢN PHẨM THỰC TẾ 30 3.1 Giới thiệu trò chơi 30 3.2 Một số hình ảnh thực tế trị chơi 30 CHƯƠNG IV : ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ HƯỚNG PHÁT TRIỂN CỦA TRÒ CHƠI .32 4.1 Ưu điểm .32 4.2 Nhược điểm 32 4.3 Hướng phát triển 32 TÀI LIỆU THAM KHẢO .33 DANH MỤC BẢNG Bảng – Tác nhân hệ thống .20 DANH MỤC CÁC HÌ Hình 1 – Giao diện Unity Hình – Danh sách tảng hỗ trợ Unity 11 Hình - Các thành phần Unity Editor .12 Hình – C Sharp .15 Hình – Kho lưu trữ 18 Hình - Intellisense 19 Y Hình – Biểu đồ Use-case tổng quát 20 Hình 2 – Biểu đồ hành động bắt đầu trò chơi 21 Hình – Biểu đồ hành động chọn quân cờ 22 Hình – Biểu đồ hành động di chuyển quân cờ 23 Hình – Biểu đồ hành động tiêu diệt quân cờ 24 Hình – Biểu đồ hành động phong Hậu cho quân Tốt 25 Hình – Biểu đồ actitvity Castling move 26 Hình – Biểu đồ activity Check 27 Hình – Biểu đồ lớp 28 Hình – Giao diện vào game 30 Hình – Giao diện trị chơi chọn quân cờ 30 Hình 3 – Hiển thị hiệu ứng đường nhấn vào quân 31 Hình – Giao diện trò chơi người chơi dành chiến thắng 31 Đồ án sở Xây dựng game vua 3D CHƯƠNG I: KIẾN THỨC TỔNG QUAN 1.1 Unity Engine 1.1.1 Giới thiệu Unity Engine Unity game engine đa tảng phát triển Unity Technologies,[6] mà chủ yếu để phát triển video game cho máy tính, consoles điện thoại Lần cơng bố chạy hệ điều hành OS X, Apple's Worldwide Developers Conference vào năm 2005, đến mở rộng 27 tảng phiên phần mềm phát hành Tại triển lãm WWDC năm 2006, Apple trao thưởng giải Best Use of Mac OS X Graphics cho ứng dụng Hình 1 – Giao diện Unity Unity hỗ trợ đồ họa 2D 3D, chức viết chủ yếu qua ngơn ngữ C# Hai ngơn ngữ lập trình khác hỗ trợ: Boo, bị loại với việc phát triển Unity UnityScript bị loại vào tháng năm 2017 sau phát hành Unity 2017.1 UnityScript ngơn ngữ lập trình độc quyền có cú pháp tương tự JavaScript Phần mềm nhắm mục tiêu đồ họa APIs sau: Direct3D Windows Xbox One; OpenGL Linux, macOS, Windows; OpenGL ES Android iOS; WebGL web; APIs độc quyền máy chơi video game Ngoài ra, Unity hỗ trợ APIs cấp thấp Metal iOS macOS Vulkan Android, Linux, Windows, Direct3D 12 Windows Xbox One Trong 2D games, Unity cho phép nhập sprites renderer giới 2D tiên tiến Đối với 3D games, Unity cho phép thiết lập 10 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Tác nhân hệ thống Tác nhân người chơi giữ vai trị trị chơi Bảng – Tác nhân hệ thống Stt Tác nhân Ý nghĩa ,nhiệm vụ tác nhân Tác nhân người chơi di chuyển quân cờ, bắt đầu trò chơi, kết thúc trò chơi, chiếu vua, phong hậu, công quân cờ đối phương, bật tắt animation 2.2 Biểu đồ Use-case Hình – Biểu đồ Use-case tổng quát 23 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3 Biểu đồ hoạt động 2.3.1 Biểu đồ hoạt động bắt đầu ván Hình 2 – Biểu đồ hành động bắt đầu trò chơi 24 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.2 Biểu đồ hoạt động chọn quân cờ Hình – Biểu đồ hành động chọn quân cờ 25 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.3 Biểu đồ hoạt động di chuyển quân cờ Hình – Biểu đồ hành động di chuyển quân cờ 26 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.4 Biểu đồ hoạt động tiêu diệt quân cờ đối phương Hình – Biểu đồ hành động tiêu diệt quân cờ 27 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.5 Biểu đồ hoạt động phong Hậu Hình – Biểu đồ hành động phong Hậu cho quân Tốt 28 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.6 Biểu đồ hoạt động nhập thành Hình – Biểu đồ actitvity Castling move 29 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.3.7 Biểu đồ hoạt động chiếu vua Hình – Biểu đồ activity Check 30 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.4 Biểu đồ lớp Hình – Biểu đồ lớp 31 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D 2.5 Đặc tả Biểu đồ lớp - Lớp Chess_Game_Controller : lớp có vai trị điều khiển hoạt động trò chơi như: Bắt đầu trò chơi mới, chơi lại, khởi tạo bàn cờ, xóa quân cờ khỏi bàn cờ, khởi tạo trạng thái trò chơi, đổi lượt chơi - Lớp Board : lớp xử lý việc di chuyển quân cờ Lớp có chức chọn, hủy chọn quân cờ, kết thúc lượt chơi, tính tốn tọa độ khơng gian chiều sang tọa độ chiều bàn cờ, hiển thị nước quân cờ, lưu liệu bàn cờ dạng mảng chiều - Lớp Chess_Player: Lớp có vai trị định danh đội chơi đóng vai trị quan trọng việc di chuyển, cơng, khởi tạo bàn cờ - Lớp Piece: lớp nhúng vào quân cờ nhằm mục đích xác định loại quân cờ, trạng thái quân cờ, di chuyển quân cờ - Các lớp Bishop, King, Knight, Pawn, Queen, Rook thừa kế từ lớp Piece nhằm quy định khả di chuyển quân cờ, phong hậu, chiếu vua - Lớp Board_Layout lớp dùng để lưu thông tin quân cờ dạng mảng chiều - Lớp Piece_Creator: có chức lưu đường dẫn prefab material để khởi tạo quân cờ - Lớp Material_Setter: Chức lớp gắn material lên prefab để tạo nên quân cờ đen trắng - Lớp Collider_Input_Handler: quân cờ gán thuộc tính box collider nhằm mục đích phát va chạm Lớp tạo đường Raycast từ vị trí camera đến vị trí trỏ chuột trỏ tới từ gửi tọa độ trỏ chuột đưa lớp Board để tính tốn chuyển sang tọa độ chiều tương ứng bàn cờ - Lớp Camera_Setup : có chức đặt vị trí camera tương ứng với lượt chơi - Lớp Chess_UI_Manager : điều khiển việc hiển thị giao diện tương ứng với trạng thái trị chơi Ví dụ trạng thái Playing hiển thị hình giao diện chơi game 32 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D - Lớp UI_Button: có chức bắt kiện cho button giao diện - Các lớp thuộc thư mục Tweener làm nhiệm vụ di chuyển quân cờ cách mượt mà việc sử dụng thư viện DotWeen có sẵn Asset Store Unity Lớp Line_Tweener có nhiệm vụ làm cho quân cờ di chuyển theo đường thẳng đến vị trí định Lớp Arc_Tweener có nhiệm vụ di chuyển quân cờ theo đường parabol - Lớp Square_Selector_Creator có nhiệm vụ tạo hiệu ứng chọn quân cờ, nước quân cờ Bằng việc tạo prefab bàn cờ CHƯƠNG III: GIỚI THIỆU SẢN PHẨM THỰC TẾ 3.1 Giới thiệu trò chơi - Trò chơi tảng 3D được phát triển Game Engine Unity Ngơn ngữ lập trình C# - Tương thích với tảng: Windows Android - Các Asset game miễn phí lấy hàng Asset Store Unity - Các cử động nhân vật nhìn, cầm nắm quân cờ sử dụng thư viện Animation Rigging Unity - Di chuyển quân cờ sử dụng thư viện DOTWeen Asset Store Unity 3.2 Một số hình ảnh thực tế trị chơi Hình – Giao diện vào game 33 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D Hình – Giao diện trò chơi chọn quân cờ Hình 3 – Hiển thị hiệu ứng đường nhấn vào quân 34 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D Hình – Hiển thị chiếu tướng Hình 5– Giao diện trị chơi người chơi dành chiến thắng 35 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D CHƯƠNG IV : ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ HƯỚNG PHÁT TRIỂN CỦA TRÒ CHƠI 4.1 Ưu điểm - Trò chơi chạy đa tảng: Windows Android - Có Animation cho nhân vật phụ họa 4.2 Nhược điểm - Performance chưa tốt, chưa tối ưu tốt tảng di động - Chưa có tính lùi lại nước cờ, chơi online, phòng chat - UI Scene chưa đẹp - Animation nhân vật chưa tốt - Trò chơi giai đoạn sơ khai - Chưa có tính chơi với máy 4.3 Hướng phát triển - Phát triển thêm tính chơi Online, đưa game lên CH Play Steam - Thay model quân cờ model có tạo hình người có animation riêng cho hành động quân cờ - Tối ưu Animation nhân vật - Phát triển thêm tính phân chia thứ hạng, phịng chat, chơi với máy, chọn nhân vật, ngoại cảnh, phòng chờ 36 GVHD: ThS Trần Thị Trà Vinh Đồ án sở Xây dựng game vua 3D TÀI LIỆU THAM KHẢO [1] Kênh youtube GameDevChef: https://www.youtube.com/watch? v=cWgo0ak_8sE&t=5s [2] Nhóm Unity3D Việt Nam Facebook: https://www.facebook.com/groups/469290529874466 [3] Trang web thức Unity: https://docs.unity3d.com/Manual/index.html [4] Trang web Stack overflow : https://stackoverflow.com/ 37 GVHD: ThS Trần Thị Trà Vinh

Ngày đăng: 19/08/2021, 22:31

Mục lục

    CHƯƠNG I: KIẾN THỨC TỔNG QUAN

    1.1.1 Giới thiệu Unity Engine

    1.1.2 Ưu điểm của Unity

    1.1.3 Các thành phần trong Unity Editor

    1.1.3.1 Cửa sổ Sences

    1.1.4 Các khái niệm cơ bản trong Unity

    1.2.2 Tại sao phái sử dụng ngôn ngữ C#

    1.2.3 C# là ngôn ngữ hiện đại:

    1.2.3.1 C# là ngôn ngữ hướng đối tượng

    1.2.3.2 C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo

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