二十年前的老游戏,为何再次让无数程序员痴迷不已?

开发 前端
游戏开始时,玩家将获得一艘飞船,然后驾驶它在各个星球之间穿梭,挖掘星球矿产,低买高卖赚取利润,赚了钱可以升级飞船,购买更大货仓,更先进的武器, 因为星际航行中可以会碰到海盗,玩家需要决定是逃跑,交涉还是战斗......

SpaceTraders是个古老的策略类游戏,运行在古老的Palm OS和Windows Mobile PDA上。

图片图片

游戏开始时,玩家将获得一艘飞船,然后驾驶它在各个星球之间穿梭,挖掘星球矿产,低买高卖赚取利润,赚了钱可以升级飞船,购买更大货仓,更先进的武器, 因为星际航行中可以会碰到海盗,玩家需要决定是逃跑,交涉还是战斗......

听起来并不是非常吸引人,对吧?

但是,有个叫spacetraders.io的网站,把SpaceTraders玩出了新高度:它把这个游戏给API化了!

换句话说,游戏中的所有动作,都可以用API的方式来调用!

比如,注册一个玩家,可以用CURL发出这样的请求:

curl --request POST 
--url 'https://api.spacetraders.io/v2/register' 
--header 'Content-Type: application/json' 
--data '{
"symbol": "liuxin",
"faction": "COSMIC"
}'

购买一艘飞船:

curl --request POST 
--url 'https://api.spacetraders.io/v2/my/ships' 
--header 'Authorization: Bearer <token>' 
--header 'Content-Type: application/json' 
--data '{
"shipType": "SHIP_MINING_DRONE",
"waypointSymbol": "X1-DF55-69207D"
}'

给船补充燃料:

curl --request POST 
--url 'https://api.spacetraders.io/v2/my/ships/ONLYLIUXIN/refuel' 
--header 'Authorization: Bearer <token>'

卖货赚钱:

curl --request POST 
--url 'https://api.spacetraders.io/v2/my/ships/ONLYLIUXIN/sell' 
--header 'Authorization: <token>' 
--header 'Content-Type: application/json' 
--data '{
"symbol": "IRON_ORE",
"units": "100"
}'

我这里只列举了一小部分,除此还有导航、停泊、测绘、卸货、查看市场、完成合约等各种各样的API。

图片图片

这些API可不仅仅支持一个人玩儿,而是支持多人在线的交互。

即使是多人在线游戏,通过命令行,用API的方式来玩儿这个游戏也太无趣了吧?

又慢又无聊,谁会这么玩呢?

但是,一旦你把视野打开,就会发现这是个非常棒的创意!

因为任何程序员,不管他是使用什么编程语言,都可以通过代码调用这些API,写一个SpaceTraders的客户端应用程序,和其他人进行交互。

有很多人已经这么干了,有人做出了漂亮的图形化客户端:

图片图片

有人做出了文本化的客户端

图片图片

有人实现了Emacs Lisp 客户端

图片图片

有人用React做了客户端:

图片图片

那开发这些“乱七八糟的”客户端有什么用处呢?

最大的用途就是:学习编程。

我们每个人在学习编程中都会遇到这样的问题:学了很多语法,写了不少代码片段,但是越学越没意思,因为编程有很多知识点,很枯燥,很无聊,没有真实项目刺激,缺乏动力。

现在有了SpaceTraders API,事情就不一样了。

假如你想学习Python,你完全可以用Python 代码去调用这些API,实现一个Python版的SpaceTraders客户端。

为了尽快实现这个游戏的注册、飞行、挖矿、战斗,你不得不去做界面设计、架构设计、类的设计,和服务器API的交互,这个过程逼着你不得不接触到Python的各个方面。

编程的过程,结合了游戏的过程,有趣,不枯燥。

把这个客户端写完,对Python恐怕也熟悉个七七八八了。

难怪网友反馈说:我在48个小时内学到的东西比一个月的在线课程还多!

强烈建议那些正在学编程的同学看一看这个游戏,调用API去玩一玩。

这个SpaceTraders API让我想到了早些年流行的Robocode,玩家需要编写自己的机器人坦克,定义其行为和战斗策略,在一个虚拟的战场上与其他玩家编写的机器人对战。

图片图片

只不过Robocode必须由Java编写,限制了用户的群体。

相比而言,SpaceTrader API更加开放,更加有趣。

“寓教于乐”可以让人轻松学习,不得不说,在这方面,国外程序员的创新和脑洞确实比较多,走到了我们的前面,值得我们学习。

如需转载,请通过作者微信公众号coderising获取授权。

责任编辑:武晓燕 来源: 码农翻身
相关推荐

2015-08-17 08:56:45

二十年前游戏开发开发

2015-08-17 09:45:15

开发游戏

2020-02-11 15:32:59

2015-10-27 11:58:38

苹果微软

2020-07-12 15:20:56

互联网数据技术

2014-10-30 10:09:44

程序员程序设计师

2015-03-06 09:36:42

雅虎移动

2011-08-22 10:04:31

LAMP架构

2020-01-13 10:23:08

程序员技能开发者

2014-07-31 13:41:36

程序员

2013-03-15 16:39:20

BIM

2012-02-07 09:58:27

2011-08-22 13:23:38

AndroidLinuxLinux内核

2014-08-29 10:21:15

APM应用性能管理

2020-05-25 14:58:36

程序员自动化编码

2019-10-11 18:24:02

网站门户网站互联网

2010-05-07 10:40:02

惠普ProLiant云计算

2015-05-28 11:01:12

2019-12-24 09:25:09

程序员技能开发者
点赞
收藏

51CTO技术栈公众号