html5和c++封装webkit内核实现开放式游戏大厅设计(一)
在公司近期做一个关于用html5和c++封装webkit内核实现游戏大厅的项目;简称html5游戏大厅,可以以APP方式接入各种技术实现的游戏,比如webgame,客户端游戏,flash游戏等。
游戏大厅其实C++早就做的很成熟了并且已经运营多年,但由于近期HTML5的势头强劲,加之google的v8 javascript引擎之强力,公司决定尝试性用c++打包webkit内核,在webkit上用html5来实现游戏大厅的游戏界面布局,本地缓存,通信等;
========== C++实现的游戏大厅有以下几点弊端 =======
1、UI布局比较困难;
2、一旦UI上有一点点变化,则需要用户更新整个或部分游戏大厅安装包重新下载安装;
3、C++开发周期较长;
========== HTML5实现的游戏大厅有以下几个优点=======
1、由css3配合html5标签实现UI布局非常快速;
2、由于是HTML,可以说大部分的界面或游戏内容更新不需要用户重新下载客户端安装;
3、html ,javascript,css这些技术使用简单,可以有效降低开发周期
========== HTML5实现的游戏大厅有以下几个缺点=======
1、由于是web安全性一直受到质疑
2、websocket还是没有很好的实现
========================================= i am 分割线 =========================================
html5游戏大厅实现思路:
1、用C++打包webkit实现一个自己的浏览器环境。用css3+html5+javascript实现大厅UI绘制及用户操作;
2、每一个window即一个单一的webkit进程,每个APP即一个单独的window;
3、由C++开放各种本地API供javascript调用,以让web拥有操作本地API的能力,即每个app都可以通过调用C++开放的接口用javascript访问或设置本地窗口环境;
4、专门设置一个window用作全局的消息管理,我们命令为messageCenter用于各app与服务器通信,服务器也通过messageCenter发送消息给APP;
大厅流程:
所有窗体内的内容由HTML5绘制
1、安装完游戏大厅安装包后,双击显示登陆口窗体,类似于QQ登陆窗口,;
2、验证用户名密码后C++负责启动游戏大厅窗体;
3、HTML5绘制大厅UI,绘制游戏列表
4、双击某个游戏,启动游戏房间窗体
5、双击某个游戏启动游戏窗体,即启动了一个app
![](http://images0.cnblogs.com/blog/405426/201301/28202137-57ee122b660e461ab3edb5c6b176fa7e.jpg)
![](http://images0.cnblogs.com/blog/405426/201301/28202145-0d36bf9a7d3b4357be00ee8941c56238.jpg)