ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH Đề tài : XÂY DỰNG GAME CHƠI CỜ VUA ONLINE Nguyễn Mạnh Đức LỚP: 19TCLC_DT2 NHÓM: 1911B Nguyễn Lê Nhật Minh LỚP: 19TCLC_DT2 NHÓM: 1911B Nguyễn Văn Vĩnh LỚP: 19TCLC_DT2 NHÓM: 1911B SINH VIÊN THỰC HIỆN: GIẢNG VIÊN HƯỚNG DẪN: ThS.Trần Hồ Thủy Tiên Đà Nằng 12/ 2021 PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH MỤC LỤC Mạnh Đức, Văn Vĩnh, Nhật Minh Trang PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH Mạnh Đức, Văn Vĩnh, Nhật Minh Trang DANH SÁCH HÌNH VẼ Hình 1.1 Tổng quan Unity Hình 1.2 Logo Unity Hình 1.3 Kiến trúc Unity Hình 2.1 Assets Unity Hình 2.2 Scenes Unity Hình 2.3 GameObject Unity Hình 2.4 Component Unity Hình 2.5 Tạo Script Hình 2.6 Một file Script gắn vào đối tượng Hình 2.7 Một số đối tượng Prefabs Hình 3.1 Thiết kế giao diện Hình 3.2 Sử dụng Firebase để quản lý tài khoản đăng nhập vào game Hình 3.3 Thiết kế cho chức đăng ký Hình 3.4 Quản lý tài khoản người chơi thơng qua firebase Hình 3.5 Giao diện sau đăng nhập Hình 3.6 Vào game sau chọn chế độ Local Hình 3.7 Phần mềm Radmin VPN Hình 3.8 Màn hình chơi Online Hình 3.9 Màn hình chủ phịng đợi người chơi Hình 3.10 Màn hình chủ phịng người chơi kết nối thành cơng vào game Hình 4.1 Màn hình di chuyển quân cờ Hình 4.2 Màn hình ăn quân cờ 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ần 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 nhũng 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) Cờ Vua 3D Chuẩn bị kiến thức kỹ cho định hướng nghề nghiệp (phát triển Game) 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 3D 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 Untiy 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 Cờ Vua 3D PBL4: PBL4:DỰ DỰÁN ÁNHỆ HỆĐIỀU ĐIỀUHÀNH HÀNH& &MẠNG MẠNGMÁY MÁYTÍNH TÍNH LỜI CẢM ƠN Chúng em xin chân thành cảm ơn thầy cô Khoa Công Nghệ Thông Tin , trường Đại học Bách Khoa Đà Nằng tạo điều kiện tốn cho chúng em thực đề tài Em xin chân thành cảm ơn cô Trần Hồ Thủy Tiên, người rõ hướng trình lựa chọn thực hoàn thành đề tài 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 q Thầy Cơ bạn Nguyễn Văn Vĩnh Mạnh Mạnh Đức, Đức, Văn Văn Vĩnh, Vĩnh, Nhật Nhật Minh Minh Nhóm sinh viên thực Nguyễn Mạnh Đức Nguyễn Lê Nhật Minh Trang Trang 66 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT TỔNG QUAN VỀ ENGINE UNITY VÀ KHÔNG GIAN 2D, 3D 1.1 Unity gì? Đã qua thời kỳ làm game Flash buồn chán với chuyển động thật cứng nhắc Unity mang lại sức mạnh kỳ diệu cho nhân vật mà muốn thể sống động không gian chiều đầy huyển ảo Công nghệ cao tạo bước đột phá khác biệt công nghệ làm game này, mang đến cho người chơi cảm giác khác lạ hào hứng chuyển động, tương lai công nghệ áp dụng vào game Việt Name mở trang giới game 2D, 3D huyền ảo Hình 1.1 Tổng quan Unity Unity dùng để làm video game, nội dung có tính tương tác thể kiến trúc, hoạt hình 2D, 3D thời gian thực Unity hao hao với Director, Blender game engine, Virtool shay Torque Game Builder khía cạnh dùng mơi trường đồ họa tích hợp q trình phát triển game Unity Engine giới làm game không chuyên ưu chuộng khả tuyệt vời phát triển trị chơi đa Trình biên tập chạy Windows MacOS, xuất game cho Windows, Mac, Wii, IOS, Android Game chơi trình duyệt web thông qua plugin Unity WebPlayer Unity bổsung khả xuất game widget cho Mac, Xbox 360, PlayStaytion 3, Chỉ với khoản tiền bỏ khiêm tốn ( 1.500 USD ) phiên pro nằm tay chúng ta, dĩ nhiên Việt Nam số tiền lớn thật may có phiên Unity free Tuy nhiên, nhiều tính quan trọng (Network) bị cắt giảm khơng phải vấn đề q lớn muốn phát triển tựa game tầm trung Vào năm 2009, Unity nằm top game engine tốt cho việc sản xuất game với sau năm phát triển Unity đứng thứ 4, xếp sau Unreal Engine 3, Gamebryo Engine (được VTC Studio mua phát triển SQUAD) Cry Engine Lượng tài liệu hướng dẫn Unity rấy phong phú Hơn cịn có sẵn cộng đồng cực lớn với diễn đàn riêng Bất cử điều khơng hiểu thoải mái hỏi nhận câu trả lời nhanh chóng, tận tâm Q trình tạo địa truy xuất từ phần mềm 3DSMax, Mây, Cinema4D nhanh chóng, Sức mạnh tiện lợi Unity vơ lớn Sức mạnh: Unity tạo nhiều loại game 2D, 3D đa dạng, dễ sử dụng với người làm game chưa chuyên nghiệp, chất lượng cao, chạy hầu hết hệ điều hành 1.2 Tổng quan Game Engine a) Khái niệm Một game Engine (hay công cụ tạo Game/động Game) phần mềm viết cho mục đích thiết kế phát triển video Game Có nhiều loại Game Engine dùng để thiết kế Game cho hệ máy hệ Consoles hay máy tính cá nhân (PC) Chức cốt lõi Game Engine phần lớn nằm cơng cụ dựng hình (kết xuất đồ họa) cho hình ảnh chiều (2D) hay chiều (3D), cơng cụ vật lý (hay cơng cụ tính tốn phát va chạm), âm thanh, mã nguồn, hình ảnh động (Animation), trí tuệ nhân tạo, phân luồng, tạo dòng liệu xử lý, quản lý nhớ, dựng ảnh đồ thị, kết nối mạng Quá trình phát triển Game tiết kiệm nhiều thời gian kinh phí vào việc tái sử dụng tái thích ứng Engine để tạo nhiều Game khác b) Mục đích PBL4: PBL4:DỰ DỰÁN ÁNHỆ HỆĐIỀU ĐIỀUHÀNH HÀNH& &MẠNG MẠNGMÁY MÁYTÍNH TÍNH Game Engine cung cấp phận cơng cụ phát triển trực quan tái sử dụng thành phần Nói chung công cụ cung cấp môi trường phát triển tích hợp đơn giản hóa Phá triển ứng dụng nhanh (Rapid Application Development) cho Game theo cách lập trình hướng liệu, Những Game Engine đơi gọi “ phần mềm trung gian cho Game” (Game Middleware), ý nghĩa thuật ngữ, chúng cung cấp tảng phần mềm linh hoạt dễ dàng sử dụng lại với chức cốt lõi cần thiết để phát triển ứng dụng Game đồng thời giảm giá thành, độ phức tạp, kịp thời hạn phát hành - tất yếu tố quan trọng nghành công nghiệp Game đầy cạnh tranh Giống phần mềm trung gian khác, Game Engine thường cung cấp tảng trừu tượng hóa, cho phéo Game chay nhiều hệ máy bao gồm hệ Consoles máy tính cá nhân với vài thay đổi (nếu cần) mã nguồn Game Thông thường, phần mềm trung gian cho Game thiết kế với tảng kiến trúc dựa thành phần khác, cho phép hệ thống khác Engine thay mở rộng với phần mềm trung gian khác chuyên biệt Havok cho hệ thống vật lý Game, Miles Sound System cho âm thanh, hay Bink cho đoạn video Một số Game Engine cung cấp khả dựng hính (kết xuất) 3D thời gian thực hay khả riêng biệt khác thay nhiều chức phạm vi rộng mà Game yêu cầu Loại Engine thường gọi “Graphics Engine”, “Rendering Engine”, hay “3D Engine) thay thuật ngữ bao quát “Game Engine” Một vài ví dụ cho Engine đồ họa :RealmForge, Truevision3D, OGRE, Crystal Space, Genesis3D, Vision Engine, Irrlicht JMonkey Engine 1.3 Unity Engine a) Giới thiệu chung Mạnh Mạnh Đức, Đức, Văn Văn Vĩnh, Vĩnh, Nhật Nhật Minh Minh Trang Trang 10 10 PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH phổ biến Game Online hệ thống điểm kinh nghiệm, chat tương tác thời gian thực, Một số tính cung cấp Networking như: State Synchroniztion, Realtime Nerworking, Remote Procedure Calls, Backend Connectivity Web Browser Integration, Web Connecticity CÁC THÀNH PHẦN TRONG UNITY 2.1 Assets Hình 2.1 Assets Unity Assets tài nguyên xây dựng nên dự án Unity Từ tập tin hình ảnh, mơ hình 3D đến tập tin âm Unity gọi tập tin mà dùng để tạo nên trò chơi tài sản (Assets) Điều lí giải tất tập tin, thư mục dự án Unity lưu trữ thư mục có tên “Assets” 2.2 Scenes Trong Unity, cần hiểu cảnh (hay phân đoạn) nghĩa chơi riêng biệt khu vực hay thành phần có nội dung trị chơi (ví dụ Game menu) Bằng cách tạo nên nhiều Scenes cho trò chơi, phân phối thời gian tải kiểm tra phần khác trò chơi cách riêng lẽ Hình 2.2 Scenes Unity 2.3 Game Object Mạnh Đức, Văn Vĩnh, Nhật Minh Trang 16 PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH Khi Assets sử dụng Scenes, chúng trở thành Game Object - thuật ngữ sử dụng Unity (đặc biệt mảng lậptrình) Tất Game Object chứa thành phần Transform Transform thơng tin vị trí, góc xoay tỉ lệ đối tượng, tất mô tả số X, Y, Z hệ trục tọa độ Thành phần tùy biến lại trình lập trình nhằm thay đổi vị trí, góc quay tỉ lệ đối tượng qua đoạn code Từ thành phần này, tạo Game Object với thành phần khác, bổ sung chức cần thiết để xây dựng nên thành phần nàn kích game mà tưởng tượng Hình 2.3 GameObject Unity 2.4 Component Component có nhiều hình thức khác Chúng xác định hành vi, cách xuất hiện, hay ảnh hưởng đến khía cạnh khác chức Game Object, Game chúng Object trị có chơi, thể Bằng áp dụng cash tác “gắn” động chúng chúng vào lên triển trò chơi đối tượng Những unity Component hỗ trợ sẵn Ví phổ dụ biến thành q phần trình Rigidbody phát nhiều thành cập phần hay khác Để yếuta tạo tố đơn nên giản yếu khác tố tương ảnh tác sáng, Camera trò chơi, chúng Component tađề sử dụng Script Unity (mã kịch bản), chúng xem Mạnh Đức, Văn Vĩnh, Nhật Minh Trang 17 PBL4: PBL4:DỰ DỰÁN ÁNHỆ HỆĐIỀU ĐIỀUHÀNH HÀNH& &MẠNG MẠNGMÁY MÁYTÍNH TÍNH Hình 2.4 Component Unity 2.5 Scripts Được Unity xem Component, Script thành phần thiết yếu q trình phát triển trị chơi đáng đề cập đến khái “chìa khóa” Unity cung cấp cho khả viết Script loại ngôn ngữ là: Java Script, C# Boo(một dẫn xuất ngơn ngữ Python) Unity khơng địi hỏi phải học làm để lập trình Unity, phải sử dụng Script lại thành phần kịch mà phát triển Unity xây dựng sẵn tập hợp đa dạng lớp, hàm mà hoàn tồn ứng dụng q trình lập trình cho trị chơi Để viết Script, làm việc với trình biên tập Script độc lập Untity, với chương trình Mono Developer tích hợp đồng với Unity phiên Mạnh Mạnh Đức, Đức, Văn Văn Vĩnh, Vĩnh, Nhật Nhật Minh Minh Trang Trang 18 18 PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH Mono Developer IDE tốt để lập trình cung cấp nhiều chức tương tự Visual Studio Mã nguồn viết Mono Developer cập nhật lưu trư dự án Unity Hình 2.5 Tạo Script Mỗi đoạn Script muốn thực thi phải gắn vào đối tượng Hình 2.6 Một file Script gắn vào đối tượng 2.6 Preíabs Prefabs cho phép lưu trữ đối tượng với Components thiết đặt hồn chỉnh Có thể so sánh với khái niệm MoveiClip Adobe Flash, Prefabs đơn giản Container (một đối tượng chứa) rỗng mà đưa đối tượng hay liệu mẫu mà muốn tái sử dụng sau Mạnh Đức, Văn Vĩnh, Nhật Minh Trang 19 PBL4: PBL4:DỰ DỰÁN ÁNHỆ HỆĐIỀU ĐIỀUHÀNH HÀNH& &MẠNG MẠNGMÁY MÁYTÍNH TÍNH Hình 2.7 Một số đối tượng Prefabs PHÂN TÍCH HỆ THỐNG Dự ÁN GAME CỜ VUA ONLINE 3.1 Giao diện chức đăng nhập, đăng ký H CoVua - ỉampleỉcene - PC Mac & Linux Sỉandalona - irty jỉ2-0 J 17F1 Personal iOXIIi Hình 3.1 Thiết kế giao diện • Thiết kế bao gồm ảnh nền, text nhập thông tin, button tương ứng với chức : Login, Register Exit 3.1.1 Chức đăng nhập Để tiết kiệm thời gian đơn giản hóa dự án khơng q cầu kì tốn nhiều tài ngun nhóm sử dụng tảng CSDL Google FireBase Chúng ta có thểcách đăng sử SDK dụng vào ứng dụng FireBase hồn chỉnh sửnhập cách dụngngười sửFireBaseUI dụng làm xác giải thực pháp FireBase xác thực để tích thảhợp vào thủ cơng phương thức đăng nhập vào ứng dụng íl Pirebase CoVua ■ft Project overview Authenticatìon To ereatỡ Users slgn-ln method Templates Access documentation Q, search by email address, phone number, or User lũ Creation SriDĐÌi date ị eis «anvinhqn231 ữec ũtậgmail.com s 2021 User nam? 55 Flrestore Database Reallìtne Database H storage © Hostlng (-) Punctlons (5) Machine learning vamãnh qn7350@gmail.com s hctboylopKl@gm8il.c om s teumsíbiOagsgmálCT m s I au rust bi @gmail c om làurustbil Q®gniaitcom H Mạnh Mạnh Đức, Đức, Văn Văn Vĩnh, Vĩnh, Nhật Nhật Minh Minh Publish and Mcnitor Crasblrtics, Portormance.Test Laữ _ Analytícs To hĩre Predlctkms, A/ B Testino, s ledaihanh2001 @gmail.com s Nov29,2 021 Nov27.2 021 NOV27,2 021 NpvJ7,2 021 Nov26,2 021 Nov26,2 021 the 30 comec tion UserUID Dec 20 2021 |Mn1 LOWkh1VMlàT2ODdŨJlTqlmv2 Nov 29,202 N0V27 2Ũ21 021 giXtyUUđ kKoHI XcyURWKwwq1 Dec 20 2021 Nov 27,202 Dec 20 2021 Dec 20 2021 7WSwkR8T0aCI5JqN4md210 2804 XW9NAĨL2SGR0yRESHtA7W J7jí4 Trang Trang 20 20 hl lmsqPữP4jwOnQauaG9BgeH3 rcFln5meiVN3ũc7vSI1Zio4ftị Oz2 mCÍAM93qUMWCCStMbỉửix KYB Lines per paoe 50 ▼ - of < > PBL4: DỰ ÁN HỆ ĐIỀU HÀNH & MẠNG MÁY TÍNH Hình 3.2 Sử dụng Firebase để quản lý tài khoản đăng nhập vào game FireBaseUI cung cấp giải pháp xác thực thả vào để xử lý luồng giao diện người dùng để đăng nhập vào địa email mật khẩu, số điện thoại với nhà cung cấp danh tính liên kết phổ biến, bao gồm Đăng nhập Google Đăng nhập Facebook FirebaseUI dễ dàng tùy chỉnh để phù hợp với phần cịn lại phong cách hình ảnh ứng dụng bạn mã nguồn mở bạn khơng bị hạn chế việc nhận trải nghiệm người dùng mà bạn muốn 3.1.2 Chc nng ng ký COVM - 5.n-đtúône Mac Lỡns standabnc- UrôtvdOĩO.3.17FI Pencml -ỉĐXĨIr Mạnh Đức, Văn Vĩnh, Nhật Minh r-'-r Trang 21 PBL4: PBL4:DỰ DỰÁN ÁNHỆ HỆĐIỀU ĐIỀUHÀNH HÀNH& &MẠNG MẠNGMÁY MÁYTÍNH TÍNH Hình 3.3 Thiết kế cho chức đăng ký Cũng cách sử dụng tảng CSDL Google Firebase đăng ký tài khoản chưa có tài khoản mặc định thơng qua xác thực mà Firebase đưa để có tài khoản thực đăng nhập vào để chơi game Ngồi ra, Firebase cịn có tài khoản admin để quản lý tài khoản đăng ký sửa đổi thơng tin cấp lại mật theo nhu cầu chủ tài khoản đề nghị Add User Ợ Search by email address, phone niimber, or User ID vanvinhqn2310@gmail.com Q Dec 2021 vanvinhqn7350@gmail.com Q Nov 29,2021 ledaihanh2001@gmail.com Q Nov 27,2021 hotboylop10@gmail.com Q Nov 27,2021 taurusfbiO8@gmail.com Q Nov 27,2021 taurusfbi@gmail.com Q Nov 26,2021 taurusfbi10@gmail.com Q Nov 26,2021 Dec 20 2021 Nov 29,2021 Mnl LqWKhlYMUĨT2ODdOJIT