Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 253 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
253
Dung lượng
5,89 MB
Nội dung
THIẾT KẾ VÀ PHÁT TRIỂN TRỊ CHƠI MÁY TÍNH Bài 1: Giới Thiệu Môn Học Nội dung Giới thiệu môn học Trước bắt đầu: hiểu game Vòng đời phát triển game Chia nhóm thảo luận TRƯƠNG XUÂN NAM Phần Giới thiệu môn học TRƯƠNG XUÂN NAM Giới thiệu chung ▪ Tên mơn: Thiết Kế Phát Triển Trị Chơi (Game Design and Development) ▪ Số tín chỉ: ▪ Giới thiệu phát triển game Unity (1 tín chỉ) ▪ Đồ án mơn học (2 tín chỉ) ▪ Giảng viên: ▪ Trương Xuân Nam, môn Tin học Kỹ thuật Tính tốn, khoa Cơng nghệ Thơng tin ▪ Email: namtx@wru.vn ▪ Điện thoại: 091.210.2165 TRƯƠNG XUÂN NAM Nội dung mơn học ▪ Ơn tập ngôn ngữ C# (để dùng cho Unity) ▪ Các ngun lý phát triển trị chơi máy tính ▪ Cơ Unity ▪ Lập trình game 2D với Unity ▪ Lập trình game 3D với Unity ▪ Trị chơi nhiều người tham gia ▪ Trí tuệ nhân tạo game TRƯƠNG XUÂN NAM Tài liệu môn học ▪ Tài liệu chính: giảng mơn học, tài liệu gửi kèm ▪ Các tài liệu tham khảo: ▪ Game Programming Algorithms and Techniques: A Platform-Agnostic Approach ▪ Unity 3D Game Development by Example ▪ Learning Unity 2D Game Development by Example ▪ The Art of Game Design ▪ Game Architecture and Design ▪ Bài giảng, tập, mã nguồn, điểm số,… đưa lên site https://txnam.net mục BÀI GIẢNG TRƯƠNG XUÂN NAM Kiến thức yêu cầu ▪ Ngơn ngữ lập trình nâng cao ▪ Cấu trúc liệu giải thuật ▪ Đồ họa máy tính ▪ Mạng máy tính ▪ Trí tuệ nhân tạo ▪ Có kiến thức định dạng liệu thường dùng sống (văn bản, ảnh, âm thanh, phim, ) ▪ Đã chơi trị chơi máy tính có hiểu biết trị chơi máy tính TRƯƠNG XN NAM Phần mềm học tập TRƯƠNG XUÂN NAM Đánh giá kết ▪ Điểm môn học = ĐQT x 40% + ĐTCK x 60% ▪ Điểm trình: ▪ ▪ ▪ ▪ Điểm danh Thảo luận lớp Các điểm milestone tập lớn Bảo vệ tập lớn ▪ Điểm thi cuối kỳ: ▪ Vấn đáp ▪ Không hỏi lý thuyết ▪ Nội dung phần thực cá nhân tập lớn TRƯƠNG XUÂN NAM Tại phải học mơn này? ▪ Để có kiến thức lập trình trị chơi máy tính ▪ Để có nâng cao kĩ viết chương trình ▪ Để có hiểu biết cơng việc người sản xuất game khía cạnh việc xây dựng sản phẩm trị chơi máy tính ▪ Để có hiểu biết vai trò cách sử dụng game hợp lý sống ▪ Có thêm lựa chọn cho đề tài làm tốt nghiệp ▪ Có điểm mơn học trường TRƯƠNG XUÂN NAM 10 Tầng phiên: sockets ▪ Based on File I/O ▪ File Descriptors ▪ Open/Close ▪ Read/Write ▪ Modes ▪ Blocking • Sử dụng thread riêng cho socket ▪ Non-blocking • Thăm dò socket định kỳ TRƯƠNG XUÂN NAM 30 Tầng presentation ▪ Chuẩn bị liệu cho việc giao vận ▪ Nén ▪ Mã hóa ▪ Endian Order • 0b1000 vs 0b0001 ▪ Serialize ▪ Buffering • Hợp packet • Increased Latency • Store local data and wait TRƯƠNG XUÂN NAM 31 Tầng application ▪ Giao tiếp với người dùng ▪ Xử lý logic trò chơi ▪ Chuyển vận / đồng liệu hệ thống TRƯƠNG XUÂN NAM 32 Protocol stack TRƯƠNG XUÂN NAM 33 Phần Multiplayer game unity TRƯƠNG XUÂN NAM 34 Multiplayer game unity ▪ Multiplayer game unity chuẩn hóa sau thời gian dài “vật vã” lựa chọn khác ▪ Phiên dựa Raknet tương đối ổn định, cách tiếp cận hợp lý ▪ Có nhiều cách triển khai multiplayer unity ▪ ▪ ▪ ▪ HTTP requests Plugin (GPGS, Photon, Smartfox,…) Unity networking UNet (Unity 5.1 trở đi) TRƯƠNG XUÂN NAM 35 HTTP requests ▪ Phù hợp với game đơn giản (server web) xử lý số tình game (chẳng hạn: upload ảnh lên web) ▪ Sử dụng UnityWebRequest, ý xử lý đồng IEnumerator GetRequest(string uri) { UnityWebRequest uwr = UnityWebRequest.Get(uri); yield return uwr.SendWebRequest(); // xử lý lỗi if (uwr.isNetworkError) … } TRƯƠNG XUÂN NAM 36 Plugins ▪ Các plugin thường giải pháp công ty cung cấp dịch vụ server ▪ Có thể tải xuống từ Asset Store ▪ Một số plugin nên thử: ▪ ▪ ▪ ▪ Bluetooth LE for iOS and Android Google Play Game Services PUN (Photon Unity Network) SmartFoxServer2X TRƯƠNG XUÂN NAM 37 Thử ví dụ với UNet Tạo Scene Tạo đối tượng quản lý kết nối: NetworkManager (empty game object) Thêm component NetworkManager Thêm component NetworkManagerHUD Tạo đối tượng player: Một GameObject Thêm component NetworkIdentity Đưa đối tượng vào Prefabs Đăng ký player với NetworkManager (Spawn Info) TRƯƠNG XUÂN NAM 38 Thử ví dụ với UNet ▪ Viết mã di chuyển player public class Player : MonoBehaviour { void Update() { var x = Input.GetAxis("Horizontal") * 0.1; var y = Input.GetAxis("Vertical") * 0.1; transform.Translate(x, y, 0); } } ▪ Cách test: build chạy PC, chạy song song, server, client; kết nối chạy TRƯƠNG XUÂN NAM 39 Thử ví dụ với UNet ▪ Test 1: vấn đề ▪ Chưa có đồng trạng thái hai thiết bị ▪ Khi điều khiển điều khiển đồng thời đối tượng ➔ Chưa phân biệt player máy khác ▪ Cập nhật 1: ▪ Thêm NetworkTransform vào player ▪ Chuyển class thành NetworkBehaviour ▪ Viết mã điều khiển local player mà TRƯƠNG XUÂN NAM 40 Thử ví dụ với UNet ▪ Mã: using UnityEngine.Networking; public class PlayerMove : NetworkBehaviour { void Update() { if (!isLocalPlayer) return; var x = Input.GetAxis("Horizontal") * 0.1; var y = Input.GetAxis("Vertical") * 0.1; transform.Translate(x, y, 0); } } TRƯƠNG XUÂN NAM 41 Thử ví dụ với UNet ▪ Test ➔ phân biệt player, chưa đồng ▪ Update 2: phần NetworkIdentity chọn Local Player Authority ▪ Test 3: ▪ Đã đồng (hơi giật, làm để đỡ giật?) ▪ Chưa phân biệt player (vì giống hệt nhau) ▪ Update 3: đổi màu người chơi local TRƯƠNG XUÂN NAM 42 Thử ví dụ với UNet ▪ Mã: public override void OnStartLocalPlayer() { GetComponentInChildren().color = Color.yellow; } TRƯƠNG XUÂN NAM 43 Phần Game Pong, phiên mạng TRƯƠNG XUÂN NAM 44 ... TRƯƠNG XUÂN NAM 31 THIẾT KẾ VÀ PHÁT TRIỂN GAME Bài 2: Ngành Cơng Nghiệp Trị Chơi Điện Tử Nội dung Lịch sử phát triển trò chơi điện tử Các vị trí nhóm phát triển game Tài liệu thiết kế TRƯƠNG XUÂN... máy tính ▪ Mạng máy tính ▪ Trí tuệ nhân tạo ▪ Có kiến thức định dạng liệu thường dùng sống (văn bản, ảnh, âm thanh, phim, ) ▪ Đã chơi trò chơi máy tính có hiểu biết trị chơi máy tính TRƯƠNG XUÂN... đầu: hiểu game Vòng đời phát triển game Chia nhóm thảo luận TRƯƠNG XUÂN NAM Phần Giới thiệu môn học TRƯƠNG XUÂN NAM Giới thiệu chung ▪ Tên môn: Thiết Kế Phát Triển Trò Chơi (Game Design and Development)