天天看點

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

這個馬賽克風格的表情正好 13kb,有人竟然能用一個表情大小的空間,制作個遊戲出來。我就不信這麼點的地兒,能寫出個花來?遊戲能好玩嗎?因為這些遊戲點開就能玩,我抱着試一試的心态把玩了一會。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

事實證明是我的無知限制了我的想象力,這些 13kb 的遊戲并沒有我想的那麼簡陋和無聊。它們不僅有豐富的圖像,還有音樂、實體、重力系統,包含射擊、益智、技巧等不同的類别玩法多樣,令我眼前一亮!

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

下面我就整理出了 3 個我覺得好玩的遊戲,并附上了線上體驗的位址以及 github 上的源碼。

大家先體驗一下遊戲,後面我們再聊這些遊戲都用到了哪些開源項目。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

射擊類遊戲,消滅所有敵人。通過外接搖桿可進行多人遊戲,最多支援 4 個人。不僅如此還有敵人和道具系統以及雨、雪、血、爆炸、武器、水等粒子系統。手機端操作需要外接搖桿。

操作:

wasd 或方向鍵:移動、跳躍和攀爬

z 或左鍵單擊:射擊,大多數東西會破裂,有些會燃燒

x 或中鍵:滾動,短暫的無敵狀态,還可滅火

c 或右鍵單擊:手榴彈,每條命有 3 個

還可最多連接配接 4 個進行合作遊戲!

敵人類型:

新兵(綠色):遲鈍,隻需要 1 擊

士兵(藍色):正常的速度,需要 2 次攻擊

船長(紅色):可以更頻繁地爬牆和跳躍,需要 3 次攻擊

專家(白色):經常跳躍和滾動,需要 4 次攻擊

爆破專家(紫色):投擲手榴彈且不會着火,需要 5 次命中

試玩:​​https://js13kgames.com/games/space-huggers/index.html​​ 源碼:​​https://github.com/killedbyapixel/spacehuggers​​
好奇!僅 13kB 大小的遊戲,源碼長啥樣?

益智類遊戲,把所有塊清除則過關。

操作:向左劃開始遊戲,點選塊會向箭頭方向移動,塊進入“黑洞”則被清除

支援移動端

試玩:​​https://js13kgames.com/games/black-hole-square/index.html​​ 源碼:​​https://github.com/quinten/black-hole-square​​
好奇!僅 13kB 大小的遊戲,源碼長啥樣?

益智類遊戲,用提供的形狀拼出指定的形狀,

操作:點選旋轉,拖動圖形

試玩:​​https://js13kgames.com/games/packabunchas/index.html​​ 源碼:​​https://github.com/mattiafortunati/packabunchas​​
好奇!僅 13kB 大小的遊戲,源碼長啥樣?

以上這些遊戲都是 2021 js13kgames 的參賽作品,這個比賽每年舉辦一次,要求參賽者在為期 30 天的時間裡用 javascript 做出一款體積小于 13kb 的 html5 遊戲。30 天用 js 做個遊戲并不難,難點在于如何讓遊戲小于 13kb。

壓縮遊戲體積可以從以下四個方面入手:

遊戲引擎

壓縮代碼

圖像和聲音

下面介紹的這些開源項目,在 js13kgames 很多參賽作品中都能看到它們的身影。

一個輕量級、極小(6.5kb)、容易上手的 javascript 遊戲引擎,可用于制作 html5 遊戲或任何 2d 動作遊戲。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?
​​https://github.com/kittykatattack/ga​​

專注于小體積的 javascript 微型遊戲引擎,它雖然小但是提供了遊戲常用的操控、事件、循環等核心功能。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?
​​https://github.com/straker/kontra​​

壓縮代碼通常是減少空格和換行之類的無用内容,進而達到減少代碼所占體積的目的。

google closure compiler:​​https://github.com/google/closure-compiler​​ miniminifier:​​https://github.com/xem/miniminifier​​

簡單易用的線上像素圖像制作工具。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?
​​https://github.com/piskelapp/piskel​​

可以把音效轉化成 javascript 的項目,通過這種方式能夠有效地減小聲音的“體積”,還支援線上可視化的操作方式編輯和生成音效。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?
​​https://github.com/xem/minimusic​​

看到這裡你是不是也蠢蠢欲動地準備寫個小遊戲了呢?

随着科技的發展,存儲空間已經不再“捉襟見肘”,我們在編碼時也不用“斤斤計較”。但如今看到有這麼一群極客,在絞盡腦汁用 13kb 完成一個遊戲時。我從最初的好奇和難以置信,再到看到他們的遊戲和源碼後感歎他們高超的程式設計技巧,最後開始反思自己在編碼時對性能和損耗方面思考的太少。感謝這些開源項目讓我大開眼界,也讓我發現了自己的不足之處。

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

本期推薦的開源項目代碼量不多,适合新手學習和上手遊戲程式設計,感興趣的讀者可以試着用它們寫個小遊戲。

以上就是本文的全部内容,如果你對本期推薦的開源項目感興趣歡迎點贊、轉發,讓這些優秀的開源被更多人發現和喜歡。這裡是 hellogithub 分享 github 上有趣、入門級的開源項目。歡迎留言和我分享開源項目~

​​https://github.com/521xueweihan/hellogithub​​

作者:削微寒

好奇!僅 13kB 大小的遊戲,源碼長啥樣?

繼續閱讀