写在前面
之前的序言发出来之后,很多热心小伙伴给我留言和私信,给我提供了各种各样的想法。让我产生了一些想法,所以重新思考开这个坑的目的。结合我自身的情况,理论结合实际。做一次更完善的技术选型。并且把这周来踩过的坑总结一下,希望能对后来的小伙伴有帮助。
这篇文章的视频版在这里:
【MMORPG开发日志】004复刻魔兽世界,KBEngine服务器框架选择,安装和启动!
交流QQ群:872537977
项目地址github:https://github.com/Liweimin0512/uRPG
不得不吐槽一下,视频形式的开发日志所要付出的时间真的比写文章多得多啊。
开发目的
我在上篇文章中说我做这个项目是为了蹭魔兽世界怀旧服的热度其实是开了个玩笑。
真实的原因是我想涉猎自己从未接触过的游戏服务器相关的开发知识。
上一个项目(那个沙盒项目)我也不是弃坑了。只是那个更偏向于制作我心中的所想要的一个游戏的定位。很多玩法是要详细设计的。而这个项目我更多想作为服务器开发实践项目。所以我说设计上直接copy魔兽世界,这样我会比较省心。
此外我在上篇文章中也说,欢迎想参与的小伙伴各取所需。比如你可以把这个项目作为你UE4学习的实践项目,策划案编写实践项目等等。而且了解我的人都知道我已经不是第一次尝试组这种线上团儿了。虽然之前从没有成功过。
技术选型
客户端选择UE4是没什么争议的了。这个就不多谈了。
服务器框架的选择还是让我小纠结了一把,我最初想到的是photon server这种商业服务器框架。但这潜在一个问题就是我可能不能更好地了解底层实现,起不到学习作用。所以我开始寻找开源项目。
我之前自己写过web,对web服务器(python语言)比较了解,但那是另外一回事儿了。
很长一段时间我想使用golang来练练手,所以这个项目我也首先想到了golang。之所以最终放弃是因为对于我来说,直接用golang进行开发难度太大了。所以我要找一个教程(或者文档)完善的框架。
这么说来事情就简单了,我总结了一下我的需求:
- 官方对UE4有支持;
- 有比较详尽的文档或教程
- 最好是我熟悉的语言(python、C#)
所以找了一圈之后,还是选择使用KBEngine
。
踩得坑
首当其冲的是mysql的坑,对于mysql我并不陌生,需要注意的是,在我使用Navicat Premium 连接MySQL时
出现了错误,具体可以参考这篇文章:
Navicat 连接MySQL 8.0.11 出现2059错误
简单说就是由于mysql8.0之后改了加密规则导致的。
解决方案就是将加密方式改为原来的。就可以了。
之后是编译服务器,我这里出现了缺少MFC组件的情况,只需要将对应的模块安装即可。这一步比较简单就不说了。
再之后就是按照官方文档的指示一步步操作即可。启动服务器时候出现报错,查看log发现是和“dbmgr”有关,盲猜是数据库问题。这里猜到是没有设置数据库用户名密码。更改服务器的默认配置文件即可。
最后
这篇文章值得写的内容并不多,因为大部分内容已经在视频中讲的很详细了。全当我水了一篇文章吧。之后会更多思考怎么用视频和文章结合的形式,让开发日志看起来更全面。
目前想的方式是视频讲更笼统的概念和实现思路,然后在文章中展示具体的实现细节,比如代码片之类的。
那就先这样吧,大家中秋见。
提前祝大家中秋快乐啦!
有疑问加站长微信联系(非本文作者)