从C++到Lua:探讨游戏脚本语言的演变与Unity脚本基础
个人对脚本语言认识不深, 尤其是动态语言...

但是问了好多人为什么逻辑用脚本写, 答案都是不用编译
这也只能怪DT的C++当初没设计好
由于WOW的成功, 让lua几乎成了游戏脚本的标准
原来的 python 一下子就没落了,原来的 ruby 一下子就没落了,原来的 tcl 一下子就没落了,都怪暴雪啊~
虽然lua做为一个脚本语言来说, 非常的完美
但是我对它不是很感冒, 可能习惯了C系语言的语法了
对于 AS 语言的我看着比较顺眼。
从学校开始,自己仿佛就被 C#迷住了。尽管一直没有机会大量使用它,但心中始终对它念念不忘。
这也导致了我把引擎工具用WPF来开发的念头
今年,“Unity”这个名字频繁地在眼前和耳边出现,它的理念相当不错。
而它的脚本是基于Mono的, 冒似实际效果很不错
这也让我有了使用C#做为脚本的冲动
如果觉得 C#不是动态语言,那么 Mono 是支持 JavaScript 的,并且 Mono 也支持 Boo。
本来想如果不跨平台的话是不是可以直接使用MS的.Net实现
Google 后确实有一个叫 CS-Script 的实现。然而,想要将其嵌入到 NativeC++中,看起来并不是一件容易的事情。
所以,一切得从 Mono 开始着手。Mono 的运行效率比微软(MS)的要低一些,不过即便如此,它的运行效率也还是 Lua 的好多倍。
Mono 在 Windows 下进行编译时遇到了一些问题。原因是官方压缩包中的 sln 文件根本就不完整。
搜索也没什么头绪, 看来大家都是在linux下搞这玩意
后来从 github 上将最新的代码下载了下来。经过一番努力,在对部分路径进行修改之后,代码终于编译通过了。
其中有些.lib是在mono的windows安装版本中的
Embedded Samples就是嵌入mono的示例程序
以 teste 为例,在运行时需要依靠 mscorlib.dll。并且那个路径比较奇特,其竟然是 mono/msvc/Win32_Debug/lib/mono/2.0/。