redcoat 发表于 2011-9-4 16:25:06

mudos 和 lpc 学习有感

最近荒废了练武功,做任务,实在忍不住好奇心,去官网下了个mudos研究研究,看来还是源码最吸引我啊,呵呵。

mudos失去维护已经有很长一段日子了,代码我从头到尾粗略的看了一遍,有不少地方我超级佩服,激动万分。


mudos的性能有待优化,可以从两个方面入手:

第一种方法很适合专一的一款mud,就是结合mudlib,从头到尾写一个新的,这个就不能叫mudos了,因为其专有性可以算是一款独立的mud游戏了。
有个国外的mud就是这样做的,平均在线人数400~850人左右,script层采用lua。用lua有诸多好处,对比与其他语言,精致而且高效,作为游戏的胶水粘结层语言,再适合不过了。

第二种方法,是做为mudos这个系统出发的。除了性能的优化,功能还可以大大的扩展。虚拟层还可以加入很多有趣的功能。我之前的毕设是写一个基于intelx86架构下32位多任务微内核操作系统,把其中一些应用运用到mudos上,估计会大大缩短开发时间。


分享和开源才是硬道理,mudos很有趣,我会继续研究下去。mudos最终没有采用GPL协议,这点让我遗憾了很久。从头再写一遍mudos虽然是一件很累很苦很bt的事,但苦中作乐,也是不错的。


初步设计:
[*]采用微内核的思想(个人喜好加上设计上的优美)[*]C && lua (C++协议改得越来越丑了,不会考虑C++。python和perl不错,但相比lua,还是lua有效率优势。再加上C和lua的天然粘合性,lua是首选。ruby也很优秀,有空写写玩玩)[*]分成server,kernel,shell三部分来写。server部分先把web服务柔进去。kernel采用module的方式modprobe。shell就是交互层,类似bash的解释层。[*]不会考虑兼容mudos,因为这是个自娱自乐的小玩具,是体验mud编程的最好方法。[*]不会采用mudlib的方式,如上面的设计,就没有考虑mudlib的方式。mudos像是一个类似的模拟器,模拟一个个mudlib。我会把kernel分成各大块,每块相互用信号量通信,每个块(即module)提供各种相应的系统函数。不断完善。[*]游戏的设计只需提供lua的一系列脚本。shell层负责解释、交互、预编译。


说到lua,真的是一个很神奇的语言,对比一下linux下的window manager的配置文件就可以体现lua的优美和简练。
比如一款基于dwm的wm,叫awesome,他就是采用lua作配置文件,简单易用,而且功能强大。


对了,东方故事2的mudlib我没有找到,好多网上的下载链接都失效了。我拿其他的mudlib做的实验。

北大侠客行MUD,中国最好的MUD

labaz 发表于 2011-9-4 16:38:53

膜拜下
lua还在继续学习中

ruoyu 发表于 2011-9-4 16:52:45

不懂,学习中yct55

npckill 发表于 2011-9-4 16:54:29

yct13 为师兄顶一个

jizong 发表于 2011-9-4 17:44:50


火枪手,加油,加油

小心被巫师组 招安了!

还是跟兄弟伙落草为寇,比较好,大块吃肉,大碗喝酒,大秤分金!

jason 发表于 2011-9-4 17:46:35

不如做点实际的,比如让v22pre11支持mysql,不如扩展到64位,比如把存储格式转为json。比如在mudos里多开出一个线程来执行需要阻塞的任务。

jason 发表于 2011-9-4 17:52:27

还有啊,比如支持utf8和big5编码。
原帖由 jason 于 2011-9-4 05:46 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
不如做点实际的,比如让v22pre11支持mysql,不如扩展到64位,比如把存储格式转为json。比如在mudos里多开出一个线程来执行需要阻塞的任务。

angelei 发表于 2011-9-4 18:09:58

yct71 yct71 yct71 yct71 yct71 听不懂

zgbl 发表于 2011-9-4 18:23:08

火枪来帮舒乐乐一起写北侠新版客户端吧

lzkd 发表于 2011-9-4 18:35:05

转到巫师学堂版了。
这个很明显的。
页: [1] 2 3
查看完整版本: mudos 和 lpc 学习有感