個馬賽克風格的表情正好 13Kb,有人竟然能用一個表情大小的空間,制作個游戲出來。我就不信這么點的地兒,能寫出個花來?游戲能好玩嗎?因為這些游戲點開就能玩,我抱著試一試的心態把玩了一會。
事實證明是我的無知限制了我的想象力,這些 13kB 的游戲并沒有我想的那么簡陋和無聊。它們不僅有豐富的圖像,還有音樂、物理、重力系統,包含射擊、益智、技巧等不同的類別玩法多樣,令我眼前一亮!
下面我就整理出了 3 個我覺得好玩的游戲,并附上了在線體驗的地址以及 GitHub 上的源碼。
大家先體驗一下游戲,后面我們再聊這些游戲都用到了哪些開源項目。
射擊類游戲,消滅所有敵人。通過外接手柄可進行多人游戲,最多支持 4 個人。不僅如此還有敵人和道具系統以及雨、雪、血、爆炸、武器、水等粒子系統。手機端操作需要外接手柄。
操作:
敵人類型:
試玩:https://js13kgames.com/games/space-huggers/index.html
源碼:https://github.com/KilledByAPixel/SpaceHuggers
益智類游戲,把所有塊清除則過關。
試玩:https://js13kgames.com/games/black-hole-square/index.html
源碼:https://github.com/Quinten/black-hole-square
益智類游戲,用提供的形狀拼出指定的形狀,
試玩:https://js13kgames.com/games/packabunchas/index.html
源碼:https://github.com/MattiaFortunati/packabunchas
以上這些游戲都是 2021 Js13kGames 的參賽作品,這個比賽每年舉辦一次,要求參賽者在為期 30 天的時間里用 JavaScript 做出一款體積小于 13kB 的 HTML5 游戲。
30 天用 JS 做個游戲并不難,難點在于如何讓游戲小于 13kB。壓縮游戲體積可以從以下四個方面入手:
下面介紹的這些開源項目,在 Js13kGames 很多參賽作品中都能看到它們的身影。
一個輕量級、極小(6.5kB)、容易上手的 JavaScript 游戲引擎,可用于制作 HTML5 游戲或任何 2D 動作游戲。
https://github.com/kittykatattack/ga
專注于小體積的 JavaScript 微型游戲引擎,它雖然小但是提供了游戲常用的操控、事件、循環等核心功能。
https://github.com/straker/kontra
壓縮代碼通常是減少空格和換行之類的無用內容,從而達到減少代碼所占體積的目的。
Google Closure Compiler:https://github.com/google/closure-compiler
MiniMinifier:https://github.com/xem/miniMinifier
簡單易用的在線像素圖像制作工具。
https://github.com/piskelapp/piskel
可以把音效轉化成 JavaScript 的項目,通過這種方式能夠有效地減小聲音的“體積”,還支持在線可視化的操作方式編輯和生成音效。
https://github.com/xem/miniMusic
看到這里你是不是也蠢蠢欲動地準備寫個小游戲了呢?
隨著科技的發展,存儲空間已經不再“捉襟見肘”,我們在編碼時也不用再“斤斤計較”。但如今看到有這么一群極客,在絞盡腦汁用 13kB 完成一個游戲時。我從最初的好奇和難以置信,再到看到他們的游戲和源碼后感嘆他們高超的編程技巧,最后開始反思自己在編碼時對性能和損耗方面思考的太少。感謝這些開源項目讓我大開眼界,也讓我發現了自己的不足之處。
本期推薦的開源項目代碼量不多,適合新手學習和上手游戲編程,感興趣的讀者可以試著用它們寫個小游戲。
以上就是本文的全部內容,如果你對本期推薦的開源項目感興趣歡迎點贊、轉發,讓這些優秀的開源被更多人發現和喜歡。這里是 HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。歡迎留言和我分享開源項目~
- END -
ello!這里是W3Cschool編程獅的小獅妹。
游戲開發一直以來都是編程領域中備受關注的一個重要方向。想象一下,在虛擬的游戲世界里,你可以成為超級英雄、探險家,創造自己的獨特宇宙。游戲世界無限廣闊,而成為一名游戲開發者就像是成為了這個神奇世界的創造者之一。
不過,對于編程的初學者和從業者來說,選擇適合自己的編程語言可能是一項挑戰。市場上有很多種編程語言,每一種都有自己的優缺點,那么你應該如何選擇適合游戲開發的編程語言呢?
其實,這沒有一個絕對的答案,因為不同的游戲平臺和類型可能需要不同的編程語言。但是,小獅妹可以根據一些常見的游戲平臺,給大家一些參考的建議。
首先要考慮的是游戲將在哪個平臺上運行。一般來說,游戲平臺可以分為以下三類:
PC端或主機端
如果你想開發PC端或主機端的游戲,那么你最好學習C#或C++這兩種編程語言。這是因為:
移動端Android平臺
如果你想開發移動端Android平臺的游戲,那么你最好學習Java這種編程語言。這是因為:
移動端IOS平臺
如果你想開發移動端IOS平臺的游戲,那么你最好學習Objective-C這種編程語言。這是因為:
除了上述主要語言之外,游戲開發人員可能還需要學習其他編程語言,以勝任各種工作任務。
例如:
編程語言的選擇取決于你的目標和水平,你需要根據自己的情況來做出合理的決定。一般來說,編程語言的選擇可以分為以下兩種情況:
總之,游戲開發需要用到不同的編程語言,而且沒有一種編程語言是萬能的。選擇適合自己情況和職業發展的編程語言對于游戲開發至關重要。你需要根據自己的目標和水平來選擇合適的編程語言,只有這樣,你才能做出好玩的游戲。
最近上班無聊時有事沒事喜歡下幾把象棋,當然前提是我項目都做得很好了,空閑時間才娛樂下,大家不要學我喲,玩了幾把才知道,自己有好多年沒練過了,游戲中的高手還是挺多的,畢竟這年代,還能在網上安靜的下象棋的也只有老粉絲了,今天這個中國象棋的案例,大家可以自己練習下。
這里還是要推薦下我自己建的前端學習群:204436223,不說其他的,能進我群的沒兩把刷子怎么可以呢是吧,當然小白我也非常歡迎,都是從零開始的嘛,多虛心問問題就行了,不定期分享干貨。想學到東西的都可以來,歡迎初學和進階中的小伙伴。
效果圖如下:
javascript代碼如下:
文檔版代碼請看文章第二條建議
文檔版代碼請看文章第二條建議
文檔版代碼請看文章第二條建議
有很多人或許會說,我javascript都學完了,但是自己做案例還是不會,這就和數學公式一樣,公式你都能倒背如流了,但是呢?你知道什么時候可以用到題里去嗎?你知道這個題要用哪個公式嗎?今天一位伙伴還對我說了這個問題,我反問,你有自己的項目嗎?‘沒有’。。。。
案例 到現在就寫完了,當然你如果沒有做過類似案例的做起這個來還是很麻煩的,自己要記住思路一定不要亂,也不要完全復制我的代碼,看了一邊代碼,自己徒手能寫出來才是王道。
最后給大家幾個建議。
剛學javascript的話千萬不要急著看一些復雜的javascript網頁特效的代碼,這樣只會打擊你的信心和學習的興趣
網上看到的什么十天精通javascript的,笑一下就行!
這個案例就算做完了,想要完整代碼自己練習的小伙伴進我的群自助領取,我已經上傳到群文件里了,群號:204436223,歡迎學習交流的小伙伴過來一起學習交流。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。