社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 道具中心
主题 : 制作AGM输出插件的方法,第一集!
chaochao 离线
级别: ⑥精研
显示用户信息 
0  发表于: 2010-06-26   
来源于 技术 分类

制作AGM输出插件的方法,第一集!

管理提醒: 本帖被 hiyori 执行加亮操作(2010-06-27)
制作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就可以了。 

我以后还会写如何制作带有配置的输出插件,忙了一夜写个这个,累了,休眠去了,各位晚安。
顺便说一声,禁止转载,谢谢。
饭粒下载: MyPlugins.rar (14 K) 下载次数:2 售价:50积分

[ 此帖被chaochao在2010-06-26 23:41重新编辑 ]
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

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


hiyori 离线
级别: 管理员
显示用户信息 
1  发表于: 2010-06-27   
要弄清AGM的数据结构不是一件容易的事,就连官方的XNA输出和FLASH输出都存在不少BUG
lw 离线
级别: 分版主
显示用户信息 
2  发表于: 2010-06-27   
输出插件的话……到底是怎样的一个东西??
Style-C
chaochao 离线
级别: ⑥精研
显示用户信息 
3  发表于: 2010-06-27   
回 2楼(lw) 的帖子
就是你制作好游戏,将游戏输出到平台的插件。
现在AGM只有自带的3个输出插件,一个是输出成ACPlayer可以运行的(pc运行),一个是输出成flash(浏览器运行或者flash播放器),一个是输出xna(windows或者xbox可以运行)。
真実を知らぬ者にとって、闇は安寧ではなく……
恐怖や邪悪という負の存在を想起させるのであろうな。


q5563961 离线
级别: ③业余
显示用户信息 
4  发表于: 2010-06-27   
其实我想搞个导入插件...
同人游戏 洛克人ZERO5
igmagmi 离线
级别: ②入门
显示用户信息 
5  发表于: 2010-06-30   
这个好是好, 可就是太贵了 :) 50币呀
igmagmi 离线
级别: ②入门
显示用户信息 
6  发表于: 2010-07-17   
不知道有没有办法反编译AGM自带的输出插件后进行修改,  感觉目前AGM输出的exe也好, swf也好,执行效率比较低. 根据反编译的flash代码来看, 可以优化的空间还是很大的. 如果能够直接修改输出插件,就能提高输出文件的效率.

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

如果能够修改已有插件或是自己扩展插件,那么AGM的生命力就可以延长了,很不希望看到一款不错的游戏制作工具因为销售不佳就这么消失了。
cheyenne 离线
级别: ③业余
显示用户信息 
7  发表于: 2010-07-17   
引用
引用第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播放器和模块制作工具也已经在计划上了。
起初,神创造天地。奇点是空虚混沌,一切物理定律都还不适用。
igmagmi 离线
级别: ②入门
显示用户信息 
8  发表于: 2010-07-17   
引用
引用第7楼cheyenne于2010-07-17 11:57发表的  :
有关输出插件和模块的修改与自制,楼主说是可行的,而且也已经找到了入手的方法,不过有关游戏类型的插件还没有研究过。自制输出插件、自制ROM播放器和模块制作工具也已经在计划上了。

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

cheyenne 离线
级别: ③业余
显示用户信息 
9  发表于: 2010-07-17   
引用
引用第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文件
起初,神创造天地。奇点是空虚混沌,一切物理定律都还不适用。
描述
快速回复

认证码:

验证问题:
22-5=?,答案:17 正确答案:17
按"Ctrl+Enter"直接提交