YGOPRO组建和打包发布

YGOPRO组建和打包发布

注:建议在Windows 10系统上进行,否则需要相应地改变做法。


一、介绍YGOPRO

1. 圆神的发布介绍

首先介绍下此项目项目地址:http://code.google.com/p/ygocore/,以MIT协议开源。在download页面可找到相关资源的下载。此项目实现了一个游戏王的效果的自动处理引擎,目标是以自动化的方式实现99%以上的卡的效果,并且能很方便做新卡的效果。目前引擎部分基本完成,理论上除了一些bug卡和效果特别奇葩的卡之外都可以处理了。另外,最新的规则(包括超量,以及新的优先权规则)也已经包含在内。

此项目使用lua作为脚本语言来完成卡的自动处理。目前已完成771张卡的脚本(不断更新中),包含了大部分主流用卡。其实本打算是等全部完成之后再公布的,但是由于一个人力量有限,进展缓慢,遂在此公开招募帮手,希望有懂编程的朋友能来帮忙一起完成剩余的卡的脚本,同时也希望不懂编程的朋友也能对其进行测试。如果有朋友对此引擎感兴趣想自己开发对战工具的我可以提供技术支持。

另外此项目自带了一个联机对战工具,是项目过程中的一个副产物。


此对战工具的操作方式基本上是仿TF的,目前只实现了基本的对战功能,具有基本的动画效果。目前对战功能已基本完善,我也无意再继续扩展其功能,主要的重心在于补完卡片脚本。当然如果有朋友对此对战工具感兴趣想继续开发,我也可以提供源代码。

2. 主要需要用到的GitHub上的repository地址

https://github.com/Fluorohydride/ygopro

A script engine for "yu-gi-oh!" and sample gui

客户端。


https://github.com/Fluorohydride/ygopro-core

ygopro script engine.

脚本处理。

https://github.com/Fluorohydride/ygopro-scripts

scripts of official cards for ygopro.

官方的OCGTCGKCG的卡片的脚本实现。

https://github.com/moecube/ygopro-database

Some databases of ygopro

They are for now just for test.

卡片数据库,只有汉日英语言的版本。

https://github.com/zh99998/ygopro-images

卡图,只有汉日英语言的版本。

https://github.com/moecube/ygopro-starter-pack

残局,卡组。为新手准备的默认内容,基本无用。

二、介绍使用的工具

1. Visual Studio

Visual Studio是Microsoft的一款适合业余的人员使用的集成开发环境。功能强大且实用,集成了大量自动完成的功能,我使用的版本是当时最新的VS2017。没有必要使用盗版破解版等,正版就是免费的。

2. Git for Windows

优秀的版本控制工具,可以使用命令行模式进行远程GitHub的操作,也可以进行本地或者团队的版本控制。建议安装时采用默认的配置,当然安装位置不强求。

3. Premake

https://github.com/premake/premake-core/releases/download/v5.0.0-alpha12/premake-5.0.0-alpha12-windows.zip

Premake是一个命令行工具,用lua编写的工程定义文件,通常用它来生成不同平台的工程文件,例如Visual

Studio, Xcode, or GNU Make。——摘自CSDN,https://blog.csdn.net/greatchina01/article/details/52300933

4. DirectX SDK

ygopro需要使用的,如果不想用它实现,请参考后面mercury233的笔记的解决方案。

三、第三方库的准备

1. Irrlicht

http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.4.zip

2. libevent

https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

3. freetype

http://downloads.sourceforge.net/freetype/freetype-2.8.tar.bz2

4. sqlite3

https://www.sqlite.org/2017/sqlite-amalgamation-3200100.zip

5. lua

https://www.lua.org/ftp/lua-5.3.4.tar.gz

需要提前把这些库的源代码下载好,准备配置。值得注意的是,不要使用最新版本,而是应该以repository里的appveyor.yml持续集成脚本里使用的版本为准,就以上文中给出的为例,是写此文时【萌立方/moecube】使用的版本。

四、最新数据的获取

上文已经提到过。具体操作请参考appveyor.yml里怎么写的。

五、拉取源代码

以moecube为例,在合适的目录(E:/ygo/)

1. 拉取

git pull https://github.com/moecube/ygopro

2. 更新子模块

git submodule update --init --recursive

3. 当官方更新的时候,需要git pull来更新本地的源代码。


如上图。

六、配置和部署

1. 参考mercury233的笔记(选择之1,不要完全照搬,因为当时采用的许多库已经旧了)

参考mercury233的笔记:笔记:在Windows下编译YGOPro

其中msys命令行的问题:只要安装git时采用了MSYS2命令行就可以,具体再遇到问题可以参照相关文档和贴子解决。

2. 参考持续集成脚本(选择之2,照着最新的脚本操作,问题不大)

以本例来说,看https://github.com/moecube/ygopro/blob/master/appveyor.yml。

仍然需要注意MSYS的patch问题。

3. 根据自己电脑的情况,使用premake5生成visual studio解决方案。

上例而言,在配置好prekame5后在命令行输入

premake5 vs2017

会有警告提示,然后生成了build文件夹。其中有ygo.sln这个解决方案文件,用vs2017(上例而言)打开它。

七、编译

1. 打开解决方案文件,等待加载。


2. 可以自定义ICO文件,这样编译出来的YGOPRO是自定义的图标。


3. 设定release,win32。如果使用DirectX请确保安装时环境变量配置正确。


4. 右键ygopro项目,单击“生成”,等待编译结束。


如上图。

5. 如果出现报错,可能是由于配置不正确,版本不正确等因素导致的,根据实际情况解决。

6. 如果是第一次编译会花费时间较长,更新则可能会用时少一些。




八、打包发布

1. 把位于E:/ygo/ygopro/bin/Release/的ygopro.exe和事先准备的数据,卡图等移动到合适的目录,例如E:/ygo/ygopro_bin_10344/。

整理好后看起来应该是这样的,

.. -|- deck

|- expansions

|- pics

|- replay

|- single

|- script

|- texures

  (以上是文件夹)

|- cards.cdb

|- iflist.conf

|- string.conf

|- system.conf

|- ygopro.exe

2. 如果希望使用额外的功能,或者使用的是其他版本的YGOPRO,可以再加入另外准备好的sound,bot.conf, Bot.exe,Windbot等内容。


3. 使用WinRAR或者7z等压缩工具打包成7z格式。

九、后记

我也是从小白逐步成长起来的,所以希望写一下自己的经验能帮助有需要的人少走弯路吧。

希望自己的语言能够通俗

感谢曾经给予我帮助的mercury233(尸体233),nanahira(Koishi),原ygopro吧主(抱歉ID太长记不住了(lll¬ω¬)。。)等人的帮助。当然给我帮助的人也很多就不一一列举了,在这里一并表示谢意。

有人说,能否独自编译出ygopro是一个游戏王爱好者技术水平的一个门槛,但是我觉得光是能照搬代码,是不如读懂代码,或者会应用代码更好的。所以建议不要满足于仅仅会使用高度自动的工具层面,而是去理解它。

十、结语

个人看法,关键是团结,求同存异。

YGO同人软件一直不少,开发爱好者数量虽估计远远没有百万人这么多,但也是一个不小的“圈子”。

奈何这么小的圈子里总是存有矛盾和负能量,甚至在旁观者看来,这是甚为可笑可怜的。

简直丢人。



也许,我们是走得太远,而忘记了为什么出发。

也许,我们本来就是各自为了别的事情而来的吧。

第三次发布。--2018-7-12 22:40 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,960评论 3 119
  • 《小句》 情浅情深,暮汐朝潮, 冬雨清泉,妙石抄春, 愫花三表,为伊倾心, 历山遍水,消魂及骨, 秋杏夏荷,百年同...
    凰玄心阅读 130评论 0 0
  • 如今互联网普及到了几乎每家每户,当然作为学生的我们更是在其中投入了大量的时间精力,可谓将它的作为发挥到了...
    1475114lian阅读 328评论 0 0
  • 背景 本文写作时间:2017 年 3 月 30 日;GitHub 版本:V3; 一直在用前后端分离的方式开发,接口...
    onizuka_jp阅读 7,287评论 0 6
  • 2017年6月9日 咖啡冥想 我的近期目标是:财富种子(还清卡债5千) 所以我的咖啡冥想是一切和金钱有关,照顾他人...
    林小琬阅读 290评论 0 2