我在GitHub上找到了這些游戲項(xiàng)目,刺激!
作者:JackTian
來源:公眾號「杰哥的IT之旅」
ID:Jake_Internet
當(dāng)你學(xué)習(xí)、工作累了,趁休息時(shí)間娛樂放松一下,通過用游戲的方式來學(xué)習(xí)技術(shù),那么 GitHub 上這些好玩的開源項(xiàng)目小游戲是最適合不過了。
首先,我們來看一下這張圖,可快速了解這篇文章中所涉及到的 23 個(gè)關(guān)于游戲方面的開源項(xiàng)目。

Games on GitHub
這個(gè)開源項(xiàng)目作者收集了托管在 GitHub 上的開源游戲以及跟游戲相關(guān)的項(xiàng)目列表,所含的項(xiàng)目類型眾多,游戲種類包括教育類、瀏覽器類等,還包括一些開源的游戲引擎等等;

該項(xiàng)目的目錄:

具體細(xì)節(jié)就不逐一點(diǎn)開給大家演示了,感興趣的朋友去看看。
GitHub 地址:https://github.com/leereilly/games
vim-game-code-break
這個(gè)項(xiàng)目是 Vim 插件版本的打豆豆。
將其放在您的.vimrc中:
Plug 'johngrib/vim-game-code-break'
然后在Vim中運(yùn)行以下命令:
:source %
:PlugInstall
裝上這個(gè)插件輸入:VimGameCodeBreak,即可開始游戲。

功能介紹
h、l 鍵是控制左右方向;
space 鍵是發(fā)球;
` 鍵是作弊鍵;
] 鍵是神模式,[ 鍵是人工模式;
q 鍵是結(jié)束游戲,Q 鍵是退出并關(guān)閉游戲;
GitHub 地址:
https://github.com/johngrib/vim-game-code-break
javascript-tetris
一個(gè)簡單的 JavaScript 俄羅斯方塊游戲,這個(gè)開源項(xiàng)目是通過 HTML5 實(shí)現(xiàn)的,功能簡陋齊全,作者還記錄這個(gè)游戲的實(shí)現(xiàn)細(xì)節(jié)以及工作原理。

地址:
https://codeincomplete.com/articles/javascript-tetris/
GitHub 地址:
https://github.com/jakesgordon/javascript-tetris
游戲在線地址:
https://codeincomplete.com/games/tetris/
react-tetris
除了上述俄羅斯方塊游戲外,還有一款不錯(cuò)的,我也是非常喜歡,這個(gè)項(xiàng)目是通過 React 實(shí)現(xiàn)的,游戲框架使用的是 React + Redux,其中再加入了 Immutable,用它的實(shí)例來做來 Redux 的 state,跟上述實(shí)現(xiàn)的方式還是有所不同。

這款游戲不僅指屏幕的自適應(yīng),而是在 PC 使用鍵盤、在手機(jī)使用手指的響應(yīng)式操作,都很方便。

GitHub 地址:https://github.com/chvin/react-tetris
游戲在線地址:https://chvin.github.io/react-tetris/
sshtron
SSHTron 是一款通過 SSH 運(yùn)行的多人 Lightcycle 游戲,只需運(yùn)行如下命令即可開始游戲:
# ssh sshtron.zachlatta.com

功能介紹
W A S D 或 vim 鍵綁定移動(不要使用箭頭鍵);
退出或按 Ctrl + C 退出;
GitHub 地址:https://github.com/zachlatta/sshtron
battle-city
基于 React 的經(jīng)典坦克大戰(zhàn),這個(gè) GitHub 倉庫的版本是經(jīng)典坦克大戰(zhàn)的復(fù)刻版本,基于原版素材,使用 React 將各類素材封裝為對應(yīng)的組件。素材使用 SVG 進(jìn)行渲染以展現(xiàn)游戲的像素風(fēng),可以先調(diào)整瀏覽器縮放再進(jìn)行游戲,1080P 屏幕下使用 200% 縮放為最佳。
此游戲使用網(wǎng)頁前端技術(shù)進(jìn)行開發(fā),主要通過 React 進(jìn)行頁面展現(xiàn),使用 Immutable.js 作為數(shù)據(jù)結(jié)構(gòu)工具庫,使用 redux 管理游戲狀態(tài),以及使用 redux-saga/little-saga 處理復(fù)雜的游戲邏輯。

GitHub 地址:https://github.com/shinima/battle-city
游戲在線地址:http://shinima.pw/battle-city/
pacman
Pacman 是基于 HTML5 的吃豆人游戲。該項(xiàng)目在 GitHub 上的核心代碼就兩個(gè)文件,代碼有注釋、整潔。對于新手來說是個(gè)很好的實(shí)踐項(xiàng)目。

GitHub 地址:https://github.com/mumuy/pacman
游戲在線地址:http://passer-by.com/pacman/
ratel
Ratel 這個(gè)項(xiàng)目是基于 Netty 實(shí)現(xiàn)的一款命令行斗地主游戲。
Ratel 分客戶端和服務(wù)端,你可以讓小伙伴們的客戶端都連接你的服務(wù)器進(jìn)行游戲,也可以直接連接作者的公網(wǎng)服務(wù)器進(jìn)行游戲。

詳情可參考:《摸魚神器:在 Linux 命令行下玩斗地主!》這篇文章介紹了如何安裝 Ratel?以及一些 Ratel 的玩法。
GitHub 地址:https://github.com/ainilili/ratel
lila
lila 是一款基于 Scala 語言,完全免費(fèi)、開源、沒有廣告、支持多語言的在線國際象棋游戲。

GitHub 地址:https://github.com/ornicar/lila
游戲在線地址:https://lichess.org/
star-battle
star-battle 是一個(gè)使用 JavaScript ES6、Canvas 開發(fā)的飛船射擊類游戲。

功能介紹
使用 W、A、S、D 鍵控制飛船,按下 Space 發(fā)射;
燃料初始值為 15,每秒遞減 1 點(diǎn),當(dāng)燃料值為 0 時(shí),游戲結(jié)束;
觸碰掉下的燃料瓶可增加 15 點(diǎn),最大值為 30 點(diǎn);
擊中敵方飛船增加 5 分。行星需擊中兩次,增加 10 分。擊中友方減 10 分;
撞擊敵方損失 15 點(diǎn)燃料,撞擊友方扣除 10 分;
游戲允許負(fù)分;
按下 P 暫停游戲,按下 M 靜音;
GitHub 地址:https://github.com/gd4Ark/star-battle
游戲在線地址:https://4ark.me/star-battle/
PythonPlantsVsZombies
PythonPlantsVsZombies 是用 Python 語言編寫的植物大戰(zhàn)僵尸。

功能介紹
PlantsVsZombies 所支持的植物類型:向日葵、豌豆射手、寒冰射手、堅(jiān)果、櫻桃炸彈等;
PlantsVsZombies 所支持的僵尸類型:普通僵尸、鞭打僵尸,錐頭僵尸,水桶頭僵尸,報(bào)紙僵尸等;
該項(xiàng)目可使用 json 文件來存儲關(guān)卡數(shù)據(jù)信息(例如僵尸的位置和時(shí)間,背景信息);
支持在關(guān)卡開始前選擇植物卡;
支持白天/夜間模式,移動卡選擇水平和 Wallnut 保齡球水平;
運(yùn)行 main.py 文件即可運(yùn)行游戲:
# python main.py
import pygame as pg
from source.main import main
if __name__=='__main__':
main()
pg.quit()
GitHub 地址:
https://github.com/marblexu/PythonPlantsVsZombies
HueJumper2k
這個(gè)項(xiàng)目是用 JS 實(shí)現(xiàn) 2KB 大小的 3D 賽車游戲。


控制項(xiàng)
鼠標(biāo) = 轉(zhuǎn)向
點(diǎn)擊 = 剎車
雙擊 = 跳轉(zhuǎn)
R = 重新啟動
1 = 屏幕圖
GitHub 地址:
https://github.com/KilledByAPixel/HueJumper2k
游戲在線地址:
https://killedbyapixel.itch.io/hue-jumper
free-python-games
免費(fèi)的入門級 Python 游戲集合庫,都是一些簡單的小游戲:貪吃蛇、迷宮、Pong、猜字等,運(yùn)行方便、代碼簡單易懂。以游戲的方式開啟你的 Python 學(xué)習(xí)之旅,玩完再學(xué)源碼,真是其樂無窮。

GitHub 地址:https://github.com/grantjenks/free-python-games
css-sweeper
一個(gè)只用 HTML 和 CSS 實(shí)現(xiàn)的掃雷游戲。

GitHub 地址:https://github.com/propjockey/css-sweeper
游戲在線地址:https://propjockey.github.io/css-sweeper/
emoji-minesweeper
Emoji-minesweeper 是一款表情符號的掃雷游戲。

功能介紹
左鍵單擊可開啟一個(gè)地點(diǎn);
右鍵單擊可將一個(gè)點(diǎn)標(biāo)記為炸彈;
雙擊以打開目標(biāo)附近的所有 8 個(gè)點(diǎn)(使用右鍵單擊已標(biāo)記為炸彈的點(diǎn)除外)
GitHub 地址:
https://github.com/muan/emoji-minesweeper
游戲在線地址:
http://muan.github.io/emoji-minesweeper/
MazeBattles.com
使用 Node.js 和 Socket.io 實(shí)現(xiàn)的在線迷宮游戲,通過 [a][w][s][d] 按鍵移動位置,支持多人和單人兩種模式。

GitHub 地址:
https://github.com/HenryDavidZhu/MazeBattles.com
游戲在線地址:
http://www.mazebattles.com/
flexboxfroggy
一個(gè)幫助學(xué)習(xí) CSS flexbox 知識的在線游戲。
游戲一共 24 關(guān),通俗易懂的解釋了 flex 布局,適合初學(xué)者,支持中文,可以在 settings 中選擇語言。

GitHub 地址:
https://github.com/thomaspark/flexboxfroggy
游戲在線地址:
https://flexboxfroggy.com/
gorched
Go 語言寫的終端游戲 Scorched Earth。

控制項(xiàng)
← → 改變大炮角度
SPACE 開始加載(第一擊)并射擊(第二擊)
Ctrl+C 退出游戲
Ctrl+R 重新開始當(dāng)前回合
Ctrl+N 開始下一輪
S 顯示分?jǐn)?shù)
A 顯示玩家的屬性
H 顯示幫助
GitHub 地址:https://github.com/zladovan/gorched
游戲在線地址:https://repl.it/@zladovan/gorched
Mindustry
一款 Java 編寫的免費(fèi)沙盒塔防游戲。支持多平臺:Windows、Linux、macOS、Android

GitHub 地址:https://github.com/Anuken/Mindustry
AIDungeon
AIDungeon 是一個(gè)基于機(jī)器學(xué)習(xí)的地下城文字游戲。

GitHub 地址:
https://github.com/Latitude-Archives/AIDungeon
游戲在線地址:
https://play.aidungeon.io/main/landing
OpenEmu
OpenEmu 是一個(gè)可以玩各種復(fù)古游戲的游戲機(jī),支持任天堂、索尼 PSP、世嘉 32X 等 30 多種游戲引擎,以及支持外接游戲手柄、投屏等操作;

GitHub 地址:https://github.com/OpenEmu/OpenEmu
gameboy.live
gameboy.live 是一個(gè)具有終端 “云游戲” 支持的基本 Gameboy 模擬器,可通過 Socket 遠(yuǎn)程玩像素游戲。

功能介紹
CPU指令仿真
計(jì)時(shí)器和中斷
支持僅ROM,MBC1,MBC2,MBC3磁帶
聲音模擬
圖形仿真
云游戲
ROM調(diào)試器
游戲保存和恢復(fù)卡帶級別
GitHub 地址:https://github.com/HFO4/gameboy.live
cxk-ball
這是一款用 Javascript 實(shí)現(xiàn)的 CXK 打籃球游戲。

該游戲有多種模式可選擇:
簡單
普通
困難
極限
非人類

GitHub 地址:https://github.com/kasuganosoras/cxk-ball
游戲在線地址:https://cxk.ssrr.one/
最后
以上就是今天所要分享的全部內(nèi)容了。
如果你覺得這篇文章對你有點(diǎn)用的話,就請為本文留個(gè)言,點(diǎn)個(gè)贊 or 在看,或者轉(zhuǎn)發(fā)一下,讓更多的朋友看到,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動力!
當(dāng)然了,如果你有挖掘到 GitHub 上關(guān)于游戲項(xiàng)目或其他類型的開源項(xiàng)目,也歡迎大家留言分享。

技術(shù)群邀請函

△掃碼添加小助手姐姐
備注:姓名/昵稱-職業(yè)-研究方向
△ 學(xué)生可加入 小詹學(xué)Python@學(xué)生專屬社群 △
