《城市天际线》MOD制作教程.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《城市天际线》MOD制作教程

6399游戏网 以下是小编为大家带来城市天际线MOD制作教程。 一、首先是天际线的基本概念体系,以及AI在其中所起的作用。 游戏里有很多的建筑物、人、车等事物。这些东西都有自己的属性,比如位置在哪?颜色?是生老病死,还是3级5级?移动速度?等等,描述的是物体的客观状态。还有一类,就是这些事物的行为方式: 例如小人是去买东西,还是去上班?出门是坐公交还是自己开车?公交车下一站往哪开?建筑物是升级还是废弃?这些基本都是由各个物件自己决定的,那么这个决策部分,就称之为AI,用面向对象来说,就是行为/方法(method) 比如市民,市民是一个类,名字、男女、年龄、教育程度、健康状况、是否在开车等等,是属性。但是市民有几十万,每一个市民都有自己不同的属性,有几十万的对象,在内存里都要占用相应的位置,但是他们的AI是一致的,AI只有一个。修改了这个AI,所有市民的行为方式都会相应变化。 然后是天际线中跟AI相关的有如下常见类名后缀: AI、Manager、Info(当然还有很多与UI相关的,我就不再列举了,跟本文关系不大) AI毫无疑问就是AI类的了,CitizenAI就是市民AI(这里我简单化了,后面我会详细讲到,这个CitizenAI其实不是“居民AI”) Manager是所有相关对象引用的管理类,比如CitizenManager就是管理所有市民的管理器,无论是创建一个市民,还是查询所有生病的市民,都要通过这个管理器 Info是一类对象的“模板”。这里我用建筑物来解释。比如警察总局,就是一个BuildingInfo类的对象。里面定义了这个物件的名称叫“警察总局”,所有警察总局的属性,比如造价、维护费用、占地大小等等,都是在这里的,警察总局的AI,也是在这里有一个引用(AI是另外一个类)。不管你在游戏中建几个“警察总局”,这个BuildingInfo对象都会只有一个,但是不同位置的警察总局,会有多个不同的Building对象(其实是struct)来表达,比如具体的xz位置(y在天际线里是高度轴),或者你给他改名叫“天下第一警察总局”,那么名字也是存在这里的。 接着,是跟AI相关的横向概念。 天际线里AI总共分4类:建筑物(Building)、车辆(Vehicle)、市民(Citizen)、路网(Net)。 每类都会有一个上述英文名称的struct来表达数据, 以及配套的前述3个类(AI、Manager、Info),和众多的相关衍生类。 当然这也只是一个最基本的分类,最深的继承关系可达7层,由于此图是在是太大,所以我在下图仅以市民AI举例说明: INCLUDEPICTURE \d /uploads/pictures/2016/03/0-N1mB1l.png \* MERGEFORMATINET  在天际线中,CitizenAI其实应该翻译成是“生物AI”好点。它有2个子类:动物AI和人类AI。也就是说,你在游戏中看到的鸟啊,宠物狗啊什么的,其实都是算作是Citizen,都用Citizen这个struct来存储数据的,占用那104万上限。动物AI就不说了。人类AI中又分为服务人员AI(就是消防队那个灭 HYPERLINK /games/fire/ \t _blank 火的小人、灵车抬尸体的小人等)、旅游者AI和居民AI。这里最多的就是居民了,104万的上限,我看有人达到了101万。 那么,这所有的104万的Citizen,全部都是由CitizenManager来管理的。CitizenManager中有创建市民的方法,销毁的方法,查询的方法等。当前市民数量、Citizen集合的引用等信息,都是这个类的变量,市民的总数上限啊、市民出行开车的概率啊、生孩子的概率啊、成为gay的概率啊等等常量,也都在这里。这个CitizenManager是单例的,你不能显式的去创建这个对象,调用单例的方法后面的代码里有。 另外还要提一句,市民上限是100万多点,但是不代表所有的市民都会被显卡“画出来”,只有被实例化(Instance)的市民,才会交给frame,去具体的在界面上画出来。Instance的上限,我记得是65000+,所以大家不用担心人多了显卡“画”不动 二、基本API解读 官方给出了一个基本的API文档。但是。。真的是太基本了,基本什么也做不了。但是给的这些API又确实非常基础,无论你做什么MOD,这几个API还确实是很常用的。所以还是要大体上说一下的。 1、IUserMod 最简单,最常用的interface,没有之一。就是定义MOD的名称和描述。基本没其他作用。 代码: using ICities; namespace SuperBigTransport { public class Mod : IUserMod { public

文档评论(0)

aicencen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档