几个大厂小伙,有产品策划、有设计师、有程序员,合作创造游戏,48小时,能开发出什么游戏?

背景

上个周末,我们几个人,从周五晚上到周日晚上,鏖战了48h,游戏策划、游戏美术、游戏开发全都从0开始!创造了一款全新玩法的游戏,并参加了一个比赛GMTK Game Jam 2022,现在比赛已结束,参赛作品有6217个。

赛事介绍

The GMTK Game Jam is an annual game making marathon, where individuals and teams try to make a game that fits a theme, in just 48 hours.

人工翻译:GMTK Gam Jam是一个年度的游戏制作马拉松活动,个人或团队需要在仅仅48小时内制作一款符合主题的游戏。

本期主题

The theme is “Roll of the Dice”. That theme might immediately spark ideas of randomness and probability, or board games and casinos, but as always - you can interpret this theme however you like.

人工翻译:本期主题是摇骰子。这可能会让你想到随机,概率,或者桌游等等,当然你也可以按照你的方式来解读这个主题。

游戏体验地址

这是第一次参赛GMTK game jam2022,但我也不拉票了,因为注册后评分10个作品才能给任意作品评分,比较麻烦,
游戏如下,点开Dice Crush’s itch.io page 就可以玩: https://itch.io/jam/gmtk-jam-2022/rate/1622181

我也部署到了我服务器上: https://game.hullqin.cn/dice

day1凌晨:游戏思路

主题非常灵活,很容易应用到各种类型的游戏上。

思路一:只要想想现有的游戏类型,但凡是加入摇骰子随机因素,都能契合主题。例如:王者荣耀摇骰子选英雄、射击游戏摇骰子选武器、超级玛丽摇骰子选关卡等等。

思路二:思考把骰子作为核心元素的游戏。例如大富翁、飞行棋等。引入很多随机事件,但这种情况很容易造成整个游戏都是随机的,用户没有参与感。所以需要用户可以做主观的选择,影响游戏进程,获得可玩性。

上面这两种,应该是把骰子融入游戏的常见思路。但我们认为游戏是需要创新的,上面这两种思路,主要规则都是循规蹈矩,没什么新意。而我们希望创造一种具有可玩性的玩法,所以上面两种思路都pass掉了。

最终我们想到这种玩法:

灵感来源于俄罗斯方块,但是不同的玩法。设置6*10的游戏区域,每个格子放置一个骰子,每个骰子有个数字(1-6),如果横向骰子的数字加起来、或者竖向骰子的数字加起来,等于某一个数字,就可以消除掉。

大家一致认为这个玩法很不错,就朝这个方向搞了。这时候,我们花了8个小时(凌晨1点出题,凌晨3点提出该想法,早上9点达成共识)

day1上午:产品策划

我们达成共识后,2位策划同学立马一起写策划书,定了核心玩法:

这时候10点多了,程序员(我)起床了。真幸福啊,刚起床就有了策划案。

day1下午:MVP版本

作为程序员,是时候做技术选型了,今天要给大家一个MVP版本,让大家体验一下,看玩法是否要适当调整。与此同时其他同学就忙着去定美术风格、找音效、BGM了~

技术选型

因为团队有另一个开发同学,但他是算法,对JS不太了解,需要新学,所以我结论是:不用cocos creator等游戏框架、也不用React等前端框架、不用PixiJS等渲染框架。争取用原生JS实现,用dom来展示各个游戏元素,方便他也能快速看懂改代码。(因为他这周看了点原生JS做的游戏的代码)。

当然使用原生JS,也是需要编译环节的,也是需要引入类型定义的,可以大幅度提高开发效率。所以我用Vite作为打包框架。

具体怎么做?用Vite以React-ts为模板,再把React相关依赖和配置删掉即可。就可以用typescript写原生JS的代码了~

开发

这是commit记录,右侧展示了最初2个commit的文件列表:

玩法细节讨论

开发的时候,还是有些小细节之前没考虑到的,比如:

我们结论是都要消除掉。

又比如消除中间某排后,出现了空间,上面的骰子是否要落下来。作为程序员,为了给自己减少工作量,找了这种借口说服产品:

如果下落,之前的数字布局变了,有人可能按规律摆的,就乱了。如果让玩家预判消除后的连锁,这个不像对对碰,连锁很直观。我们骰子数独是不直观的。玩家这种连锁更容易靠运气、而不是实力。如果有靠实力的,那一定是非常少数了

MVP初体验

由于是MVP,所以没有引入任何音效和图片。我优先实现了核心玩法,方便给产品测试游戏可玩性。效果如下:

day2凌晨:真正的MVP

这时候,素材也基本定下来了,我把核心玩法加上了骰子素材,给大家体验。还加了一些音效。

打开体验时,纷纷觉得很好玩,很上瘾。更坚定了我们继续做的决心。

day2白天:产品与开发的冲突

产品同学疯狂画素材,一个又一个素材发群里,产品已经画了5-6个页面了:

但是我今天的工作量特别大,包括:

  • 路由逻辑要从0开发(用原生的坏处就是,没有React Router这种方便的工具了),我利用window.history手写了一个SPA。
  • 很多素材,只是作为background放上去的,距离需要手动调整。例如我需要实现一个固定比例的button,保证button和图片的尺寸一致。
  • Button的点击态、Hover态,也需要通过改background来实现。
  • 让游戏屏幕适配各种宽度高度的设备,必须自己写样式。
  • 音效播放、BGM切换,需要手动实现,我没有用其它的库。
  • 按键事件的响应,需要手动实现,我没有用其它的库。

产品同学非常NICE,当我群里提前告知做不完的「风险」后,立马跟我电话沟通,我表达了具体原因,以及提出了自己的建议:

产品交互越简单越好。我建议是开头一个首页,点击后直接选关卡,点击关卡后直接开始游戏,不再设置复杂的中间页面了。

产品同学接受了,并且按照这个思路绘制了新的原型图,给出了设计稿。

有这样的团队,体验真棒!

day2晚上:齐心协力提交

提交前还是遇到了一些问题的,比如说我用Vite打包构建后,在他们的系统上无法运行。

经过排查,发现是系统上的作品的所有资源会有前缀(https://v6p9d9t4.ssl.hwcdn.net/html/6180032/),但是我的打包构建都是绝对路径,很多资源都是/xxx路径,这样就导致404了。

解决方案

方案一:通过Vite的配置文件的target.base可以指定绝对路径前缀。但是发现每次打包后上传,资源前缀都数字都会改变,这个数字是无法预知的。只好放弃。

方案二:通过相对路径打包,调整所有静态资源的引入方式。

最终,花了半个多小时,我用方案二成功的上传了静态资源~撒花~

欢迎来玩噢:https://game.hullqin.cn/dice

我还加了贴心的功能:暂停、缓存。隐藏浏览器后,游戏暂停(并暂停BGM)。关闭页面后,记录也会保存在localStorage中,下次玩同一关卡,可以继续刷分!

昨晚我用Target=26,在飞机上玩到了11170分~你玩到多少分呢?快发游戏截图到评论区吧!

写在最后

我是HullQin,公众号【线下聚会游戏】作者,独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,绝不收费,绝无广告。喜欢可以关注我噢~喜欢可以关注我噢~我会为大家制作更多好玩的小游戏,并分享做游戏的相关技术。

我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事Game Jam相关推荐

  1. Second Dinner 工作室正与漫威合作,开发一款漫画改编游戏

    Kotaku 的资深舅舅报道说,由前炉石执行制作人朱仲英(Hamilton Chu)领衔的 Second Dinner 工作室正与漫威合作,开发一款漫画改编游戏.该工作室规模很小,但骨干成员全部来自暴 ...

  2. 设计一款免费游戏的关键设计原则

    设计一款免费游戏的关键设计原则 来自:cocoachina   17小时前  |阅读原文 我们谈论免费(free-to-play)游戏,谈的并非是一种新的类型,而是一场深刻的革命,这场革命影响到游戏产 ...

  3. 从企划到发售,我是如何在四个月内制作出一款好游戏?

    从企划到发售,我是如何在四个月内做出一款好游戏? --作者:夜星(BlueBirdStory工作室) --如果一个作品表达了所想表达的,无论表达的是故事还是游戏性,只要玩家们喜悦地接受了所表达的一切, ...

  4. Python爬虫实例:爬取 viveport 上 1406 款VR游戏信息

    这次我们准备爬取 HTC VIVE 的VR内容平台--Viveport,上面有 1406 款优质的 VR 游戏/应用,本次我们的目标就是把这些游戏的详细信息爬取下来. 首先我们去该网站看一下(http ...

  5. ARKit应用超300万次安装,排第一的是一款养成游戏

    ARKit应用中最受欢迎的依然是AR游戏. 还记得上个月苹果商店刚上新一批AR应用的时候,镁客君在公司玩了一下午.时隔一个月,应用市场研究公司Sensor Tower 最近发布了一项数据,告诉大家最受 ...

  6. 卡牌系统psv游戏推荐_索尼PSV已经凉了吗?等等,2020年六月还有一款PSV游戏发售...

    哈喽,大家好,今天给大家推荐一款单机游戏,不过这款是掌机游戏来的,还是索尼的PSV掌机游戏,这款PSV游戏掌机大家应该很了解了吧,准备停产那种,现在PSV游戏掌机已经进入末年了,想不到还有新游戏再发售 ...

  7. 如何用Unity和Cardboard做一款VR游戏

    随着Oculus宣布1月6日开启预售,2016年很可能成为VR游戏元年,但很多的调研显示,手游设备才是市场增长的关键,SuperData发布的报告显示,2016年全球VR游戏市场规模预计在51亿美元左 ...

  8. 泰拉瑞亚服务器怎么让玩家注册,上线10年,《泰拉瑞亚》为何变成了一款交友游戏?...

    <泰拉瑞亚>这款游戏,最初于2011年5月16日在PC上发行,之后也陆续登录安卓和苹果手机端,如今已走过了十个年头. 也许对于<泰拉瑞亚>部分人并不是很熟悉,但提起<我的 ...

  9. 助你快速搭配 Material Design 配色方案的10款Web工具

    在设计 Material Design 的过程中你会发现一个很大的问题,那就是如何大胆.灵活的使用色彩组合. Material Design 里的调色板工具将色彩描述为"受大胆排列色块并结合 ...

最新文章

  1. spark hbase
  2. 科普帖:Linux操作系统
  3. Visual Studio——理解多字节编码与Unicode码
  4. DCMTK:TLS测试DcmSCP和DcmSCPPool类
  5. php发送post请求方法
  6. Blazor 组件库开发指南
  7. oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南
  8. 判断给定森林中有多少棵树特别版
  9. 5.3稀疏矩阵的十字链表存储
  10. CentOS 6.4用源代码安装LNMP环境
  11. spring cloud超时时间设置
  12. paip.mysql 导入出错,提示语法错误.txt
  13. MySQL索引设计与EXPLAIN
  14. webstorm中 scss或sass配置自动编译
  15. linux glibc升级
  16. php怎么seo,怎样学习seo
  17. Cocos Creator 使用摇杆控制角色移动
  18. mysql 怎么 增加新用户名和密码_在mysql中怎么添加用户名和密码
  19. 云直播丁云鹏:最可怕的,是你低估生活的残酷
  20. TO B革命 读书笔记整理

热门文章

  1. 汽车维修企业管理【4】
  2. 如何选择云服务器配置?怎么买最划算?
  3. JavaScript一行代码
  4. 360打响数字安全第一枪?免费
  5. MySQL启动和关闭命令总结
  6. 关于[No mapping found for HTTP request with URI]的问题解决方法
  7. fastdfs外网上传不了文件的解决方案
  8. 2019蓝桥杯每周一题第二周之Mineweep(扫雷)
  9. it企业实习_it企业认知个人实习报告(范文1)
  10. 为什么程序员的工资比其他行业高这么多?