GitHub上10个有趣的开源小游戏(附加在线演示)

Stella981
• 阅读 631

前言

GitHub作为程序员们的开源宝库,有着很多非常好的项目。对于初学者来说,游戏有着一种特殊的魅力。今天统计了GitHub上比较有趣的10个开源小游戏,其中有许多可以称之为经典。笔者是一名90后,《贪吃蛇》、《坦克大战》、《超级马里奥》和《太空侵略者》作为儿时的玩伴,陪伴笔者度过了很多时光,给笔者带来了非常多的回忆。

Pacman(吃豆人游戏)

项目演示地址:https://passer-by.com/pacman/

GitHub项目链接:https://github.com/mumuy/pacman

作者GitHub主页:https://github.com/mumuy

《吃豆人》(Pac-Man)是一部由同名街机游戏移植至Atari 2600平台的游戏,最早由南梦宫公司于1980年在街机上推出,后由雅达利公司于1982年3月中旬发售Atari 2600版。《吃豆人》算是比较经典的游戏了,笔者小时候并没有接触过这个游戏,最初的接触还是在迪士尼动画电影《无敌破坏王》中认识到的。这个项目使用HTML和js很好的还原了这个游戏,其中作者内置了12个关卡,游戏还是十分流畅的。项目效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

React Tetris(俄罗斯方块)

项目演示地址:https://chvin.github.io/react-tetris/?lan=zh

GitHub项目链接:https://github.com/chvin/react-tetris

作者GitHub主页:https://github.com/chvin

《俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。在笔者小的时候,《俄罗斯方块》可以算是笔者最喜欢的游戏之一了。那个时候拿着一个按键机,无止境的玩着《俄罗斯方块》,真是一种享受。如今看到这个项目又想起了那段日子。这个项目也是用Html和js实现的,项目效果如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

Battle City Remake(坦克大战)

项目演示地址:https://battle-city.js.org/#/

GitHub项目连接:https://github.com/shinima/battle-city

作者GitHub主页:https://github.com/shinima

《坦克大战》是由日本南梦宫Namco游戏公司开发的一款平面射击游戏,于1985年发售。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。坦克大战也是笔者最喜欢的游戏之一,这个项目在很大程度上还原了坦克大战游戏。图标、音效和界面等方面,各个细节的几乎一模一样,笔者截取了第一关的图片,项目效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

国际象棋

项目演示地址:https://lichess.org/

GitHub项目链接:https://github.com/ornicar/lila

作者GitHub主页:https://github.com/ornicar (此项目贡献者比较多)

《国际象棋》是一项比较考验智力与策略的棋牌小游戏。此项目是款基于 Scala 语言,完全免费、开源、没有广告、支持多语言的《在线版国际象棋游戏》。因为笔者不管是对国际象棋还是Scala语言,都没有很多了解,所以在此不赘述什么了,项目效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

Star Battle(星战)

项目演示地址:https://4ark.me/star-battle/

GitHub项目链接:https://github.com/gd4Ark/star-battle

作者GitHub主页:https://github.com/gd4Ark

曾经有一段时间,太空游戏风靡全球,一大批飞行射击类游戏涌入我们的视线。笔者小时候也加入了这个潮流,那个时候用着大头电脑玩着飞机大战。虽然现在一些网络游戏成为潮流,但是对于笔者来说,单机游戏仍有着不可动摇的魅力。项目的效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

 Alien Invasion(太空侵略者)

项目演示地址:http://cykod.github.io/AlienInvasion/

GitHub项目链接:https://github.com/StrykerKKD/SpaceInvaders

作者GitHub主页:https://github.com/StrykerKKD

这个小游戏也是一款飞行射击类游戏,玩法非常简单。这款游戏同笔者小时候玩的,在玩法上十分相似。效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

Snake Game(贪吃蛇)

项目演示地址:https://rabiroshan.github.io/snake\_game/

GitHub项目链接:https://github.com/RabiRoshan/snake\_game

作者GitHub主页:https://github.com/RabiRoshan

毋庸置疑,贪吃蛇在游戏史上占据了非常重要的地位,它曾伴随着诺基亚度过了一段辉煌时期。由于当时诺基亚的火爆,而且几乎每部诺基亚都内置了贪吃蛇游戏。所以几乎那个年代的人多少对贪吃蛇都有些了解,而且在诺基亚没落之后,贪吃蛇依旧存活在我们的视野当中。这个项目继承了贪吃蛇的规则,在界面上不同于传统的贪吃蛇:

GitHub上10个有趣的开源小游戏(附加在线演示)

 Super Mario Bros(超级马里奥)

项目演示地址:http://martindrapeau.github.io/backbone-game-engine/super-mario-bros/index.html

GitHub项目链接:https://github.com/martindrapeau/backbone-game-engine

作者GitHub主页:https://github.com/martindrapeau

超级马里奥和坦克大战都是比较经典的GBA游戏了,这个红帽子蓝吊带的大胡子工人陪伴着很多90后度过童年。那时候笔者在其中一关卡住了,一直无限循环至今还未真正通过关,也确实是一个遗憾。这个项目作者在画面上很好的还原的原作,但是在操作上稍微有些反应迟钝:

GitHub上10个有趣的开源小游戏(附加在线演示)

2048

项目演示地址:https://play2048.co/

GitHub项目链接:https://github.com/gabrielecirulli/2048

作者GitHub主页:https://github.com/gabrielecirulli (此项目贡献者比较多)

2048是前几年流行的一款益智类单机游戏, 游戏的规则十分简单 。简单易上手,但又十分虐心。笔者至今还未成功通关过一次,虽然没玩多久,着实惭愧。效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

Sliding Puzzle(滑动拼图)

项目演示地址:https://www.sandeepnambiar.com/sliding\_puzzle/

GitHub项目链接:https://github.com/gamedolphin/sliding\_puzzle

作者GitHub主页:https://github.com/RotMGNambiarhttps://github.com/gamedolphin

拼图游戏也是之前比较流行的,这个项目用数字取代了图片,玩法和拼图游戏是一样的,还是十分有趣的。喜欢拼图游戏和华容道的伙伴们可以尝试以下,效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

除此之外,再给大家介绍一个开源项目。这个不是游戏,而是一个炫酷的城市图。

City Vein(城市静脉)

项目演示地址:https://96486d9b.github.io/city-vein/

GitHub项目地址:https://github.com/96486d9b/city-vein

作者GitHub主页:https://github.com/96486d9b

用公交路线数据,还原城市结构。通过数据可视化手段,还原了 30 多个城市的城市结构。该项目中有数据获取和处理的脚本,而且该项目充分体现了数据可视化带来的便利和效果,易于激发学习编程的热情。效果图如下:

GitHub上10个有趣的开源小游戏(附加在线演示)

除了这些,GitHub上的开源项目数不胜数,这就要靠自己去发掘了。

扫描二维码

获取更多精彩

ZackSock

GitHub上10个有趣的开源小游戏(附加在线演示)

本文分享自微信公众号 - ZackSock(ZackSock)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
徐小夕 徐小夕
3年前
深度剖析github star数15.1k的开源项目redux-thunk
日益忙碌的一周又过去了,是时候开始每周一次的总结复盘了,今天笔者就来剖析一下github中star数15.1k的开源项目reduxthunk。作为一名React方向的前端工程师,不管是被面试还是面试别人,大部分都会说起reduxthunk的实现原理,因为它非常经典且有用,而且代码量少的感人,只有短短12行代码,却能解决React开发中同一个函数支持多
Wesley13 Wesley13
2年前
java中比较两个时间的差值
项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这