找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

星露谷模组制作学习帖(想到啥说啥)

星露谷游戏的mod的开发流派可以简单粗暴的分为两个大类即smapi类和cp类   虽然cp也建立在smapi之上的 但从开发者的角度是感受不到smapi的存在的 所以特此将其单独列为一个流派
该游戏的开发语言为c♯ 其mod的开发语言自然为c♯ 需要有相关语言的开发经验为最佳 但Java C++等也可以类比
回复

使用道具 举报

大神点评(14)

123 楼主 9 小时前 显示全部楼层
首先说说新手更容易接触的cp类mod   对mod文件有关相关了解的朋友的一定知道 所谓cp类mod就是通过一个json文件对原版游戏资源的替换 修改 添加   通过观察其他cp类mod并总结规律 我们就可以简单的制作一个属于自己的cp类mod
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
当然这并不是说cp类mod就完全不用懂代码了  我们可以不会写代码   但想要做一个优秀的mod  一定要会读代码
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
星露谷模组制作学习帖(想到啥说啥)-1.png 对计算机有过了解的小伙伴一定知道 对于用户层的软件 就是一个一个实体组成的 而实体之间的交互 编辑 变化 需要通过接口实现 而星露谷这个游戏所谓的实体也就是游戏的数据 全部放在游戏根目录下的content目录下   而游戏接口 也就游戏运行所用到函数或者方法全部都在 stardew valley.dll这个文件下
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
我们既然要做一个优秀的游戏mod  首先要了解的是游戏本体是怎么运行的
星露谷模组制作学习帖(想到啥说啥)-1.png   就要把实体和接口两份数据都掌握在手中随时查阅  而我上一楼提到的都是不能直接打开的  那么我们要怎么提取这样的文件呢
回复 支持 反对

使用道具 举报

星露谷模组制作学习帖(想到啥说啥)-1.png
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
我们需要三个工具 一个叫inspy 一个叫stardewxnbhack 均通过github下载  另一个叫vs code  通过微软官网下载  首先inspy是用来解压(反编译,这里我通俗地讲为解压)“stardew valley.dll”这个文件的  把dll用inspy启动  将获得的代码保存到本地用vscode查阅   而stardewxnbhack把解压获得exe文件放到游戏根目录下并运行就可以获得一个文件夹叫“content(back)”里面包含了全部解压后的xnb文件
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
星露谷模组制作学习帖(想到啥说啥)-1.png 如果只想做一个cp类mod  我们就不用了解什么叫.net  什么叫harmony   甚至c#的语法都不用学  只要有一点点c++或者java的经验就可以看懂游戏的代码啦
星露谷模组制作学习帖(想到啥说啥)-2.png
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
星露谷模组制作学习帖(想到啥说啥)-1.png 我们用vscode打开我们上一楼提到的解压过的的游戏代码的根目录  就可以愉快的查阅游戏的代码了
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
通过简单的翻阅代码  我们可以了解到  游戏所有与数据有关的定义都在名为gamedata的一个类下面  如果我们只做cp类代码  我们就可以只看gamedata下面的代码  但是gamedata类下面的成员有些类型或者方法的参数类型可能用到其他部分的代码  这里我们稍后再说
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
今天先到这里  由于手里没有电脑只能想到啥说啥   对于刚入门或者有想做mod想法的朋友可以向我提问 (太难的就算了)
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
这里插一个题外话 为什么我们做cp类mod也要会读代码? 因为我们要做一个有自己风格的cp类mod 就一定要知道cp文件里的每一个字段代表什么 它的格式是什么 这些信息当然可以通过阅读他人的mod或者游戏本体的文件获取 当然由于游戏没有提供有关mod开发的api文档 想要知道每个字段的通用格式并灵活高效地制作属于自己的mod 不说写代码 阅读代码的能力是必不可少的
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
想要高效地阅读游戏代码  就要善用vscode的搜索功能
回复 支持 反对

使用道具 举报

123 楼主 9 小时前 显示全部楼层
打个比方 我想知道游戏中的鱼塘是怎么定义的   我就可以搜索鱼塘的英文fishpond  那万一游戏里鱼塘的英文不叫fishpond的呢?
星露谷模组制作学习帖(想到啥说啥)-1.png    有些人说可以把游戏切换成英文然后f1查看   这里我提供一个普通玩家高效获取游戏中每一样物品的英文的方法   直接星露谷wiki搜中文然后左下角切换成英文就行了
  对于mod开发者  你都有代码了  直接在代码里搜中文  然后中文前面把末尾的name去掉就是英文了   然后搜鱼塘的英文fishpond就可以发现鱼塘的定义类叫gamedata.fishponddata
回复 支持 反对

使用道具 举报

好贴
星露谷模组制作学习帖(想到啥说啥)-1.png
回复 支持 反对

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐