幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8026|回复: 10

[技术] 制作AGM输出插件的方法,第一集!

[复制链接]

32

主题

1187

帖子

44万

积分

⑧专业

大象摇啊摇

积分
441584
QQ
发表于 2010-6-26 23:20:21 | 显示全部楼层 |阅读模式
制作AGM输出插件的方法,第一集!

首先我要说一下制作输出插件的三个基本条件,不要到时候说做不出插件就来怪我啊!
1,了解.net(很简单,学个一年半载就行了,不需要精通,会用就行)。
2,必须要了解AGM的游戏数据结构,甚至是AGM的架构。
3,输出到的平台有一个支持AGM数据结构的游戏制作工具或者框架,并且能够转换数据。
这几点,一个人应该是很难做到的。
所以我不推荐新手甚至老手一个人去做插件,只有大触手才能一个人去做
孩子,还是找个专家一起搞吧……
ps:其实手游可以用这个做。

使用.net2.0制作类库(dll文件)。
新建一个类库工程。
引用一下4个类库:
System.Womdows.WinForm
System.Drawing
GameDataClassLibrary.dll
GameEnginePlugInLibrary.dll


类库中的类实现IPlugInInfo接口和IExportPlugIn接口,只有同时实现这两个接口才会被当做输出插件。(一个类库可以包含多个输出插件插件。)

要让插件起实际作用,还需要实现接口里所有的方法和属性
下面说以下方法和属性的用途:

string CreateExportForlderPath(string folderPath)
获取游戏输出的目录

ExportResult Export(string folderPath, ExportParam[] exportParams)
输出游戏的方法,在里面写转换游戏数据的代码,string folderPath是输出游戏的目录。
ExportParam[] exportParams是输出游戏用到的参数,关于如何使用参数,以后我会写教程,这次就不讲了。各位高手其实可以自己研究。

public Dictionary<Guid, string> PlugInNameDic
插件名的字典,固定格式。无需解释。
private Dictionary<Guid, string> _plugInNameDic;
public Dictionary<Guid, string> PlugInNameDic
{
        get{return _plugInNameDic;}
        set{_plugInNameDic = value;}
}


ProjectData ProjectData
游戏的数据全在里面。固定格式,和上面的一样。
也不需要关心如何将游戏数据填进去,都是AGM自动完成的。

SetupExportInfoControl SetupExportInfoControl
设置输出插件的控件,这次不说这个了,下次详细说说。
只读属性,固定格式,也和上面的一样,只是没有set{}。

Image Thumbnail
插件图标,可以自己制作一个图标放上去。
只读属性,固定格式,和上面一样,也没有set{}。

string Copyright
制作者的版权信息。

string Explanation
插件的说明。

Guid Id
插件的ID,不要和别人的插件用同样的ID啊……

string Name
插件的名字。

上面这些东西都弄好了,一个简单的输出插件也就完成了。
最后将生成的dll文件放入AGM的PlugIn文件夹中,重新运行AGM就可以了。  

我以后还会写如何制作带有配置的输出插件,忙了一夜写个这个,累了,休眠去了,各位晚安。
顺便说一声,禁止转载,谢谢。
饭粒下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
真実を知らぬ者にとって、闇は安寧ではなく…… 恐怖や邪悪という負の存在を想起させるのであろうな。
回复

使用道具 举报

135

主题

926

帖子

441

积分

管理员

少女人形

Rank: 9Rank: 9Rank: 9

积分
441
发表于 2010-6-27 00:00:11 | 显示全部楼层
要弄清AGM的数据结构不是一件容易的事,就连官方的XNA输出和FLASH输出都存在不少BUG
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2010-6-27 08:35:56 | 显示全部楼层
输出插件的话……到底是怎样的一个东西??
Style-C
回复 支持 反对

使用道具 举报

32

主题

1187

帖子

44万

积分

⑧专业

大象摇啊摇

积分
441584
QQ
 楼主| 发表于 2010-6-27 10:43:20 | 显示全部楼层

回 2楼(lw) 的帖子

就是你制作好游戏,将游戏输出到平台的插件。
现在AGM只有自带的3个输出插件,一个是输出成ACPlayer可以运行的(pc运行),一个是输出成flash(浏览器运行或者flash播放器),一个是输出xna(windows或者xbox可以运行)。
真実を知らぬ者にとって、闇は安寧ではなく…… 恐怖や邪悪という負の存在を想起させるのであろうな。
回复 支持 反对

使用道具 举报

27

主题

173

帖子

1780

积分

⑥精研

BZP社长

积分
1780
QQ
发表于 2010-6-27 11:25:25 | 显示全部楼层
其实我想搞个导入插件...
同人游戏 洛克人ZERO5
回复 支持 反对

使用道具 举报

1

主题

18

帖子

316

积分

④见习

积分
316
发表于 2010-6-30 15:04:50 | 显示全部楼层
这个好是好, 可就是太贵了 50币呀
回复 支持 反对

使用道具 举报

1

主题

18

帖子

316

积分

④见习

积分
316
发表于 2010-7-17 11:19:20 | 显示全部楼层
不知道有没有办法反编译AGM自带的输出插件后进行修改,  感觉目前AGM输出的exe也好, swf也好,执行效率比较低. 根据反编译的flash代码来看, 可以优化的空间还是很大的. 如果能够直接修改输出插件,就能提高输出文件的效率.

目前感觉AGM的前途很是堪忧, AGM的英文页面干脆就变成RPGMaker的英文官方首页了,IGMaker好像是顺带着介绍介绍。估计销售很惨淡,还不如继续卖RPGMaker算了。这样看来AGM不大容易等到大的更新比如2.0了。

如果能够修改已有插件或是自己扩展插件,那么AGM的生命力就可以延长了,很不希望看到一款不错的游戏制作工具因为销售不佳就这么消失了。
回复 支持 反对

使用道具 举报

11

主题

259

帖子

2267

积分

⑥精研

悲剧呀!

积分
2267
发表于 2010-7-17 11:57:56 | 显示全部楼层
引用第6楼igmagmi于2010-07-17 11:19发表的  :
不知道有没有办法反编译AGM自带的输出插件后进行修改,  感觉目前AGM输出的exe也好, swf也好,执行效率比较低. 根据反编译的flash代码来看, 可以优化的空间还是很大的. 如果能够直接修改输出插件,就能提高输出文件的效率.

目前感觉AGM的前途很是堪忧, AGM的英文页面干脆就变成RPGMaker的英文官方首页了,IGMaker好像是顺带着介绍介绍。估计销售很惨淡,还不如继续卖RPGMaker算了。这样看来AGM不大容易等到大的更新比如2.0了。

如果能够修改已有插件或是自己扩展插件,那么AGM的生命力就可以延长了,很不希望看到一款不错的游戏制作工具因为销售不佳就这么消失了。
.......
Indie Game Maker的页面在http://www.rpgmakerweb.com/product.html?prod=ig,我想这应该是EB打算把英文版tkool软件的官方网站整合到同一个站点里,并非对RM和IGM有区别对待。此前IGM的官网是在tkool.jp的域名下,现在改为和其它英文版tkool软件一起。
有关输出插件和模块的修改与自制,楼主说是可行的,而且也已经找到了入手的方法,不过有关游戏类型的插件还没有研究过。自制输出插件、自制ROM播放器和模块制作工具也已经在计划上了。
起初,神创造天地。奇点是空虚混沌,一切物理定律都还不适用。
回复 支持 反对

使用道具 举报

1

主题

18

帖子

316

积分

④见习

积分
316
发表于 2010-7-17 12:29:43 | 显示全部楼层
引用第7楼cheyenne于2010-07-17 11:57发表的  :
有关输出插件和模块的修改与自制,楼主说是可行的,而且也已经找到了入手的方法,不过有关游戏类型的插件还没有研究过。自制输出插件、自制ROM播放器和模块制作工具也已经在计划上了。
这可真是让人振奋的好消息。
不知道上面提到的 “输出插件和模块的修改与自制” 说的只是输出部分,还是说包括AGM编辑器本身的功能也可以修改和自制?(可能我想的太美了)最期待的功能就是让AGM支持基本的脚本编写和函数调用。看GameDataClassLibrary里的数据结构,感觉AGM已经对整个游戏流程/结构做了一定程度的抽象,利用它已有的设计结构实现简单脚本好像还是可行的,不过大概效率不是太高就是了。
另,关于“自制ROM播放器", 这是什么意思?相当于第三方的Player 吗?
回复 支持 反对

使用道具 举报

11

主题

259

帖子

2267

积分

⑥精研

悲剧呀!

积分
2267
发表于 2010-7-17 13:13:36 | 显示全部楼层
引用第8楼igmagmi于2010-07-17 12:29发表的  :

这可真是让人振奋的好消息。
不知道上面提到的 “输出插件和模块的修改与自制” 说的只是输出部分,还是说包括AGM编辑器本身的功能也可以修改和自制?(可能我想的太美了)最期待的功能就是让AGM支持基本的脚本编写和函数调用。看GameDataClassLibrary里的数据结构,感觉AGM已经对整个游戏流程/结构做了一定程度的抽象,利用它已有的设计结构实现简单脚本好像还是可行的,不过大概效率不是太高就是了。
另,关于“自制ROM播放器", 这是什么意思?相当于第三方的Player 吗?

.......
AGM的插件有两种,一种是输出插件,一种是和游戏类型相关的插件,包括ACT、ARPG、STG和DEMO,两种插件理论上都是可以自制的,不过后者还没有研究过。至于AGM本身我就不太清楚了……
AGM的原生ROM播放器是ACPlayer.exe,如果从输出插件入手,分析出ROM数据结构的话,应该是可以自制第三方Player的……

另外模块指的是Template文件夹里的gtd文件
起初,神创造天地。奇点是空虚混沌,一切物理定律都还不适用。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-28 19:44 , Processed in 0.025377 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表