网站首页 > 技术文章 正文
当然要把老游戏修复好了,才能再去干别的呀。
也许你已经意识到了,随着存储和图形技术的发展,游戏、电影等数字文件的体积在变得越来越大。
最新的3A游戏动辄需要占用几十GB的硬盘,最近有消息传出,《最后生还者 第二章》的内容太多以至于需要两张蓝光光盘才能装下。
我们日常的存储单位也逐渐从MB和GB发展到了TB。
1KB的数据对于现代人来说和1分钱人民币差不多,基本已经失去了实用价值。
然而有些人却偏偏不这么认为,外国就有一个名叫JS13kGames的HTML5游戏开发比赛,参加这个比赛有一个硬性的条件,那就是游戏大小不能超过13KB。
参赛游戏必须是离线游玩,不可以使用外部存储和服务器,游戏所用到的文件都需要算在13Kb的限制中。
13KB有多小?举个例子,本文的word文档大小是5.26MB,足足比它大400多倍。
而在这样的限制下开发一款游戏,对于开发者来说是一个巨大的挑战,但同时也是乐趣所在。
如果让你想象一款只有13KB大小的游戏是什么样,你可能会觉得是《Pong》《俄罗斯方块》那种极其简单的感觉。但看过JS13kGames上面的作品后,你一定会大吃一惊。
即使在这样严苛的规则下,依然有很多制作者作出了相应不错的作品,而且种类繁多、各不相同。
比如《Exo》是一款太空题材的塔防游戏,玩家通过建造卫星、炮塔等设施来保护星球。游戏中生产、建筑功能,一应俱全,甚至还有完整、可交互的教程。
在星球的不同轨道采集资源、同时建造防御设施,新建造的设施会跟着星球一起自转和公转,镜头可以缩进看到每个设施的细节,也能拉远俯视整个星系。这样的细节让你很难相信这是一个只有13KB的游戏,感觉完全可以成为一款正常发行的作品。
《Re-wire》则是一款很有创意的解谜游戏。
采用的是很经典的连接电路的解谜设定,但增加了一些新的创意。玩家需要牵扯电线绕过全部的节点,最终到达终点才算获胜,同时电线不能够相互交叉。游戏中还有锯子和绝缘体等障碍让玩法更加的丰富。
游戏画面简单但并不廉价,而绕线的感觉也相当的扎实。
《The Chroma Incident》看起来就像是低像素版的《挺进地牢》。这是一款双摇杆俯视角射击游戏,和《挺进地牢》不同,玩家并不是拣拾不同的枪械,而是触动场景中的机关让地板变色,站在不同颜色的地板上就会发出不同子弹。有趣的是,有时候两种特定的颜色交叉时还会混成新的颜色。
除了新奇的玩法外,游戏的手感、音效、音乐、特效,都做得很棒,甚至还支持手柄。有一位评委点评说,这是很多有着100M容量的游戏都达不到的水平。
还有人居然用13KB作出了一个完整的即时战略游戏,在《Voidcall》里包含了RTS游戏的主要功能,玩家可以控制单位采集资源和建造建筑,搭配兵种、编队战斗,而且人物和场景均是3D建模的。
作者说13K比赛对于RTS尤其困难,因为要实现游戏基本的功能和指令就需要不少的编码,因此他只能想办法缩减一些功能,比如玩家不能指定攻击某个单位,系统会自动选择距离最近的单位进行攻击。
但即使如此,最终的作品依然是可以接受的,如果考虑它的大小只有13K,甚至可以用惊艳来形容。
以上这些游戏还只是冰山一角,从2012年开办以来,每年都有上百个作品参加13K比赛,有趣、大胆的游戏比比皆是。
比赛的组织者Andrzej Mazur本身也是个游戏开发者,他认为这是一项相当有意义的比赛。
“制约往往能够激发人的创意,因为游戏大小的限制,你不能什么都做,必须仔细地思考和布局。因为有截止日期,意味着你必须那此之前完成工作,学会如何管理一个项目。”
JS13kGames很好的展示了开发者的潜力和可能性。13KB的大小限制,去掉了图像的包裹,省略了内容的堆叠,剩下的是纯粹的创意。
猜你喜欢
- 2025-08-31 3种方式让WebAssembly与JavaScript飞起来!性能提升300%的实战
- 2025-08-31 TypeScript实现八大排序与搜索算法
- 2025-08-31 Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
- 2025-08-31 在 Java 代码中来一段 JavaScript?聊聊 Flowable 中的脚本任务
- 2025-08-31 编译原理在程序设计中的应用_编译原理在程序设计中的应用有哪些
- 2025-05-27 玩转JavaScript OOP[02]--类的实现
- 2025-05-27 java高级用法之:在JNA中将本地方法映射到JAVA代码中
- 2025-05-27 Node.js与C++:napi调用JavaScript回调函数
- 2025-05-27 1小时打造HaaS版小小蛮驴智能车
- 2025-05-27 easyui datagrid 查询会触发onUncheck问题
- 最近发表
-
- 用Cursor开启JAVA+AI生涯_javascirpt怎么开启
- 大数据调度服务监控平台_大数据调度是什么意思
- SpringBoot、MyBatis、Vue搭建一个Java企业应用开源框架源码分享
- 大数据技术之Flume_大数据volume的含义
- Jenkins运维之路(Slave容器节点)_jenkins slave工作原理
- 程序员自救指南:IDEA 卡成狗?我的 9G 堆内存调参表让你起飞 附避坑
- JMeter:一个简单的测试计划怎么做?
- Windows 命令行终端 PowerShell 美化计划
- JDK25即将发布!新特性概览_jdk52.0
- JDK 25 新特性极简总结(2025 年 9 月 16 日发布,LTS 长期支持)
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)