作者m9731526 (#3371)
看板GameDesign
标题[程式] 请教 RPG 的基础问题:items
时间Fri Mar 25 23:11:55 2016
目前在试着Unity+C#做一个2D RPG,
系统原型参照Elona,精神参照照Mabinogi。
才刚开始而已,想请教各位,
一般都是怎麽写物品这种大量项目的?
Item
- Consumable
-- Potion
-- Throwable
- Equipment
- Tool
这样子逐级继承类别的方式,应该没什麽问题?
但是如果要逐一为每个物品写 class 感觉效率不佳……
我是在想制作一个方法专门读 物品设定清单 文字档的方法(只供开发使用)去读跟pars
e字串来将所有物品编入一个放在ItemManager这个class里的List<Item>,然後将ItemMan
ager序列化存为二进位档,每次启动游戏载入这个档案,这样的做法OK吗?
另外,如果能分享一些 RPG 的经验谈或相关建议就更好了,感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.8.2
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1458918717.A.F9B.html
※ 编辑: m9731526 (42.72.8.2), 03/25/2016 23:18:16
1F:推 wix3000: 虽然看不太懂 但我自己的方式是用装饰模式生成物品实例03/25 23:32
查了一下装饰模式,学到东西了,谢谢
举例来说
我编一个items.txt
内容是一行一个 物品名称/耐久/品质
在程式内做一个方法来读 items.txt 为每个物品生成物件後存成二进位档案(实际的物
品资料库)
相当於一个迷你开发工具?这样子我就可以快速地用文字档编写总数庞大的所有物品
不太清楚怎麽表达
呃我的问题其实是大家一般都怎麽做比较好?
当然有其他设计模式、资料结构等能教我也非常感谢
※ 编辑: m9731526 (42.72.8.2), 03/26/2016 00:16:20
2F:推 ddavid: 试试版上有大大分享过的组件式架构03/26 00:12
3F:→ ddavid: 版上keyword:组件式03/26 00:12
感谢,了解中
※ 编辑: m9731526 (42.72.8.2), 03/26/2016 00:17:59
4F:推 wix3000: 那我感觉你也可以把物品生成UNITY的脚本物件 03/26 01:48
5F:→ wix3000: 这样好管理、直观、而且可以直接对其他组件序列化03/26 01:48
生成Unity的脚本物件?
是指每个物品一个script吗?
不太懂
6F:推 KanoLoa: 推组件式。道具功能method种类做好,用script设定道具属03/26 01:48
7F:→ wix3000: 当然缺点就是当你要大改物品系统时会很辛苦03/26 01:49
8F:→ KanoLoa: 性会比较管理。纯文字到後面动态实测的时候有够不方便03/26 01:49
9F:→ KanoLoa: 阿 刚好一起推文 不好意思03/26 01:50
※本来不方便看影片
现在看过影片大概了解了
先试试看组件式
※ 编辑: m9731526 (42.73.133.232), 03/26/2016 09:48:50
※ 编辑: m9731526 (42.73.133.232), 03/26/2016 09:50:10
10F:推 wix3000: 关於我说的你可以查一下 scriptableobject 看看 03/26 10:17
11F:推 ronin728: 能用JSON之类的脚本,存物品资讯与行为函数名称03/26 10:55
※ 编辑: m9731526 (114.136.4.228), 03/26/2016 11:49:58
12F:推 jasonlu00: ScriptableObject比较快,在editor里面也比较容易修改03/26 13:42
13F:推 ddavid: Unity就是写好的组件式架构了 03/26 18:41
14F:推 wix3000: ScriptableObject真的是个坑,一玩就停不下来了 XDD 03/26 21:31
我现在大概的做法是
一个Entity:Monobehavuour来嵌在画面上的实体上(所有地图上的物件)
再在这个Entity内建一个List<Components>来管理我自己写的物品系统、生命值、Buff、
技能之类的组件
请问各位觉得这样子,会有什麽问题吗?
※ 编辑: m9731526 (42.73.123.9), 03/27/2016 13:52:44
※ 编辑: m9731526 (42.73.123.9), 03/27/2016 13:54:31