sulryn 发表于 2024-7-8 09:46:45

[自制MUD]记录下开发进度




想给自己写一个MUD玩,但是又想脱离中文MUD几十年不变的老框架,于是换个框架开始。

经过一番搜索后,选择使用的框架为Evennia,一个纯Python编写的现代MUD服务端框架。虽然之前没有Python经验,但是根据教程,我花10天完全掌握了Python(不是)。

目前写了第一张初始地图,自制了第一个武功。
根据教程写的战斗系统也初步完成了(上图),是菜单选项的回合制,我不喜欢传统MUD的心跳制。
接下来研究任务系统和物品系统。

sulryn 发表于 2024-7-8 15:33:20



下午做了查看行囊的指令和拿起武器的指令……

jarlyyn 发表于 2024-7-8 15:37:26

虽然可能有些晚了,但不太建议基于python的。

python本身就慢,gil更是让人头痛。

不太适合mud的情况。

sulryn 发表于 2024-7-8 16:19:16

jarlyyn 发表于 2024-7-8 03:37 PM
虽然可能有些晚了,但不太建议基于python的。

python本身就慢,gil更是让人头痛。


可是python好写啊!
规模上,我又不会有北侠这个数量级的用户,房间,或者物品
纯自己写的慢不到哪里去吧。

jarlyyn 发表于 2024-7-8 16:24:33

sulryn 发表于 2024-7-8 04:19 PM
可是python好写啊!
规模上,我又不会有北侠这个数量级的用户,房间,或者物品
纯自己写的慢不到哪里去吧 ...

实际上python在这个场合并不那么好用,甚至不如lua。

主要是由于语法基于空格,匿名函数不好用。

多用了就知道了……

sulryn 发表于 2024-7-8 16:26:24

jarlyyn 发表于 2024-7-8 04:24 PM
实际上python在这个场合并不那么好用,甚至不如lua。

主要是由于语法基于空格,匿名函数不好用。


匿名函数是啥

jpl 发表于 2024-7-8 16:28:35

现有MUD的最大问题是不能并发,这个Evennia框架, 虽然是异步驱动, 但本质上还是不能多线程并发...

jarlyyn 发表于 2024-7-8 16:52:41

sulryn 发表于 2024-7-8 04:26 PM
匿名函数是啥

以lua为例

<div>function myfunc()</div><div>   npc=currentEmeny().first()</div><div>   if (npc.hp) > 100 then</div><div>            pushToTick(function ()</div><div>                npc.DoAttack()</div><div>         end</div><div>    end</div><div>end</div>里面的pushToTick的第一个参数。

sulryn 发表于 2024-7-8 16:54:26

jarlyyn 发表于 2024-7-8 04:52 PM
以lua为例

里面的pushToTick的第一个参数。

我倒是不常用这个特性呢。我是觉得python这种空格语法写着还行,看得清楚

sulryn 发表于 2024-7-9 20:11:08


今天做了开门的命令(open 方向)
用的是框架里的lock功能,可以通过加额外的权限指定什么人才能开
页: [1] 2 3 4 5 6
查看完整版本: [自制MUD]记录下开发进度