自己是95前端菜鸟一枚,现在在广州打工混口饭吃。刚好换了作业,感觉日子节奏变得慢了下来,打了这么多年工总觉得想纪录些什么,怕以后自己老了忘记自己还有这么一些风流往事。书接上回。

楔子

又是一个空闲的周末,正读一年级的我坐在床上,把象棋的旗子悉数倒了出来,依据颜色分为赤色和绿色阵营,旗子翻盖为修建,正面为单位,被子和枕头作为地图障碍,双手不断的移动着两边阵营的象棋,脑海中演练着星级争霸的游戏画面,将两枚不同阵营的旗子进行碰撞后,经过我对两枚旗子片面的判别,一方阵营的旗子直接被毁掉,进入回收,一方的单位对修建物悉数损坏取得游戏胜利。由于我的父亲酷爱玩这款游戏,年少的我也被其玩法、画面所深深吸引,不过最主要的仍是父亲取胜或许玩累后,能走运的奖赏我玩上几把。星际争霸成了我第一个启蒙游戏,那时分怎么样都取胜不了,直到发现了show me the money。由于Blizzard这个英文单词一向在游戏的发动界面一闪一闪,那时分还以为这款游戏的名字叫Blizzard,最终才发现,其实Blizzard是魔鬼的意思。

纸笔乐趣

小学一二年级的时分家里管得严,电视也不给我看,电脑直接上锁,作为家里的独生子女,没有同龄人的陪同,空闲时刻要不就看《格林神话》、《安徒生神话》、《伊索寓言》,要不就翻开这副象棋在那里自娱自乐。

起源

在某一天的音乐课上,教师喉咙不舒服,在教室播放猫和老鼠给咱们观看,正当我看的津津乐道,前面的同学小张忽然转过头来,问我“要不要跟我玩个游戏”。小孩子一般都比较贪玩,我直接拒绝了他,“我想看猫和老鼠”。小张满脸失落转了回去,由于我是个特别怕伤害他人情绪的人,所以不忍心又用铅笔的橡皮端戳了戳他,问他“什么游戏,好玩不”。他登时也来了精力,喋喋不休的介绍起了这款游戏。

“游戏的规则非常的简单~~在一张纸上中心画一条分割线,两边有各自的基地,每人基地都有5点血量,两边经过猜拳,取胜的一方能够在自己阵营画一个火柴人,火柴人能够进犯对面的火柴人和基地,基地被损坏则胜利。管你听没听懂,试一把就完了!”

孤独的游戏少年

我呆呆的看着他,“这么无聊,赢了又怎样?”。他缄默沉静了一会,如同我说确实实有点道理,忽然想到了一个好方法,“谁取得胜利扇对方一巴掌”。我登时来了爱好。随着游戏逐渐深化,咱们的猜拳速度和行动力也越来越快,最终发现扇巴掌仍是太狠,改为扇对方的手背,这节课以两边手背通红完毕了。

游戏改良

这个《火柴人对战》小游戏在班里火了一会儿,但很快就又不火了,我玩着玩着也发现没啥意思,总是觉得缺少点什么,但毕竟我也只是个没有吃APTX4869的小学生,想不出什么好点子。时刻一晃,遭到九年义务教育的方针,我也成功成为了一名初中生。在一节音乐课上,教师想让咱们放松放松,给咱们班看猫和老鼠,隔壁同桌小王撕了一张笔记本的纸,问我有没有玩过《火柴人对战》游戏,只能说,了解的配方,了解的滋味。

当天晚上回到家,闲来无事,我在想这个《火柴人游戏》是不是能够更有优化,这种方式的游戏是不是能够让玩家更有乐趣。有同学可能会问,你那个年代没东西玩的吗?已然你真心实意提问,那我就大发慈悲的告知你。玩的东西确实许多,可是能光明磊落摆在课桌上玩的根本没有,一般有一个比较新鲜的好玩的东西,都会有一群人围了过来,这时分教师会静静站在窗户旁的昏暗角落,见一个收一个。

坐在家里的椅子上,我整理了一下思绪,忽然产生了灵感,将《魔兽争霸》《游戏王》这两个游戏产生化学反应,游戏拥有着资源,单位,修建,单位还有进犯力,生命值,作用,进犯次数。每个玩家每回合经过摇骰子的方式取得随机动力点,动力能够解锁修建,修建关联着高档修建和单位,经过单位进行进犯,直至对方玩家生命值为0,那么如安在白纸上面显现呢?我想到比较好的处理方案,单位的画像尽管名字叫骷髅,可是在纸上面用代号A表示,修建骷髅之地用代号1表示。我花了几天时刻,弄了两个阵营,不死族和冰结界。马上就拿去跟同桌试玩了一下,尽管游戏很丰富,可是有一个严重的弊端便是玩起来还挺消耗时刻的,并且要人工计算单位之间的扣血量,玩家的剩下生命,在纸片上去完结这些操作,拿个橡皮擦来擦去,忽然觉得有点蠢,有点尴尬,忽然明白,一张白纸的承受才能是有限的。之后,我再也没有把游戏拿出来玩过,但我没有将他遗忘,而是深深埋藏在我的心里。

筑梦

直到大学期间《炉石传说》横空出世,直到《游戏王》上架网易,直到我的项目组完结1.0后迎来空窗期一个月,我再也蚌埠住了,之前一向都对微信小游戏很有爱好,每天闲着也是闲着,所以我有了做一个微信小游戏的主意。并且,就做一款在十几年前,就现已被我规划好的游戏。

可是我不从来不是一个好学的人,领会才能也很低,之前一向在看cocos和白鹭引擎学习文档,也很难学习下去,当然也由于作业期间没有这么多精力去学习,所以我什么结构也不会,不会结构,那就用原生。我开始的主意是,抛弃所有花里胡哨的动效,把根底的东西做出来,再作延伸。第一次做游戏,我也非常苍茫,最好的做法肯定是打飞机————研讨这个微信项目怎么用js原生,做出一个小游戏。

孤独的游戏少年

尽管微信小游戏刚出来的时分看过代码,可是也只是一扫而过,而这次带着方针进行细细品味,公然感觉不一样。微信小游戏打飞机这个项目是js原生运用纯gL的模式编写的,主要便是在canvas这个画布上面作展现和用户行为。

  // 接触事情处理逻辑
  touchEventHandler(e) {
    e.preventDefault()
    const x = e.touches[0].clientX
    const y = e.touches[0].clientY
    const area = this.gameinfo.btnArea
    if (x >= area.startX
        && x <= area.endX
        && y >= area.startY
        && y <= area.endY) this.restart()
    }

点击事情我的了解便是用户点击到屏幕的坐标为(x, y),假如想要一个按钮上面做处理逻辑,那么点击的规模就要落在这个按钮的规模内。当我知道如安在canvas上面做点击行为时,我感觉我现已成功了一半,接下来便是编写根底js代码。

首先这个游戏确认的元素分别为,场景,用户,单位,修建,资源(后边改用动力替代),我先将每个元素封装好一个类,一边慢慢的回想着之前游戏是怎么规划的,一边编程,身心完全沉浸进去,现已很久很久没有试过如此专注的去编写代码。用了大概三天的时刻,我把根本类该有的逻辑写完了,大概长这个样子

孤独的游戏少年

上面为敌方的单位区域,下方为我方的单位区域,单位用ABCDEFG表示,右侧1/1/1 则是 进犯力/生命值/进犯次数,经过点击最下方的icon弹出创立修建,然后创立单位,每次的用户操作,都是一个点击。

一开始我幻想的游戏名为幻想博弈,由于每个单位每个修建都只有名称,单位长什么样子的就需求玩家自己去脑补了,我只给你一个英文字母,你能够幻想成奥特曼,也能够幻想成哥斯拉,只要不是妈妈生的就行。

孤独的游戏少年

湿了

游戏尽管根本逻辑都写好了,放到整个微信小游戏界他人必定会认为是依托答辩,但我仍是觉得这是我的心肝宝贝,尽管游戏没有自己的界面,可是它有自己的玩法。如同上天也认可我的尽力,可是觉得这个游戏还能更上一层楼,在某个摸鱼的moment,我翻开了微信预备和各位朋友畅谈人生抱负,发现有位同学发了一幅图,上面有四个格子,是赛博朋克风格的一位篮球运动员。他说这个AI软件生成的图片很传神,只要把你想要的图片告知给这个AI软件,就能发你一幅你所描绘的图片。我翻开了图片看了看,说实话,质感适当不错,在一系列追问下,我得知这个绘图AI软件名称叫做midjourney

midjourney

我迫不及待的登录上去,询问朋友怎么运用后,我用我蹩脚的英格力士迫不及待的试了试,让midjourney帮我画一个动力的icon,不试不要紧,一试便湿了,眼睛留下了感动地泪水,就像一个昏暗的房间翻开了一扇窗,一束光猛地照射了进来。

孤独的游戏少年

对比我之前在iconfont下载的免费图标,midjourney提供这些图片简直便是我的救世主,我很快便将一开始的免费次数用完,然后氪了一个30美刀的会员,尽管有点肉痛,可是为了儿时的愿望,这点痛算什么

尽管我查找了一下攻略,他人说能够运用gpt和midjourney配合起来,我也试了一下,作用一般,可能姿势没有对,继续用我的有道翻译将要点词汇翻译后丢给midjourney。midjourney不只能够四选一,还能够对图片不断优化,还有份额选择,各种参数,可是我也不需求用到那么多额定的功用,总归一个字,便是棒。

但当时的我忽然意识到,这个AI如此凶猛,那么会不会对现在职业某些打工人造成必定影响呢,成果最近现已出了篇报道,某公司由于AI绘图工具辞退了很多插画师,现实不必定真实,可是也不是空穴来风,结合很多外界名人齐心协力抵抗gpt5.0的研发,在忧虑数据安全之余,是否也在忧虑着AI对人类未来日子的各种冲击。焦虑时时刻刻都有,但处理焦虑的方法,我有一个妙招,仍然仍是奖赏自己

门槛

当我把整个小游戏焕然一新后,便兴冲冲的跑去微信开放渠道上传我的巨大的杰作。但微信忽然泼了我一盆冷水,上传微信小游戏前的流程有点出乎意外,要写游戏布景、介绍角色、NPC、介绍模块等等,还要上传不同的图片。我的小游戏总共就三个界面,有六个大板块要填写,每个板块还要两张不同的图片,我当时人就麻了。我只能创立一个单位截一次图,保证每张图片不一样。做完这道工序,还要写一份自审自查报告。

就算做完了这些前戏,我感觉我的小游戏仍是难登大雅之堂,忽然,我又想到了这个东西其实是不是也能运行在web端呢,随后我便马上付诸行动,创立一个带有canvas的html,之前微信小游戏是经过weapp-adapter这个文件把canvas暴露到全局,所以在web端运用canvas的时分,只需求运用document.getElementById(‘canvas’)暴露到全局即可。然后经过http-server对应用进行发动,这个小游戏便以web端的方式运行到浏览器上了,终于也能了解之前为啥微信小游戏火起来的时分,许多企业都用h5游戏稍微改下代码进行转移,本来两者之间是有异曲同工之妙之处的。

关于游戏

孤独的游戏少年

孤独的游戏少年
上面两张便是两个种族对应的生产链,龙族是我第一个创立的,由于我自幼对龙产生好感和爱好,况且我是龙的传人/doge。魔法学院则是稍微问候一下《游戏王》中黑魔导卡组吧。

其实开发难度最难的莫过所以AI,也便是人机,怎么让人机在有限的资源做出合理的选择,是一大难题,也是我后续要慢慢优化的,一开始我是让人机依照创立一个修建,然后创立一个单位这种方式去做运营打开,但后来我想到一个好的点子,我应该能够依据每个种族的特点,走一条该特点的独有运营,所以人机龙族便有了龙蛋损坏龙两种门户,强度提升了一个档次。

其实是否能上架到微信小游戏现已不重要了,重要的是这个进程带给我的乐趣,一步一步看着这个游戏被创立出来的成就感,就算这个职业遭到什么冲击,我需求被迫转行,我也不曾懊悔,毕竟是web前端让我跨过了十几年的韶光,找到了儿时埋下的种子,洒水,给予阳光,让它在我的心中生长为一棵充分的参天大树

h5地址:hslastudio.com/game/

github地址: github.com/FEA-Dven/wa…