大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员

这年头一个程序猿自己开发个小游戏已经不是啥稀罕事,前两天有一个好朋友给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获取项目开源地址,说不定明年的2022Js13kGames大赛,就能看到你的身影咯!

点击下方卡片,关注公众号“TJ君

回复“13KB”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东

往期推荐

不加班、正常双休过周末,这样的公司有没有?955企业清单大揭秘!

两款自动检测代码工具与插件,开源真香

IDEA高颜值之最吸引小姐姐插件集合!让你成为人群中最靓的那个崽!

开源低代码场景化工作台,自动给你生成代码

完善的仿京东电商开源项目

莆田系医院大揭秘!开源清单、自动提示插件,这个项目样样都有

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

  1. CocosCreator学习1:做一个简单的游戏

    把计步器写好了,到了写游戏场景.控件什么的时候,傻眼了.想做一个简单的地图,可以在地图上点击选择城市,发现用Cocos2D-X代码码出来好麻烦,尤其是城市位置问题,需要调试去找对像素区域做一个按钮控制 ...

  2. python 吧-做为IT人的你 趁年轻学点Python吧

    曾几何时,流行过这么一句话:再不疯狂我们就老了!这是青春的再召唤,还是献给青春的挽歌,个中滋味,也许只有内心自知! 在AI蓬勃发展的今天,IT巨头都在悄悄布局,做为IT人的你,是否也准备好了?虽说Py ...

  3. 增长黑盒:零代码基础做智能电商网站,不要重复发明轮子

    增长黑盒:零代码基础做智能电商网站 Step0,不破不立,走上增长黑客之路   很多卖货的人最大的问题就是整个团队没有一个懂代码的,更不懂电商网站制作.此时贸然出去外包一个电商网站,问题可能会越来越多 ...

  4. 请不要做浮躁的人——转给即将上路或者正在路上的程序员朋友

    说明:这是一篇long long ago发表的文章,原文是一篇讲述设计的文章,被作者改成如何学习编程的文章,当年看这篇文章的之前我也曾浮躁过,看过之后有过很多思考和反思,今天无意中又看到这篇文章,觉得 ...

  5. 【收藏】请不要做浮躁的人

    努力的活着,希望不变成pig...... 1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么.当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异. 2.初学者请不要看太多太多的 ...

  6. 写给想要做自动化测试的人

    接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人. 本人从事软件自动化测试已经近5年,从server端到web端,从API到mobile,切身体会到自动 ...

  7. 请不要做浮躁的人!(转载自勉)

    1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么.当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异. 2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人 ...

  8. 什么是超链接:下划线、样式、字体颜色、代码怎么做?

    在我们平常优化工作当中,少不了做超链接,包括网站内部链接和外部推广链接,但是我们很多人却不知道真正的该如何去真正的把网站超链接做到极致,特别是对网站优化也好,还是推广转化方面其实都没有做到位.那么接下 ...

  9. 让你的代码只做一件事情

    还记得周星驰主演的电影<国产凌凌漆>有一段让人捧腹的情节, 在凌凌漆和司令对战时刻, 达文西半路杀了出来, 扬言要让司令尝一下他新发明的集10种致命武器于一身的「要你命3000」的威力, ...

最新文章

  1. 半平面交比较好的博客
  2. java 集成grizzly_java – 与Jersey和Spring集成Grizzly2.2.X
  3. UNP Chapter 9 - 基本名字与地址转换
  4. linux脚本实现scp命令自动输入密码和yes/no等确认信息
  5. MongoDB在不同主机间复制数据库和集合的教程_MongoDB_脚本之家
  6. KAFKA 最新版 单机安装、配置、部署(linux环境)
  7. 从SQL过渡至MongoDB查询对照表
  8. Model1和Model2区别
  9. 颜宁追问4位男科学家:如何平衡事业和家庭?
  10. LINUX虚拟机安装增强功能时报错: Kernel headers not found for target kernel. Please install them and execute
  11. 海康摄像头SDK跨平台通用解决方案
  12. 使用wps把word格式文件转换成pdf文件
  13. 卡方检验的统计量推导_如何通俗的理解A / B测试与卡方检验
  14. CS5211替代LT7211B参数特性与优势|DP转LVDS方案
  15. firefox火狐同步windows和linux书签
  16. Python求积分(定积分)
  17. “云安全+云保护” 谜团技术解析
  18. mysql锁机制——乐观锁、悲观锁;共享锁、排他锁、行表锁、间隔后码锁、MVCC 与 thinkphp的lock解析
  19. EditText相关设置
  20. A example of Maximum A Posteriori (MAP) estimation

热门文章

  1. 折腾的人生......
  2. Android 4.0的图形硬件加速及绘制技巧
  3. SOA也是一种设计模式
  4. mysql 排序 简介
  5. ssh错误 server not ready for puppeth err=“ssh: handshake failed: ssh: unable to authenticate... 解决方法
  6. python3 selenium 无头浏览器 错误 FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
  7. linux c 宏 LONG_MAX LLONG_MAX
  8. 谷歌浏览器chrome 清除记住密码
  9. linux 内核加载错误 Invalid module format
  10. 把C++类成员方法直接作为线程回调函数