« Home « Kết quả tìm kiếm

Phát triển game online đa nền tảng


Tóm tắt Xem thử

- 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 1 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ và 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 nền 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 và 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 bản họp Hội đồng ngày 28 tháng 10 năm 2017 với các nội dung sau: 1.
- 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 nền tảng.
- 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 2 LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ “Phát triển game online đa nền tảng” là công trình nghiên cứu của riêng tôi.
- 9 Chương 1: Tổng quan về phát triển game online.
- 11 1.2 Lịch sử và 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 nền tảng.
- 20 2.1.2 Sơ lược lịch sử hình thành và phát triển của Unity.
- 33 Chương 3: Phát triển game đua xe online.
- 50 6 Danh mục các ký hiệu, các 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 trong 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 trong mạng Internet 7 Danh mục các hình vẽ Hình 1.1 Máy chơi game đầu tiên ra đời.
- 15 Hình 2.1 Unity nổi bật với khả năng build đa nền tảng.
- 40 Hình 3.7 Danh sách Model xe người chơi có thể chọn.
- Lý do chọn đề tài Sự phát triển mạnh mẽ của Internet cũng như công nghệ di động trên thế giới trong những năm vừa qua càng làm cho game online ngày càng mở rộng trên tất cả các nền tảng như PC, web và thiết bị di động.
- Đây chính là lý do chính em quyết định chọn đề tài phát triển game online đa nền tảng để đáp ứng được tất cả các nhu cầu giải trí trên mọi thiết bị, và đặc biệt là tiềm năng mà ngành công nghiệp game mang lại.
- Sự phát triển của ngành công nghiệp game cũng gắn liền với sự phát triển của máy tính và di động.
- Những game sở hữu công nghệ đa nền tảng (cross-flatform) sẽ trở thành xu hướng lựa chọn của các nhà phát hành game vì chạy được trên tất cả các hệ điều hành như Ios, Android, Window, MacOs, Webgame … 9 Từ đó các engine hỗ trợ phát triển game đa nền tảng cũng ra đời như Unity3D, Libgdx, Cocos2d-x.
- Trong luận văn này sẽ sử dụng Unity3D để phát triển game đua xe online.
- Mục đích nghiên cứu của luận văn, đối tƣợng, phạm vi nghiên cứu Mục đích nghiên cứu trong luận văn này em sẽ nêu lên cái nhìn tổng quan về lịch sử và xu hướng phát triển của ngành công nghiệp game.
- Tiếp theo sẽ giới thiệu một số engine hỗ trợ phát triển game đa nền tảng như Unity3D, Libgdx, Cocos2d-x.
- Sau đó sẽ nghiên cứu chi tiết 2 công nghệ chính sẽ sử dụng trong luận văn để phát triển game là Unity3D engine và Photon Server.
- Và cuối cùng sẽ đi sâu vào chi tiết để phát triển một game đua xe online hoàn chỉnh có thể chạy trên tất cả các nền tảng hệ điều hành.
- Trình bày tổng quan về game online, lịch sử phát triển và xu hướng phát triển của ngành công nghiệp game.
- Trình bày nghiên cứu chi tiết về các công cụ engine để phát triển một game online đa nền tảng là Unity3D và Photon.
- Xây dựng phát triển thành công một game đua xe online hoàn chỉnh có thể chạy trên tất cả các nền tảng hệ điều hành như Android, iOS, Window, MacOS, Web.
- Phƣơng pháp nghiên cứu Phương pháp nghiên cứu của đề tài là nghiên cứu từ những cái tổng quan xu hướng phát triển rồi tích cực đi sâu vào nghiên cứu vấn đề một cách chi tiết.
- Cuối cùng là xây dựng và phát triển giải pháp ứng dụng thực tế.
- 10 Chƣơng 1: Tổng quan về phát triển game online  Ni dung.
- Được xây dựng và phát triển trên nền tảng của mạng máy tính, chủ yếu là Internet.
- Sự phát triển của game online cũng phản ánh sự phát triển của mạng máy tính, từ những mạng nội bộ cho tới mạng toàn cầu Internet và chính sự tăng trưởng của Internet.
- Việc phát triển Flash của Macromedia cho đến khi Adobe mua hẳn, đã cho ra đời nhiều nền tảng ứng dụng mạnh mẽ, điển hình như game flash với nền tảng lập trình Action script kết hợp âm thanh hình ảnh sống động đã cho ra đời vài chục ngàn trò chơi game flash.
- Tuy nhiên những cách phân biệt trên chỉ là tương đối, với sự phát triển của game online thì các nhà phát triển còn có sự pha lẫn các thể loại game với nhau để tạo nên sản phẩm có sự đa dạng và thu hút hơn.
- Ngoài ra nếu phân chia theo nền tảng thì game online còn được chia theo một số nền tảng sau như: Web game, PC game và Mobile game.
- 13 1.2 Lịch sử và xu hƣớng phát triển ngành công nghiệp game Những cỗ máy chơi game đầu tiên đã có từ 1951, tuy nhiên phải tới 30 năm sau, ngành công nghiệp game này mới thực sự phát triển vượt bậc.
- Dưới đây là những khoảnh khắc quan trọng nhất trong lịch sử phát triển ngành công nghiệp game thế giới.
- Được phát triển bởi Ferranti, một công ty nghiên cứu thiết bị điện tử có trụ sở chính tại Anh.
- Họ đã đầu tư rất mạnh để phát triển nó.
- Hình 1.3 World of Warcraft 16 Thế kỷ 21 - Sự bùng nổ của game di động và đa nền tảng Dưới sự bùng nổ của smart phone và thị trường game PC đã trở nên bão hòa, ngành công nghiệp game cũng có những bước chuyển mạnh mẽ.
- Tận dụng ưu điểm nhỏ gọn và tiện lợi của smart phone, các nhà phát triển game đã nắm bắt và mở rộng thị trường game từ PC sang các nền tảng di động.
- Dễ nhận thấy game sở hữu công nghệ đa nền tảng (cross-flatform) sẽ trở thành xu hướng lựa chọn của các nhà phát hành game vì chạy được trên tất cả các nền tảng hệ điều hành như iOS, Android, Windows, MacOS, Webgame,… 1.3 Các công cụ engine hỗ trợ phát triển game đa nền tảng Dưới sự bùng nổ của các thiết bị di động chạy nhiều nền tảng khác nhau như Android, iOS, Windows Phone thì việc phát triển một dự án có thể chạy trên tất cả các nền tảng này là cần thiết nhằm mở rộng thị trường người dùng.
- Nếu như trước kia mỗi nền tảng là một dự án tách biệt và bảo trì riêng rẽ nên sẽ mất rất nhiều thời gian và cơ hội.
- Chính vì vậy các công cụ engine để phát triển game đa nền tảng đã ra đời nhằm giải quyết những vấn đề trên, viết mã nguồn một lần và chạy được trên mọi nền tảng.
- 1.3.1 Unity 3D Unity3D là một game engine giúp hỗ trợ triển khai đa nền tảng được phát triển bởi Unity Technologies.
- Unity hỗ trợ cả việc phát triển game 2D và 3D, các chức năng chủ yếu được viết bằng ngôn ngữ C#.
- Đây là một game engine phổ biến nhất trong việc phát triển các thể loại game 3D vì các tính năng mạnh mẽ mà chúng cung cấp.
- Unity nổi bật với khả năng xây dựng trò chơi chạy trên nhiều nền tảng.
- Hiện nay đã hỗ trợ chạy trên tất cả 25 nền tảng hệ điều hành như: iOS, Android, Tizen, Windows, Mac OS, Linux, WebGL, PlayStation,… Dưới đây là những tính năng chính của Unity: 17  Môi trường phát triển được tích hợp với tính năng kế thừa, giao diện kéo-thả các thành phần UI, khả năng chỉnh sửa đồ họa 3D ngay trên giao diện Editor, chức năng kiểm tra chi tiết và thiết lập các tham số, và đặc biệt tính năng xem trước game ngay trong lúc xây dựng (live game preview), ngoài ra Editor còn có thể mở rộng bằng plugins.
- Triển khai ứng dụng chạy được trên 25 nền tảng hệ điều hành như: iOS, Android, Tizen, Windows, Mac OS, Linux, WebGL, PlayStation.
- Unity cung cấp bộ thư viện Unity Networking API để hỗ trợ cho việc phát triển game online.
- Tuy nhiên với phiên bản Free cũng cung cấp đầy đủ các tính năng cần thiết cho việc phát triển game.
- 18 1.3.2 Cocos2d-x Cocos2d-x là một game engine mã nguồn mở theo giấy phép của MIT license, được sử dụng để xây dựng các trò chơi, ứng dụng đa nền tảng.
- Cocos2d-x cho phép các nhà phát triển sử dụng ngôn ngữ C.
- Lua, Javascript để viết mã nguồn và triển khai trên rất nhiều nền tảng như: iOS, Android, Windows Phone, Mac OS X, Windows Desktop, Linux.
- Từ đó giúp cho việc phát triển được tiết kiệm chi phí, giảm thiểu thời gian.
- Cocos2d-x đã được sử dụng bởi rất nhiều các công ty lớn cũng như những nhà phát triển độc lập.
- Nó cung cấp một môi trường cho phép các nhà phát triển sử dụng để triển khai ứng dụng đa nền tảng một cách nhanh chóng.
- LibGDX hiện hỗ trợ triển khai ứng dụng game trên các nền tảng sau: Windows, Linux, Mac OS X, Android (2.2.
- Sử dụng thư viện đồ họa OpenGL ES 2.0 trên tất cả các nền tảng.
- 2.1 Tổng quan về Unity3D engine 2.1.1 Unity3D là gì? Unity là một phần mềm làm game đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại.
- Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng.
- Hai ngôn ngữ lập trình khác cũng được hỗ trợ trước kia là: Boo, đã bị loại cùng với việc phát triển Unity 5 và UnityScript bị loại vào tháng 8 năm 2017 sau khi phát hành Unity 2017.
- Unity trước đây cũng đã hỗ trợ 7 nền tảng khác chạy trên Unity Web Player.
- Dưới đây là danh sách các lựa chọn hiện có: Tên License All Engine Feature Splash Screen Revenue Capacity Performance Reporting Premium Support Price Personal Có Không thể chỉnh sửa $100,000 Không Không Free Plus Có Có thể chỉnh sửa $200,000 Có Không $35 Monthly Pro Có Có thể chỉnh sửa Unlimited Có Có $125 Monthly Enterprise Có Có thể chỉnh sửa Unlimited Có Có Negotiated Pricing Một cuộc khảo sát tháng 5 năm 2012 của tạp chí Game Developer đã khẳng định Unity là công cụ phát triển trò chơi hàng đầu trên di động.
- 23 2.1.2 Sơ lƣợc lịch sử hình thành và phát triển của Unity Phiên bản đầu tiên của Unity (Version 1.0.0) được tạo ra bởi ba nhà sáng lập là David Helgason, Joachim Ante và Nicholas Francis tại Đan Mạch và được công bố chính thức vào ngày 6 tháng 6 năm 2005.
- Mục tiêu ban đầu là nhằm tạo ra một công cụ game engine chuyên nghiệp với giá cả phải chăng cho các nhà phát triển nghiệp dư.
- Đây cũng là một trong những yếu tố tạo nên sự thành công của Unity vì nó hỗ trợ cho các nhà phát triển độc lập, những người không có đủ ngân sách để mua những công cụ bản quyền đắt đỏ.
- Phiên bản phát hành đầu tiên chỉ dành cho hệ điều hành MacOS và các nhà phát triển chỉ có thể triển khai sản phẩm được trên một vài nền tảng.
- Cho đến phiên bản 1.1 Unity mới bắt đầu hỗ trợ chạy trên nền tảng hệ điều hành Window và trình duyệt web.
- Phiên bản này tập trung vào việc hỗ trợ nền tảng Window và cải thiện web player tương thích với nhiều nền tảng.
- Tại phiên bản này nhóm đã tích hợp thêm công cụ Microsoft DirectX giúp cải thiện hiệu năng và tối ưu hóa trên nền tảng Window.
- Dưới sự bùng nổ của các ứng dụng smartphone và sự ra đời của iPhone cùng với AppStore, Unity Technologies đã quyết định phát triển thêm phiên bản cho phép build ứng dụng chạy được trên cả iPhone.
- Tại thời điểm này Unity đã có hơn 200.000 nhà phát triển sử dụng và trở thành công nghệ engine được sử dụng nhiều nhất trên nền tảng mobile.
- Tại phiên bản này Unity mang lại rất nhiều tính năng mới như công nghệ Mecanim animation giúp nhân vật di chuyển linh hoạt sống động, hỗ trợ triển khai chạy trên nền Adobe Flash và nền tảng Linux, hệ thống Shuriken particle giúp tạo nên một số hiệu ứng tạo hạt và khói.
- Ngay sau đó vào tháng 12 năm 2012, phiên bản Unity 4.3 được tiếp tục phát hành nhằm hỗ trợ phát triển cho các thể loại game 2D.
- Tại phiên bản này vẫn tập trung vào nâng cấp cải thiện một số hạng mục chính như đồ họa, hiệu năng, tính ổn định và hiệu quả, ngoài ra hãng còn có chiến lược mở rộng khả năng chạy trên các nền tảng hệ điều hành khác.
- Môi trường phát triển được tích hợp với tính năng kế thừa, giao diện kéo-thả các thành phần UI, khả năng chỉnh sửa đồ họa 3D ngay trên giao diện Editor, chức năng kiểm tra chi tiết và thiết lập các tham số, và đặc biệt tính năng xem trước game ngay trong lúc xây dựng (live game preview), ngoài ra Editor còn có thể mở rộng bằng plugins.
- 31 2.2 Tổng quan về Photon Server 2.2.1 Photon Server là gì? Photon Server là một dịch vụ được cung cấp bởi Exitgames nhằm hỗ trợ người phát triển game đơn giản hóa việc khai triển server riêng, có khả năng thiết kế luồng hoạt động sao cho phù hợp với từng game riêng.
- Photon là một giải pháp Server đa nền tảng hỗ trợ nhà phát triển sở hữu ngay một Server backends dành cho game online.
- Hoặc nhà phát triển cũng có thể tùy chỉnh logic phía backends cho đúng với nhu cầu của họ.
- Mỗi dịch vụ có một đặc điểm riêng tùy theo nhu cầu của nhà phát triển.
- Nhà phát triển không thể tùy chỉnh logic phía server backends.
- 32  Photon Server thì nhà phát triển sẽ thuê một server riêng (Dedicated server) từ phía Exitgames và có thể tùy chỉnh logic của backends.
- Hình 2.9 Photon Cloud Server Với Photon Server các nhà phát triển có thể xây dựng bất cứ một game đa người chơi và tạo ra được một server hoàn chỉnh với chi phí công sức bỏ ra được tiết kiệm rất nhiều.
- Các tính năng chính của Photon Server có thể kể đến như: Hỗ trợ các thể loại game Realtime, Turnbased và MMO Photon được phát triển sau hơn 15 năm, tất cả các chi tiết đã được tối ưu hóa, cùng với sức mạnh và tốc độ của giao thức UDP/TCP sử dụng băng thông thấp và cho phép truyền gói tin rất nhanh.
- Photon Server là một công cụ phát triển dành cho bất cứ một thể loại game đa người chơi nào.
- Cross-Platform Các nhà phát triển có thể phát triển và xây dựng game online trên bất cứ một nền tảng nào như Window, MacOS, Android, IOS… Khả năng tùy chỉnh Server logic Các nhà phát triển có thể tùy chỉnh mã nguồn của server logic theo ý muốn của họ.
- 2.2.3 Kiến trúc của Photon Server Photon server là một framework SDK nhằm hỗ trợ phát triển game online đa nền tảng, có thể xử lý rất nhanh nhờ vào giao thức real-time socket và dễ dàng để triển khai sử dụng.
- Photon server chính là một back-end server dành riêng cho phát triển game online mà Exitgames đã tạo ra cho chúng ta để xử lý tất cả các logic thông thường mà một game online sẽ phải làm.
- Các nhà phát triển có thể tự tùy chỉnh sửa logic hoặc thêm bớt function cho game của họ cho phù hợp với yêu cầu của game, ngoài những API có sẵn mà Photon server SDK cung cấp.
- Photon server sử dụng multiplayer API để kết nối tất cả người chơi trên mọi nền tảng lại trong một phiên (session) để truyền tiếp dữ liệu và thông điệp một cách đồng bộ trong thời gian thực.
- Các nhà phát triển game không cần quan tâm quá nhiều đến giao thức truyền tải thông điệp giữa các máy trạm client với nhau, họ chỉ gần đóng gói dữ liệu đã được băm (hashtables) và gửi đi.
- Ngoài ra Photon Plugins dành cho các nhà phát triển có thể tùy chỉnh logic của back-end server.
- 35 Chƣơng 3: Phát triển game đua xe online  Ni dung.
- 3.1 Mô tả tổng quan về game đua xe online Trong chương trình này sẽ trình bày chi tiết cách xây dựng phát triển game đua xe online sử dụng 2 công nghệ chính như đã trình bày ở chương 2 đó là Untiy3D Engine và Photon Cloud Server.
- 3.2 Thiết lập kết nối với server và quản lý Room, Player Phát triển một game đua xe online đòi hỏi rất nhiều kỹ thuật ngoài việc đồng bộ vị trí xe đua.
- Chúng ta có thể chọn Region và Protocol.
- Người chơi có thể tự tạo phòng để làm chủ phòng (Master Client) hoặc tham gia một phòng.
- Tất cả các Client đã có thể nhìn thấy đối thủ của mình.
- 3.6 Kết luận Đề tài này đã ứng dụng các kỹ thuật cốt lõi của Unity3D engine và Photon server để tạo ra game online đa nền tảng.
- Việc sử dụng những công cụ này đã giúp cho việc phát triển game trong một môi trường làm việc mà trong đó nó đã cung cấp một tập hợp các tính năng cốt lõi để làm cho việc tạo ra trò chơi trở nên dễ dàng hơn, cả về lập trình và đồ họa.
- Từ đó, đề tài đã xây dựng phát triển một game đua xe online với đầy đủ các tính năng căn bản bao gồm.
- Hướng phát triển thêm của đề tài sẽ là phát triển thêm một số tính năng như quản lý account của người chơi, communication để tương tác giữa người chơi, AI trên đường đua, bảo mật phòng chống hack và cheating

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt