社区
C++ 语言
帖子详情
游戏服务器c++与lua混合编程问题
wutongwei199186
2018-09-04 07:11:01
我们项目以前是纯c++的,游戏服务器,但是现在为了方便修改逻辑,要把逻辑用lua实现,看了lua和c的交互,但是目前程序基本每个模块一个类,类中一个活多个成员变量,成员变量 是protobuf生成的类型,一般成员变量是从数据库加载的该模块数据,我想请教一下,如果用lua写各个模块的逻辑,怎么用lua修改这些数据呢,结构该如何呢?请实际项目用过的大神给解答一下
...全文
316
4
打赏
收藏
游戏服务器c++与lua混合编程问题
我们项目以前是纯c++的,游戏服务器,但是现在为了方便修改逻辑,要把逻辑用lua实现,看了lua和c的交互,但是目前程序基本每个模块一个类,类中一个活多个成员变量,成员变量 是protobuf生成的类型,一般成员变量是从数据库加载的该模块数据,我想请教一下,如果用lua写各个模块的逻辑,怎么用lua修改这些数据呢,结构该如何呢?请实际项目用过的大神给解答一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
smwhotjay
2018-09-05
打赏
举报
回复
没用过protobuf,数据协议的话,自己用函数打包解包即可。
可以参考我的lua server
https://www.oschina.net/p/lua-server
类似 ret:write_int(self.GetType())
ret:write_int(self.errcode)
ret:write_bytes(self.pwd,20)
local name=b:read_string(20)
local pwd=b:read_string(20)
print("name:" .. name ,#name )
print("pwd:" .. pwd ,#pwd )
赵4老师
2018-09-05
打赏
举报
回复
http://blog.codingnow.com
AlbertS
2018-09-05
打赏
举报
回复
并未用过protobuf,我们得做法是为允许Lua 修改的变量生成Lua可以调用的函数,通过函数调用实现Lua 中修改C++中的值
srhouyu
2018-09-04
打赏
举报
回复
据我所知,普通的是写一大堆C API,把所有所需的接口都列出来。想偷懒一些用LuaBind,或者用Swig。但是我并没有用protobuf的经验。
我的
编程
感悟(中文PDF)(共37M二分卷)分卷二
《仙剑奇侠传》之父姚壮宪热情推荐,技术作家孟岩高度评价! 云风也是我在中国最佩服的
游戏
开发者。看了云风的研发历程,我觉得就是一部中国的
游戏
程序史,从最早的 Z80 , 6502 , PC8088 , 286 , 386…DOS ,保护模式, Assembler 到
C++
的整个发展轨迹。这本书可以说横跨了
游戏
程序的过去、现在和未来。 书中传达的不仅是一些实用的技术经验,更是传达一种理念——虽然研发的环境随着时代而变,但研发的精神是不变的,那就是“在实践中积累”。 ——《仙剑奇侠传》之父 姚壮宪 之前我经常奇怪,云风还非常年轻,他程序思想中的那种老练的智慧是从何处得来的呢?读完这本书之后,我终于明白,还是那句话:“无他,唯手熟耳”。 面对这沉甸甸的作品,我确实感到,这是云风用心写的书。用心写的书,当然出色。 ——技术作家 孟岩 我现在是中国并不成熟的
游戏
制作行业中的一员,
游戏
给了我太多,我告诉自己需要做一点事情。分享知识和经验是我的义务,别无它。 ——云风 内容简介 本书忠实地记录了作者十余年来对
游戏
编程
的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的
编程
技术,从非常专业的汇编优化到非常实际的项目管理进行了一次
游戏
开发的全景探索。 本书不仅适合
游戏
开发者阅读,也会给所有的开发者和程序爱好者带来启示。 作者简介 云风,时年二十七岁。自幼学习
编程
,十数年从未间断,对程序设计有所领悟。大学时代开发的
游戏
图像引擎“风魂”曾用于多家
游戏
公司的
游戏
项目。参与过《大话西游》系列、《梦幻西游》、《网易泡泡
游戏
》的开发。现从事新一代网络
游戏
引擎的研究与开发,并在
游戏
模式上做一些新的尝试。 性格开朗,兴趣广泛,好交友,绝非沉浸在计算机世界中的书呆子。国学、历史书籍常备案头,以先贤之教诲修其心;休息时常作户外运动,尤其喜爱攀岩。 目录 第1章 计算机,
游戏
,我 1 1.1 计算机 2 1.2 计算机
游戏
3 1.3 计算机与我 7 1.3.1 启蒙 7 1.3.2
编程
9 第2章 算法,程序的灵魂 13 2.1 程序=算法+数据结构 14 2.1.1 算法 15 2.1.2 数据结构 17 2.2 搜索算法 23 2.2.1 地图寻路
问题
23 2.2.2 博弈
问题
27 2.2.3 更为广泛的运用 28 2.3 智能算法 29 2.3.1 遗传算法(Genetic Algorithm) 29 2.3.2 模拟退火算法(Simulated Annealing) 31 2.3.3 禁忌搜索(Tabu Search) 33 2.3.4 人工神经网络 (Artificial Neural Network) 34 2.4 优化 36 2.4.1 质数
问题
36 1.4.2 俄罗斯方块竞赛 37 2.5 Apple II上的
编程
之路 39 第3章
编程
语言 45 3.1 C 语言 46 3.2 BASIC 50 3.3
C++
51 3.4 汇编语言 54 3.4.1 概述 55 3.4.2 程序的本质 57 3.4.3 寄存器 58 3.4.4 寻址方式 60 3.4.5 汇编指令 61 3.4.6 C/
C++
语言和汇编 62 3.4.7 小结 63 3.5 其他语言 63 3.5.1 Forth 63 3.5.2 Lisp 64 3.5.3 Java 64 3.5.4 Python、
Lua
、更多 65 第4章 前Windows 时代 67 4.1 386保护模式 68 4.2 VGA 到VESA 70 4.2.1 超越 BGI 70 4.2.2 VGA 72 4.2.3 VESA 标准 72 4.2.4 花絮 74 4.3 保护模式下的开发工具 75 4.4 闲话 Allegro 81 4.4.1 用C与汇编写成的程序库 81 4.4.2 BITMAP 82 4.4.3 Sprite 85 4.4.4 几何图形和 3D 89 4.4.5 数据文件 91 4.4.6 声音 92 4.4.7 其他的部分 93 4.4.8 小结 94 4.5 cfido 中国惠多网 94 第5章 Windows
编程
101 5.1 Windows
编程
入门 104 5.1.1 Windows版本综述 105 5.1.2 操作系统的核心 107 5.1.3 Windows API和DLL 110 5.1.4 COM 111 5.1.5 Windows的窗口和消息处理与传递 114 5.1.6 Windows GDI 125 5.2 控制
游戏
的速度 130 5.3 浅谈MFC 132 5.4 小结 132 第6章 汇编优化 135 6.1 浅谈代码优化 138 6.2 并不仅仅是汇
我的
编程
感悟(中文PDF)(共37M二分卷)分卷一
《仙剑奇侠传》之父姚壮宪热情推荐,技术作家孟岩高度评价! 云风也是我在中国最佩服的
游戏
开发者。看了云风的研发历程,我觉得就是一部中国的
游戏
程序史,从最早的 Z80 , 6502 , PC8088 , 286 , 386…DOS ,保护模式, Assembler 到
C++
的整个发展轨迹。这本书可以说横跨了
游戏
程序的过去、现在和未来。 书中传达的不仅是一些实用的技术经验,更是传达一种理念——虽然研发的环境随着时代而变,但研发的精神是不变的,那就是“在实践中积累”。 ——《仙剑奇侠传》之父 姚壮宪 之前我经常奇怪,云风还非常年轻,他程序思想中的那种老练的智慧是从何处得来的呢?读完这本书之后,我终于明白,还是那句话:“无他,唯手熟耳”。 面对这沉甸甸的作品,我确实感到,这是云风用心写的书。用心写的书,当然出色。 ——技术作家 孟岩 我现在是中国并不成熟的
游戏
制作行业中的一员,
游戏
给了我太多,我告诉自己需要做一点事情。分享知识和经验是我的义务,别无它。 ——云风 内容简介 本书忠实地记录了作者十余年来对
游戏
编程
的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的
编程
技术,从非常专业的汇编优化到非常实际的项目管理进行了一次
游戏
开发的全景探索。 本书不仅适合
游戏
开发者阅读,也会给所有的开发者和程序爱好者带来启示。 作者简介 云风,时年二十七岁。自幼学习
编程
,十数年从未间断,对程序设计有所领悟。大学时代开发的
游戏
图像引擎“风魂”曾用于多家
游戏
公司的
游戏
项目。参与过《大话西游》系列、《梦幻西游》、《网易泡泡
游戏
》的开发。现从事新一代网络
游戏
引擎的研究与开发,并在
游戏
模式上做一些新的尝试。 性格开朗,兴趣广泛,好交友,绝非沉浸在计算机世界中的书呆子。国学、历史书籍常备案头,以先贤之教诲修其心;休息时常作户外运动,尤其喜爱攀岩。 目录 第1章 计算机,
游戏
,我 1 1.1 计算机 2 1.2 计算机
游戏
3 1.3 计算机与我 7 1.3.1 启蒙 7 1.3.2
编程
9 第2章 算法,程序的灵魂 13 2.1 程序=算法+数据结构 14 2.1.1 算法 15 2.1.2 数据结构 17 2.2 搜索算法 23 2.2.1 地图寻路
问题
23 2.2.2 博弈
问题
27 2.2.3 更为广泛的运用 28 2.3 智能算法 29 2.3.1 遗传算法(Genetic Algorithm) 29 2.3.2 模拟退火算法(Simulated Annealing) 31 2.3.3 禁忌搜索(Tabu Search) 33 2.3.4 人工神经网络 (Artificial Neural Network) 34 2.4 优化 36 2.4.1 质数
问题
36 1.4.2 俄罗斯方块竞赛 37 2.5 Apple II上的
编程
之路 39 第3章
编程
语言 45 3.1 C 语言 46 3.2 BASIC 50 3.3
C++
51 3.4 汇编语言 54 3.4.1 概述 55 3.4.2 程序的本质 57 3.4.3 寄存器 58 3.4.4 寻址方式 60 3.4.5 汇编指令 61 3.4.6 C/
C++
语言和汇编 62 3.4.7 小结 63 3.5 其他语言 63 3.5.1 Forth 63 3.5.2 Lisp 64 3.5.3 Java 64 3.5.4 Python、
Lua
、更多 65 第4章 前Windows 时代 67 4.1 386保护模式 68 4.2 VGA 到VESA 70 4.2.1 超越 BGI 70 4.2.2 VGA 72 4.2.3 VESA 标准 72 4.2.4 花絮 74 4.3 保护模式下的开发工具 75 4.4 闲话 Allegro 81 4.4.1 用C与汇编写成的程序库 81 4.4.2 BITMAP 82 4.4.3 Sprite 85 4.4.4 几何图形和 3D 89 4.4.5 数据文件 91 4.4.6 声音 92 4.4.7 其他的部分 93 4.4.8 小结 94 4.5 cfido 中国惠多网 94 第5章 Windows
编程
101 5.1 Windows
编程
入门 104 5.1.1 Windows版本综述 105 5.1.2 操作系统的核心 107 5.1.3 Windows API和DLL 110 5.1.4 COM 111 5.1.5 Windows的窗口和消息处理与传递 114 5.1.6 Windows GDI 125 5.2 控制
游戏
的速度 130 5.3 浅谈MFC 132 5.4 小结 132 第6章 汇编优化 135 6.1 浅谈代码优化 138 6.2 并不仅仅是汇
游戏
辅助从0到1-
C++
调用调用
游戏
Lua
脚本实现辅助
本课程以TLB*和W*W为例子,讲述如何通过
游戏
的
Lua
脚本来实现一个
游戏
的辅助。众所周知,
游戏
的逻辑基本上都是采用
Lua
等脚本语言编写的,我们通过逆向分析
游戏
,找到
游戏
Lua
接口和
Lua
函数后,很容易的就能实现一个
游戏
辅助所需要的所有功能,比起逆向
游戏
来讲,本课程更容易上手,适合0基础的朋友们学习,在学完本课程后再去学习
游戏
逆向技术会事半功倍,再者,在实际的
游戏
辅助编写的过程中,可能有很多地方我们需要花大量的时间找call,如果是我们直接去调用
游戏
的
Lua
脚本的话也会节约我们大量的时间,节省我们的开发成本。 本课程适合有一定的C/
C++
基础,想做点实际应用,或者是对
游戏
辅助有强烈兴趣的朋友们学习。 本课程分为三部分:第一部分是讲述
Lua
的基础及C/
C++
与
Lua
联合
编程
的内容第二部分讲述的是动态调用
Lua
游戏
辅助的实现第三部分讲的是静态调用
Lua
游戏
辅助的实现 课程目前已经完成了第一部分的制作,第二部分的课件已经完成 大概每周会都更新1到2节课的内容
C/
C++
和
Lua
混合
编程
1. 概述 发布一款应用程序比较耗时,尤其是手机
游戏
应用还需要各种审查。一种简单方便的热更新,可以满足上述需求。静态
编程
语言生成框架,动态语言完成其他逻辑,这样可以达到热更新。
lua
由于其性能及简洁,是许多项目热更新时选择的动态开发语言。此文主要讲解C/
C++
和
Lua
的
混合
编程
,主要针对
Lua
5.2及之后的版本(之前的版本接口略有调整)。 2. 编译
Lua
代码 2.1. Linux下编译 直接在指定目录执行以下命令即可完成编译,会生成lib
lua
.a(静态库),
lua
(解释器),
lua
c(编译器)。 2.2
Lua
和
C++
混合
编程
创建好项目后,在【头文件】选项上点击鼠标右键,选择【添加】—>【现有项】,然后找到刚刚解压
Lua
压缩包的目录,选择
Lua
目录下的src文件夹,这里我的是D:\
lua
-5.4.1\src目录。然后把src下的所有.h文件添加到头文件。导入头文件和源文件之后,右键【项目】—>【属性】,在界面中操作,【C/
C++
】—> 【高级】—> 【编译为】选择【编译为C代码(/TC)】,最后确定。此时会弹出一个对话框,下拉应用程序类型选择“静态库”或者动态库,选择“空项目”,点击“确认”,等待项目创建完毕。
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章