13KB的代码能做什么?有些人可是弄出了一个完整的游戏!

【福利】设计模式学习笔记,点击领取

这年头一个程序猿自己开发个小游戏已经不是啥稀罕事,前两天有一个好朋友给TJ君介绍了一款游戏,像素级的,通过键盘操作,有简单的武器系统及多人模式,看上去也算满精致的,TJ君先放一段自己试玩的动图给大伙瞅瞅:

这款可爱游戏的名字叫做Space Huggers,游戏有不同的关卡,不同的士兵及对应的攻击效果,整体感觉呢是中规中矩,小伙伴们肯定要奇怪了,难道今天TJ君要推荐的就是这款游戏吗?好像。。。太平平无奇了点吧。

的确,这款游戏估计对于一些资深的程序猿来说并不是很难得事情,但这款游戏的特点是在于他的大小

你敢想象这款看上去基本游戏功能都完备的游戏,整体容量只有13KB吗?

对的你没看错,是13KB,不是MB不是GB,是KB!

现在的游戏随着技术的发展动不动就是几十G,前段时间的仙剑7,TJ君买了一个,安装完大概70G的容量吧。

虽然说是像素级别的游戏,但是往往也是几百几十MB,13KB?小伙伴们你们多久没下载一张只有13KB的图片了?更别提这13KB里面要完成各种音效、物理效果、重力系统、敌人系统、生命系统,让玩家还能玩的津津有味?

网上常看到有人说 贫穷限制了我的想象力,TJ君只想说技术限制了我的想象力。。。

毕竟自己做不到不代表别人做不到,对吧?像这样只有13KB大小却能好好玩一番的游戏不止这一个,小伙伴们肯定要奇怪了,怎么大伙都说好了吗?看谁的游戏做的更小?

这么想的小伙伴,恭喜你答对了!其实上面这款游戏来自于2021Js13kGames大赛,这个大赛每年都会举办一次,至今已经举办了10次,参赛要求很简单,只要你能在规定时间内用JavaScript做出一款不大于13KB的HTML游戏即可!

嗯嗯,上面这个看着还不错的游戏,可是全都是用JavaScript写的哦!想想自己的JavaScript水平,写出来的东西的效果及大小,再看看别人家的,TJ君真是无地自容。。。

关于这个大赛,TJ君觉得难点就在于游戏的大小,举办者肯定也是希望参赛者能挑战自己的极限,把大小定在13KB这样一个上世纪的大小,要知道,一个FC游戏的ROM,可能都要比这个大,看看FC上超级马里奥大小:

所以对于参赛者来说,也是对自身开发水平的一次极致提炼,TJ君看下来,参赛者往往在以下几个方面进行游戏体积的压缩:

画面

首当其中的,肯定就是游戏画面了,13KB的游戏,基本都是像素或者简单的图片组成的游戏了,比如参赛者会用一些在线的像素图像制造工具,制造自己需要的素材。

声音

画面之后,自然是对声音的处理,一个没有背景音效的游戏难以被称之为一个好的游戏,但是如果需要各种音轨又会徒增游戏的容量,所以同样的,参赛者会找一些可以在线生成简单音效并转化为JavaScript语言的工具,尽量让自己的作品的音效简单而又好听。

引擎

解决了画面和声音之后,就要考虑游戏引擎的问题了,所幸业界专门有一些轻量级的注重小体积的游戏引擎,能满足游戏世界基本的使用需要

除了上述这些方面,开发者还需要关注自己的代码有没有换行之类无用的代码内容,毕竟在13KB面前,要节省一切能节省的空间。

看完这些令人乍舌的方方面面,TJ君也对自己平时编码过程中一些习惯进行了思考,或许在我们平常的开发过程中,对于空间的损耗不需要像这些开发者这样极致的节省,但TJ君觉得平时编写的代码中可以改进的地方还是有不少的。

想更多的了解下这款游戏的源码,想看下到底13KB包含了哪些代码语句的,或者想知道更多其他13KB游戏吗?

扫描下方二维码,关注公众号“TJ君”,回复“13KB”,获取仓库地址!