整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

好奇!仅 13kB 大小的游戏,源码长啥样?

个马赛克风格的表情正好 13Kb,有人竟然能用一个表情大小的空间,制作个游戏出来。我就不信这么点的地儿,能写出个花来?游戏能好玩吗?因为这些游戏点开就能玩,我抱着试一试的心态把玩了一会。

事实证明是我的无知限制了我的想象力,这些 13kB 的游戏并没有我想的那么简陋和无聊。它们不仅有丰富的图像,还有音乐、物理、重力系统,包含射击、益智、技巧等不同的类别玩法多样,令我眼前一亮!

下面我就整理出了 3 个我觉得好玩的游戏,并附上了在线体验的地址以及 GitHub 上的源码。

大家先体验一下游戏,后面我们再聊这些游戏都用到了哪些开源项目。

1、Space Huggers(太空保护者)

射击类游戏,消灭所有敌人。通过外接手柄可进行多人游戏,最多支持 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

2、Black Hole Square(黑洞广场)

益智类游戏,把所有块清除则过关。

  • 操作:向左划开始游戏,点击块会向箭头方向移动,块进入“黑洞”则被清除
  • 支持移动端

试玩:https://js13kgames.com/games/black-hole-square/index.html

源码:https://github.com/Quinten/black-hole-square

3、PACKABUNCHAS

益智类游戏,用提供的形状拼出指定的形状,

  • 操作:点击旋转,拖动图形
  • 支持移动端

试玩:https://js13kgames.com/games/packabunchas/index.html

源码:https://github.com/MattiaFortunati/packabunchas

Js13kGames 是什么

以上这些游戏都是 2021 Js13kGames 的参赛作品,这个比赛每年举办一次,要求参赛者在为期 30 天的时间里用 JavaScript 做出一款体积小于 13kB 的 HTML5 游戏。

30 天用 JS 做个游戏并不难,难点在于如何让游戏小于 13kB。压缩游戏体积可以从以下四个方面入手:

  • 游戏引擎
  • 压缩代码
  • 图像和声音

下面介绍的这些开源项目,在 Js13kGames 很多参赛作品中都能看到它们的身影。

Ga(游戏引擎)

一个轻量级、极小(6.5kB)、容易上手的 JavaScript 游戏引擎,可用于制作 HTML5 游戏或任何 2D 动作游戏。

https://github.com/kittykatattack/ga

Kontra(游戏引擎)

专注于小体积的 JavaScript 微型游戏引擎,它虽然小但是提供了游戏常用的操控、事件、循环等核心功能。

https://github.com/straker/kontra

压缩代码

压缩代码通常是减少空格和换行之类的无用内容,从而达到减少代码所占体积的目的。

Google Closure Compiler:https://github.com/google/closure-compiler

MiniMinifier:https://github.com/xem/miniMinifier

Piskel(图像)

简单易用的在线像素图像制作工具。

https://github.com/piskelapp/piskel

miniMusic(声音)

可以把音效转化成 JavaScript 的项目,通过这种方式能够有效地减小声音的“体积”,还支持在线可视化的操作方式编辑和生成音效。

https://github.com/xem/miniMusic


看到这里你是不是也蠢蠢欲动地准备写个小游戏了呢?

最后

随着科技的发展,存储空间已经不再“捉襟见肘”,我们在编码时也不用再“斤斤计较”。但如今看到有这么一群极客,在绞尽脑汁用 13kB 完成一个游戏时。我从最初的好奇和难以置信,再到看到他们的游戏和源码后感叹他们高超的编程技巧,最后开始反思自己在编码时对性能和损耗方面思考的太少。感谢这些开源项目让我大开眼界,也让我发现了自己的不足之处。

本期推荐的开源项目代码量不多,适合新手学习和上手游戏编程,感兴趣的读者可以试着用它们写个小游戏。

以上就是本文的全部内容,如果你对本期推荐的开源项目感兴趣欢迎点赞、转发,让这些优秀的开源被更多人发现和喜欢。这里是 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。欢迎留言和我分享开源项目~

- END -

ello!这里是W3Cschool编程狮的小狮妹。

游戏开发一直以来都是编程领域中备受关注的一个重要方向。想象一下,在虚拟的游戏世界里,你可以成为超级英雄、探险家,创造自己的独特宇宙。游戏世界无限广阔,而成为一名游戏开发者就像是成为了这个神奇世界的创造者之一。


不过,对于编程的初学者和从业者来说,选择适合自己的编程语言可能是一项挑战。市场上有很多种编程语言,每一种都有自己的优缺点,那么你应该如何选择适合游戏开发的编程语言呢?


其实,这没有一个绝对的答案,因为不同的游戏平台和类型可能需要不同的编程语言。但是,小狮妹可以根据一些常见的游戏平台,给大家一些参考的建议。


游戏平台决定编程语言的选择

首先要考虑的是游戏将在哪个平台上运行。一般来说,游戏平台可以分为以下三类:


PC端或主机端

如果你想开发PC端或主机端的游戏,那么你最好学习C#或C++这两种编程语言。这是因为:


  • C#和C++都是高性能的编程语言,可以充分利用硬件资源,提高游戏的运行速度和画面质量。


  • C#和C++都支持面向对象的编程范式,可以让你更好地组织和管理游戏的代码结构,提高代码的可读性和可维护性。


  • C#和C++都有很多成熟的游戏引擎和库,可以让你快速地开发出各种类型和风格的游戏。例如,Unity、Unreal Engine、Cocos2d-x等。


  • C#和C++都有很多参考资料和社区支持,可以让你在遇到问题时找到解决方案。


移动端Android平台

如果你想开发移动端Android平台的游戏,那么你最好学习Java这种编程语言。这是因为:


  • Java是Android平台的官方开发语言,可以直接使用Android SDK进行游戏开发,无需额外安装其他工具或环境。


  • Java是一种跨平台的编程语言,可以让你的游戏在不同的设备上运行,无需修改代码或重新编译。


  • Java是一种易学易用的编程语言,它有着简洁明了的语法和丰富的内置类库,可以让你快速地掌握基本的编程概念和技巧。


  • Java也有很多优秀的游戏引擎和库,可以让你轻松地开发出精彩的游戏。例如,LibGDX、AndEngine、Corona SDK等。


移动端IOS平台

如果你想开发移动端IOS平台的游戏,那么你最好学习Objective-C这种编程语言。这是因为:


  • Objective-C是IOS平台的原生开发语言,可以直接使用Xcode进行游戏开发,享受苹果公司提供的优质服务和资源。


  • Objective-C是一种基于C语言扩展的编程语言,它兼容C语言的所有特性,并增加了面向对象和动态特性,可以让你更灵活地设计和实现游戏功能。


  • Objective-C也有很多专业的游戏引擎和库,可以让你打造出高品质的游戏。例如,SpriteKit、Cocos2d-iphone、Unity等。


额外的编程语言

除了上述主要语言之外,游戏开发人员可能还需要学习其他编程语言,以胜任各种工作任务。


例如:


  • Lua:一种轻量级的脚本语言,可以用来编写游戏的逻辑和交互,或者作为游戏引擎的扩展语言。它有着简单的语法和高效的性能,可以让你快速地实现游戏功能。很多游戏引擎都支持Lua语言,例如,Cocos2d-x、Corona SDK、Love2D等。


  • JavaScript:一种广泛应用于网页开发的脚本语言,可以用来开发基于HTML5的网页游戏,或者作为游戏引擎的扩展语言。它有着灵活的语法和强大的功能,可以让你创建出丰富多彩的游戏效果。很多游戏引擎都支持JavaScript语言,例如,Phaser、Pixi.js、Three.js等。


  • HTML5:一种用于描述网页结构和内容的标记语言,可以用来开发跨平台的网页游戏,或者作为游戏引擎的基础技术。它有着简洁明了的标签和属性,可以让你方便地布局和显示游戏元素。很多游戏引擎都基于HTML5技术,例如,Phaser、Pixi.js、Egret Engine等。


  • Python:一种优雅易读的编程语言,可以用来开发各种类型的应用程序,包括游戏。它有着丰富的内置类库和第三方模块,可以让你轻松地实现各种功能。它也有一些专门用于游戏开发的库,例如,Pygame、Pyglet、Panda3D等。


编程语言的选择

编程语言的选择取决于你的目标和水平,你需要根据自己的情况来做出合理的决定。一般来说,编程语言的选择可以分为以下两种情况:


  • 如果你是一个初学者,想要通过学习尽可能少的编程语言来从事游戏开发,那么我建议你选择C++和Java。这两种编程语言都是非常通用和强大的编程语言,可以涵盖大部分的游戏开发需求,而且学习资源也很丰富。你可以通过学习C++来开发PC端或主机端的游戏,也可以通过学习Java来开发移动端Android平台的游戏。而且,这两种编程语言都跟Objective-C比较相似,都是在C语言基础上发展来的,所以你学习C++之后可以在短时间内掌握Objective-C,从而也可以开发移动端IOS平台的游戏。


  • 如果你是一个从业者,想要提高自己的技能和水平,那么我建议你学习多种编程语言,并根据不同的任务和需求来选择合适的编程语言。因为游戏开发是一个需要不断学习和更新的领域,因为游戏技术和市场都在快速变化,所以你需要掌握多种编程语言和工具,以及适应不同的游戏风格和类型。你可以通过学习Lua、JavaScript、HTML5、Python等编程语言来增加自己的灵活性和创造性,也可以通过学习C#、Objective-C等编程语言来增加自己的专业性和效率。


结语

总之,游戏开发需要用到不同的编程语言,而且没有一种编程语言是万能的。选择适合自己情况和职业发展的编程语言对于游戏开发至关重要。你需要根据自己的目标和水平来选择合适的编程语言,只有这样,你才能做出好玩的游戏。

最近上班无聊时有事没事喜欢下几把象棋,当然前提是我项目都做得很好了,空闲时间才娱乐下,大家不要学我哟,玩了几把才知道,自己有好多年没练过了,游戏中的高手还是挺多的,毕竟这年代,还能在网上安静的下象棋的也只有老粉丝了,今天这个中国象棋的案例,大家可以自己练习下。

这里还是要推荐下我自己建的前端学习群:204436223,不说其他的,能进我群的没两把刷子怎么可以呢是吧,当然小白我也非常欢迎,都是从零开始的嘛,多虚心问问题就行了,不定期分享干货。想学到东西的都可以来,欢迎初学和进阶中的小伙伴。

效果图如下:

javascript代码如下:

文档版代码请看文章第二条建议

文档版代码请看文章第二条建议

文档版代码请看文章第二条建议

有很多人或许会说,我javascript都学完了,但是自己做案例还是不会,这就和数学公式一样,公式你都能倒背如流了,但是呢?你知道什么时候可以用到题里去吗?你知道这个题要用哪个公式吗?今天一位伙伴还对我说了这个问题,我反问,你有自己的项目吗?‘没有’。。。。

案例 到现在就写完了,当然你如果没有做过类似案例的做起这个来还是很麻烦的,自己要记住思路一定不要乱,也不要完全复制我的代码,看了一边代码,自己徒手能写出来才是王道。

最后给大家几个建议。

  1. 刚学javascript的话千万不要急着看一些复杂的javascript网页特效的代码,这样只会打击你的信心和学习的兴趣

  2. 网上看到的什么十天精通javascript的,笑一下就行!

  3. 这个案例就算做完了,想要完整代码自己练习的小伙伴进我的群自助领取,我已经上传到群文件里了,群号:204436223,欢迎学习交流的小伙伴过来一起学习交流。

如果想看到更加系统的文章和学习方法经验可以关注我的微信公众号:‘web前端课程’关注后回复‘给我资料’可以领取一套完整的学习视频