YGOPRO组建和打包发布

YGOPRO组建和打包发布

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


一、介绍YGOPRO

1. 圆神的发布介绍

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

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

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


YGOPRO组建和打包发布_第1张图片

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

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

https://github.com/Fluorohydride/ygopro

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

客户端。


YGOPRO组建和打包发布_第2张图片

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来更新本地的源代码。


YGOPRO组建和打包发布_第3张图片

如上图。

六、配置和部署

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项目,单击“生成”,等待编译结束。


YGOPRO组建和打包发布_第4张图片

如上图。

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

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


YGOPRO组建和打包发布_第5张图片



八、打包发布

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等内容。


YGOPRO组建和打包发布_第6张图片

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

九、后记

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

希望自己的语言能够通俗

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

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

十、结语

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

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

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

简直丢人。



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

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

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

你可能感兴趣的:(YGOPRO组建和打包发布)