虚幻引擎引入Protocol Buffers 一
前言
虚幻引擎在软件设计过程中,经常是需要完成跨进程数据通信。大部分企业在设计通信业务时,选择的交换数据格式是json,但是json格式却有很多问题,例如
- 大小:JSON是文本格式,传输时需要转换成二进制数据,占用的空间较大。
- 性能:JSON的解析和序列化速度相对较慢。
- 隐私性:JSON数据在序列化后一般是以字符串方式记录,如无特殊处理,容易被篡改。
对于数据交换的协议格式,其实可以选择更好的方案,例如protocol buffers。
Protocol Buffers(简称:ProtoBuf)是一种开源跨平台的序列化数据结构的协议。其对于存储资料或在网络上进行通信的程序是很有用的。这个方法包含一个接口描述语言,描述一些数据结构,并提供程序工具根据这些描述产生代码,这些代码将用来生成或解析代表这些数据结构的字节流。
protobuf主要解决了将对象型数据(基于OOP设计协议更易于理解)序列化成为一种字节流数据格式,至于数据最终被如何使用,需要设计者考虑。例如用于存储,传输。
此次介绍分为两部分完成:
- 编译protocol buffers项目
- 在虚幻引擎工程中引入protocol buffers
本文只讲解WIN平台应用
编译Protocol Buffers项目
为什么需要编译项目?
在使用Protobuf前,需要保证我们有两部分内容:
- Windows平台的编译器(用于编译protobuf协议到目标语言)
- 生成解析库
官方有提供CMake配置,可以根据需求编译到对应的平台,并且官方提供已经编译好的protobuf编译器,但是库还是需要我们自己编译的。
1、下载安装CMake
下载完成后安装CMake即可。
2、下载Protobuf源码工程
在git窗口执行指令(需要安装Git)
git
|
|
执行安装子模块(第三方库)
git
|
|
注意:因为在Protobuf项目中,有依赖其他项目内容,所以需要执行此语句,否则构建环境会出错。(如下图内容)
3、通过CMake生成编译环境
打开安装后的CMake的GUI工具
标记2中的路径build需要创建点击Configure,在弹出窗口配置平台选项,参照下图:
标记2中,本机环境是x64可以留空点击Finish
如出现错误:
log
|
|
则表明未执行安装子模块,查阅安装
安装完成后,需要清理缓存再次生成配置,清理操作在File菜单中Delete Cache操作项。
生成完配置后点击Generate,然后点击Open Project4、VS中编译Protobuf项目
- 调整解决方案配置为Release版本
- 调整运行库(选中工程-右键-属性)
- 选中ALL_BUILD,右键-重新生成
编译完成后即可在解决方案的文件夹中找到编译完成的库和WIN平台的protobuf编译器。
如果需要了解如何将库导入到引擎,请移步这里
Tags: