seagate 发表于 2010-1-26 15:29:08

其实在Web领域产生mvc概念还有一个原因就是,因为一般来说你写Web网页要用http脚本语言,具体到业务实现可以封装一部分java代码,链接数据库可能另外一些代码,代码风格就完全不同,虽然说javascript可以把这些元素都封装在一个页面里面,但是你以后要维护的时候就累了。首先你如果要修改你业务逻辑,就需要把页面实现美工的脚本语言部分剔除掉,如果要修改美工,就要忽略业务实现部分,有时候20个页面就会产生很大的麻烦。所以逐渐因为mvc概念,把页面美工和业务逻辑分离。
具体到mud部分基本上就不存在这种危机,或者说这些问题其实不严重。所以迫切性并不严重。
如果说你用面向对象语言对mud进行编程,然后给出接口供大家共用,或者建立一个基础平台供大家继承使用或者是一个好主意。但是我不知道有没有java版的mud客户端,都是脚本语言的,对这方面支持力度不知道能到什么程度。我对脚本语言说到底也不是特别熟悉。就会写zscript。

lzkd 发表于 2010-1-26 19:02:30

seagate可能没接触过网页上的编程吧..
页面的代码和美工分离,不需要使用MVC,使用模版技术就可以了.比如smarty,Template等

lua我不熟,不敢说什么,php本身就有好多比较成熟的MVC产品了.国内高手自己开发的也有,我就试过几个.感觉还不错的

superxx 发表于 2010-1-26 19:55:19

不知道为什么要把MVC拿出来讲,MVC主要是把展示层,业务逻辑层分开,用控制层来处里交互,方便大型项目的分工和维护。 但这在mud的机器人上,好像问题不是这样的。
我的感觉,很多的机器人之所以发呆,出错,是没有在正确的地方,或者没有需要的NPC。再有,更多的复杂性是由于网络或其他原因造成的非期待的输出。

所以,精髓在于如何提高机器人的容错性。从框架的角度来说,走路肯定是基础,包括正常的走路和纠错。
还有一层是交互,处理和npc的部分。中间的部分就可以给客户逻辑一些空间,看每个人想做什么了。

seagate 发表于 2010-1-26 20:02:20

实际上提高机器人的容错性就是一个大难题。很多情况纯粹是靠人力堆出来的,因为有可能为了一个小小的意外你就要写一大段代码,而且这些代码之间通用性往往非常差。尤其走路的时候碰到那些怎么都无法定位的地点你就头疼了。一个地点有一个地点的特殊判定,就看你怎么办了?

superxx 发表于 2010-1-26 20:20:06

我倒是觉得走路纠错恰巧是最通用的。代码也可以重用,当然前提是不是每一种情况单独处理,而是找规律

seagate 发表于 2010-1-26 20:26:31

很不好办啊。关键是很多特殊地方,特殊地方太多了导致通用性下降,如果做区域搜索不考虑哪些特殊地方倒好办,但是有时候你不考虑也不行啊。这就是麻烦的地方。这个地方需要一个非常良好的架构。对空间要有明确的描述,我一直觉得把zmud的map数据库吃透是个好路子,他的数据库架构已经很好了,就是对他空间方位计算方面不明白。那个地方估计也是他数据库架构的核心部分。但是光那个东西不够,要想通用性确实麻烦很大。还是不考虑通用性,头痛医头脚痛医脚,虽然每次开发量都很大,但是考虑事情比较少。多花点时间而已。

seagate 发表于 2010-1-26 21:14:23

我做过web项目,都是企业级的,只是一般来说我都不管http网页那块,网页脚本,美工之类一股脑儿都给别人,我只管后端tomcat或者weblogic上的java应用程序,以前是用struts开发,最近用spring开发,spring属于完全不懂,struts还能懂一点,spring就是让公司干活,自己出底层设计,我们单位在有一个人出java设计。主要是最近几年忙数据库太多了,这方面跟不上了。java那块变化太快,今年我们单位把spring淘汰了,说他落后了!我哭啊,我spring都没跟上,人家都已经淘汰这个技术了!这叫啥世道啊!换技术架构和换衣服差不多!一狠心以后专心研究数据库得了,做数据库方面No。1比java那边一天到晚跟著跑还跟不上好多了!

sauron 发表于 2010-1-26 23:46:46

zmud的数据库有些慢的

sauron 发表于 2010-1-26 23:50:20

我在一个博客上看到用lua来实现zmud的map功能
map_daxueshan={
={
roomid=1,
roomname="川西土路",
roomindex=1,
roomnumber=1,
roomflag=0,
roomnpc={},
roomdes="这里已经到了四川最西面,再往前走就要进藏了,气候比川中要冷许多,路边越渐荒凉,偶尔在草丛中露出一堆白骨,在寒风中闪着刺眼的白光,令人触目惊心。",
roomcx=0,
roomcy=0,
roomcz=0,
roomexists={
   ["sw"]=2
}
},
={
roomid=2,
roomname="藏边土路",
roomindex=1,
roomnumber=2,
roomflag=0,
roomnpc={},
roomdes="这里已经进入了西藏,地势越来越高,空气稀薄,连呼吸都困难起来。阳光分外刺眼,晒得人皮肤发紧,口干舌燥。遥遥往见远处一座城池,让人不由得振奋精神,加快了脚步。",
roomcx=-1,
roomcy=1,
roomcz=0,
roomexists={
   ["ne"]=1,
   ["sw"]=3
}
},
={
roomid=3,
roomname="藏边土路",
roomindex=2,
roomnumber=2,
roomflag=0,
roomnpc={},
roomdes="这里已经进入了西藏,地势越来越高,空气稀薄,连呼吸都困难起来。阳光分外刺眼,晒得人皮肤发紧,口干舌燥。遥遥往见远处一座城池,让人不由得振奋精神,加快了脚步。",
roomcx=-2,
roomcy=2,
roomcz=0,
roomexists={
   ["ne"]=2,
   ["w"]=4
}
},
={
roomid=4,
roomname="明霞门",
roomindex=1,
roomnumber=1,
roomflag=0,
roomnpc={},
roomdes="这里是吐蕃国皇城的南门,吐蕃是边陲小国,但历年重视军备城防,城墙修筑得坚实高阔,比起中原重镇来竟也毫不逊色。此刻城门吊桥落下,由城门洞下经过的行人熙熙攘攘,看形貌服色大多是在附近聚居的少数民族。",
roomcx=-3,
roomcy=2,
roomcz=0,
roomexists={
   ["e"]=3,
   ["n"]=5
}
},
={
roomid=5,
roomname="街道",
roomindex=1,
roomnumber=3,
roomflag=0,
roomnpc={},
roomdes="吐蕃国皇城的街道比起中原大城来要窄小些,也冷清许多。青石漫铺的路两边已经被压出两道深深的车辙。压碎的青石板下裸露出的泥土呈现出脏乎乎的黑色,被冻得硬邦邦的。看来吐蕃当今赞普大大重视军备于民生。东边是家大车店,有不少来往客商在那里歇脚。西面是个兵营。",
roomcx=-3,
roomcy=1,
roomcz=0,
roomexists={
   ["e"]=7,
   ["w"]=6,
   ["s"]=4,
   ["n"]=8
}
},
={
roomid=6,
roomname="猛虎营",
roomindex=1,
roomnumber=1,
roomflag=0,
roomnpc={},
roomdes="这里驻扎的是吐蕃国皇家的亲兵卫队,负责皇城内外的防务。营内中间有一大快平整的教练场,一个威风凛凛的将官正大声吆喝着训练一小队士兵。营门右首的墙上贴着张微微泛黄的告示(gaoshi)。",
roomcx=-4,
roomcy=1,
roomcz=0,
roomexists={
   ["e"]=5
}
}
}
这个lua脚本形式的map,通过A*算法可以计算出任意连个房间之间的路径,用lua算还是很快的。

superxx 发表于 2010-1-27 08:44:49

A*算法,很久没听到了。。。。。
页: 1 2 3 [4] 5 6
查看完整版本: mush机器人框架设想