个马赛克风格的表情正好 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小时内与您取得联系。