平时开发时的工作的话之主要负责写代码就行了,什么发布项目啊,好吧不是我们干的事。在我们的了解中打包发布项目应该不是一个困难的问题。
对,最简单的方法就行使用直接使用maven插件打包,甚至我们都不需要知道他是怎么实现的,插件能帮我们将项目打包为一个jar包,然后使用java -jar xx.jar就能运行我们的项目。
我们平时使用的在开发中使用的是开发或测试的数据库,和生产上面的一般是隔离的,意味着打包的时候需要激活生产的配置文件,但是我们不一定有访问生产库的权限,此时我们直接打包就会出现问题。当我们直接点击上面的package的时候他会激活单元测试,需要测试通过以后才能打包,但是很显然测是不能通过的,因为我激活了生产的配置但是我并没有访问上产库的权限,此时就会陷入一直打包却打不完的感觉,这就需要我们打包时跳过测试。那怎么跳过测试呢?
为什么打包时要执行单元测试呢?【这不是我们的重点,那我们就简单讲讲,需要深入了解的自行查阅相关资料。】此时就涉及到 Maven 的生命周期,在 Maven 的 default 生命周期有 23 个阶段,每个生命周期中的后面的阶段会依赖于前面的阶段,当执行某个阶段的时候,会先执行其前面的阶段。
在 default 生命周期中 package 阶段不是第一个阶段,因此也需要依赖于前面的阶段的执行,正好 test 阶段【测试:使用合适的单元测试框架运行测试(Juint是其中之一)。】就是其前面阶段之一,此时就会必须先通过 test 阶段才会到 package 阶段【 打包:将编译后的代码打包成可分发格式的文件,比如JAR、WAR…】。
我们因为没有访问生产库的权限,此时连 test 阶段都不能通过,那就不会到达 package 这个阶段。那有什么解决方法呢?下面我们探讨一下此问题的解决方法:
1、命令行方式跳过测试我们可以通过使用命令将项目打包,添加跳过测试的命令就可以了,可以用两种命令来跳过测试:
mvn package -DskipTests=true-DskipTests=true,不执行测试用例,但编译测试用例类生成相应的class文件至 target/test-classes 下。
mvn package -Dmaven.testp=true-Dmaven.testp=true,不执行测试用例,也不编译测试用例类。
在使用 mvn package 进行编译、打包时,Maven会执行 src/test/java 中的 JUnit 测试用例,有时为了跳过测试,会使用参数 -DskipTests=true 和 -Dmaven.testp=true,这两个参数的主要区别是:
使用 -Dmaven.testp=true,不但跳过单元测试的运行,也跳过测试代码的编译;使用 -DskipTests=true 跳过单元测试,但是会继续编译。2、pom.xml中配置跳过测试可以在 pom.xml 中添加如下配置来跳过测试:
<build> <plugins> <!-- maven 打包时跳过测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins></build>3、直接配置
Maven命令栏的工具栏有下图中的图标,这个图标就是 Skip Tests。点击选中,再用 LifeStyle 中的打包就会跳过测试。
注:因为我的IDEA是2022的版本,图标可能和以前的版本有些许区别,以前的版本应该是一个蓝色的圆圈里面带一个闪电。
4、添加Maven配置参数打开配置,找到 Build,Exxcution,Deployment –> Maven Tools –> Maven –> Runner,在 VM option 中添加 -Dmaven.testp=true 或者 -DskipTests=true,就能在打包是跳过测试。
5、通过更改设置打开配置,找到 Build,Exxcution,Deployment –> Maven Tools –> Maven –> Runner,在 Properties 中勾选 Skip Test 选项。
以上就是我查阅资料之后找到是几种打包跳过测试的方式。
来源:blog.csdn/swerfse/article/details/127414040
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:sampoonpoon
本人文采不太好,这流水账纯属于记录个人编译的操作,大神请别喷
最近组了黑裙,玩着docker的时候突然想到,ubuntu不也是可以在docker上运行吗?为什么之前编译固件的教程都教我们在WSL或者虚拟机ubuntu里面进行呢?docker的运行效率比虚拟机高多了,又不用繁琐设置,那么就来试试,反正搞坏了直接删除容器就好,对宿主机没有任何影响。
搜索了一圈,居然没有太多使用docker乌班图编译的教程,既然这样,我就自己摸索一下吧,最后我把编译好的容器commit成了镜像,本人重试了五次,确认没有问题了,如果还有问题,欢迎交流。
由于这个镜像是已经进行了首次编译后的形成的,所以已经包含了环境和依赖,小伙伴不用担心编译会出错,这里编译过程用的是绕过模式,不用全局,毕竟需要的东西大部分都已经在镜像里面了。
这里是hub的连接sampoon/ubuntu - Docker Image | Docker Hub,直接复制里面的一条条命令都putty或者fianlshell等终端即可,下面我演示一下。
因为包含了首次编译的环境和依赖,镜像较大,使用nohup &进行后台下载
nohup docker pull sampoon/ubuntu:openwrt_sampoon &
大概40分钟可以完成,喝杯咖啡回来看看,我们镜像已经在等待我们操作了,省去了首次编译的不确定性和大把时间
docker images
docker image ls查看镜像
后面就是复制粘贴hub上面的命令了,
包括创建容器,进入ubuntu,使用普通用户更新代码,一直到make menuconfig这个熟悉到不能再熟悉的命令
docker run -dit --name ubuntu sampoon/ubuntu:openwrt_sampoon
docker exec -it ubuntu /bin/bash
apt-get install sudo
sudo sh -c "apt update && apt upgrade -y"
su sampoon
cd /home/sampoon/lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
rm -rf ./tmp && rm -rf nfig
make menuconfig
挑选luci-app我就不多介绍了,反正需要的都有,也不用vim修改feeds,按需索取哦,否则冲突了也不保证的。
然后就是下载和编译,下载的命令可以多执行几次
make -j4 download V=s
make -j$(($(nproc) + 1)) V=s
由于是二次编译了,可以全速进行了,不用单核慢慢来,测下来是大概1小时完成,我是i3-8100四核。最后从容器退出来
exit
exit
使用docker复制出乌班图里面的文件夹即可,记得按照要求现在群晖新建一个文件夹,复制好路径更换到命令里头。
docker cp ubuntu:/home/sampoon/lede/bin/targets /path_to_your_file
黑裙文件夹路径,复制更换到最后的复制命令
至此就完成了编译了,第一次包含下载镜像大概需要2小时,后面就是1小时了,有新协议出来的,可以尝试更新下,现在基本都支持了的。
作者声明本文无利益相关,欢迎值友理流,和谐讨论~
对于大多数人来说,开放世界似乎是大团队或者3A工作室才能做的品类,比如《塞尔达传说:荒野之息》、《上古卷轴5天际》、《GTA 5》、《荒野大镖客2》等都是顶级大作。
不过,这不意味着开放世界就是中小团队的禁区,比如海外独立开发者Adam Robinson-Yu就在2019年发布了一款开放世界游戏《A Short Hike》,而且只用了数月的时间研发,在此前的GDC演讲中,他对整个项目做了详细复盘,其中一些做法可能是对同行非常有用的。
以下是GameLook听译的演讲内容:
我是Adam Robinson-Yu,做了一款游戏叫做《A Short Hike》,首先感谢项目研发过程中所有帮过我的人,还有帮忙测试的人,感谢你们的贡献。
它一款远足旅行主题的游戏,你扮演一只访问海岛的鸟,你要在岛上爬山、探索、收集物品、找到其他远足者。
这是岛屿的整个地图,它是开放世界的,但并不是那么大的世界。
这次复盘中,我主要会谈到做游戏的目的,我是怎么开始做研发的、如何在截止日期前完成,还有在研发时学到的关卡设计经验、写作经验以及营销方面的心得等,基本上是整个项目的复盘。
一个原创故事
我想首先有必要说说自己是怎么走到游戏研发这一步的,我觉得做一款游戏最难的部分就是,是否决定要开始研发。
2017年的时候我做了一个令人质疑的决定,那就是放弃软件工程师的工作并搬回到多伦多,我想要全职研发一款简短的独立游戏。在此之前,我做过的所有游戏都是非常小的免费Itch.io游戏,但我觉得这是我自己做一款大游戏的机会。
一年之后,我想做一款野心很大的游戏,它是大型RPG、有很多的角色、地点和战斗机制,然而我对整个目标并不清楚,以至于一年之后我还有很多东西不确定。我发现这款游戏可能需要做很多年,于是觉得很有压力、很沮丧,可能永远都做不完,然而,这个项目却是我志在必得的,因为它是我的第一次尝试。
但在2018年11月的时候,我决定给自己一个短暂的休息,给自己买了份圣诞礼物,然后为一个小游戏做创意原型,用Unity完成研发,然后把自己认为有趣的东西都放进去。
随后,我还在社交媒体公布了自己的创意原型想法。
当时,这对我来说是一个很艰难的选择。由于个人的原因,我非常想做RPG项目,而且投入了一年多的时间,我觉得它给我打开了很多扇门,因此并不确定把它搁置去做一款远足主题小游戏的决定是否正确。
游戏研发是充满很多不确定性的,你很难知道一个项目该不该尝试,如果我只需要把项目做下去就能完成我的RPG大作呢?
但在2018年,我还在玩另外两款比较小的游戏,分别是《The Haunted Island》以及《Minit》,它们让我知道了一款短时间的游戏也可以成功。
所以我决定开始做远足旅行的小游戏,这对我来说是个很好的决定。我觉得做小项目有很多的益处,尤其是当你刚刚开始的时候。如果游戏不成功,你的风险更小;它不一定需要巨大的成功才能让你投入的时间值得,小的目标更容易实现;而且你可以更快地发布游戏,可以帮你学习很多东西,还可能带来一些收入。
确定游戏美术风格
我在《A Short Hike》项目中很早就开始做的一件事,就是确定游戏的美术风格。我是个没有名气的独立开发者,能够依赖的只有Twitter这样的社交媒体来吸引人们对我的游戏产生兴趣,所以我觉得画风很重要,因为你只有很短的时间来获得人们注意力。
对于独立开发者或者很小的团队来说,做出这样的画风很难让人们在游戏里投入时间。所以我考虑了自己在美术方面的局限性,比如我不会做很好看的手绘,建模也没做过多少,只能根据已有的技能试着把游戏做得有趣一些。
我在编程方面的经验更多,所以我把这个小世界渲染成了像素风。我觉得像素风很酷,它可以让我把游戏做的更大一些,可以避免做很多建模的工作,能用更短的时间做更多内容,虽然不够完美,但可以让玩家发挥足够的想象力寻找细节,同时能够知道我想要表达的东西。
为了在Unity里实现这种效果,世界着色器就是这个小小的RenderTexture,然后Unity里的另一个摄像头会看着这个Texture,用Point 滤镜模式把它放大。
我是通过GBCamera插件学到这个技巧的,如果对这个工具有兴趣可以关注一下。
很早的时候,我就在选择色彩,并且用它们来表达我想要的游戏氛围,我的做法很简单,那就是找加拿大秋季的照片,直接从这些照片找样本颜色,这些样本对我确定游戏调色板很有帮助。
但是,要在游戏里做得真实,它们有时候在不同的光照条件下会显得扭曲,所以我自己写了一个定制化的着色器,几乎可以让我控制每一个物体的阴影看起来是什么样子。总的来说,我的目标是让游戏里的颜色和阴影看起来是连贯自然的。
这是我做自定义光照的大致过程,最左侧是默认的ramp,然后做成了梯子一样的形状,最后的结果是把所有的阴影都更靠近白色,这样它们与真实颜色就会更接近。
而且,使用这种颜色风格,可以让我很快做出UV,通过把UV拆到调色板上,我在纹理上节省了大量时间。
而且这种方法实验起来也非常方便。
我想使用后期效果,为我的游戏增加更多的视觉表现力,你可以在Unity的标准免费资源库得到大量免费资源,还可以在不换掉大量的资源的情况下改变游戏的感觉和视觉效果。
如果没有任何特效,这是《A Short Hike》看起来的画面,这样远处的物体噪点比较多,让人很难注意到前面发生的事情。
所以,我首先做的就是给游戏增加一层雾,让玩家可以专注于画面前方发生的事情。
随后,我使用了边缘探测(edge detection)特效来选择背景的轮廓,这带来了很戏剧性的效果,这其实是偶然的,因为当时在尝试不同的滤镜。
如果你仔细看左侧,就会发现我最后加了颜色校正之后的差别,所以我增加了蓝色的阴影,让它看起来更真实。
如果你是小团队或者单枪匹马的开发者,这里或许有些东西是你可以考虑的:
发挥你的长处,尝试能够用到的工具,考虑美术风格对你的研发流程以及游戏大小的影响,你的局限性最后有可能会让你的游戏看起来很独特。
从创意原型到项目
上面大多数的工作都是在2018年12月完成的,考虑到我要做的是个小项目,我认为可以在三个月内把游戏做完发出来。
当我做创意原型的时候就做了份策划文档,把研发大致分为三个阶段,用三个月分别做alpha测试、beta测试和发行准备。
我觉得对我来说非常有效的是,我在脑海里有一个非常灵活度的目标,我把项目的核心目标定的很紧凑,完全可以在三个月的截止日期内完成。但是,还有很多功能是我想加入的,所以把它们当成了拓展目标。
理想情况下,即使扩展目标没有做出来,游戏本身也可以是好玩有趣的。
实际上大多数的拓展目标都没有在最初Humble商店发布的时候增加,但随后Steam版本做到了游戏里。
我还追踪自己的进度,使用简版的Scrum过程,每周都会检查进度,让我知道哪些事情是有很多时间可以做的,以及如何提前规划。当你自己工作的时候,做这样的规划并不容易,但我发现用这种方式追踪进度很有用。
另外,我给整个项目还设置了一个外部截止日期,以帮助我完成这个项目,我认为这种方式可以让你专注于完成某些事情,而不是把一件事做到完美。
走捷径
我很想在游戏里做尽可能多的东西,所以必须走一些捷径,比如之前提到的艺术风格让我节约了大量的美术资源创作时间。
但我还重新使用了以前项目当中使用过的知识、工具和资源。比如我使用了Yarn做对话系统,此前我在一个RPG小项目上也用过,还有很多工具与流程是之前试过的,所以用起来很快。
我还使用了Incontrol插件来支持手柄,它几乎可以一次性的自动支持大多数的手柄。
我用Cinemachine来快速建立动态摄像头系统,它让我在游戏里的不同区域创造了很多的虚拟摄像头。真实摄像头则可以跟随角色移动在不同区域之间变化。
我知道学习新工具是有代价的,但如果你对它们足够熟悉之后,长期来看是有益的,你可以在未来的项目中重新使用。
我还有自己的资源脚本,并且可以用于不同的游戏,只需要把他们放到每个游戏的资源库即可。
我还重新使用了之前RPG和其他游戏的资源。
游戏世界大多数是用Unity的默认地形工具完成的,在Unity里直接使用地形工具,让创意原型和关卡设计变的更容易。
Triplanar Shader也是很有用的,它可以自动给地形着色,这样你旋转时候不用重新渲染每一个表面。
我的地形着色器还使用了Unity默认的绘画工具,因此增加海滩和其他地形很容易。我不得不检查混合的代码以使用适合这个风格的形状,但这是必须做的改变。
另外,我还做了自定义工具,其实很简单,就是把角色快速移动到一个位置,然后在摄像头下预览或者以摄像头角度预览。
后来我还在游戏里给河流以及瀑布网格做了工具,这样就可以不用在每次改变地形的时候都要来回改动,这个工具节约了我大量时间,而且创作过程也很有趣。
做这些工具需要很多的时间,所以我的建议是,只在你的项目需要的时候才去做。
还有一个需要强调的是,当你创作了大量的资源之后,出现bug是不可避免的,我不知道这个情况是不是bug,但对于我来说,增加更多内容,比费尽心思去解决这个bug更重要。这些小bug是很多玩家注意不到的,而且你是个独立开发者或者小团队,有一些小问题是玩家可以原谅的。
接下来我想总结自己是怎么按时完成研发的,我把游戏研发分为不同的里程碑,并且不断更新每个里程碑完成的时间。你还要在规划目标的时候把不确定性考虑在内,可以使用之前的知识、工具和资源,在工作流程需要的时候创造一些工具,还有,你不需要要解决每一个bug。
接下来我想要说的是在关卡设计方面的心得
我想要做一款游戏,迷路是游戏的一部分。我觉得能在任何时候走向任何方向,给游戏增加了神奇的感觉,任何没有经过的路,都可能充满新东西,我想给玩家一种永远都有新东西可以发现的感觉。
所以在创作小岛的时候,我直接用Unity雕出了不同的区域,找到不同的气候加进去,这个过程让我得到了很多灵感,所以最后我头脑风暴了很多想法,给每个区域增加了很多的活动和事件,还用一些时间考虑岛屿的主线是什么。
最主要的路线从这个小屋开始,主角可以从这里进入小镇,在这个地方你可以学到如何玩游戏,并向你介绍这个世界。但这里是有障碍的,看起来无法通过。不过,最终你可以收集金币和羽毛,能让你在峭壁上攀爬,通过之后,你就到了山的左边,到达高处的会合地点。
这时候,你是无法到达山巅的,因为需要收集7根金色羽毛,通过这个设计,玩家们无法快速通关,有了更多的时间去探索游戏世界。
我知道有很多的捷径可以走,主要是保证游戏的自由度。但我觉得对满意度较高的玩家而言,你可能会想要做一些游戏里意想不到的事情。不过,控制游戏节奏也还是很有帮助的,因为它可以让我把游戏体验做的更好。
在测试中,有玩家觉得一直探索和遇见其他人会很枯燥,他们看到山上的NPC都不会与他们交流,只是一路跑过去。这让我对游戏的节奏开始思考,在很长一段时间内我都在不断设计新的角色和区域,以保持玩家们的兴趣。
制定一个计划可以帮你很好的控制节奏,但事情并不总是会如你想象的那样顺利。
比如在测试中,很多玩家并没有像我想象的那样进入快节奏,相反,它们直接跳进了海里。可能很多人想要试试游戏里是否让他们游泳?如果你允许游泳,有部分人会很开心。
但还有些玩家不这样做,他们一直绕着岛屿走,这种情况很普遍,虽然不是所有人都这样,可我在测试中看到了很多次。
不少玩家会迷失在山脉的背面,他们会错过游戏重要的新手教程部分。
让这种情况更糟的是,最初测试的版本中,山的背面没有太多东西可以探索。
为了解决这个问题,我最后在山背部增加了一个洞穴,我觉得人们走了很长时间之后,一个洞穴会引起他们的好奇心,他们就会穿过洞穴,而这会把他们直接引导到新手教程部分。
所以,让玩家按照规划的方式去玩,有一些要注意的地方。
首先是提供一些温和的指引,我不想要让玩家觉得是被迫做某些事。给玩家提供指引的方式有很多种,这些节奏帮助他们遵循我的计划推动游戏进度。如果指引是很自然的东西,比如山上的洞穴或是很酷的地标,这会让玩家有兴趣主动探索。
还有些方式是比较直接的指引方式,比如金币、小路等等,还有些信号是可以帮助迷路的玩家走回主要区域的,如果你没有迷路则不用关注它们。由于游戏的目标是到达山顶,通过爬上每一个斜坡,玩家们总会找到如何过去的方法。
另一个方式是用门,在玩家们获得足够的知识或者经验之前,隔断一部分区域。
但我在游戏里不会使用那样的门,而是尝试比较自然的门,在远足旅行当中,无法攀爬的悬崖就是一扇门。这种设计方式很自然,还会让玩家觉得或许有更多方式解决问题,比如集齐足够的羽毛或者得到跳跃能力之后才能通过。
还有一个让玩家按计划推进的方式是用无声的重复。比如在游戏一开始,你可以发现一个玩具铲子,在随后的游戏里,你可以换成真正的铲子,在岛屿上挖东西。从技术层面来说,这是个可选物品,但玩家错过后,会觉得错过很多东西。
最初的时候,我设计这个玩具铲子是准备让一部分留意的玩家拿起来,然后他们可以换成真正的铲子。但很多玩家因为各种原因都选择了避开这个铲子,有的人看到了山间的路直接走过去,有的人看到悬崖想要攀爬,完全打乱了我的计划。
所以,我决定在游戏世界里不止放一个玩具铲子,而是5个,都在区域开始的地方。只要玩家拿了一个铲子,其余四个都会自动消失。所以,如果玩家没有自己拿起铲子,他们也会在别的地方注意到,你是没有办法忽略的。
这些设计解决了问题,而且是不错的做法。但我也做了新手教学信息,你在游戏最后要爬到山顶,所以必须学会如何到达,比如学会二级跳。如果玩家没有攀爬过悬崖,就会看到一个信号,只因他们去爬山,如果已经自己学会了攀爬,就不会看到这些东西。
最后一个就是重视玩家,也就是当他们在玩游戏的时候,你要给他们的脑海灌注一些东西。
比如攀爬,游戏一开始是很难让玩家学习攀爬的,我觉得这并不是那么直观,因为大多数的游戏里你都可以跳跃,但并不是看到的每一面墙都能爬。而且攀爬是需要上下文的,你需要推着墙然后按住某个键,这些都不是偶然发生的,即使是用明显的标志放在对话里,玩家们也有可能会跳过对话,看不到你给的指引。
我最后做的是在游戏里增加了一个爬山者俱乐部,比如你收集羽毛的时候需要问他们如何攀爬,即便是错过了任务,也可以路过的时候看其他角色如何攀爬,最终学会这个能力。
我还想说一些与游戏最终区域相关的一些问题,这或许是最难设计的区域。我想让这个区域变成一个迷宫,比其他区域更难一些。
当玩家到达这个区域之后,他们的羽毛不会恢复,所以,一旦冻僵了之后,你就需要到更暖和的地方获得羽毛恢复的效果才能再回来。这样,玩家们就无法使用他们收集的羽毛一路爬到山顶,而是要做好计划,在哪个地方停留积攒羽毛数量,设计好登顶的方法。
这个区域最初设计的比最终版小很多,而且玩起来也更具迷惑性。实际上我不得不重做了这个区域,很难,因为这是最后做的,必须为其他地方留出空间。
最后一点就是,我给山顶增加了一个清晰的路线,所以到这里的时候,玩家们可以清楚地看到如何登顶,但却没有足够的羽毛去实现目标,他们需要时不时回来积攒羽毛,精神做好登顶的计划,而不是直接走上去。
我实际上还增加了更多的羽毛。测试的时候,登顶的难度更大,虽然增加更多羽毛会打乱游戏节奏、更难的游戏会卡住玩家进度,但我觉得这么做可以带来更有趣的体验。
我还想说的一个部分是协作。最开始做这个项目的时候,我没想到要写这么多东西,但最后还是写了很多,对我来说这很难,因为写作本身就不容易,至少我是这样。
以前做RPG游戏的时候,写作是比较难的地方,因为你要设计故事、对话。所以在做《A Short Hike》的时候,我决定让写作变得更容易一些。我设计了一些简短的弹出对话,而不是冗长的剧情,就像是给好朋友发短信那样。
我做研发的时候,没有打算把故事写的很深刻,而且觉得剧情不是游戏的主要部分,有时候是我的合作伙伴在检查我写的对话。
游戏发行
游戏研发之后,我们来说说发行方面的事情。
《A Short Hike》最初是在Humble发布的,令人意外的是玩家反馈非常好,我不知道有多少人玩过这个版本,但它的评价不错。
所以,我决定在Steam版本发布之前做一个重大更新,一部分原因是我还有很多东西想加进去,还有一部分原因是我希望对玩家更慷慨一些。这个阶段我给游戏增加最多的是一些小游戏,比如钓鱼、竞速。
我宣传游戏的方式就是通过Twitter发布一些有趣的动图,向玩家展示一些有趣和重要的信息。这对我很重要,因为人们会给我反馈,有一些玩家喜欢的动图我还放在了宣传片里。
游戏发布之前,我还做了一个媒体包,发送给可能对我游戏感兴趣的游戏记者,还找到了在Twitter上喜欢游戏的人,虽然并不是所有人都在发布当天报道了我的游戏,但一些人提及对我而言就是很大的成功了。
我并不觉得《A Short Hike》是一款所有人都能接受的游戏,它的节奏较慢,没有真正的解谜。所以我在展示游戏的时候非常谨慎地选择用词,以免给玩家带来过高的期望值。比如名字里就有short,描述是“有关山上远足旅行的一个小型探索游戏”。
在游戏的一开始,我还设计了一个画面,写的是远离城市去远足,这就给玩家带来一种感觉,游戏体验是令人放松的。
最终在2019年7月30日,游戏登录了Steam商店,我从一开始就没有过高的期望,但最终的表现还是超出了我的预期。
从数据来看,发布首周外部流量最大的来源是Twitter,而在Steam发布首周,大多数的流量都来自于Steam平台,所以我觉得Twitter带来的热度有很大的帮助,以上就是我今天分享的内容。