使用脚本开发,TDD尤为重要

现在正在开发一款游戏,服务器只是用c++搭建了基本的支持包括网络通讯的打包减包加减密,事件的分发模块,基本对象状态的维护等,其他所有游戏业务逻辑都是lua脚本完成(包括player这样的对象)。

Player = Class.extern({

init = function(self)

self.state = EGUS_LOGINNING
end;


getState = function(self)

return self.state

end;

})

对lua的源码做了些小改动,去掉了:形式的调用,例如 player:getState() 可以直接写成 player.getState(),而无需传入self本身(player.getState(player))。

由于lua是一种动态语言,对类型无静态检查机制,这给重构带来很大困难,由于起先的部分代码都不是测试优先的编写方式,现在再做一些重构感到很困难。

只能慢慢的补起来:(。这些经验教训让我觉得如果用动态脚本(包括lua、python、ruby等)开发大型游戏,TDD将是最好的选择。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...