Nghiên cứu và phát triển game trên trình duyệt web với silverlight

  • Số trang: 96 |
  • Loại file: DOC |
  • Lượt xem: 15 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HẦU NGUYỄN THÀNH NAM – TRẦN DUY QUANG NGHIÊN CỨU VÀ PHÁT TRIỂN GAME TRÊN TRÌNH DUYỆT WEB VỚI SILVERLIGHT KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT TP.HCM, 2009 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HẦU NGUYỄN THÀNH NAM 0512222 TRẦN DUY QUANG 0512275 NGHIÊN CỨU VÀ PHÁT TRIỂN GAME TRÊN TRÌNH DUYỆT WEB VỚI SILVERLIGHT KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT GIÁO VIÊN HƯỚNG DẪN TS. TRẦN MINH TRIẾT NIÊN KHÓA 2005 – 2009 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Khóa luận đáp ứng yêu cầu của LV cử nhân tin học. Tp HCM, ngày…… tháng…… năm 2009 Giáo viên hướng dẫn i NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Khóa luận đáp ứng yêu cầu của LV cử nhân tin học. Tp HCM, ngày…… tháng…… năm 2009 Giáo viên phản biện ii LỜI CÁM ƠN Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên Tp HCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài tốt nghiệp này. Chúng em xin chân thành cảm ơn Thầy Trần Minh Triết, người đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài. Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quí báu trong những năm học vừa qua. Chúng em xin gửi lòng biết ơn sâu sắc đến Ba, Mẹ, các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong những lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu. Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn. Nhóm thực hiện Hầu Nguyễn Thành Nam & Trần Duy Quang iii ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Nghiên cứu và phát triển game trên trình duyệt web với Silverlight Giáo viên hướng dẫn: TS. Trần Minh Triết Thời gian thực hiện: từ ngày 02/01/2009 đến ngày 07/07/2009 Sinh viên thực hiện: Hầu Nguyễn Thành Nam (0512222) – Trần Duy Quang (0512275) Loại đề tài: Tìm hiểu công nghệ và xây dựng ứng dụng Nội dung đề tài: Đây là đề tài thuộc về hướng tìm hiểu công nghệ và phát triển ứng dụng. Đề tài bao gồm các phần sau:  Khảo sát các đặc điểm thường gặp của 1 số game online trên nền web, như Ikariam, Travian, Evony, Second World, Battle, TribalWars…  Nghiên cứu các kĩ thuật phát triển ứng dụng web hỗ trợ multimedia và có tính tương tác cao với công nghệ Silverlight.  Đề xuất các khái niệm và quy luật của một họ game online thuộc thể loại xây dựng và chiến thuật trên nền web. Phát triển một game thuộc họ game đã đề xuất với công nghệ silverlight. Game được xây dựng có khả năng tùy biến để bổ sung/thay đổi các thông tin trong trò chơi (ví dụ như công trình, quân lính, kỹ thuật…) và các tài nguyên hình ảnh tương ứng.  Xây dựng công cụ (game editor) thực hiện việc bổ sung / thay đổi các thông tin trong trò chơi (ví dụ công trình, quân lính, kỹ thuật…) và các tài nguyên hình ảnh tương ứng, ngoài ra với công cụ này có thể cho phép tạo ra các game có cùng phong cách chơi, nguyên tắc xử lý, nhưng các thông tin trong trò chơi và tài nguyên hình ảnh được thay đổi. Kế hoạch thực hiện: - 02/01/2009 đến 14/1/2009: Tìm hiểu về Rich Internet Application và công iv nghệ Silverlight. Tìm hiểu các game trên nền web hiện có. - 15/1/2009 đến 1/2/2009: Phân tích các yêu cầu, vấn đề, giải pháp khi xây dựng game trên nền web. - 2/2/2009 đến 20/2/2009: Tìm hiểu và hoàn tất các yêu cầu về mặt kĩ thuật. - 21/2/2009 đến 12/3/2009: Xây dựng khung chương trình cho game chơi trên nền web. - 13/3/2009 đến 25/3/2009: Hoàn thành các chức năng chính của chương trình. - 26/3/2009 đến 10/4/2009: Nâng cấp, cải thiện hiệu suất tốc độ xử lý - 11/4/2009 đến 6/5/2009: Xây dựng khung chương trình cho công cụ hiệu chỉnh và phát sinh game. - 7/5/2009 đến 22/5/2009: Hoàn thành các chức năng của công cụ phát sinh game. - 23/5/2009 đến 8/6/2009: Nâng cấp giao diện và tính tiện dụng công cụ. - 9/6/2009 đến 30/6/2009: Hoàn thành toàn bộ chương trình dựa trên qui trình và giải pháp đã xây dựng. Xác nhận của GVHD Ngày 06 tháng 07 năm 2009 SV Thực hiện v MỤC LỤC Chương 1 Mở đầu......................................................................................................1 1.1. Tổng quan...................................................................................................1 1.1.1. Tổng quan về quá trình phát triển của các thế hệ video game 1 1.1.2. Tổng quan về game trên trình duyệt 1.2. 2 Rich Internet Application - RIA..................................................................3 1.2.1. Tổng quan về RIA 3 1.2.2. RIA và các giải pháp 6 1.3. Mục tiêu của luận văn...............................................................................12 1.4. Nội dung báo cáo khóa luận......................................................................14 Chương 2 Một số đặc điểm chính của game trên trình duyệt...................................15 2.1. Tổng quan.................................................................................................15 2.2. Phân tích các đặc điểm chung của game trên trình duyệt..........................15 2.2.1. Dựa trên văn bản 2.2.2. Tất cả xử lý hầu hết đều được thực hiện tại server 2.2.3. Hạn chế xử lý tất cả các hành động đồng thời 2.2.4. Game được hỗ trợ đa ngôn ngữ 2.2.5. Game được xây dựng với cấu trúc rất linh động 20 2.3. 15 17 18 20 Quy luật chung của dòng game thể loại xây dựng chiến thuật trên trình duyệt web............................................................................................................21 2.3.1. Thế giới ảo 21 2.3.2. Khu xây dựng 2.3.3. Tài nguyên 22 23 vi 2.3.4. Quân lính 24 2.3.5. Nâng cấp khả năng cho các đơn vị quân lính 2.3.6. Nâng cao năng suất khai thác các loại tài nguyên 2.3.7. Quan hệ ngoại giao và hệ thống liên minh 2.3.8. Vận chuyển hàng hóa và giao thương 2.3.9. Mở rộng lãnh thổ 25 26 27 28 28 Chương 3 Web game xây dựng MyIka....................................................................30 3.1. Thế giới game MyIka................................................................................30 3.2. Các loại tài nguyên....................................................................................31 3.3. Thành phố.................................................................................................32 3.4. Các loại công trình....................................................................................33 3.4.1. Loại công trình được định nghĩa sẵn 3.4.2. Loại công trình tạo ra tài nguyên 34 3.4.3. Loại công trình tạo ra các đơn vị lính 33 34 3.5. Quân lính..................................................................................................34 3.6. Công nghệ.................................................................................................36 3.7. Liên minh và thuộc địa.............................................................................36 3.8. Tin nhắn....................................................................................................37 3.9. Tấn công...................................................................................................37 Chương 4 Những vấn đề xử lý game tại client........................................................38 4.1. Xử lý đồ họa và tương tác giao diện.........................................................38 4.1.1. Chuyển đổi qua lại giữa các màn hình giao diện trong game. 38 vii 4.1.2. Hiệu ứng chuyển trang trong ứng dụng nhiều trang trong game 41 4.1.3. Hỗ trợ giao diện đa ngôn ngữ trong game43 4.1.4. Hiệu ứng xoay vòng dạng băng chuyền trong game 44 4.1.5. Các hiệu ứng với các đối tượng riêng lẻ trong game 46 4.2. Các vấn đề quá trình xử lý trong game tại client.......................................49 4.2.1. Xây dựng game có cấu trúc linh động 4.2.2. Bảo mật thông tin tài khoản người dùng trong game 4.2.3. Tối ưu hóa trong xử lý hỗ trợ đa ngôn ngữ trong game 51 4.2.4. Tối ưu hóa trong quá trình nạp hình ảnh từ server 4.2.5. Truyền nhận dữ liệu giữa client và server 52 4.2.6. Lưu giữ trạng thái chương trình tại client 54 4.3. 49 50 52 Âm thanh trong game................................................................................55 Chương 5 Một số vấn đề xử lý trong game tại Server.............................................57 5.1. Một số vấn đề về xử lí...............................................................................57 5.1.1. Serialize đối tượng trong WCF service 57 5.1.2. Phương thức mở rộng cho các đối tượng dựng sẵn 58 5.2. Cách tổ chức dữ liệu.................................................................................59 5.3. Mô hình sự kiện tại server.........................................................................60 5.3.1. Mô hình xử lí sự kiện 60 5.3.2. Lưu trữ sự kiện trong cơ sở dữ liệu 5.3.3. Chương trình quản lí các bộ giám sát sự kiện 61 63 Chương 6 Kiến trúc hệ thống..................................................................................64 viii 6.1. Kiến trúc client..........................................................................................64 6.2. Kiến trúc server.........................................................................................64 6.3. Sơ đồ phối hợp client và server.................................................................66 6.4. Tổ chức dữ liệu.........................................................................................66 6.4.1. Cơ sở dữ liệu 66 6.4.2. Cấu hình và các prototype 70 6.5. GameEditor...............................................................................................73 Chương 7 Kết luận..................................................................................................75 7.1. Các kết quả đạt được.................................................................................75 7.2. Hướng phát triển của đề tài.......................................................................75 ix DANH MỤC HÌNH Hình 1.1. Cơ chế làm việc đồng bộ và bất đồng bộ...................................................4 Hình 1.2. Mô hình xử lí AJAX..................................................................................5 Hình 1.3. Nền tảng công nghệ RIA của Adobe.........................................................7 Hình 1.4. Sản phảm được xây dựng với Adobe AIR.................................................8 Hình 1.5. Nền tảng công nghệ RIA của Java FX.......................................................9 Hình 1.6. Nền tảng công nghệ RIA của Silverlight.................................................10 Hình 1.7. Kiến trúc chính của Silverlight 2.............................................................11 Hình 2.1. Giao diện chính của game Evony............................................................16 Hình 2.2. Trạng thái chiến đấu trong game duels....................................................16 Hình 2.3. Mô hình chuyển giao dữ liệu từ client sang server..................................17 Hình 2.4. Xây dựng trong game Tribalwars............................................................19 Hình 2.5. Ví trị các thành phố thay đổi thông qua map mới....................................21 Hình 2.6. Bản đồ thế giới trong game Second Home...............................................22 Hình 2.7. Vùng đất để xây dựng các loại nhà trong game travian...........................22 Hình 2.8. Hình ảnh thể hiện các mỏ tài nguyên của 1 tài khoản..............................23 Hình 2.9. Giao diện tạo lính bộ binh trong game Ikariam........................................24 Hình 2.10. Công trình kiểm lâm giúp tăng năng suất gỗ sau mỗi lần nâng cấp.......27 Hình 2.11. Quan hệ ngoại giao................................................................................27 Hình 3.1. Hình ảnh trung tâm xây dựng với các khu xây dựng...............................30 Hình 3.2. Hình ành giao diện của 1 citytrong game.................................................32 Hình 4.1 : Các loại theming shiny control...............................................................47 Hình 4.2 Hiệu ứng ảnh trong silverlight FX............................................................48 x Hình 5.1 : Mô hình xử lý Event...............................................................................60 Hình 6.1 Kiến trúc client.......................................................................................64 Hình 6.2 Thành phần chứa các trang web...............................................................65 Hình 6.3 Thành phần quản lí các sự kiện................................................................65 Hình 6.4 : Sơ đồ phối hợp client và server..............................................................66 Hình 6.5. Giao diện chính của game editor..............................................................73 Hình 6.6. Màn hình editor cho unit..........................................................................74 xi DANH MỤC BẢNG Bảng 1-1. Danh sách các phiên bản ra đời của công nghệ silverlight......................11 Bảng 1-2. Bảng so sánh các giải pháp RIA.............................................................12 Bảng 2-1. Bảng thể hiện sự phụ thuộc vào năng suất và số dân đưa vào các mỏ.....24 Bảng 3-1. Bảng các tài nguyên và nhà khai thác tương ứng....................................31 Bảng 3-2 Bảng mô tả khả năng của bộ binh Người Ném Đá...................................35 Bảng 3-3 Bảng mô tà khả năng của thủy quân Ram-Ship........................................35 Bảng 3-4 Danh sách các loại lính...........................................................................36 xii TÓM TẮT KHÓA LUẬN Sự bùng nổ của khoa học máy tính đã dẫn đến sự phát triển vượt bậc của game chơi trên máy tính cả về số lượng lẫn chất lượng. Khi mạng máy tính ra đời đã làm xuất hiện một thể loại game mới là game online. Có hai cách để chơi game online: tải về bản cài đặt từ nhà sản xuất hoặc chơi thông qua trình duyệt web. Ưu điểm của game chơi thông qua trình duyệt web là có thể được chơi ở bất cứ đâu miễn là có trình duyệt và kết nối internet. Vì vậy, game chơi thông qua trình duyệt web đang trở nên rất phổ biến hiện nay. Nội dung của đề tài tập trung vào việc nghiên cứu và phát triển game trên trình duyệt web với Silverlight. Silverlight là một công nghệ mới được Microsoft giới thiệu vào năm 2007 cho phép xây dựng các ứng dụng chạy trên trình duyệt hỗ trợ multimedia và tính tương tác cao. Sử dụng Silverlight để phát triển game, ta có thể mang đến cho người dùng những trải nghiệm mới thú vị hơn so với khi chơi game trên nền web cũ như các hiệu ứng về âm thanh, hoạt hình… Sau khi đã tìm hiểu các vấn đề về kĩ thuật và giải pháp để phát triển game trên nền web, chúng em sẽ xây dựng một game ứng dụng công nghệ Silverlight sau đó phát triển một công cụ cho phép hiệu chỉnh dựa trên game đã có sẵn và từ đó phát sinh ra một game mới với cùng phong cách và quy luật chơi. Nội dung của khóa luận bao gồm: Chương 1: Mở đầu Chương 2: Game xây dựng, chiến thuật và đặc điểm của game trên trình duyệt Chương 3: Mô tả game được phát triển MyIka Chương 4: Các vấn đề xử lí tại client Chương 5: Các vấn đề xử lí tại server Chương 6: Kiến trúc hệ thống Chương 7: Kết luận & hướng phát triển xiii Chương 1 Mở đầu  Nội dung của chương 1 trình bày tổng quan về quá trình phát triển game nói chung và sự phát triển của game trên trình duyệt, qua đó giới thiệu về công nghệ RIA được sử dụng để xây dựng game đồng thời nêu lên mục tiêu, nội dung và ý nghĩa của đề tài.  Tổng quan 1.1.1. Tổng quan về quá trình phát triển của các thế hệ video game Sự bùng nổ của khoa học máy tính dẫn đến sự phát triển vượt bậc của video game như hiện nay. Video game phát triển qua 7 thời kỳ từ năm 1971 đến nay, tuy nhiên đã manh nha phát triển từ thập niên 1950. Những năm 1970 của giai đoạn đầu phát triển, video game được ứng dụng trên các hệ thống máy giả lập, hình ảnh thể hiện chỉ dưới dạng văn bản, chưa có ứng dụng gì về đồ họa, cách thức chơi hầu hết các game đều là theo lượt. Mãi đến những năm 1980, đây là thời kỳ phát triển mạnh của thế hệ máy tính cùng với sự xuất hiện của các hãng máy tính nổi tiếng như Apple, IBM…. Video game mới thực sự phát triển về khả năng đồ họa, thể loại, một số game dưới dạng nhập vai đã xuất hiện. Cũng trong thời gian này game online cũng bắt đầu hình thành. Game online được biết nhiều thông qua cái tên MMORPG (Massively multiplayer online role-playing game), là loại game nhập vai, với 1 số lượng lớn người dùng cùng tương tác với nhau trong 1 thế giới ảo của game, có thể nói rằng “1 số lượng lớn các máy client tương tác với nhau thông qua 1 máy chủ server”, tuy nhiên vẫn còn hạn chế về khả năng tương tác và giao diện, do chủ yếu là văn bản (text-based) trước năm 1987. Trong thời kì này các thiết bị game cầm tay cũng đã bắt đầu xuất hiện với dòng máy của Nintendo. 1 Những năm 1990 là thời kỳ phát triển mạnh mẽ của video game trên máy tính. Hàng loạt các game kinh điển ra đời như: - Thể loại Real Time Stragegy (RTS): The Sims, Age of Empires, StarCraft, Warcraft…, - Thể loại Third Person Shooter (TPS): Grand Theft Auto III, Tom Clancy's Splinter Cell, Enter the Matrix, Hitman… Riêng về các game online có sự xuất hiện của UltimaOnline và EverQuest. Trong thời gian này bắt đầu xuất hiện các game trên trình duyệt (Browser game) đơn giản được plug in vào trình duyệt viết bằng Adobe Flash hay Java. 1.1.2. Tổng quan về game trên trình duyệt Game trên trình duyệt là video game được chơi trực tiếp trên trình duyệt web. Khác với các loại video game trên máy tính khác là nó không cần cài đặt phần mềm của game trước khi chơi, đó là những loại game dựa trên các kĩ thuật client-side như javascript hay các plugin vào trình duyệt như java hay Adobe Flash. Tuy vậy cũng có một số game có dùng sử dụng các ngôn ngữ script để xử lý tại server. Javascript – based game: Với sự phát triển của kĩ thuật Document Model Object Level 2 vào năm 1990, dẫn đến sự phát triển các loại game chạy trên trình duyệt mà không cần đến phần mềm thứ 3 plug-in vào. Những game này là sự kết hợp giữa CSS, JavaScript, DOM HTML và DHTML. DHTML có thể tạo ra các hiệu ứng hoạt hình (animation) trông như trong các game hành động. Sau này do có tương tác nhiều giữa client và server nên kĩ thuật Ajax cũng được kết hợp để phát triển các game loại hình này. Plugin – based game: là các game cần 1 phần mềm thứ 3 plugin vào để có thể chơi được. Ngoài các plugin nêu trên hiện nay còn có nhiều loại khác như: Shockware, Unity và Silverlight, nên vấn đề đặt ra là sự tương thích trên trình duyệt với các plug in này. Server – side game: Hầu hết các game trên trình duyệt hiện nay đều dưới 2 dạng hình thức game này. Tất cả tính toán và xử lý trên server được thực hiện dưới các ngôn ngữ script như: PHP, ASP, Ruby, Perl, Python và Java. Sau khi tính toán server chỉ việc gửi kết quả trả về cho client dưới dạng HTML. Đa số tất cả các game trên trình duyệt đều được viết trên nền tảng văn bản là chủ yếu. Các game đơn thuần được tính toán trả về cho người chơi đa số là chữ, rất ít có tương tác nhiều với game, giao diện rất đơn sơ, nên khi nhắc đến game trên trình duyệt là ta thường nghĩ đến text-based game. Và đây cũng là 1 trong những mục tiêu của luận văn này mà chúng em muốn làm cho game trên trình duyệt trở nên sinh động hơn dưới sự hỗ trợ của công nghệ RIA tại Client và mọi xử lý đa phần đều thông qua Server.  Rich Internet Application - RIA 1.2.1. Tổng quan về RIA  Đặt vấn đề Như chúng ta đã biết, mô hình ứng dụng dựa trên web truyền thống theo kiến trúc máy khách - chủ (client-server) với trình ứng dụng chạy trên máy tính của người dùng thì mọi tác vụ xử lý thực hiện trên server, còn client chỉ có vai trò hiển thị nội dung tĩnh (HTML). Hạn chế lớn nhất của kiến trúc này là mọi tương tác với ứng dụng đều phải gởi yêu cầu dữ liệu đến server, server xử lý và phản hồi, phía client nạp lại trang web với thông tin cập nhật – chu trình đồng bộ này làm cho các ứng dụng web tương tác với người dùng chậm hơn nhiều so với các ứng dụng desktop được cài đặt và chạy trên máy tính người dùng.  Giải pháp Vấn đề đặt ra là cần chia sẻ quá trình xử lý trên server, giúp đồng bộ tương tác client và server ngày càng nhanh hơn và đạt được đến ngưỡng xử lý của 1 ứng dụng trên desktop. 3 “Java applet” là bước đi đầu tiên nhằm cải thiện tốc độ đáp ứng của các ứng dụng web. Applet có khả năng thực hiện nhiều tác vụ phức tạp phía client nhưng ứng dụng Java (phía client) chạy chậm và làm việc không ổn định trên các hệ điều hành khác nhau. Tiếp theo, Netscape và Microsoft đưa ra “plug-in” và “ActiveX Control” mở rộng trình duyệt web, cho phép bổ sung nhiều tính năng phía client. Thế nhưng, người dùng tỏ ra do dự trong việc cài đặt các phần bổ sung này (bảo mật là một trong nhiều lý do), và đến nay, ngoại trừ Flash Player và Java Runtime Environment (JRE), không có thành phần bổ sung trình duyệt được cài đặt rộng rãi. Sau đó, AJAX (Asynchronous JavaScript And XML) xuất hiện, cho phép việc trao đổi giữa client và server diễn ra không theo quy trình đồng bộ thông thường mà là làm việc theo cơ chế bất đồng bộ, tương tác giữa người dùng và ứng dụng web không bị ngắt quãng bởi việc nạp lại trang web mỗi khi yêu cầu server xử lý, làm giảm thiểu dữ liệu truyền tải qua lại trên đường truyền và gây khó chịu đối với người sử dụng. Hình 1.1. Cơ chế làm việc đồng bộ và bất đồng bộ 4
- Xem thêm -