【灌水】扔掉MudOS
mud吧
全部回复
仅看楼主
level 7
xyj_cn 楼主
看jason兄在讨论MudOS。我也来灌水,好申请会员。
其实更想扔掉MudOS,直接用一种语言从头构建MUD,MudOS的职能最多是不太厚的一层。
如果这样做,lua和go都不错:
- 都可以无锁的跑在单线程上。
- 效率无敌,lua有jit而go编译
缺点:
- lua太简单了,实现某些功能有点单薄,网络io部分要借助外援
- go还不支持动态载入,这个太要命了,等待更新
这东西看起来工作量不大,不过现有lib的转移有不少麻烦。
2011年07月22日 09点07分 1
level 10
mudos做了很多很多事情,才能够向上支持一个lpc这样简单的语言。比如add_action,比如environment,比如heart_beat,reset,cleanup,cache。如果要自己重头做,那完全没必要做成文字mud了
2011年07月22日 11点07分 2
level 7
xyj_cn 楼主
MudOS做的这许多事情,用C构建是很艰巨的,但如果是用lua和go这样高开发效率工具,则没多少工作量的。比如几百个efun绝大多数都可以直接映射到lua/go的库或包,而jason提到的这些没有直接映射的,实现起来也不难,无非维护个线性表或者树之类的结构。
当然最有一个问题确实是问题,缺乏重做文字MUD的必要了。

2011年08月09日 02点08分 3
level 10
efun不是问题,我举个几个例子,看看实现的难度。
add_action怎么实现?
heart_beat怎么实现?
而且很多事情原理上很简单,但是要发展到完善,是需要很长时间打磨的。看看mudos本身的历史就知道了,没有几年时间,是打磨不出来的。
图形mud的引擎也是经过很多年的积累的,刚开始得都是bug满天飞。

2011年08月09日 03点08分 4
level 10
楼主能说说为啥要扔掉MUDOS么?你提到的方案仅仅是能实现MUDOS已经有的功能,能不能完美替代并超越是一个很大的未知数。在我看来,对于现在MUD来说,唯一的缺点也许是效率,不过就目前MUD的在线人数而言,很够了。
2011年08月11日 13点08分 5
level 3
同意5楼
2011年10月17日 07点10分 6
level 10
实用和技术流的辩论
2011年10月18日 01点10分 8
level 10
自己做一个mudos我觉得不如像fluffos那样,基于mudos做自己的改进。不过前提是要对mudos本身有很深的了解,知道他的缺点在哪里。否则从新开发一个必定是好的不见得学到了,坏的肯定都在。
2011年10月18日 03点10分 9
level 7
xyj_cn 楼主

现有MudOS一般情况下够用了,但对特殊需求还是比较力不从心,比如效率,单线程,古老的GC,陈旧的语法和库。不过这些问题要么可以忍受,要么可以绕过。所以我也承认更务实的观点,在现有MudOS上修修补补,比如64位,aio,借鉴fluffos等等。
另一方面,弃用MudOS,用全新的技术从头搭建一个全新MUD,对于有余力的开发者,有超乎MUD本身的意义,我在考虑跨服战场的server用go实现。

2011年10月27日 05点10分 10
level 15
有很多开源的mmorpg server的代码可以参考~比如mangos等等。
2011年10月27日 06点10分 11
level 7
xyj_cn 楼主
这个可借鉴的恐怕不多,因为复杂度不再一个数量级上,比如mmorpg往往要N台登录服务器,而我们与之对应的只是一个logingd.c。另外关注点天差地别。
2011年11月16日 13点11分 12
level 15
其实可借鉴的非常多,mangos只是个大型mmorpg的驱动系统,是一个软件,可以支持n台登录服务器,也可以只有一个登陆进程,对应的只是其中的登录模块而已。至于关注点,他的关注点是什么并不重要,重要的是他的模块封装、异步操作多线程、数据库读写以及超强的可扩展性都是可以学习的。
2011年11月18日 00点11分 13
level 1
挖坟
2013年01月30日 08点01分 14
level 10
既然楼上的挖了我就再说2句。lua的效率不见得超过lpc,即便是加了jit之后。
我做过测试,lua加jit仅仅是提高了数值运算速度,但对字符串处理来说,luajit并没有提高。lua的字符串效率大概是lpc的1/3左右,甚至还要差。像mud这种大量字符串拼接处理的应用,lua非常不合适
2013年02月01日 03点02分 15
level 1
在我眼里都是大神级的人物
2013年02月03日 09点02分 16
level 3
没有应用需求的技术革新有什么意义?
2013年02月25日 11点02分 17
1