Tải bản đầy đủ (.docx) (26 trang)

WEBGAME VỚI NODEJS VÀ CODEIGNITER

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 26 trang )

GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

MÔN: CÔNG NGHỆ WEB VÀ ỨNG DỤNG
BÁO CÁO ĐỀ TÀI:
WEB-GAME VỚI NODEJS VÀ CODEIGNITER
GVHD: Nguyễn Đăng Khoa
SVTH: Nhóm 7
1. Huỳnh Ngọc Hiệp 10520128
2. Nguyễn Tấn Hoan 10520135
3. Phạm Tấn Long 10520163
4. Nguyễn Ngọc Thanh Huy 10520480
1
TP. Hồ Chí Minh, tháng 12 năm 2013
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
MỞ ĐẦU
Trong thời buổi ngày nay, khi con người đã đầy đủ no ấm thì nhu cầu giải trí
ngày càng tăng lên. Chi phí cho con người vào giải trí ngày càng lớn, và ngành công
nghiệp game cũng vì thế mà được cơ hội phát triển mạnh mẽ.
Có rất nhiều nền tảng phát triển game: PC, Console, Mobile, Web và nhiều
nữa Mỗi nền tảng có mỗi ưu điểm và nhượt điểm khác nhau. Và trong số đó, Web
game là một lựa chọn không tồi. Web game hoàn toàn đa nền tảng, một máy Ubuntu
có thể chơi với một máy Windows hay máy MAC, người chơi ở mọi nơi, mọi thời
điểm đều có thể kết nối với nhau mà chơi, không kể giàu nghèo đều có đủ tiền để vào
internet chơi một trò chơi.
Web game tương đối phát triển mạnh trong những năm gần đây, và đặc biệt
game thời gian thực càng được chú trọng bởi tính hấp dẫn của nó.
Với mục đích thử sức tạo ra một web game thời gian thực, nhóm đã quyết định


chọn NodeJS là công nghệ để tiến hành.
Rất mong game sẽ được đông đảo mọi người tham gia chơi.
Nhóm sinh viên thực hiện!
2
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
LỜI CẢM ƠN
Trong khoảng thời gian thực hiện đề tài này, chúng em đã nhận được sự giúp
đỡ, chỉ bảo tận tình của thầy cô bộ môn. Chúng em xin gửi lời cảm ơn sâu sắc đến quý
thầy
cô. Đặc biệt xin chân thành cảm ơn thầy
Nguyễn Đăng Khoa

là người hướng
dẫn, cung cấp cho chúng em những
tài liệu và tạo điều kiện thuận lợi giúp đỡ chúng
em để hoàn thành đề tài một cách tốt
nhất.
Chúng em cũng gửi lời cảm ơn đến bạn bè đã giúp đỡ chúng em hoàn thành đề
tài này.
Do thời gian và kiến thức có hạn nên mặc dù đã cố gắng hết khả năng nhưng đề
tài không thể nào tránh
khỏi những thiếu sót. Rất mong được sự đóng góp của quý
thầy cô để đề tài này hoàn
chỉnh hơn.
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện!
3
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”

NHẬN XÉT
(Của GVHD)
















TP. HCM, tháng 12 năm 2013.
GVHD
Nguyễn Đăng Khoa
4
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
MỤC LỤC
5
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Chương 1: GIỚI THIỆU NODEJS
I. Giới thiệu

Author(s): Ryan Lienhart Dahl
Developer(s):Node.js Developers, Joyent
Initial release: May 27, 2009[1]
Stable release: 0.10.21 / October 18, 2013
Written in: C++, JavaScript
License: MIT
Website:
NodeJS là một nền tảng được xây dựng dựa trên Chrome JavaScript Runtime
để tạo ra các ứng dụng mạng nhanh, khả chuyển. NodeJS sử dụng cơ chế
event-driven, mô hình non-blocking I/O để tạo nên sự nhanh, hiệu quả và thời
gian thực cho các ứng dụng phân tán.
JavaScript được sử dụng ở client-side nhưng trong NodeJS, nó đã được đưa lên
server-side. Chính điều này đã tạo nên sự uyển chuyển trong NodeJS, giúp cho
sự liên lạc giữa client và server dễ hơn bao giờ hết, không tốn bất kỳ chi phí
nào cho quá trình chuyển đổi.
Thông thường các server sử dụng cơ chế thread để quản lý các request từ phía
client. Tuy nhiên, ở NodeJS, cơ chế đó đã không được sử dụng, thay vào đó là
một cơ chế hiệu quả hơn: event. NodeJS xử lý mỗi request trong một vòng lặp
event, do đó nó có thể xử lý rất rất nhiều event cùng một lúc.
Trong một vòng lặp bình thường, webserver trong khi đang xử lý một request
sẽ phải chờ thao tác nhập xuất hoàn thành mới có thể tiếp tục, đó là blocking
6
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
I/O. NodeJS xử lý mỗi request như là một sự kiện, server sẽ không phải chờ
thao tác nhập xuất hoàn thành trong khi có thể nhận các request khác. Khi thao
tác nhập xuất hoàn thành, nó sẽ gọi một hàm callback để xử lý tiếp.
NodeJS chạy trên V8 JavaScript Engine giống như của Google Chrome.
NodeJS sử dụng CommonJS framework, do đó nó rất gần với các ngôn ngữ lập
trình hướng đối tượng thật sự.

II. Tại sao dùng NodeJS
NodeJS’s Goal
Mục tiêu của NodeJS được tạo ra là để tạo ra các ứng dụng nhanh chóng, chạy
nhanh, uyển chuyển và dễ dàng mở rộng
NodeJS được lựa chọn là công nghệ của năm 2012 bởi InfoWorld.
So sánh với Apache
- NodeJS nhanh hơn
- NodeJS có thể xử lý hàng nghìn request đồng thời
- NodeJS có thể sử dụng code ở server và client tương tự nhau
Platform CCU
PHP (via Apache) 3187,27
Static (via Apache) 2966,51
NodeJS 5569,30
Với một cộng đồng phát triển đông đảo, NodeJS đang trở thành một xu thế cho
tương lai.
Tuy mới vừa được phát triển gần đây thôi, nhưng cũng đã có rất rất nhiều công
ty biết đến và lựa chọn NodeJS. Số lượng module thư viện được tạo ra cho
NodeJS tăng lên hàng ngày. Có thể nói, hầu hết những gì mà các framework
khác hỗ trợ thì NodeJS đều có module thực hiện, chỉ có khác biệt là NodeJS
chưa được tốt nhất.
7
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
8
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Chương 2: GIỚI THIỆU CODEIGNITER FrameWork
I Giới thiệu
CodeIgniter Framework được xem là 1 PHP framework phổ biến và dễ tiếp
cận nhất so với các PHP framework hiện hành. Codeigniter được xây dựng và

ra mắt vào ngày 28-02-2006. Trải qua nhiều lần cải biên và phát triển, hiện
phiên bản mới nhất tính cho tới thời điểm tôi viết bài này là 2.1.4
Codeigniter thật sự đã trở nên mạnh mẽ và đầy đủ với các thư viện hỗ trợ người
dùng từ dễ đến khó trong việc phát triển ứng dụng web. Để học và làm việc tốt
đối với codeigniter cũng giống các php framework khác, người học phải có
kiến thức nhất định về lập trình hướng đối tượng và xử lý mảng. Đồng thời am
hiểu về kiến trúc M-V-C để có thể hiểu được quy trình và hướng hoạt động
trong toàn ứng dụng.
III. Tại sao dùng CodeIgniter
 Được thiết kế theo mô hình Model-View-Controller.
Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation)
và xử lý (business logic) của một phần mềm thành những thành
phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ
dàng, đồng thời tăng khả năng mở rộng của phần mềm.
CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập
tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và
dễ bảo trì.
 Nhỏ gọn: Gói cài đặt chỉ
404KB (không bao gồm phần User Guide). So với các PHP framework
khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework
(5.66MB)…kích thước của CodeIgniter giúp giảm thiểu đáng kể không
gian lưu trữ.
9
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
 Tốc độ nhanh.
CodeIgniter được đánh giá là một PHP framework có tốc độ nhanh nhất
hiện nay. Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ
đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy
cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang.

 Miễn phí.
CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng, cho
phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn. Hỗ
trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân
thiện với các robot tìm kiếm.
 Hệ thống thư viện phong phú.
CodeIgniter cung cấp các thư viện phục vụ cho những tác vụ thường gặp
nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi
email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức
năng nâng cao như XML-RPC, mã hóa, bảo mật…
 Bảo mật hệ thống.
Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL Injection của
CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống.
10
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Chương 3: GIỚI THIỆU WEBSITE
I Giới thiệu chung
Nhu cầu
Trong thời buổi ngày nay, khi con người đã đầy đủ no ấm thì nhu cầu giải trí
ngày càng tăng lên. Chi phí cho con người vào giải trí ngày càng lớn, và ngành
công nghiệp game cũng vì thế mà được cơ hội phát triển mạnh mẽ.
Có rất nhiều nền tảng phát triển game: PC, Console, Mobile, Web và nhiều
nữa Mỗi nền tảng có mỗi ưu điểm và nhượt điểm khác nhau. Và trong số đó,
Web game là một lựa chọn không tồi. Web game hoàn toàn đa nền tảng, một
máy Ubuntu có thể chơi với một máy Windows hay máy MAC, người chơi ở
mọi nơi, mọi thời điểm đều có thể kết nối với nhau mà chơi, không kể giàu
nghèo đều có đủ tiền để vào internet chơi một trò chơi.
Tuy có nhiều tiềm năng như vậy, nhưng nếu chỉ phát triển với nhu cầu giải trí
không thì liệu một website có thể tồn tại. Con người luôn cần có công việc, học

tập và nhu cầu thông tin cũng cực kỳ quan trọng. Chính vì thế, nhóm quyết
định xây dựng một hệ thống website tin tức để có thể đáp ứng thêm nhu cầu
của người dùng. Website sẽ cung cấp các tin tức về thị trường game trong nước
và thế giới: các game mới, game hay sẽ được review để quảng bá, tích hợp
thêm những quảng cáo của khách hàng có nhu cầu, đó là những hướng kinh
doanh trước mắt của website.
II Kỹ thuật
1. Realtime với Socket.IO
Thư viện Socket.IO được dùng để tạo các ứng dụng realtime trên nền NodeJS.
Sử dụng
- Trang chủ:
- Download bằng câu lệnh: npm install socket.io
11
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
- Kết nối client vào server theo hướng dẫn có sẵn ở trên trang chủ của
Socket.IO
Server
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Client
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {

console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
Chi tiết hơn về các hướng dẫn và ví dụ xem tại: />2. Temporary Database với TaffyDB
Thư viện TaffyDB được dùng để quản lý database tạm thời trên server một
cách hiệu quả và nhanh chóng.
Chú ý: Đây là một thư viện cho ngôn ngữ JavaScript chứ không phải là một
module của riêng NodeJS mặc dù cũng có module TaffyDB cho NodeJS riêng.
Sử dụng
- Trang chủ: />- Download thư viện về từ trang chủ
Create Database
// Create DB and fill it with records
var friends = TAFFY([
{"id":1,"gender":"M","first":"John","last":"Smith","city":"Seattle,
WA","status":"Active"},
{"id":2,"gender":"F","first":"Kelly","last":"Ruth","city":"Dallas,
12
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
TX","status":"Active"},
{"id":3,"gender":"M","first":"Jeff","last":"Stevenson","city":"Washi
ngton, D.C.","status":"Active"},
{"id":4,"gender":"F","first":"Jennifer","last":"Gill","city":"Seattl
e, WA","status":"Active"}
]);
Filter
// Find all the friends in Seattle
friends({city:"Seattle, WA"});
// Find John Smith, by ID

friends({id:1});
// Find John Smith, by Name
friends({first:"John",last:"Smith"});
Access easily
// Kelly's record
var kelly = friends({id:2}).first();
// Kelly's last name
var kellyslastname = kelly.last;
// Get an array of record ids
var cities = friends().select("id");
// Get an array of distinct cities
var cities = friends().distinct("city");
// Apply a function to all the male friends
friends({gender:"M"}).each(function (r) {
alert(r.name + "!");
});
Modify
// Move John Smith to Las Vegas
friends({first:"John",last:"Smith"}).update({city:"Las Vegas,
NV:"});
// Remove Jennifer Gill as a friend
friends({id:4}).remove();
// insert a new friend
13
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
friends.insert({"id":5,"gender":"F","first":"Jennifer","last":"Gill"
,"city":"Seattle, WA","status":"Active"});
3. Game với Cocos2d HTML5
Thư viện Cocos2d HTML5 là một thư viện mở rộng của Cocos2D iPhone,

được dùng cho việc làm game trên nền tảng iOS.
Thư viện cung cấp các hàm từ cơ bản đến nâng cao để làm ra những game đơn
giản đến phức tạp.
Sử dụng
- Trang chủ: />- Download bộ thư viện từ trang chủ, version hiện tại là 2.2.1
- Sau khi download về, giải nén, ta được các thư mục sau:
o Projects: chứa các project mẫu
o Cocos2d, CocosDenshion, Box2d, Chipmunk, extension: là các thư
mục của thư viện
- Có thể sử dụng Notepad++, Sublime hoặc tốt nhất là Visual Studio 2012 để
phát triển game bằng Cocos2d HTML5
II. Chức năng
Website sẽ cung cấp các chức năng sau:
- Tin tức
o Cung cấp các tin tức về thị trường game trong nước và thế giới
o Review những game cho những nhà phát hành có nhu cầu
- Quảng cáo
o Quảng cáo mọi sản phẩm, mọi khách hàng
- Chơi game
o Cung cấp những trò chơi thú vị để người dùng giải trí trong những
lúc rảnh rổi
14
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
III. Hướng dẫn cài đặt
Website sẽ cung cấp các chức năng sau:

Có thể cài đặt hệ thống website offline theo chỉ dẫn sau:
1. Cài đặt NodeJS
- Download NodeJS tại địa chỉ: , version hiện tại là 0.10.23

- Chạy file cài đặt
- Mở command prompt lên, gõ lệnh cd để chuyển đến thư mục
soul-leader\Web_UI_Game\nodejsserver
- Chạy lệnh: node server.js để chạy server NodeJS
2. Cài đặt CodeIgniter
Để cài đặt và chạy ứng dụng đầu tiên trong codeigniter. Bạn cần download bộ
framework này tại đây:
/>Sau khi download xong. Chúng ta giải nén sẽ thấy bố cục của chúng như hình
bên dưới.
Như các bạn thấy, chúng ta có tới 3 thư mục là: application, system,
user_guide và file index.php. Trong đó, chúng ta chỉ quan tâm tới 2 thư mục
là application, system và file index.php mà thôi.
15
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Copy chúng vào thư mục của riêng bạn. Trong trường hợp này, tôi tạo thư mục
tên ciexam để chứa chúng.
Sau khi đã hoàn tất thao tác, kế tới ta tìm hiểu xem, chức năng của 2 thư mục
này như thế nào nhé.
- Thư mục system là thư mục dùng để chứa thư viện mặc định ban đầu của
framework.
- Thư mục application là thư mục dùng để chứa code do chúng ta tạo ra. Vì
thế, sau này chúng ta chủ yếu sẽ thao tác ở thư mục application mà thôi.
Như các bạn đã thấy ở hình trên. Thư mục application của chúng ta lại
chứa khá nhiều thư mục khác. Chúng ta sẽ tìm hiểu nhiệm vụ của các thư
mục mà chúng ta thường thao tác như thế nào.
- Thư mục config: Dùng để chứa các file cấu hình như kết nối CSDL, cấu
hình đường dẫn, cấu hình ngôn ngữ,….
o Thư mục Controllers: Chứa các file controller của ứng dụng.
o Thư mục Model: Chứa các file thao tác trên CSDL của ứng dụng.

o Thư mục Views: Chứa các file hiển thị thông tin khi tương tác
16
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
3. Cài đặt XAMPP
- Cài đặt XAMPP để giả lập server
- Download XAMPP tại địa chỉ:
/>- Chạy file cài đặt, để các lựa chọn mặc định. Một thư mục tên xampp sẽ
xuất hiện trong ổ đĩa C:\ của máy
- Copy toàn bộ file trong thư mục soul-leader vào trong thư mục
xampp\htdocs
- Bật browser lên và vào địa chỉ:
localhost\soul-leader\Web_UI_Game
- Giao diện của website sẽ xuất hiện
17
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
IV. Hướng dẫn sử dụng
Giao diện chính của website sẽ có dạng như sau:
1. Trang Chủ
- Trang chủ: Trang hiện tại tại địa chỉ localhost\soul-leader\Web_UI_Game
- Tin tức: Trang tin tức về thị trường game trong nước và quốc tế
- Giới thiệu: Giới thiệu về các webgame chính có trong website
“Troll Shooter”
- Hướng dẫn: Hướng dẫn chơi game Troll Shooter
- Cửa hàng: Cửa hàng cung cấp các dịch vụ cho website và game
- Hỗ trợ: Các câu hỏi, liên lạc webmaster
- Thư viện: Những tài nguyên miễn phí mà website cung cấp: Hình ảnh, âm
thanh, phần mềm, game, ebook,
- Diễn đàn: Diễn đàn thảo luận chia sẻ về các vấn đề trong game

2. Web game Troll Shooter
Để vào chơi game, hãy click vào nút Chơi Ngay ở góc trên, bên
trái màn hình
18
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Giao diện của game
- Menu:
o Click vào nút Play để vào chơi game
- Main Game:
Sau khi click Play, một dialog connecting sẽ hiện ra để chờ kết nối đến
server. Sau khi connect thành công, giao diện game chính sẽ như sau:
19
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Chọn lấy một món đồ để ném, các món đồ này không khác nhau về chỉ số,
chỉ khác nhau về hình ảnh để tạo niềm vui thêm phong phú
Sử dụng các phím mũi tên để di chuyển nhân vật chơi
Lựa chọn một vị trí thật tốt để có thể bắn đối phương dễ dàng, và để đối
phương không thể bắn được người chơi
Click lên màn hình và giữ, một thanh lực bắn sẽ chạy liên tục. Chọn thời
điểm để lực bắn hợp lý, thả chuột để bắt đầu bắn.
20
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Bắn trúng đối phương để tiêu diệt và chiến thắng
Hãy bắt đầu và troll
21
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”

Chương 4: PHIÊN BẢN WINDOWS 8
I Giới thiệu chung
Nhu cầu
Trong quá trình phát triển, nhận thấy Windows 8 đang là một xu thế nổi trội
nên nhóm đã quyết định đưa game lên Windows 8 để mọi người dùng đều có
thể chơi được với nhau.
II Phiên bản Windows 8
Phiên bản này được phát triển bằng Visual Studio 2012
Chạy được trên PC, Tablet có hệ điều hành Windows 8 và Windows RT
3. Cài đặt
- Cài đặt và sử dụng thông qua Windows 8 Store hoặc cài đặt offline.
- Hướng dẫn cài đặt offline:
o Vào thư mục Win8Build\game_1.0.0.5_AnyCPU_Test
o Click chuột phải vào file Add-AppDevPackage.ps1, chọn Run with
PowerShell
o Tiếp tục Yes nếu được hỏi
o Điền email và mật khẩu của một tài khoản Microsoft (livemail,
hotmail ) nếu được hỏi.
o OK
o Ra ngoài Start để mở game lên.
4. Giao diện và sử dụng
Giao diện và cách sử dụng hoàn toàn giống với phiên bản trên website
22
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
Menu
Main Game
Phát triển
Trong tương lai gần, nhóm sẽ cố gắng đưa sản phẩm lên Windows 8 Store càng
sớm càng tốt.

23
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
24
GVHD: Nguyễn Đăng Khoa “Web-game với NodeJS và
CodeIgniter”
KẾT LUẬN & HƯỚNG PHÁT TRIỂN
Trong quá trình thực hiện đồ án, nhóm đã gặp không ít khó khăn. Tuy nhiên với
sự giúp đỡ nhiệt tình của các thầy Nguyễn Đăng Khoa nhóm đã hoàn thành tốt đồ án.
Do chỉ dừng lại ở mức là đồ án môn học, nên website có thể còn chưa hoàn thiện
được hết các chức năng trong thực tế. Tuy vậy, về cơ bản thì website cũng đã có thể
thực hiện được những chức năng cơ bản với tính đúng đắn và tiện dụng nhất định.
Đồ án còn nhiều phần vẫn chưa được hoàn thiện, rất mong là trong tương lai
nhóm sẽ có thời gian để thực hiện nó hoàn thiện hơn.
 Chưa hoàn thiện
- Tin tức cập nhật RSS từ các website khác
- Tích hợp quảng cáo Google Ads
- Game Store đầy đủ hơn
- Tính thẩm mỹ của sản phẩm còn chưa cao
- Chưa có Cpanel cho admin
 Hướng phát triển
- Bổ sung thêm đầy đủ các chức năng vẫn chưa hoàn thiện ở trên
o Cập nhật tin RSS
o Thẩm mỹ
o Tích hợp Google Ads
o Tạo một Game Store phong phú
o Cung cấp Cpanel cho admin
- Tăng tốc độ load của website
25

×