门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
开放区(网友自由发帖区)
›
项目作品
›
Qt(QML)做的一个游戏框架,用JS来开发跨平台网络游戏 ...
发布主题
返回列表
Qt(QML)做的一个游戏框架,用JS来开发跨平台网络游戏
0
回复
7077
查看
[复制链接]
深林孤鹰
当前离线
积分
78
深林孤鹰
累计签到:7 天
连续签到:1 天
来源:
2020-4-20 10:19:02
显示全部楼层
|
阅读模式
马上注册,查看详细内容!注册请先查看:
注册须知
您需要
登录
才可以下载或查看,没有帐号?
立即注册
x
之前做了一个网络卡牌类游戏(3w。yingyusha。com),觉得Qt做个游戏框架还是挺不错的,理论上C/S和B/S都能做,于是花了一段时间做出个框架Demo,这个Demo解决了以下一些问题(以下用Qt英语杀来作为例子):
1、跨平台
个人浅显研究了各个平台下英语杀的表现效果,除了ios设备上没弄出来sqlite加密和操作有点卡顿(有可能是我用了多线程的原因吧)外,其他感觉还可以,对安卓的支持进行了较深入的研究(JNI和设备的一些功能),可以说,Qt的C/S跨平台模式还是相当不错的,B/S模式的话,除了Windows的MinGW不能做外(vs可以),其他都能做,而且可以与用C++交互。
2、网络通讯
我自己用IOCP模型做了一个服务器(VC6做的内核,Qt封装后使用),运行在windows,支持TCP和UDP协议,TCP协议上又封装了一些常用的功能,比如加密、断线重连等等,QML中直接封装了数据发送和接收,都是以JSON来通信的。
3、数据库
数据库用了MySQL,MySQL专门定义了一个表,存储用户自定义的字段(JSON格式),可能会拖累速度,当然如果做好成品的话直接可以转换为表。还可以存储一些二进制格式的文件。
本地的话,SQLite不用说,QML和Qt都支持,我又用了豆子写的加密SQLite版本,也加在了框架里。
4、其他特色和功能
a、IO多线程:耗时的数据库操作和日志文件的读写,都采用了多线程模式,所以这个游戏服务器的稳定和优化我还是很有自信的~
b、纯JS或QML编写游戏:由于框架本身是由Qt写的,所以Qt和QML的功能产品中都可以使用,而且我把一些该封装的都用C++封装好了(包括一些常用的安卓功能),直接可以在QML中使用,所以产品本身可以全部用QML来写;有些童鞋可能会JS但不太懂QML(毕竟还是有差别的),没关系,我把QML也封装了,直接用js函数来创建QML对象、绑定信号等等(这个使用起来可能还有些问题,得慢慢改进完善)。一句话,你用js可以做出来单机、联网的各种类型(RPG、即时战略、卡牌、AVG等等)的跨平台游戏(QML支持3d,会3d的童鞋甚至可以做3d游戏)。
c、热更新:QML文件本身是以单独的资源文件来载入的,比较好更新,至于框架文件本身,我也准备用库的形式来热更新(不用每次改个小毛病都要重新下载一次apk和安装),当然这是下一步计划的,技术上是没问题了。
今天就写这么多,其实还有很多没写出来,比如框架的发布形式还没想好等等,也希望有童鞋能一起来完成,或者试用这个框架来提供宝贵的意见。
以后会慢慢更新使用教程和框架细节。
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了