Phát triển game online đa nền tảng Phát triển game online đa nền tảng Phát triển game online đa nền tảng luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
PHẠM HỒNG VẺ BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Phạm Hồng Vẻ CÔNG NGHỆ THÔNG TIN PHÁT TRIỂN GAME ONLINE ĐA NỀN TẢNG LUẬN VĂN THẠC SĨ KỸ THUẬT Công nghệ thông tin 2016A Hà Nội – 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Phạm Hồng Vẻ PHÁT TRIỂN GAME ONLINE ĐA NỀN TẢNG Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT Công nghệ thông tin NGƯỜI HƯỚNG DẪN KHOA HỌC : TS.Nguyễn Tuấn Dũng Hà Nội – 2017 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Phạm Hồng Vẻ Đề tài luận văn: Phát triển game online đa tảng Chuyên ngành: Công nghệ thông tin Mã số HV: CA160456 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 28 tháng 10 năm 2017 với nội dung sau: Chỉnh sửa lại nội dung Chương 1, mục 1.1: Tổng quan game online Chỉnh sửa lại nội dung Chương 1, mục 1.3: Các công cụ engine hỗ trợ phát triển game đa tảng Chỉnh sửa lại nội dung Chương 2, mục 2.1: Tổng quan Unity3D engine Cập nhập tài liệu tham khảo sử dụng luận văn Ngày 04 tháng 11 năm 2017 Giáo viên hƣớng dẫn Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ “Phát triển game online đa tảng” cơng trình nghiên cứu riêng Các số liệu tài liệu luận văn trung thực chưa cơng bố cơng trình nghiên cứu Tất tham khảo kế thừa trích dẫn tham chiếu đầy đủ Học viên Phạm Hồng Vẻ LỜI CẢM ƠN Để hồn thành luận văn tốt nghiệp Em xin chân thành cảm ơn thầy cô giáo trường đại học Bách Khoa Hà Nội nói chung, viện cơng nghệ thơng tin truyền thơng nói riêng đào tạo cho em kiến thức bổ ích, kinh nghiệm quý báu suốt thời gian học tập cao học Em xin gửi lời cảm ơn tới thầy giáo, TS Nguyễn Tuấn Dũng – Giảng viên viện công nghệ thông tin truyền thông đại học Bách Khoa Hà Nội tận tình hướng dẫn em suốt trình làm luận văn tốt nghiệp Do chưa có nhiều kinh nghiệm lĩnh vực làm game online nên cịn nhiều sai sót Em mong nhận đóng góp ý kiến, hướng dẫn bảo từ phía thầy giáo Em xin chân thành cảm ơn ! Hà Nội, tháng năm 2017 Học viên: Phạm Hồng Vẻ Mục Lục Danh mục ký hiệu, chữ viết tắt Danh mục hình vẽ Mở đầu Lý chọn đề tài Lịch sử nghiên cứu Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu Tóm tắt đọng luận điểm đóng góp tác giả Phương pháp nghiên cứu Chương 1: Tổng quan phát triển game online 10 1.1 Tổng quan game online 10 1.1.1 Giới thiệu game online 10 1.1.2 Phân loại game online 11 1.2 Lịch sử xu hướng phát triển ngành công nghiệp game 13 1.3 Các công cụ engine hỗ trợ phát triển game đa tảng 16 1.3.1 Unity 3D 16 1.3.2 Cocos2d-x 18 1.3.3 LibGDX 19 Chương 2: Tổng quan Unity3D Photon Server 20 2.1 Tổng quan Unity3D engine 20 2.1.1 Unity3D gì? 20 2.1.2 Sơ lược lịch sử hình thành phát triển Unity 23 2.1.3 Tính Unity3D engine 25 2.1.4 Các khái niệm Unity3D 26 2.1.5 Sơ nét giao diện Unity 29 2.2 Tổng quan Photon Server 31 2.2.1 Photon Server gì? 31 2.2.2 Tính Photon Server 31 2.2.3 Kiến trúc Photon Server 33 Chương 3: Phát triển game đua xe online 35 3.1 Mô tả tổng quan game đua xe online 35 3.2 Thiết lập kết nối với server quản lý Room, Player 37 3.2.1 Cấu hình Photon Cloud Server 37 3.2.2 Kết nối đến Server tạo phòng 38 3.2.3 Quản lý người chơi tham gia đua 39 3.2.4 Tùy chọn xe chọn đồ vòng đua 40 3.3 Thiết kế mô vật lý cho xe 41 3.3.1 Cấu trúc vật lý xe 41 3.3.2 Điều khiển xe di chuyển 43 3.3.3 Đồng vị trí xe tất người chơi 43 3.4 Thiết kế đường đua 45 3.5 Đánh giá hiệu 47 3.6 Kết luận 49 Tài liệu tham khảo 50 Danh mục ký hiệu, chữ viết tắt Viết tắt Thuật ngữ tiếng Anh Thuật ngữ tiếng Việt SDK Software Development Kit Gói cơng cụ phát triển phần mềm API Application Program Interface Giao diện ứng dụng PC Personal Computer Máy tính cá nhân CCU Concurrent Users Lượng người trực tuyến RPC Remote Procedure Call Lệnh điều khiển từ xa UDP User Datagram Protocol Giao thức gói truyền tin HTTP The Hypertext Transfer Protocol Giao thức truyền thông siêu liên kết sử dụng Web IDE Integrated Development Environment Môi trường phát triển TCP/IP Transmission Control Protocol/Internet Protocol Bộ giao thức truyền thông sử dụng mạng Internet Danh mục hình vẽ Hình 1.1 Máy chơi game đời 13 Hình 1.2 Máy chơi game console 14 Hình 1.3 World of Warcraft 15 Hình 2.1 Unity bật với khả build đa tảng 21 Hình 2.2 Giao diện Unity 25 Hình 2.3 Thành phần Scene Unity 27 Hình 2.4 Một số kiểu GameObject: nhân vật, ánh sáng, cối, âm thanh…………………………………………………………… …… 27 Hình 2.5 Component GameObject 28 Hình 2.6 Scripting 28 Hình 2.7 Môi trường làm việc Unity 30 Hình 2.8 Giá chi phí Server cho lượng CCU khác 31 Hình 2.9 Photon Cloud Server 32 Hình 2.10 Photon High Level Architecture 33 Hình 3.1 Giao diện game 36 Hình 3.2 Giao diện Menu phịng đợi (Lobby) 36 Hình 3.3 File PhotonServerSettings 37 Hình 3.4 Giao diện nhập Nickname 38 Hình 3.5 Giao diện tạo/tham gia phịng 38 Hình 3.6 Giao diện danh sách người tham gia vòng đua Room 40 Hình 3.7 Danh sách Model xe người chơi chọn 40 Hình 3.8 Mơ vật lý cho xe 41 Hình 3.9 Cấu trúc vật lý xe 42 Hình 3.10 Các thành phần vật lý đoạn Script đính kèm để điều khiển xe 42 Hình 3.11 PhotonView 44 Hình 3.12 Giao diện đường đua 45 Hình 3.13 Các CheckPoint đường đua 46 Hình 3.14 Mơ giả lập người chơi di chuyển đường đua 48 Mở đầu Lý chọn đề tài Sự phát triển mạnh mẽ Internet công nghệ di động giới năm vừa qua làm cho game online ngày mở rộng tất tảng PC, web thiết bị di động Đây lý em định chọn đề tài phát triển game online đa tảng để đáp ứng tất nhu cầu giải trí thiết bị, đặc biệt tiềm mà ngành công nghiệp game mang lại Lịch sử nghiên cứu Những cỗ máy chơi game có từ 1951, nhiên cỗ máy thô sơ Sự phát triển ngành công nghiệp game gắn liền với phát triển máy tính di động Năm 1951 – Máy chơi game đời Nimrod công nhận máy chơi game lịch sử loài người Thứ máy móc thiết kế đặc biệt để chơi tựa game mang tên Nim mắt buổi triển lãm khoa học Thập niên 70s – Thế hệ console Thập niên 80 – Thời kì hồng kim máy tính cá nhân Thập niên 90 – Đĩa CD PlayStation Thập nhiên 2000s – MMO Thể loại game nhập vai Thế kỷ 21 - Sự bùng nổ game di động đa tảng Dưới bùng nổ smart phone thị trường game PC trở nên bão hịa, ngành cơng nghiệp game có bước chuyển mạnh mẽ Những game sở hữu công nghệ đa tảng (cross-flatform) trở thành xu hướng lựa chọn nhà phát hành game chạy tất hệ điều hành Ios, Android, Window, MacOs, Webgame … Hình 3.1 Giao diện game Trong game sử dụng tính PhysX Unity để mô hành động vật lý xe va chạm, ma sát, gia tốc, phanh hãm, Dưới số chức triển khai xây dựng Demo: Đầy đủ tính chọn xe, chọn vịng đua, tạo phịng, Thiết kế mô vật lý cho xe, xử lý tất hành động va chạm, chuyển động bánh xe, Real-time Synchronization Đồng vị trí xe người chơi thời gian thực sử dụng Photon Cloud Server Tính tốn đưa bảng xếp hạng đua Hình 3.2 Giao diện Menu phòng đợi (Lobby) 36 Trong phần kết nối đến Photon Cloud Server, quản lý phòng chơi người chơi 3.2 Thiết lập kết nối với server quản lý Room, Player Phát triển game đua xe online đòi hỏi nhiều kỹ thuật ngồi việc đồng vị trí xe đua Trong mục này, trước tiên xử lý vấn đề cài đặt cấu hình Photon Server, quản lý Room, Player 3.2.1 Cấu hình Photon Cloud Server Trước tiên cần cấu hình Photon Cloud, dịch vụ giúp giao tiếp truyền liệu cho game online Mỗi game có AppID tương ứng Hình 3.3 File PhotonServerSettings Việc cài đặt đơn giản, cần tạo tài khoản trang https://www.photonengine.com/ Dashboard tạo game điền thông tin game vào Sau copy AppID trang web paste vào file PhotonServerSettings thư mục project Như game có 37 Server riêng dựa vào AppID Chúng ta chọn Region Protocol Trong project sử dụng giao thức UDP lý hiệu 3.2.2 Kết nối đến Server tạo phòng Trước kết nối đến Server, người chơi cần phải gõ Nickname: Hình 3.4 Giao diện nhập Nickname Sau nhập Nickname, đoạn code sau xử lý việc kết nối đến Server: public void EnteredNickname() { PhotonNetwork.player.name = edtNickname.text; PhotonNetwork.ConnectUsingSettings("v1 0"); } Sau kết nối đến Server Người chơi tự tạo phòng để làm chủ phòng (Master Client) tham gia phịng Giao diện hình dưới: Hình 3.5 Giao diện tạo/tham gia phịng 38 Đoạn code sau liệt kê danh sách tất phịng có: int index = 0; foreach ( RoomInfo game in PhotonNetwork.GetRoomList()) { if (index >= roomButtons.Length) break; RoomJoiner button = roomButtons[index++]; button.gameObject.SetActive(true); button.RoomName = game.name; string info = game.name.Trim() + " (" + game.playerCount + "/" + game.maxPlayers + ")"; button.GetComponentInChildren().text = info; } Khi người chơi định bấm nút tạo phòng tham gia phòng, Photon Network cung cấp sẵn API để thực việc đó: public void Join() { PhotonNetwork.JoinRoom(RoomName); } public void CreateGame() { RoomOptions options = new RoomOptions(); options.maxPlayers = 4; PhotonNetwork.CreateRoom(edtNickname.text, options,TypedLobby.Default); } 3.2.3 Quản lý ngƣời chơi tham gia đua Sau tạo phòng tham gia phòng, Photon lúc bắt đầu đồng tất thuộc tính game với truyền giao tiếp liệu người chơi Room Trước vòng đua diễn ra, người chơi chọn xe nhìn thấy đối thủ đua với giao diện hình bên dưới: 39 Hình 3.6 Giao diện danh sách ng ời tham gia vòng đua Room 3.2.4 Tùy chọn xe chọn đồ vòng đua Trong tựa game đua xe hấp dẫn có thêm chức chọn Model xe chọn đồ vịng đua Trong Demo thiết kế tính Hình 3.7 Danh sách Model xe ng ời ch i chọn Trong Room, người chơi thay đổi Model xe đồ vòng đua, tất đối thủ nhìn thấy Photon Server thực đồng hóa việc tính Remote Procedure Call (RPC) Đây thủ tục khởi gọi lệnh tất máy Client Loading Scenes Khi thứ sẵn sàng, chủ phòng nhấn nút bắt đầu lúc lệnh LoadRace() gửi đến tất máy Client kỹ thuật RPC nói trên: public void CallLoadRace() { photonView.RPC("LoadRace",PhotonTargets.All); } 40 [PunRPC] public void LoadRace() { PhotonNetwork.LoadLevel("Race" + trackIndex); } Phần thiết kế Menu cho game xong, tiếp đến mục sau xử lý vấn đề mô vật lý cho xe 3.3 Thiết kế mô vật lý cho xe Thiết kế mô vật lý game đua xe coi nhiệm vụ khó khăn Để xe thực hành vi giống đời thực thử thách lớn Ví dụ chuyển động bánh xe, lực va chạm, ma sát, sức cản gió, độ dốc nghiêng, Tuy nhiên với Unity3D engine hỗ trợ, hồn tồn làm điều cách dễ dàng nhiều Unity3D cung cấp sẵn khung xử lý dành riêng cho tựa game đua xe, bao gồm Script Controller điều khiển xe Hình 3.8 Mơ vật lý cho xe 3.3.1 Cấu trúc vật lý xe Cấu trúc vật lý xe game tương tự ngồi thực tế Nó lắp ghép tất thiết bị rời rạc không gian 3D 41 Trong game, ngoại trừ bánh xe chuyển động lăn tất phần cịn lại chuyển động tịnh tiến Cấu trúc đồ họa xe hình 3.9 Hình 3.9 Cấu trúc vật lý xe Về mặt đồ họa, xe đơn giản kết hợp thành phần: Thân xe bốn bánh xe Tất chi tiết thành phần vật lý script cấu trúc nên xe liệt kê hình 3.10 Hình 3.10 Các th nh phần vật lý v đoạn Script đ ợc đính kèm để điều khiển xe 42 Trong Unity có khái niệm gọi RigidBody Đây tính vật lý quan trọng, gắn RigidBody vào xe, xử lý việc xảy va chạm với vật thể khác đường đua 3.3.2 Điều khiển xe di chuyển Khi thiết kế vật lý cho xe, gắn tính chyển động quay vào bánh xe Thành phần vật lý PhysX Unity tính tốn lực ma sát, trọng lực để xe di chuyển dựa vào input người chơi Đoạn code xử lý việc nhận input từ người chơi hàm Move() cung cấp sẵn Unity điều khiển xe di chuyển: void FixedUpdate() { if (controlable) { Steer = CrossPlatformInputManager.GetAxis("Horizontal"); Accell = CrossPlatformInputManager.GetAxis("Vertical"); if (CrossPlatformInputManager.GetButton("Fire3")) { Unflip(); } #if !MOBILE_INPUT Handbrake = CrossPlatformInputManager.GetAxis("Jump"); #endif } car.Move(Steer, Accell, Accell, Handbrake); } 3.3.3 Đồng vị trí xe tất ngƣời chơi Mỗi Client khởi tạo đối tượng xe người chơi Photon Server copy đối tượng xe tất Client khác thơng qua tính RPC Tất Client nhìn thấy đối thủ Tuy nhiên để nhìn thấy 43 xe di chuyển cần làm thêm số việc Photon cung cấp thành phần PhotonView Hình 3.11 PhotonView Khi gắn PhotonView vào xe, giống Camera, ln gửi liệu (Real-time) lộ trình di chuyển tất thuộc tính xe vận tốc, gia tốc, hướng xe phanh hãm Từ q trình đồng hóa vị trí xe thực Đoạn code thực thi trình gửi/ nhận liệu: void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.isWriting) { stream.SendNext((float)m_CarInput.Steer); stream.SendNext((float)m_CarInput.Accell); stream.SendNext((float)m_CarInput.Handbrake); stream.SendNext(transform.position); stream.SendNext(transform.rotation); stream.SendNext(rb.velocity); } else { m_CarInput.Steer = (float) stream.ReceiveNext(); m_CarInput.Accell = (float) stream.ReceiveNext(); m_CarInput.Handbrake = (float) stream.ReceiveNext(); correctPlayerPos = (Vector3) stream.ReceiveNext(); correctPlayerRot = (Quaternion) stream.ReceiveNext(); currentVelocity = (Vector3) stream.ReceiveNext(); updateTime = Time.time; } } 44 3.4 Thiết kế đƣờng đua Ở phần trước, việc kết nối đến Server Photon, thiết kế Menu thiết kế vật lý cho xe hoàn chỉnh Tiếp theo phần vào việc thiết kế đường đua cho game tính tốn xếp hạng người chơi đích Hình 3.12 Giao diện đ ờng đua Hai bên hành lang lề đường đua gắn RigidBody, điều khiến xe va chạm vào tương tác vật lý vật cản Ngoài ra, đường đua đặt nhiều CheckPoint để tính tốn khoảng cách mà xe tính tốn xe đích dựa vào số lượng CheckPoint mà xe vượt qua CheckPoint thực chất trigger, xe băng qua CheckPoint hàm trigger khởi gọi: void OnTriggerEnter(Collider other) { Checkpoint waypoint = other.GetComponent(); if (waypoint != currentWaypoint) { Debug Log (" Missed Check - " + other.gameObject.name ); } else 45 { waypointsPassed++; if (waypoint.isStartFinish) lapsCompleted++; if (lapsCompleted == totalLaps) { CarInput input = GetComponent(); input.controlable = false; input.Steer = 0; input.Handbrake = 1; input.Steer = 0; } currentWaypoint = waypoint.next; } } void UpdateDistanceTraveled() { Vector3 distance = transform.position - currentWaypoint.transform position ; distanceTraveled = 1000 * waypointsPassed + (1000 - distance.magnitude); } Dưới hình ảnh hiển thị nơi tất CheckPoint đặt đường đua: Hình 3.13 Các CheckPoint đ ờng đua 46 3.5 Đánh giá hiệu Trước xuất game thị trường phải đo lường đánh giá hiệu năng, khả chịu tải server CCU (lượng người chơi thời điểm) Và khả chịu tải xử lý đồ họa phần cứng mobile lẫn PC lượng người chơi tăng lên khu vực đồ đường đua Về vấn đề hiệu Photon server chịu tải lượng người chơi thời điểm (CCU) cịn phụ thuộc vào nhiều yếu tố như: Số lượng Client phòng chơi Tần suất gửi gói tin Kích thước gói tin Giao thức (protocol type) Ví dụ UDP, TCP/IP,… Client platform (Android, iOS, Window, …) Phần cứng server Etc Trong trường hợp thông thường có khoảng ~ 200 msg / room / s Với cấu hình phần cứng Photon server sau xử lý tốt khoảng 1000 đến 2000 CCU server: quad core CPU (Ví dụ: Intel Xeon 3440, E3-1230 etc.), GB RAM GBps NIC / uplink port speed Photon server có hai kiểu máy chủ riêng (Dedicated Server) máy chủ ảo (VMs) Máy chủ ảo cho hiệu Sau tạo kịch test hiệu game đua xe việc tạo giả lập người chơi di chuyển ngẫu nhiên đường đua phân tích kết lượng người chơi tăng dần lên Với cấu hình phần cứng phía Client sau: PC: Core i7 1.73 GHz, GB RAM, Window 64 bit Mobile: Exynos 5410 Quad-core 1.6 GHz, GB RAM, Android 5.0 47 Giao thức (Protocol type) sử dụng trình test UDP Tùy chọn máy chủ Photon đặt khu vực EU Cuộc thử nghiệm bắt đầu với khoảng – 10 người chơi tạo giả lập di chuyển ngẫu nhiên đồ gửi nhận gói tin giao tiếp đến server thơng tin vị trí, hướng, vận tốc, … Hình 3.14 Mơ giả lập ng ời ch i di chuyển đ ờng đua Với lượng người chơi kết cho thấy tất trình đua xe diễn bình thường, chưa thấy có tượng giật lag PC lẫn Mobile Bằng phương pháp đo độ trễ gói tin API Photon cung cấp: PhotonNetwork.GetPing() nhận dải ping dao động từ 200-300 milisecond tùy thuộc vào mạng 2G, 3G, Wifi suốt trình đua, giá trị chấp nhận Cuộc thử nghiệm tăng lên với khoảng 20 – 40 người chơi giả lập đồ Lúc độ trễ gói tin (ping) nhận giá trị trung bình khoảng 200 - 300 milisecond suốt trình đua Tuy nhiên Mobile lúc thấy có tượng giật lag, xe di chuyển giật khơng mượt mà Trên PC bình thường q trình đua Chúng ta thấy khơng phải vấn đề từ phía server mà vấn đề hiệu xử lý đồ họa phần cứng mobile chưa đủ mạnh để xử lý game 3D phức tạp 48 Cuộc thử nghiệm tăng lên với khoảng 200 – 300 người chơi giả lập đồ Lúc độ trễ ping nhận cao, vào khoảng ~ 1000 milisecond Trên PC lẫn Mobile lúc tượng giật lag xảy mức cao 3.6 Kết luận Đề tài ứng dụng kỹ thuật cốt lõi Unity3D engine Photon server để tạo game online đa tảng Việc sử dụng công cụ giúp cho việc phát triển game môi trường làm việc mà cung cấp tập hợp tính cốt lõi để làm cho việc tạo trò chơi trở nên dễ dàng hơn, lập trình đồ họa Khơng địi hỏi phải tìm hiểu kỹ thuật multithread, hiển thị xử lý đồ họa 3D phức tạp hay kỹ thuật cơng nghệ xử lý phía server Từ đó, đề tài xây dựng phát triển game đua xe online với đầy đủ tính bao gồm: Thiết lập kết nối đến Photon Cloud Server Thiết kế Menu tạo/ tham gia phòng, tùy chọn Model xe, tùy chọn đường đua Thiết kế vật lý cho xe đồng hóa vị trí xe Thiết kế đường đua tính tốn xếp hạng đích Đánh giá hiệu Hướng phát triển thêm đề tài phát triển thêm số tính quản lý account người chơi, communication để tương tác người chơi, AI đường đua, bảo mật phòng chống hack cheating, … 49 Tài liệu tham khảo Will Goldstone (2009), Unity Game Development Essentials, Packt Publishing, United Kingdom John Haas, A History of the Unity Game Engine, Worcester Polytechnic Institute, USA Website: https://doc.photonengine.com/en-us/onpremise/current/gettingstarted/photon-server-intro Website: https://vi.wikipedia.org/wiki/Trò_chơi_trực_tuyến Website: https://vi.wikipedia.org/wiki/Unity_(phần_mềm_làm_game) Website: http://www.cocos2d-x.org/wiki/Cocos2d-x Website: https://libgdx.badlogicgames.com/features.html Website: https://docs.unity3d.com/Manual/ScriptingSection.html Website: http://game4v.com/pc-console/6-dau-moc-quan-trong-nhat-tronglich-su-phat-trien-nganh-cong-nghiep-game-173623.g4v 50 ... triển xu hướng phát triển ngành cơng nghiệp game Trình bày nghiên cứu chi tiết công cụ engine để phát triển game online đa tảng Unity3D Photon Xây dựng phát triển thành công game đua xe online hồn... Tổng quan phát triển game online 10 1.1 Tổng quan game online 10 1.1.1 Giới thiệu game online 10 1.1.2 Phân loại game online 11 1.2 Lịch sử xu hướng phát triển ngành... cầu đa dạng người chơi Sự phát triển game online phản ánh phát triển mạng máy tính, từ mạng nội mạng tồn cầu Internet tăng trưởng Internet Game online bao gồm loại game, game dựa mã hóa game