记3.20与吴老师交流

游戏底层实现的OpenGLDirect X

     1.首先是OpenGL定义了一些制作图像的接口(也就是由C++等底层语言实现的API结构),指示显卡怎么去画一个我们指定的图像,然后硬件厂商根据OpenGL提供的标准,自己设计自己相对应显卡的驱动程序,这样就能实现OpenGL调用的API能够操作硬件进行一些渲染的工作。

在OpenGL更上一层(更接近用户)的为游戏引擎(目前有很火的2Dcocos2dx和3D的unity3d等),这些都是引擎开发人员(大牛啊这是!)通过采用C++或者其他的一些底层编程语言通过调用OpenGL底层的API实现的一些功能构成了引擎的结构,它帮我们把渲染、事件分发等很多有用的功能模块都处理好了,我们通过使用这些功能来构造自己的游戏。

      2.类似的DirectX实现的原理差不多,只不过由于它是微软开发的一套东西,只对window环境下的软件是有效的,造成不能跨平台的操作。


Cocos2dxLua

     1.这里需要提一下采用Cocos2dx游戏引擎直接开发(底层OpenGL实现,所有可以跨平台)和使用Lua脚本语言通过tolua++调用Cocos2dx中的API的区别,一般直接在Cocos2dx中实现的都是一些不易改变的游戏功能组件,需要事先的编译,再发布,在给用户体验的时候不能够动态的变化(游戏出现Bug,需要开发者提供新的编译好的程序,然后用户下载很大的软件安装包才能用),这样极大的妨碍了用户的体验过程,太麻烦了(一个大型游戏动辄上G,你能忍受一些小Bug就重新下载一遍?早就把你卸载了!)。

     2.这个时候就需要提下我们的脚本语言Lua了,它采用的是动态执行的方式,它在执行的时候做了一套很好地内存处理机制,它通过tolua++接口来调用Cocos2dx引擎中的API,通过Lua这个脚本语言来构建一些可能产生一些问题的游戏逻辑的东西,在游戏出现Bug,即游戏内部的一些逻辑出错的情况下,我们通过更换用户的一个脚本语言(很小)就能够修复Bug,这个更换的过程可以在用户有网络情况下从游戏的服务器端下载,新下载的脚本语言在命名方式上的Version版本号会改变等,每次调用这个逻辑脚本文件的时候就通过搜索当前最新版本的脚本文件即可。这样就很方便的实现了游戏Bug的修复工作等。


下面粘贴一段来自红黑联盟文章的链接:Cocos2d-x之LUA脚本引擎深入分析 (里面详细阐述了通过libcocos2d这个中间库来实现直接用lua开发游戏逻辑的代码分析)

关于Lua和C++环境下Cocos开发的差别通俗易懂的解释:

      首先,我们要知道LUA是个什么东西,至于官方怎么说可以百度去查,但我想告诉你的是LUA就是一种可以在不必修改C++代码的情况下实现逻辑处理的手段。稍微讲的再明白一点,就是你用指定语法写一些逻辑处理函数然后保存成文本格式,这个文件称为脚本文件,可以被游戏执行。经过若干年的发展,现在在LUA中写逻辑,除了调用注册到LUA的静态C函数外,也已经可以方便的访问到C++工程中的类的成员函数。这是游戏开发史上最重要的技术之一。其改变了很多设计方案,使游戏变的灵活强大而极具扩展性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值