合作类DBG桌游《XenoShyft: Onslaught》测评

最近买了一盒 CMON 出品的卡牌构筑机制的1-4人塔防类游戏《XenoShyft: Onslaught》,一个人试玩了一下,觉得比领土好玩多了。又意外获赠了一盒该游戏第一个大扩《Xenoshyft: Dreadmire》在2016年 Kickstarter 上众筹中回报的 KS 独享扩展卡包,内容丰富,很大程度上提高了可玩性。非常意外,非常感动。
1

游戏特点

XenoShyft 的主题是合作防守,玩家们扮演星际战士对抗外星异种,游戏的目标并不是杀光异种,而只要在一定时间内保持不死即可——要么坚持9轮后游戏胜利,要么鏖战中途基地生命值降到0而失败。由此可见,游戏的难度颇大,异种怪物的可怕攻击力与特殊能力会给玩家们带来非常大的压力。在这样的主题下,玩家之间通过各种形式的合作进行快速战斗,游戏节奏异常的快,与《领土》类 DBG 完全不同。
昨天下午,我和几个朋友连开2局《Xenoshyft: Onslaught》,游戏过程非常紧张刺激,几个人都很过瘾。虽然2次尝试都以失败告终,但也终于见识到了 DBG 这个老套、繁琐、慢速的游戏机制,如果加以微调,完全可以支持快节奏的卡牌战斗游戏。
2
3
4
Xenoshyft 整体节奏非常流畅,速度极快,四个玩家共同合作防守基地,游戏过程中能够互相支援部队、道具等等,这样的设计打破了领土创造的经典但乏味的『二人埋头理牌』模式,不同玩家的互动极为丰富,这种配合贯穿游戏全程,即便不在自己的回合内,依然可以使用自己的即时效果牌和特殊能力部队进行协助;再加上所有玩家共享生命值,每一个人的成败都关系到所有人,任何一路被突破都会对基地造成破坏,因此可以说全程无尿点,基本没有 downtime 困扰。
另外需要提一下的是,XenoShyft 本身是一个变化颇多的游戏,玩家选择不同的部门(如医疗部、武器部、科学部等等)有不同的特殊技能和初始牌库,游戏 Setup 过程中随机出现可购的强大道具,以及8种从弱到强、能力各异的兵种互相搭配,使得每次游戏都具有巨大的差异性,可玩性极佳。同时由于游戏的高度合作性,不同玩家的策略区别极大,可以说基本很难玩出2局雷同的游戏。
5
(上图为游戏后期 Wave3 的一条战线,异能强大的「电震兽」和防守反击能力爆表的「海伯利昂突击装甲」在面对面的对抗)
6
(上图是游戏中期经常遇到的一种恶心的敌人,可以将我方阵亡士兵直接变成他们的提线木偶。这游戏的美术真是有点惊悚,而且相当血腥,儿童不宜。)

KS 卡包带来的变化

上一篇文章说到了,朋友赠送了我一套《XenoShyft: Dreadmire》的 kS 专属卡包,虽然由于部分卡牌涉及到「天气」这个新机制、而我仅有基础版、故而无法使用,但是其他牌的扩充实实在在的拔高了游戏的耐玩度。
KS pack
举个例子,这个 KS 卡包提供了些崭新而简易的增强规则。一个我方士兵如果经历了战斗而未阵亡,则可在下一回合升级为英雄(居然还是闪卡……)。每个兵种只有一个英雄,这些英雄相比普通士兵具有更为强大的能力,是战场上的中坚力量。同时,装备物品也有类似的「传奇」版本,比原本的武器更加强大也更加稀有。
9
8
除了士兵在战斗幸存后可升级为「英雄」外,还出现了4个具有强大能力的崭新兵种,目测强度略高于基础版,但面对同步增强的敌人,似乎显得并不算过分。
15
另外,XenoShyft 基础包中每一波有2个Boss级大怪,一共6个Boss;而这个 KS 包里则一口气为每个波次提供全新的全彩大画版本大怪6只,合计18只!这意味着,在玩家部队得到增强的同时,外星异种也在同步增强!下图中,第一张图是基础包中 Wave1 的2只 Boss,第二张图则是 KS 包附带的 6 只 Wave1 大怪!
11
12
除了船新版本的士兵、装备、怪兽外,分支机构也有了更多选择,同时相比原来的常规尺寸卡牌,做了一套「超大尺寸版本」,这样放在桌子上,就不会淹没在卡牌大海之中了。
14
在新增分支中,我最喜欢的是 Xenos Containment,可以翻译为「异种收容所」之类意思,但我习惯称之为「动物园」。它的能力也非常有趣,除了游戏开始前可以将任意2张3费以下的护甲或科学卡牌加入牌库外,每次部署部队时可以从异种牌库中抽取一张牌作为自己的士兵、部署到任意玩家的战线上,同时将其能力更换为每轮可以替其他士兵抗伤害一次。这样有个很大的好处,就是降低了对士兵数量的需求,可以将购买士兵的资金用于购买装备然后对己方4路战线同时进行防守。万一抽到一只大怪,就赚翻了,不仅等于消灭了一个大怪,还可以为己所用,成为巩固防线的一道工事。
10
在 DBG 这个大类之下,无论是早期的《领土Dominion》还是前两年推出的科幻战斗主题《星域奇航Star Realm》,都是桌游圈的传奇产品。但是 DBG 的缺点也很明显,如领土,节奏过慢,几乎毫无代入感;如星域奇航,虽然节奏快了很多,但战斗过程颇为枯燥,并未脱离自「领土」以降的线性的「买牌、构筑、Combo」的窠臼。
《XenoShyft: Onslaught》则刷新了我的 DBG 游戏排行榜,结结实实的成为我目前玩过的最佳 DBG 游戏,甚至在合作类游戏里也能排到前三名。激动之下,慌忙去亚马逊下了一单《Clank!》,想尝试一下另一款传奇 DBG,看一看坊间流传的将 DBG 与 Rouge Crwaling 完美结合的游戏到底是什么样,它和《XenoShyft》相比,二者谁能更胜一筹呢?


最后贴一下我定制的一款《XenoShyft》牌垫,我玩卡牌游戏喜欢做牌垫,在网络上找到素材后,直接淘宝定制一个,3天送达,相比基础包自带的纸卡牌垫来说,体验好了不止一点点。素材来源 BGG。
13

Tagged : / / /

我是怎样自学编程并找到第一份工作的

这是今天我发布在知乎上关于『自学编程的人,都是怎么找到第一份软件开发工作的?』的一个回答,链接在这里,喜欢的老铁可以去帮我点赞刷一波666

Link: https://www.zhihu.com/question/25034235/answer/295451575

我本科专业是政治学,28岁开始学习编程,29岁找到工作,现在马上30岁。现在一家互联网创业公司里做 Python 后端开发,写了非常核心的后端组件,也完成了公司90%的自动化测试,简单的、难的项目都参与过。其实我是编程弱鸡,仰仗同事帮忙,这一年学了很多。
我清楚,从自学编程到找工作,这是一个很痛苦的过程。
从学习第一行代码开始,你就很清楚自己和科班程序员有巨大差距,随着学习深入,会发现这个差距之大,以我们普通人的资质和勤奋水平,真的很难弥补。及至你终于鼓足勇气找工作,却发现竞争对手全是你仰望的『科班选手』(在我这个岁数,还会发现他们都比你年轻),会气馁,会沮丧。
心里默默念叨:真的没什么优势啊……
转行前,我在深圳一家互联网公司做运营总监,成绩斐然,搞了一些业内独一无二的运营策略,做了很多现在看来依然牛逼的运营项目。由于项目中涉及大量自动化工作内容,而我们只能人工完成,于是2015年底决定自学 Python 希望降低团队工作量,不久后做了『教练,我想写代码』的打算并离职,2016年1月开始正式脱产自学。9月开始找工作,2016年10月31日正式入职现公司,专职后端。
从找工作到入职,一共面过3家公司。

第一家公司:位于华强北附近的行业数据公司,主要工作是写分布式爬虫。

我对此毫无概念,面试的时候问用没用过数据库,回答没用过,然后做了一份笔试题,有一道题印象很深,问从1+2+3+…+100怎么计算,于是我写了个 for loop了……;还有很难的题,例如让我写一下分布式爬虫架构……最后让我回家等消息,当然是没消息。通过这次面试,知道了数据库这东西很重要,于是回家后马上买了一本 SQL 入门书快速读了一遍,学会增删改查。至于这家公司本身,我看了现场气氛后没太大兴趣,对工作内容也并不感冒,所以没有很遗憾。

第二家公司,腾讯。

能混到腾讯面试,我也很意外,居然没有被刷简历刷掉。我没有通过腾讯的社招平台投简历,而是在 V2EX 上看到了腾讯云工程师发的招聘贴,于是把直接发简历到腾讯云工程师的 QQ 邮箱里面,附带了一封求职信。某一天接到电话,说定个日期来一次电话面试。腾讯的这场电话面试是我最紧张的一场面试,电话期间被问及冒泡算法的复杂度,我脑子一片空白,完全想不起来,当然是遗憾收尾。对面工程师说,其实觉得我的工作态度非常好,而且之前的运营工作经验说明我善于利用工具解决问题,只要技术水平达到他们的最低标准,就很乐意让我加入,只不过……

重点说说第三家,现公司,米筐。

最早在拉勾看到米筐的招聘信息,投了然后被拒。然后在 V2EX 上(又是 V2EX,想找工作的朋友一定要重视这种社区)看到他们的招聘贴,继续发简历,同时附上了求职信(这封求职信起了关键作用,后面会细说)。去公司所在地(当时公司在深圳一个别墅区里租了几间房子)面试,和 CTO 简单聊了一下自己学过的东西、写过的代码,然后给我留了一个作业,就是在2周内学习冒泡、插入、选择、希尔、归并、堆、快速,桶排序,并用代码实现。
接下来的2周我足不出户,靠着一本红色的《Algorithms》、一本《算法导论》以及网上的零散内容,大致知道什么意思,然后面向 Google 编程,最后实现了。发邮件回复 CTO 后,1小时内得到回复,说不错,但是没有函数、没有继承,就是一堆命令的堆积,让我用 类 来改写一遍,时限1周。
继而又是兵荒马乱的1周。CTO 第三次发来邮件说不错,但是有几个技术细节和我讨论一下,然后再让我把排序内容输出为表格并增加自动化测试进行验证,时限又是1周。
这次稍微简单一些,但是从没写过测试,也没输出过表格,所以学习了几天,然后实现之(这里有个插曲,我当时的『表格』就是在命令行里绘制一张表格出来,现在想想 CTO 可能是想让我输出成 csv 之类的文件)。这次邮件之后,CTO 通知我第二次面试。这次面试我自觉带上了开发用的 Mac,现场也确实用到了,简单讨论后,CTO 说恭喜你加入米筐。
以上是我仅有的三次面试的经历,第三次就找到工作,只能说自己运气不错,另外求职技巧也有一些可以分享的。
技巧1:良好的邮件习惯
标题写个人基本信息、应聘岗位等,正文简要介绍自己,附件包含 docx 和 pdf 格式的简历各一份,然后附上一封像老朋友面谈一样的诚恳的求职信。
技巧2:求职信
从投腾讯简历开始,我在太太的帮助下认真的写一封求职信,详细介绍自己的优势、劣势、以及对新工作的期望,在信中表达出极为诚恳、诚实的态度,而非吹牛逼、忽悠。记得在给米筐的求职信里我写过『知道自己的水平和其他工程师有差距,所以并不要求工资水平和别人一致,只求多一点实战机会、多一点成长』。因为我也面试过不少人,深知市场上的聪明人太多,老实踏实的人太少,所以装一装老实,可能算是一个蛮突出的『竞争优势』吧。
技巧3:不要海投,不要投 HR 邮箱,直接发简历到工程师邮箱
我们这种自学编程的人,绝大多数水平真的不行,没有相关工作经验,没有相关学历。类似我当年不会用数据库、不知道多线程多进程的区别和用途,海投简历只会收获海拒。因此最好能绕过 HR,与工程师直接联系(例如腾讯那场面试,如果我走正常招聘程序,不可能获得面试机会)。
我的工位
基本上我就是这样在自学编程后找到第一份开发工作的,到现在,工资数倍于入职的起薪,深深觉得米筐给我的东西,远远多于我给米筐的,很感激公司同仁的宽容与善良。写代码是一项实践性的工作,不进入生产环境,很多东西自己是搞不懂也不会接触到的。希望各位自学编程的人,都能早日找到工作,快速学习和成长,不断进化和突破,最终超越自己。

Tagged :

steemit 流量哪里去

pic_proxy_meitu_1
最近连续看了一些 steemit 的介绍文章,我也动了上去写作的念头,毕竟博客被墙久已,访问量不高,实际上纯粹是一个日记本。
在读了 steemit 的官方入门指南后,我发现想要在这里有出众的访问量,还真是需要花一番心思。研究了一下中文写作的榜单,似乎目前 steemit 仍处于开荒阶段,大家的写作内容也偏向生活和琐碎,很像新浪博客和新浪微博刚刚兴起时候的样子,高流量贴的主题性并不强,看起来整个 steemit 上,大家更喜欢窥探彼此的生活(这里专指中文写作者,英文内容则相对丰富的多)。
在这个流量逐渐兴起的领地内,主题性强、写作领域较集中的作者,或许会在漫长的优胜劣汰中取胜(也许并不漫长),而日记型作者将逐渐成为边缘。这是网络流量的特性导致的,所有以内容获取流量的网络圈地运动,无不以『主题』为圈地的围栏,即便如微博、知乎等巨量流量的集散地,其内部也是如此——流量在比特海中寻找着相似的彼此,然后聚合到一起,形成了相对封闭的流量圈子。
steemit 的无审查机制(其实也是有审查的,low rating 文章会被隐藏)与现金鼓励机制的对冲,可以实现在无人值守的情况下,尽可能保障文章内容质量,这是一个很好的、但有漏洞的机制,一旦发布 low rating 内容的收益高于发布 high rating 文章的打赏收益(例如 @alexanova 发布边缘色情内容,会被打上 NSFW(Not Safe for Work) 的标签并默认『折叠』,需点击两次才能打开),则大家会忽略被隐藏的风险,尽可能多的发布类似内容。好在 steemit 的社区讨论气氛很棒,大家彼此讨论规则的合理性,这是社区区别于中心化的审查、实现自我进化的重要方式。

例如关于垃圾留言,就有这样的讨论:https://steemit.com/steem-help/@charles1/how-spam-is-killing-steemit-and-what-to-do-about-it

而作为中文读者和写作者,最需要担心的仍然是政策风险。steemit 这样的内容聚合网站,一旦规模到达某个量级,势必会遭遇防火墙。当然,这并不是网络自我审查的理由,政治写作者仍然会愿意通过一切平台表达政治异见,但想靠流量赚钱的人却要早做准备、未雨绸缪。
流量在 steemit 上仍野性的游荡着,屈指可数的几位中文『大V』,很有可能会被新出现的写作者夺走流量,这是内容迭代的趋势。所以各位写作者,留给诸位调整内容方向的时间可能并不多了,抓紧走专业化道路吧!

Tagged : / / /

树莓派3初体验之一:搭建 Python 开发环境

最近新买了一个树莓派3(购买前还考虑了 Orange Pi 等 Linux 开发板,但最终仍然选择了树莓派),主要目标是想通过折腾这个信用卡大小的 Linux 电脑,学习一下 Linux 系统知识,熟悉服务器的各项操作,顺便给自己搭建个 Web Server。
WechatIMG17
安装步骤很顺利,通过官网下载了 NOOBS 版的 Raspbian 系统,并复制到 TF 卡中,然后启动树莓派,一路 Next,很快就可以看到图形界面。然后看了一下树莓派内置的 Python 版本,发现是 2.7.9 以及 3.4.2,于是机智的我马上制定了第一个任务——把树莓派的系统自带 Python 3.4 升级到最新的 Python 3.6.2。
升级的过程是这样的:
1. 从 Python 官网下载 Python 3.6.2 的压缩包。
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
2. 解压编译
cd ./Python-3.6.2
./configure
make
sudo make install

3. 将 /usr/bin/python 的原文件删除,然后link到刚编译好的Python3命令上
rm /usr/bin/python
ln -s /usr/bin/python ~/Python-3.6.2/python

结果是虽然我把原本是2.7.9版本的python命令变成了3.6.2,但是配套的pip等工具却乱套了,一运行就会报语法错误,看来这样生变过去是不行的,于是想恢复回去,几经尝试后失败,遂格式化TF卡,重装系统。
第二次我不再 link /usr/bin/python, 而是机智的换成了/usr/bin/python3,但是依然出错,具体什么错误已经不记得了。再次格盘重装。
第三次终于成功,在命令行输入python3指向了/usr/local/bin/python3,我还没搞明白是怎么弄得,反正搞定了,明天去问问同事在哪里设置……

后来才想起来,要改环境变量里面的$PATH……这是刚学 Python 时候就遇到的问题,现在居然都想不起来了……

WechatIMG16
此时又遇到了第二个坑——Rsapbian没有安装若干必要的库,需要手动安装。
顺利配置好 Python3.6 后,我试着pip3 install requests,结果出现ssl module in Python is not available的报错,几经搜寻,发现是由于 OpenSSL 等库没有预置在 Raspbian 中,而 pip 则需要访问 https 加密的地址,故而报错。
首先,apt-get 安装这些库:
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
然后重新编译一次 Python 即可解决问题:
cd ~/Python-3.6.2
./configure
make
sudo make install

于是经过不知多少次编译,我终于装好了 Python3.6。后来又安装了 PyCharm,但实际运行中感觉延迟严重,所以这样大型的 IDE 可能无法在树莓派上顺畅运行,如果需要写代码,可以考虑轻量级编辑器(同时还有一个问题没有解决,就是如何卸载 PyCharm ……)。
最后说一下树莓派的整体感觉。
开箱之后的树莓派需要自己安装散热片、风扇、外壳,当然这些配件都需要另外购买。组装过程很简单,把散热片粘到处理器上,然后一层一层安装外壳,最后在外壳上方固定和连接风扇。如果有过装机经验,那么整个过程即为简单。组装完成后,我通过一根 HDMI 转 VGA 线,将树莓派连接至一个古董19寸显示器。
我(也是大多数树莓派素人)选择的是官方推荐的 Raspbian 系统,是 Debian 的树莓派分支。其实树莓派有大量的系统版本可以选择,例如 CentOS 的 ARM 版、Ubuntu Mate等等,可按需选择。Raspbian 的 GUI 没有 Ubuntu 那么炫酷,但是能在这么小的板子上运行如此完整而流畅的桌面版 Linux,也让人很欣喜。
目前我已经把若干连接线(视频线、鼠标、键盘)从树莓派上移除,仅剩供电线路并连上 WiFi,通过 Mac 远程登录进行管理。本来想设置一下 DNS 实现通过 hostname 直接访问主机,结果家里没有多余的机器做 DNS Server,华硕路由器的官方系统又不原生支持 DNS、我还懒得再折腾路由器,所以只是通过改本地的 hosts 来实现 hostsname 登录(我给树莓派起的名字叫做 footboy)。以后可能会在树莓派上搭建几个服务,通过 supervisor 管理;或者做几个 Cronjob 的定时任务。
WechatIMG15

Tagged : / / / /