国补之后到底有没有便宜?
主要是大家电 2024 年 9 月突然来了个国补,当时也不明白是个啥,等到我反应过来想去买的时候( 12 月),发现好像价格也没便宜啊?无良商家先涨价再国补? 说是 2024 年 12 月结束就没有国补了,这两天又看到淘宝上已经开始 2025 国补了
主要是大家电 2024 年 9 月突然来了个国补,当时也不明白是个啥,等到我反应过来想去买的时候( 12 月),发现好像价格也没便宜啊?无良商家先涨价再国补? 说是 2024 年 12 月结束就没有国补了,这两天又看到淘宝上已经开始 2025 国补了
多补充维 c ,蛋白? 多休息还是也需要活动活动?
我尝试了多种赚取外快(所谓副业)的方式:做站长接流量主广告、有偿答疑、开知识星球、写专栏、做视频教程、卖软件、基金股票、做公众号接商单推广,甚至还参加过喜马拉雅的配音培训、帆书的社群运营师培训。
说实话,大部分都赚不到钱(当然也可能是我的操作水平不行),少部分赚辛苦钱,比如有偿答疑远程帮别人解决问题、开知识星球,这部分总共也就赚了几千块钱,还不如捐给腾讯公益的多。长期赚钱的是极客时间的专栏(我曾经写过一个《运维监控系统实战笔记》的专栏)和公众号偶尔的商单,这俩加起来平均每月也就是千八百块的。算是较稳定收入。基金股票就是一年挣钱一年亏钱,最近改成长期持有银行股稍微好了点。
不知道 V 友们都是怎么赚外快的?大家觉得哪种方式靠谱?亦或,还不如把时间花在提升工作技能上,老老实实谋个工作岗位,时间投入的性价比反而更高?
每一个游戏玩家心中, 都有一个自己做一款游戏的梦, 费劲千辛万苦后, 我成功制作了一款独立游戏并在 2025 年 1 月 1 日上架了 Steam.
本文既是对这个过程的一种纪念, 也是对游戏制作这个话题留下一些自己的思考和总结, 如果能让后来者少踩几个坑, 就更好了.
我将按时间线索将整个游戏制作和发行过程展现出来, 文章较长, 感谢你的耐心阅读.
我是一个 80 后, 在 90 年代伴随着电子游戏成长起来的一代人, 在读书的时候曾经有一段时间沉迷游戏, 玩三国志和文明系列玩到深夜.
我父亲实在看不下去了, 对我说了一句话: "玩游戏厉害算什么, 有本事自己做一个啊", 当时还小, 也没有能力制作一款游戏, 可能是年少时的那种不服气吧, 这句话我就一直记在了心里.
后来参加工作了, 和大多数社畜一样, 每天累得跟狗一样, 回家就只想躺着休息, 连打开电脑玩一把游戏的兴趣都没有了.
2018 年下半年, Steam 上的独立游戏中国式家长火热, 我正好也玩到了这款游戏, 并向我的朋友推荐了它.
然后在 2019 年春天, 我晚上加班加得心烦意乱, 工作堆积如山, 一眼瞥见了加班了一小会儿就想溜的胡大胖同学, 我说: "你陪我加班吧, 我做完这点事情, 我们就玩暗月来袭", 然后胡大胖同意了.
暗月来袭是当时很火的一款 DOTA2 地图, 我们之前从来没有通关过, 就在那个晚上, 我们打到了历史最佳记录-倒数第二关.
然后在黎明到来前, 胡大胖说:
"加班其实是有一定概率猝死的"
我说:
"要不我们做一款游戏吧, 就叫**中国式加班**"
胡大胖表示同意, 然后我们一起构思了这么一个特别的游戏, 当时胡大胖还并不知道, 他将是这个加班游戏的主角原型.
所以在 2019 年五月, 我初始化了这个游戏项目的 Git 仓库.
虽然对制作游戏一无所知, 但是我知道很多游戏引擎, 比如 rpgmaker,cocos2d,unity,虚幻 3, 当时实在没有心思再投入时间学习这些引擎.
所以我就在想, 能不能用我现有的技术栈来做这个游戏?
我就决定先用前端(Vue)+Electron 先做一个 DEMO 出来.
然后 DEMO 很快就出来了, 它大概长这个样子:
点击新建游戏后出现几个对话, 就这么简单.
懵懂间, 我意识到了自己需要制作一个游戏脚本引擎系统,不过作为一个 DEMO ,我还没有把脚本引擎添加进来。
一切似乎都很顺利, 然后我开始盘算我还需要什么东西才能完成这个游戏, 很明显, 我需要 2D 美术资源用来表达人物立绘和场景, 需要有音效和背景音乐.
我决定先从最简单的音效和背景音乐开始, 音效在网上免费可商用的很多, 背景音乐我选择直接从 audiojungle 购买, 总共花了 800 人民币左右.
然后是美术资源, 我从淘宝上找了一个画手来绘图, 当时想得很好, 一边制作游戏, 一边按照规划输出美术资源.
我当时是以 200 一张的价格向画手定制的, 我们很快敲定并输出了基础的 UI 图.
在输出场景和人物图时, 我和画手都付出了相当大的代价.
当时我们输出一张图需要以下几个流程:
我文字描述想要的场景/人物特色, 尽可能地详细, 并配上例图
画师制作线稿
我和画师敲定线稿, 如果和我的想法有偏差, 会对线稿进行调整
画师细化线稿并上色
画师根据我的反馈, 对成品进行优化和调整
刚开始还不觉得, 但是后来我发现, 这样出一张图的实在是太大大大大大大啦!
当时我们做了一些这样的图:
![贴图]( https://hhacker.com/wp-content/uploads/2025/01/小型公司 1.png)
然后我意识到这样一个问题, 我根本没有足够的资源去得到这些我想要的美术素材, 所以在付出了 8700 元之后, 我选择了将这个项目封存, 不再继续.
不管是时间成本还是金钱成本, 都不是当时的我能够承受得了的.
就这样又过了几年, 我时不时还想起这个游戏项目来, 带着深深地遗憾, 因为我从来不是一个喜欢烂尾的人, 但是人到中年, 也学会了接受很多的客观现实.
转机出现在 2022 年, stable diffusion 横空出世, 同年 12 月, chatgpt 正式上线, 我很快意识到, 也许我现在有机会完成中国式加班了.
在研究了 sd 很久之后, 我确信这个东西生成的图片即便存在这样或那样的瑕疵, 但却是我唯一能够低成本获得 2D 美术资源的方法.
于是我决定重启中国式加班项目.
重启的第一件事, 我决定制作一个路线图表格, 这是这个表格在游戏最终完成后的样子:
我决心按照这个表格严格执行,立马开始了游戏玩法设定的工作。
在设计玩法时,我考虑到了自己的精力有限,所以把整个游戏的玩法设定得特别简单,心里想着玩法的短板可以用丰富的剧情去补充,游戏类型确定为SLG 模拟经营。
其实对于独立游戏而言,剧情代表着巨大的工作量,不过对于当时的我而言,并没有这种认知。
我用自学不到一个星期的 Adobe XD 尝试制作了这样一个原型,以下是抽取的几张原型图片:
这个原型很粗糙,它的最大的价值就是把我脑海里这个游戏的样子用图片的形式展现出来,并且我知道后续原型里这些设定不会有特别大的改动了。
我还需要彻底解决美术素材的问题,所以我特意购买了一台电脑,因为预算有限,显卡是用的 4060Ti 。
然后我开始尝试使用 sd 进行 AI 出图,在这个过程中,我遇到的最大的问题是,如何保持人物/场景风格的一致性,想了很多办法,最终采用的是在 prompt 前置风格描述的方式。
最开始的时候,我是把出图 prompt 用中文描述出来,再用 DeepL 翻译为英文,最后在 sd 里炼丹出图。
但是这种方式有个弊端,对 prompt 的要求非常高,写 prompt 也不是一件容易的事,然后我想了个办法,让 Chatgpt 去帮我写 sd 的 prompt ,Claude 出来之后我就把 Chatgpt 换成了 Claude 。
AI 写的 prompt 非常详细,sd 也能更好的理解 prompt ,但是仍有一个问题,就是无法生成同一场景或人物的细微变化,比如一个人在不更换服装和发型的情况下,要出一张不同动作的图,这就很难,即便我用了 ControlNet 去约束,新出来的图,在服装或发型上,总有些细微的差别,无法做到一致性。
所以我干脆放弃了人物立绘的动作多样化,直接一个人物一张图用到大结局,这样就简单多了。
解决了美术素材的问题,我开始从 0 研发一个简单的游戏引擎,说是引擎,但其实最核心的部分只有一个,就是游戏事件脚本引擎,因为整个游戏都是以事件驱动的。
很快我就构建好了事件脚本系统, 我把事件脚本分为两部分, 一部分是事件条件, 一部分是事件内容, 我把它们都写入一个 Sqlite 数据库中, Sqlite 的数据库其实就是一个文件, 也比较简单且易于管理.
事件条件主要就是人物的一些属性和时间/前置任务等等, 单独使用了一张表保存.
事件内容要稍微复杂一些, 我基于 Markdown 设计了它的基础语法, 最终看起来是这样的:
1. 对话
新垣结衣: 今天我带着**里美酱**一起来的噢.
2. 场景切换
<帝企鹅大楼 3301>
<过场场景>$ /* 隐藏 UI */
<游戏结束>+ /* 直接切换 */
<> /*空场景, 延迟事件执行 1s*/
3. 定义分支
# 相信陌生人
陌生人:你好,我是陌生人.
4. 选项跳转分支
1. 要相信他吗?@相信陌生人
2. 不相信他!@不相信陌生人
3. (角色属性.幸运 > 80) ? 我想赌一把 @相信陌生人
5. 场景加载/取消 NPC
* NPC1
* NPC2
~ NPC3
6. 跳转分支
(角色属性.上级满意度 < 20) ? @条件跳转某分支
(角色属性.名字 == "新垣结衣") ? @条件跳转某分支
(系统属性.随机数 < 0.7) ? @随机跳转某分支 /* 70%概率*/ @直接跳转某分支 7. 画外音 > 平等地剥削劳动力,是资本的首要的人权。
8. 提示
[**里美酱**对你的好感度提升了]+
[你受到了暴击伤害]-
9. 属性修改
(系统属性.某角色 = 解锁)
(角色属性.精神上限 = $ + 100)
(角色属性.底层螺丝钉 = 已激活 @3 天)
(角色属性.休息日 23 点 = 睡觉*) /* 带*号为锁定卡牌 */
10. 播放音乐
{平静 1.mp3}
然后我再根据事件脚本的语法去实现整个游戏引擎, 当时为了学点新东西, 放弃了第一个 DEMO 时使用的 Vue, 转而使用了 React.
其实我对 React 一无所知, 但是好在有 Github copilot 的帮助, 很快就上手了
整个游戏引擎前后耗时约 6 个月, 然后我用这个引擎又做了一个 DEMO 版本, 以测试事件脚本引擎能否正确运行.
结果很幸运, 它真的可以运行起来.
然后我兴高采烈地开始写游戏大纲, 包括游戏背景大纲和游玩角色大纲, 当时计划的游玩角色总共有四个, 分别是胡图巴(倔强的韭菜),肖望荣(中年悲歌),孙西里(小目标),赵浩(拖延症患者的梦), 第三个角色赵浩其实就是以我自己为原型设计的.
大纲写好以后我开始按照原定计划为每一个角色剧本写配套的小说, 第一个角色胡图巴的配套小说写了几万字后, 我突然感觉, 这东西写不完了.
人这种生物一旦在付出努力未能实时获得反馈时, 就会变得极其懒惰.
我也是这样, 我就在步子迈大了小说完不成了和我再抽点时间写写之间反复徘徊.
最终进度非常缓慢.
后来有一天我实在忍不了了, 我就想, 这个小说真的是有必要的吗?
我是在做游戏, 又不是在写小说.
所以我干脆把整个小说系统在游戏里给去掉了, 去掉之后浑身舒坦, 游戏研发进度飞速发展.
经过了一段时间剧情脚本编写之后, 我又开始偷懒了, 因为我感觉自己的的确确没有享受做游戏这种事.
做游戏和玩游戏完全不一样, 做游戏不止很困难, 并且你获取不到玩游戏的那种快乐, 也就是在游戏交付测试之前, 你基本得不到什么正向的反馈.
然后我在做加班游戏的时候开始摸鱼.
这一摸又是很久, 久到我自己都受不了了, 我打开手机写下了这样几段话:
中国式加班从去年到今年已经两年了还没完成,需要进行反思和总结,找到加快开发进度的方法。
## 原因
1. 惰性
人总是趋向于做容易的事,容易取得成就感的事,所以把空闲时间大量花在了看视频玩游戏上
2. 难以进入心流
开发过程中无法全神贯注,并且不享受游戏开发的过程,创作和和玩游戏的感觉完全不一样,无法受到实时激励
3. 没有紧迫感,没有计划
整个事情没有时间节点的压力,现在时间比较充足,也没有经济上的压力,就无法高效地推进任务
## 解决方法
1. 加长那些简单获取多巴胺的事项的路径
比如删除游戏,限制抖音等 app 的使用时间,解放碎片时间,使得专注时间更长
2. 设定截止日期和任务计划
每天回顾这个计划并坚定按照计划的时间和工作量去推进,尽可能的分解大的任务为小的任务
3. 让创作的过程变得更有趣
让创作游戏脚本的过程更简单并且更有趣,甚至像玩游戏一样去做游戏,或者边做边玩
4. 将做游戏这个事放入重要且紧急的象限里
放弃对部分品质和细节的追求,尤其是场景图和人物图等资源的生成,把做游戏这件事设定为目前最重要且需要快速完成的事,放弃对销售量的预期,只专心到“完成它”这一件事上,哪怕因为过于粗糙导致最终玩家评价不好,至少这件事我“完成了”,也许有瑕疵,也许压根就不好玩,但是“完成了”对我而言就很有意义
5. 使用合作的力量,引入其他人参与,以更多的空间力量去执行任务
6. 把路线图表格保持打开状态,随时提醒自己,根据进度更新路线图,预计好工期
这样游戏的研发进度再一次飞速推进, 到了接近胡图巴的游戏大纲中最后一段主线剧情时, 我又陷入了畏难情绪中.
我一想到就算这个做完了, 还有 3 个游戏角色要做, 我就浑身难受, 觉得根本完不成了.
然后我找胡大胖吐槽, 说做游戏好难啊, 胡大胖说, 那你就做简单一点啊, 先做出来再说.
我想了想, 要怎么才能加快整体的进度呢? 要不直接减少可游玩的角色吧.
然后我就把除了胡图巴之外的其他三个角色都给删掉了.
这下进度条狂奔, 直接到了 90%.
然后我开始赶工, 只以完全主线剧情为唯一目标, 原本计划了很多的分支剧情, 不想做就不做了吧.
就这样游戏主体很快就完成了.
给游戏设置背景音乐的时候, 我一开始仍然是使用的几年前购买的音乐素材包, 后来一想, 时代已经变了, 为什么不用 AI 来生成游戏的背景音乐呢?
说干就干, 我注册并购买了 Suno 的会员, 花费 10$, 然后生成了乐器伴奏的纯音乐作为游戏的背景音乐.
后来我想, 要不要在游戏的主菜单界面放一首人声的主题曲呢?
我觉得这个主意很棒,并且很简单, 成本又低, 因为 Suno 刚好也支持生成人声的歌曲, 于是我开始写歌词.
一开始的时候想让 claude 帮我写一首押韵的歌词, 但是 AI 生成的歌词达不到我预期的效果.
于是我决定自己写一首歌, 歌名就叫《天命打工人》, 最终完成的歌词如下:
verse 1:
清早闹钟又响起
地铁里面深呼吸
打卡上班很着急
工作已在等着你
chorus:
九九六, 九九六
熬夜加班伤身体
零零七, 零零七
摸鱼才是硬道理
九九六, 九九六
咖啡续命撑到底
零零七, 零零七
我要变成万人敌
verse 2:
这个需求很简单
怎么实现我不管
老板画饼要吃饱
生活娱乐全扔掉
chorus:
九九六, 九九六
熬夜加班伤身体
零零七, 零零七
摸鱼才是硬道理
九九六, 九九六
咖啡续命撑到底
零零七, 零零七
我要变成万人敌
bridge:
打工人, 打工魂
打工人打开一张门
打工实在太费神
打工人要做人上人
verse 3:
凌晨四点的夜光
照亮回家的方向
忘了加班的烦恼
生活多一点希望
ending:
九九六, 九九六
熬夜加班伤身体
零零七, 零零七
摸鱼才是硬道理
九九六, 九九六
咖啡续命撑到底
零零七, 零零七
我要变成万人敌
当我用 Suno 生成歌曲时, 意外出现了, Suno 生成的中文人声歌曲总是有部分吐词不清楚, 而且有一些词会怪异地使用粤语的发音(推测 Suno 使用了很多粤语歌曲进行训练), 不管我怎么调整都没有用, 我甚至用带声调的拼音作为歌词放 Suno 里生成, 也还是不行.
然后我想, 外国的月亮也不圆, 我们国内有没有同类的 AI 音乐网站呢?
欸, 还真让我找到了, 就是国内的海绵音乐(字节系), 我用同样的歌词贴进海绵音乐了, 不到 5 分钟我就得到了发音清楚的摇滚音乐, 虽然海绵音乐生成的音乐没有 Suno 那么音色饱满且充满细节, 但是胜在发音清楚, 让人有听下去的欲望.
如果想听一听的, 可以打开这个抖音链接试听:
https://v.douyin.com/iyMKtt8p/
最后要做的是多国语言翻译, 因为一开始我就使用了 i18n 库, 所以这部分工作主要就是翻译 i18n 字符串.
我为游戏提供了几种语言, 简体中文, 繁体中文, 英语, 日语.
我尝试使用 claude 去翻译 json 字符串, 经过一系列尝试后, 使用以下 prompt 获得了很好的效果:
以下是一些游戏的 i18n 对话文本, 将其 value 翻译为英文, 请不要修改 key, 翻译后的内容需要全年龄段适用, 请一次性翻译完成, 请务必一次性翻译完成, 文本中的**标记或其它可以转义的标记请对其进行保留, 输出内容为 json, 用 inline code 的方式输出
但是手动调用 claude 去翻译的工作量实在是太大了, 我就想能不能调 claude 的 api 呢? 结果卡在了付费这一步, 没有合适的外卡进行支付, 我的国内 visa 卡并不能支付 claude 的费用.
经过一番搜索, 我找到了 rapi 的 claude api 服务, 其实这个服务的提供者也只是转发了 claude 的 api 服务(不知道这样是不是违反 claude api 的 tos 的), 好处是 rapi 的支付渠道很好, 可以接受国内的 visa 卡付款.
搞定了 api, 我直接在 copilot 的帮助下写了一个 python 脚本去批量地使用我研究出的 prompt 对 i18n 文本进行翻译.
这个脚本在翻译完后还会自动检查是否有漏掉没有翻译的 i18n key.
然后翻译工作就简简单单完成了, 前后没有超过半天.
这个时候我其实就已经想发布内测版本, 把游戏发给我的朋友们玩了.
但是当我表达出这个意图时, 他们纷纷表示, 坐在电脑前玩游戏太奢侈了, 有没有手机版?
好吧, 虽然不打算发行移动版本, 但还是移植一个安卓版本吧.
然后我学习了Cordova的使用, 并打出了一个 apk 包.
放手机上运行, 直接白屏, 想想也对, 移植工作可不只是打包 apk 这么简单.
我需要把原来所有涉及到文件读取的地方, 改造成调用安卓 API.
因此我重新设计了 Files 库, 区分对待 PC 和安卓, 游戏中所有涉及到文件的地方统统使用这个 Files 库.
折腾了两天之后, 游戏终于可以在手机里运行了.
我兴高采烈地发了一条关于游戏内测的朋友圈:
第一时间就发给了胡大胖, 结果胡大胖说, 运行白屏.
我当时的表情是: ????????????
我的第一反应是: 在我的机器上好好的啊
一问才知道, 他的手机是安卓 11, 所以肯定是一些兼容方面的问题, 安卓 11 的 webview 没有后面的安卓版本高.
我又花了两天通过调试安卓 11 的虚拟机解决了这个兼容问题.
胡大胖对游戏开始了非常严谨地测试, 一直到最后我点下游戏发行的前一刻, 他还在废寝忘食地测试游戏, 一遍一遍地玩已经玩过很多遍地剧情, 在此再次对胡大胖表示感谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!
在游戏的测试中, 不断发现有新的 bug, 但是改 bug 并不让我感到痛苦, 所以整个过程都很顺利.
在测试游戏的过程中, 我想起要去注册 Steamworks 去发行游戏了(其实这一步应该更早的进行), 赶忙注册了一个 Steamworks 账号.
注册账号的过程中, 支付了 100$用于购买发行坑位, 按照 Steam 的说法, 当游戏销售额达到 1000$时, 这 100$会还给我.
然后是填写美国的税务表, 就按身份证上的信息填写就可以了.
填写完, 很快 steamworks 会提示需要上传补充信息, 其实就是身份证的正反面和手持身份证的正面照, 照做就可以了, 我一开始没有仔细看英文的提示, 没有上传手持身份证的正面照, 税务表被打回来了一次, 最后提供了手持身份证正面照就成功了.
这个税务表的审核如果顺利的话 2-3 个工作日即可完成.
注册好 steamworks 后我做的第一件事, 就是给游戏定价.
因为我也没有打算能够回本, 当然也不奢望销量会爆, 所以我想要不就把价格设置得低一点吧, 回本是不可能回本了, 那就国区卖 9.9 人民币, 美区卖 1.99$.
其实我还可以定得更低一些, 但又觉得那未免也太不尊重自己了, 就算了.
(如果有实在囊中羞涩又想玩这个游戏的朋友, 可以通过商店页面的联系方式找到我, 我可以免费送你 CD-KEY.)
接着我开始准备 Steam 的商品页, 按照 Steamworks 里的表单一项项填写就可以了, 虽然这个商店管理后台诡异且充满了屎山的味道, 但还是勉强可以使用.
唯一要注意的是上传商店图片素材时它是根据图片尺寸来自动填充到对应的表单位置的, 所以图片的尺寸一定要符合它的要求.
我电脑上没有 ps,我是直接到 Photopea 网站上调整的素材大小.
然后我用剪映制作了一个极其粗糙的宣传片, 因为我觉得商店页面有个游玩视频感官上会更好一些.
这里因为我游戏提供了繁体/英语/日语, 游戏商店我也进行了繁体/英语/日语的本地化设置, 主要是游戏描述的文本.
全部设置好后提交商店审核, 然后因为一些小细节, 审核被打回来了一次, 修改后, 重新提交审核就通过了.
审核通过后, 商店就可以在 Steam 里搜索并被玩家看到了, 这个时候 Steam 会赠送一些曝光, 游戏愿望单每天都有增加.
这里前后花了一个星期的时间, 这里我犯了一个错误, 商店审核后没有立刻点击商店发布, 导致游戏发行时间延后了, 因为游戏正式发行时间必须在商店页面发布两周以后.
接着是游戏主体的审核, 这里其实并不需要提供游戏的最终版本, 而是只需要一个接近最终版本的游戏版本的就行了, 所以即便有 bug, 也可以提交上去供 Steam 审核.
第一次审核时 Steam 又找了一个商店页面的问题打回来了, 并且说最好是支持一下 steam overlay, 就是进入游戏后按 shift+tab 出来的那个东西.
我想这应该不难吧, 把商店的问题改好后, 就找了 steamworks.js 库去适配 steam 的 api, 结果出来的效果不行, 一按 shift+tab 界面就卡死了.
后来在网上一篇文章里找到了原因, 是因为 electron 渲染的网页是不会实时刷新的, 这和普通的游戏不一样, 按下 shift+tab 后 steam overlay 虽然有出来, 但是就消不掉了, 我在那篇文章里也找到了对应的 workaround:
function initSteamOverLay() {
function fakeGameloopForSteam() {
const canvas = document.getElementById(
"fake-refresh-steam"
)
const styler = canvas
styler.style.width = `100vw`
styler.style.height = `100vh`
const ctx = canvas.getContext("2d")
ctx.clearRect(0, 0, 1, 1)
// Not sure if this could work if fully transparent or if setting CSS opacity to 0, I haven't tried yet
ctx.fillStyle = "rgba(0, 0, 0, 0)"
ctx.fillRect(0, 0, 1, 1)
requestAnimationFrame(fakeGameloopForSteam)
}
const canvas = document.createElement("canvas")
canvas.id = "fake-refresh-steam"
canvas.width = 1
canvas.height = 1
const styler = canvas
styler.style.position = "fixed"
styler.style.top = "0px"
styler.style.bottom = "0px"
styler.style.pointerEvents = "none"
styler.style.zIndex = "30000"
document.body.appendChild(canvas)
fakeGameloopForSteam();
}
然后我又提交了一次 steam 游戏审核, 这次审核通过了.
在这个过程中, 我得到的教训是, 其实可以更早一些注册 steamworks 并发布商店页面, 因为商店和游戏审核至少要用掉 2 周,而商店发布后又需要等 2 周才能点发行, 所以提前 2 个月甚至 3 个月去做发行相关的事情是比较合理的, 这样就不会出现游戏做完了却无法点击发行的尴尬场景.
游戏做到这一步, 我感觉已经差不多了, 但是在等待 steam 审核的时候, 我又写下了这样一段话:
从一个玩家的视角,如何去判断一个游戏是否好玩?
我觉得最重要的是有没有在游戏中体会到乐趣。
游戏玩家其实是一个特别容易讨好的人群,他会因为游戏中一些精巧的设计捧腹大笑,也会在看到一些新奇的很小的东西时感到开心。
并且游戏玩家富有同理心,他们对游戏的代入感特别强,你在游戏里讨好他,他心里清清楚楚并且很享受。
作为设计者,我们的游戏是对真实世界的拙劣的模仿和放大,在其中设定一些真实世界不常见甚至是完全不可能的事情。
我们在设计游戏的时候,需要迎合受众的寻求,增加相应的机制去满足玩家的心理需求,这些机制可以是以下几种形式:
1. 独一无二的特殊事件,通常以游戏主线或分支剧情的形式展开
2. 基于随机性过程和结果重复的循环事件,就像是钓鱼一样,你永远不知道今天自己会钓上来什么
3. 与真实世界形成反差的任何游戏设定,现实中越难得到的,在游戏中越容易得到,所以连欢乐豆都会有人喜欢攒
4. 与真实世界可以形成对照和代入的罕见事件,游玩过程中玩家并不具体期待某一件事情,但是永远在期待好的事情
5. 玩家需要轻微的挫折,人性都是如此,太容易得到的就不会珍惜,因此玩家在某个方面违反了设计者设定的机制时,便会在游戏中受到数值或其它方面上的惩罚
我又根据这些思考, 对游戏的部分剧情进行了补全, 尤其是恋爱事件, 因为我发现胡大胖特别痴迷于和美女们搞好关系.
这样, 等待发行的这段时间就也充分利用起来了.
随着可发行日期越来越近, 在胡大胖还在疯狂测试的同时, 我决定录制一个游戏的游玩视频, 到时候进行 steam 循环直播, 因为我看了 steamwork 的文档, steam 是允许录播的, 前提是你在页面里有表明是录播(Replay).
在第一次录制这个游玩视频的时候, 中后期我自己又发现了一个不可原谅的 bug, 就是游戏中就职的公司可能会在发薪日不发工资给玩家!
所以只好又匆忙修复这个 bug, 然后我发现, 修复的这个 bug 解决了一些游戏中潜在的一些隐性问题.
这是一件很值得开心的事, 现在就发现 bug, 比玩家玩的时候发现 bug 要好, 作为一款低成本的剧情向独立游戏, 我知道玩家并不会给我第二次机会, 如果因为 bug 导致主线剧情无法正常游玩, 玩家虽然不至于退款, 但也不会再有兴趣打开游戏了.
然后我第二次开始录制游戏的游玩视频, 这次非常顺利, 录制完后我把游戏实机视频用 OBS 软件推流到 steam 直播, 并且循环播放, 很快我的 steam 商店页面就能看到我在直播了.
2025 年 1 月 1 日零点, 我终于点下了游戏的发行按钮, 一切都画上了句号, 也许不圆满, 但我实现了一个梦想, 付出了很多, 但是在最后这一刻, 我深深地感到了自豪.
游戏首发第一天就收获了一条好评, 果然爱玩游戏的都是好人!
原本发行后, 如果没有 bug 需要修复, 做一个独立游戏这件事就应该画上句号了, 但我觉得应该把自己这些经历写出来, 给后来者一个参考, 也是给自己一个反思的机会.
于是见缝插针写了本文, 其中肯定有疏漏或错误的地方, 欢迎各位大侠指正.
最后, 祝大家都能做自己喜欢做的事!
大家最近这半个月咋样了,亏成狗了,之前涨起来赚了那点又全进去了,是真不能贪啊
1 月份华盛证券开户送 400HKD 现金券+一股西方石油,额外奖励 100HDK(活动仅限 2025 年 1 月份有效)
联系 TG:https://t.me/MrWkjs
微信:Z293a2pz(Base64)
需要准备:
香港卡(入金使用)
存量证明(需要 2024 年 2 月 29 日前的仅需任意境外券商的开户证明或者日结单)
1 万港币资金资金留存 30 天:奖励一股西方石油股票(约 384HKD ),我这边额外奖励 100HKD
开户后立即获得:
400HKD 交易现金券
5 美金交易现金券
300 新股申购优惠券
期货 180 天免佣
港股买卖 90 天免佣额度卡(价值 7000 港币)
美股买卖 90 天免佣额度卡(价值 900 美元)
双人同行开户多 200 交易券,这个尽量给你安排上
现在就算我选择更多空间,依然好像不能倒 1920 请问有办法能实现这个效果吗?
Warp 现在免登陆了,用过两款的讲一讲互有什么优劣?
p2p-explorer-web 是一个基于浏览器的 webtrc P2P 远程文件传输工具,远程文件 web 资源管理器,让用户能够安全、快速地在设备间传输文件,理想情况下无需通过服务器中转。 详细介绍
在线体验: https://explorer.kuraa.cc git 地址: https://git.kuraa.cc/kura/p2p-explorer-web.git (再整理一下转移到 github)
v 友轻点拷打,手下留情
RT
有大佬遇到吗
前端开发,日常使用 Mac M1 Air 工作基本上足够,但是内存太小,而且负载较高的时候还是会升温变卡。
于是尝试在台式机 Windows 上工作,内存是够了,但是发现打开项目多了之后 VS Code 的悬浮提示等等还是会略有卡顿,要加载一会才能出来,安装依赖的时候 CPU 占用率也会吃满,CPU 是 AMD 3600X 。
所以想请教各位:
1 、台式机升级 CPU 选单核尽量高,能解决这个问题吗?(因为 node 是单线程的,所以我想和多核应该没什么关系?) 2 、现在仅前端开发而言,Mac 的处理器 M4 系列 和最新的 AMD 和 Intel 优劣如何?
4 年前我就设计好了,当时给开发伙伴在图书馆门口演示过。可惜没钱请他继续开发了。今年失业后,泡在图书馆半年多,终于开发好了。Badminton Zone 中文名称: 羽毛球场
2.0 新增的功能:
具体新增的功能视频演示版本(有声音)
英文 https://youtu.be/FAf7IcMwBC4
中文 https://www.bilibili.com/video/BV1jd61YeEv7
打羽毛球让我很舒压,很开心。但打羽毛球想提升水平不容易。特别是业余爱好者,双打练习更是难以突破。所以我做了这个 APP ,羽毛球场。 主要的用法:
新增:AR
新增:暂停
设计改进
编辑改进
因为在 V2EX 上找到很好的合作伙伴过,另外我遇到的开发问题,社区用户也非常热心指导。非常感谢这个社区。 所以按质数的前 10 个数字来分别给留下邮箱的用户发兑换码。 谢谢。
我用 python 的 HTTPServer 在服务器上建立了个网页,功能很简单,就是回传图片数据流,访问形式也很简单,就是"http://xxx.xxx.xxx.xxx:端口号/array/image.jpg"的形式,但是除了我自己的请求,还看到了其它 IP 地址的请求信息,他们是怎么知道我的访问形式的,还有这些异常请求基本上都是跟随我访问之后才出现的,如果我不主动访问就没有,网络服务这块我是小白,求原因,谢谢
这种节日多来点吧!
事情起因是我和我同事突然都无法从 Git 仓库拉取和推送代码,提示:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
有同样问题的还有在其他城市出差的同事,用的酒店 WIFI,我尝试连接手机热点,依然不行,我手机也是电信网; 神奇的来了,我同事手机是联通的,他的热点就可以正常拉取和推送代码,他家也是联网的宽带,同样推送代码是没问题的。
最终解决方案: 修改.ssh/config
Host github.com
Hostname ssh.github.com
Port 443
将 SSH 为 443 端口
所以我猜测是不是电信封锁了 22 端口,请教一下大佬们。
[工作职责] 1 、负责在线消息中间件 RocketMQ 和 Pulsar 规划和研发,推动在线消息架构设计; 2 、参与在线消息队列运维,保障线上服务稳定可持续发展; 3 、参与在线消息多活容灾能力、可观测能力建设。 [任职资格] 1 、本科及以上学历,计算机相关专业,有 1 年及以上相关工作经验; 2 、熟练掌握 Java ,熟练掌握 NIO 和 Netty ,具备强悍的编码能力; 3 、有 MQ 开发和二次开发经历; 4 、技术视野开阔,学习主动性强,具有良好的沟通协调能力。
内推链接:小红书火热招聘中,众多岗位总有一个适合你,点击下方链接开始投递吧! https://hr.xiaohongshu.com/recommend/job-info/9423/XHSTOKEN-RFV2NnhKMnRHdTRLaU45SFdLdzVHbTdrY1lEUnNqWFplUDhPUE5jNW9Eem1RY1Z1ZFNyU3Vka1FXRm81bVFLaA==
老虎证券开户耗 2100 港币代金券+返 300 (额外奖励)
专属开户链接: https://tigr.link/9AjvFm
邀请码: TIGERMJJ
联系 TG:https://t.me/MrWkjs
微信:Z293a2pz(Base64)
需要准备:
境外卡(入金使用)
存量证明(2023 年 5 月 19 日之前)
入金满 30 天后,额外奖励 300 港币红包给你
以下是港币代金券奖励:
通过我邀请开户,入金 10000HKD ,立即获得 300 港币代金券
首次首笔入金 1w 港币或等值其他货币且留存 60 日 -- 300 港币代金券
首笔入金后 7 日内净入金达 10w 港币或等值其他货币且留存 60 日 -- 再得 300 港币代金券
首次入金后 60 日內,完成 5 笔买入交易 -- 激活 300 港币代金券
首次入金后 60 日內,完成 10 笔买入交易 -- 再激活 300 港币代金券
首次入金后 60 日內,完成 20 笔买入交易 -- 再激活 600 港币代金券
各位,求推荐笔记本,帮女朋友选,主要需求如下: 1.Windows ,16 寸左右; 2.大学使用,重要考虑游戏性能(要求独立显卡); 3.考虑颜值,最好银色或白色金属机身; 4.优先考虑联想、华硕、惠普、戴尔(不分先后); 5.预算 9 k 以内。 目前考虑的两款:惠普暗影精灵 10 ,华硕无畏 Pro 15 。 有更好的推荐吗?感谢。
家里的 MacBook 和 Windows 小主机 在 mac 上用微软的 Windows app 这个 app 远程连接. 进入很慢,就是双击连接后显示"正在配置远程桌面",大概要等 20 秒吧,才能进入桌面.
但是用 parallels desktop 里安装的 win11 远程,就秒连. 安卓也是秒连.
有办法吗?或者替代的 app 推荐个~