有感于c++混合lua开发游戏
源于Mike Pall的一个帖子http://t.cn/SvuWk0,他举的第一个例子就是游戏开发,最初开发游戏肯定是c/c++了,当接触到lua这样的动态语言的时,确实很amazing;起初可以用来做配置——比xml好用多了;接着做特殊的扩展,比如服务器的脚本任务和活动,然后发现gui的处理放在脚本很方便,测试用脚本也爽,然后一股脑的能脚本的都脚本化,有的用的停不下来的感觉。最后发现我勒个去,卡了。就好像小时候看过一个笑话,一个书生做菜,人家告诉他要撒盐,撒了点盐,好吃,再撒点,更好吃,都撒上,结果没发吃了。
第一次做成这样,也是没办法的,是经验问题,值得原谅。不过再次做一番设计,就需要谨慎。
1.要明白c和lua各自的强项——c执行效率高,底层的现成的库多,常用于图形,声音,网络;lua书写的效率高,多用于数据组织和逻辑。
2.c和lua都要有彼此的界限——最好不要做同一件事情,lua可以用作c特殊的扩展,但是记住是特殊的不常被调用的。
那么到底是c为主,还是lua为主呢?
要看你的游戏主逻辑和数据到底放在c还是lua中了,如果是我会放在lua中,开发效率会高的多(高一倍吧);千万不要数据放在c,而逻辑放在脚本,到处掉c函数的get,set,那样犯了文章开始的错误,效率肯定是不行的。为了怕误导人,我添一句,如果是刚刚接触lua,还是放在c中,这其中有个循序渐进的过程,不要对自己过于自信了。