北大侠客行MUD论坛

标题: [自制MUD]记录下开发进度 [打印本页]

作者: sulryn    时间: 2024-7-8 09:46 AM
标题: [自制MUD]记录下开发进度
[attach]22205[/attach]


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

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

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


作者: sulryn    时间: 2024-7-8 03:33 PM
[attach]22206[/attach]

下午做了查看行囊的指令和拿起武器的指令……
作者: jarlyyn    时间: 2024-7-8 03:37 PM
虽然可能有些晚了,但不太建议基于python的。

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

不太适合mud的情况。
作者: sulryn    时间: 2024-7-8 04:19 PM
jarlyyn 发表于 2024-7-8 03:37 PM
虽然可能有些晚了,但不太建议基于python的。

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

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

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

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

多用了就知道了……
作者: sulryn    时间: 2024-7-8 04:26 PM
jarlyyn 发表于 2024-7-8 04:24 PM
实际上python在这个场合并不那么好用,甚至不如lua。

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

匿名函数是啥
作者: jpl    时间: 2024-7-8 04:28 PM
现有MUD的最大问题是不能并发,  这个Evennia框架, 虽然是异步驱动, 但本质上还是不能多线程并发...
作者: jarlyyn    时间: 2024-7-8 04:52 PM
sulryn 发表于 2024-7-8 04:26 PM
匿名函数是啥

以lua为例

  1. function myfunc()
         npc=currentEmeny().first()
         if (npc.hp) > 100 then
                pushToTick(function ()
                    npc.DoAttack()
               end
        end
    end
复制代码
里面的pushToTick的第一个参数。

作者: sulryn    时间: 2024-7-8 04:54 PM
jarlyyn 发表于 2024-7-8 04:52 PM
以lua为例

里面的pushToTick的第一个参数。

我倒是不常用这个特性呢。我是觉得python这种空格语法写着还行,看得清楚
作者: sulryn    时间: 2024-7-9 08:11 PM
[attach]22207[/attach]
今天做了开门的命令(open 方向)
用的是框架里的lock功能,可以通过加额外的权限指定什么人才能开
作者: ajump    时间: 2024-7-9 10:20 PM
嗡嗡嗡嗡嗡
作者: phagspa    时间: 2024-7-10 11:43 AM
除了合作关系,什么样的游戏规则能让竞争关系的人很愿意看到对手被奖励得分?
作者: sulryn    时间: 2024-7-10 11:46 AM
[attach]22208[/attach]

天气系统,比较无脑,单个区域共享一个天气,懒得搞得很复杂。
作者: sulryn    时间: 2024-7-10 11:48 AM
phagspa 发表于 2024-7-10 11:43 AM
除了合作关系,什么样的游戏规则能让竞争关系的人很愿意看到对手被奖励得分? ...

基本没有,所以纯合作不就行了
作者: sulryn    时间: 2024-7-10 05:12 PM
[attach]22209[/attach]
运功系统,内功和轻功没有奇招,但是有运功技能可以给自己上buff
作者: jarlyyn    时间: 2024-7-10 05:41 PM
sulryn 发表于 2024-7-10 05:12 PM
运功系统,内功和轻功没有奇招,但是有运功技能可以给自己上buff

真要脱离传统武侠mud的话,给个思路

和wow一样加硬上限,

无限制的build id我觉得不适合时代了。
作者: sulryn    时间: 2024-7-10 05:44 PM
jarlyyn 发表于 2024-7-10 05:41 PM
真要脱离传统武侠mud的话,给个思路

和wow一样加硬上限,

我有硬上限的,武功等级最高就100,达到固定等级给属性,每个武功不一样
比如基础能学的一个拳法,1-100中间能够加4次膂力,1点根骨什么的,然后没别的提升了
而且能同时学的武功数量强制限制,初始10个,然后可能在后期达成什么任务给一些槽位
而且没有经验值系统,玩家实力纯看武功和自己属性


作者: jarlyyn    时间: 2024-7-10 05:57 PM
sulryn 发表于 2024-7-10 05:44 PM
我有硬上限的,武功等级最高就100,达到固定等级给属性,每个武功不一样
比如基础能学的一个拳法,1-100中 ...


作者: sulryn    时间: 2024-7-10 08:48 PM
[attach]22210[/attach]
[attach]22212[/attach]
[attach]22211[/attach]
重启后也可以保存状态的任务系统
这个框架最大的优点就是任何东西都可以做到重启后不丢失……
作者: dsleeper    时间: 2024-7-10 11:08 PM
虽然完全看不懂,但还是先mark一下,等养肥了再看
作者: jarlyyn    时间: 2024-7-10 11:29 PM
sulryn 发表于 2024-7-10 08:48 PM
重启后也可以保存状态的任务系统
这个框架最大的优点就是任何东西都可以做到重启后不丢失…… ...

保存所有状态对于现代框架来说毫无难点。

不行一个带写盘的redis就打翻了。

毕竟30年过去了。
作者: sulryn    时间: 2024-7-11 09:41 AM
目前设想的Gameplay Loop:
做任务赚钱 → 练功消耗心相 → 花钱回心相 → 做任务赚钱
任务只奖励铜币,和可能给物品吧。
练功消耗心情值,心情值的恢复需要消耗铜币去做各种开心的事情。

作者: jarlyyn    时间: 2024-7-11 10:45 AM
sulryn 发表于 2024-7-11 09:41 AM
目前设想的Gameplay Loop:
做任务赚钱 → 练功消耗心相 → 花钱回心相 → 做任务赚钱
任务只奖励铜币,和可 ...

mud游戏由于画质和操作受限,本质只能玩体验感。
体验感本质是 世界观 和 价值观 的混合。

世界观决定了你的游戏吸引了哪一类人。比如我玩了帕鲁不错,同样类型的雾锁王国我下载的欲望都没。

北侠最近一次世界观的争议就是城市通缉,不管你是大侠还是魔头,在城市里都要乖乖的被通缉不能进城,然后这么法制的一个世界,有辣莫多npc发需要杀人的不和谐任务,一下子从武侠变成了穿越之我在金庸世界做雇佣兵。

当然,长时间维护的游戏都会有世界观冲突的问题,强如宝可梦这样的ip也有过宝可梦能不能做食物的摇摆。

你这个gamelook里就引入了心相这个和武侠世界观不太搭的东西。

价值观就是别人为啥上你的游戏,你想让别人上游戏干嘛。

北侠和其他武侠类mud,属于远古时起的开创者,本质都是挂机流,就是怎么用最低的开发成本得到最长的用户在线事件,虽然引入了fullme,离线练功等等机制缓解副作用,但由于价值观在此,还是无法脱离挂机游戏的范畴。

以我了解过的网络游戏为例。

mud/ro/石器时代/传奇之类,是远古挂机流,耗在线时间,讲究等级啥的,主要互动是组队练功和PK。

WOW为代表的副本CD流(虽然我不喜欢wow的游戏机制,但wow用一般的游戏机制还能这么成功,可见其他地方它有多牛),就是等级封顶,主打小团队副本pve,按cd活动,避免过多的在线练功时长,靠游戏内社交(拉风的装备宠物等)维持必要的在线时间。

手游为代表的体力流,就是强化了副本cd的概念,为了避免在线练功时长过长还有扫荡之类的概念。社交之类主打论坛Q群微博B站的线下PVP。

从你的描述,给我的感觉还是远古挂机流的变种,强调在线时长。

作者: sulryn    时间: 2024-7-11 10:51 AM
jarlyyn 发表于 2024-7-11 10:45 AM
mud游戏由于画质和操作受限,本质只能玩体验感。
体验感本质是 世界观 和 价值观 的混合。

额,心相是抄的最近刚出的武侠游戏活侠传,
而且我不大在意别人上不上我的游戏,做着自己玩的
作者: jarlyyn    时间: 2024-7-11 10:56 AM
sulryn 发表于 2024-7-11 10:51 AM
额,心相是抄的最近刚出的武侠游戏活侠传,
而且我不大在意别人上不上我的游戏,做着自己玩的 ...

做着自己玩的东西才最需要认真啊。

单机游戏和网游的思路不太一样。
作者: sulryn    时间: 2024-7-11 10:57 AM
jarlyyn 发表于 2024-7-11 10:56 AM
做着自己玩的东西才最需要认真啊。

单机游戏和网游的思路不太一样。

其实我更想是做个框架放我写的世界观设定,游戏性是次要的,只是我想先做成个可玩框架
作者: sulryn    时间: 2024-7-11 12:33 PM
[attach]22213[/attach]
[attach]22214[/attach]
[attach]22215[/attach]
早上搞好了箱子系统。
作者: sulryn    时间: 2024-7-11 10:08 PM
[attach]22217[/attach]
[attach]22216[/attach]
商人系统之购买物品,看起来很麻烦但是代入感很强啊!!!
作者: sulryn    时间: 2024-7-14 06:15 PM
[attach]22221[/attach]
[attach]22222[/attach]

练功系统,还得加看书和拜师,准备在速度和心相减少速度上做差分
作者: sulryn    时间: 2024-7-23 01:11 PM
[attach]22259[/attach]

做了简单的尸体系统和loot尸体
loot指令直接搜房间里能loot的东西,避免了get的麻烦
而且为了避免产生垃圾,物品是在loot的时候,实时生成移到玩家背包里的,loot之前不存在
作者: sulryn    时间: 2024-7-26 09:22 PM
[attach]22303[/attach]
调整好了框架里带的制作系统,
加了检定和HQ系统,检定成功以后roll个1d20看是否HQ,
看相关的制作书可以提升HQ几率

作者: sulryn    时间: 2024-7-30 10:07 PM
[attach]22326[/attach]
开始写第一个门派的地图
作者: sulryn    时间: 2024-8-5 04:32 PM
[attach]22355[/attach]
随机地城框架雏形
作者: jarlyyn    时间: 2024-8-5 04:34 PM
sulryn 发表于 2024-8-5 04:32 PM
随机地城框架雏形

不建议随机迷宫。

这个是事实上被证明失败的设计。

甚至在大部分游戏迷宫这个工具已经被淘汰了。

个人感觉不如少量房间加大量随机事件。
作者: sulryn    时间: 2024-8-5 04:38 PM
jarlyyn 发表于 2024-8-5 04:34 PM
不建议随机迷宫。

这个是事实上被证明失败的设计。

只是其中一个玩法,不是北侠里那种迷宫,这个是有终点的,房间每走一步才会创建,比较线性
作者: sulryn    时间: 2024-8-5 04:43 PM
jarlyyn 发表于 2024-8-5 04:34 PM
不建议随机迷宫。

这个是事实上被证明失败的设计。

然后这个主要是,教程里有现成的代码和思路,所以拿来先垫一下战斗内容,全游戏只会有这一个随机地城
作者: jarlyyn    时间: 2024-8-5 04:45 PM
sulryn 发表于 2024-8-5 04:43 PM
然后这个主要是,教程里有现成的代码和思路,所以拿来先垫一下战斗内容,全游戏只会有这一个随机地城 ...

最好当随机地形用。

你看口袋妖怪都放弃迷宫玩法了。
作者: sulryn    时间: 2024-8-5 04:47 PM
jarlyyn 发表于 2024-8-5 04:45 PM
最好当随机地形用。

你看口袋妖怪都放弃迷宫玩法了。

迷宫探索比较符合我所用规则复古RPG的定位,还是要有的
作者: jarlyyn    时间: 2024-8-5 04:48 PM
本帖最后由 jarlyyn 于 2024-8-5 10:37 PM 编辑
sulryn 发表于 2024-8-5 04:47 PM
迷宫探索比较符合我所用规则复古RPG的定位,还是要有的

好吧,复古的确是另一回事。
作者: sulryn    时间: 2024-8-6 05:41 PM
今天开始写炎山派的基本门派任务,刚刚构思了一下随机事件脚本,弄个全局脚本,每隔一分钟搜有随机事件分类标签的object,然后按标签是什么随机出来某个事件
作者: jarlyyn    时间: 2024-8-6 05:47 PM
sulryn 发表于 2024-8-6 05:41 PM
今天开始写炎山派的基本门派任务,刚刚构思了一下随机事件脚本,弄个全局脚本,每隔一分钟搜有随机事件分类 ...

全局搜索不靠谱吧?

理论上我觉得应该注册一个event,需要检测的挂载上去。

至于随机事件这种我更倾向于伪随机。就是创建时已经确定的,而不是每次扫描随机检测。
作者: sulryn    时间: 2024-8-6 05:55 PM
jarlyyn 发表于 2024-8-6 05:47 PM
全局搜索不靠谱吧?

理论上我觉得应该注册一个event,需要检测的挂载上去。

框架里没有类似我接触过的Mudlet那种Event系统。Tags文档里说是比较高效的找到对应object的系统
作者: bkingdom    时间: 2024-8-6 06:02 PM
最好多线程,从根本上解决卡


作者: jarlyyn    时间: 2024-8-6 06:03 PM
sulryn 发表于 2024-8-6 05:55 PM
框架里没有类似我接触过的Mudlet那种Event系统。Tags文档里说是比较高效的找到对应object的系统 ...

event自己做一个,很容易的
作者: sulryn    时间: 2024-8-6 06:07 PM
jarlyyn 发表于 2024-8-6 06:03 PM
event自己做一个,很容易的

不想做这种,感觉不需要,用tag搜应该够用,我组队系统也是用的这个
作者: sulryn    时间: 2024-8-6 09:58 PM
[attach]22360[/attach]
[attach]22362[/attach]
[attach]22361[/attach]
[attach]22363[/attach]

试着做了第一个杂活类任务
作者: jarlyyn    时间: 2024-8-6 10:08 PM
sulryn 发表于 2024-8-6 09:58 PM
试着做了第一个杂活类任务

为啥npc叫 怕了死?

武当玄武?
作者: sulryn    时间: 2024-8-6 10:09 PM
jarlyyn 发表于 2024-8-6 10:08 PM
为啥npc叫 怕了死?

武当玄武?

https://www.fantasynamegenerators.com/ancient-greek-names.php
我随便随出来的音译了一下!
作者: sulryn    时间: 2024-8-8 10:06 PM
今天搞定了一种任务用的Object,然后随机事件的脚本写了一下
最后还是选择给有事件的房间一个单独Typeclass然后用search_typeclass()来一次搜出所有带事件的房间
作者: sulryn    时间: 2024-8-14 06:37 AM
粗看了几个其他MUD以后决定采用的野外地图系统。
[attach]22414[/attach]
作者: sulryn    时间: 2024-8-14 08:39 AM
[attach]22415[/attach]
往城市名字上移动进入城市




欢迎光临 北大侠客行MUD论坛 (https://www.pkuxkx.net/forum/) Powered by Discuz! X3.4