完成开发
由于是个人开发,所以直到这时候才开始写开发者日志,所有工作已经完成,项目的审核也已经通过,是时候好好休息一下了
经过连续几天没日没夜的开发,对负责超出自身经历的项目已经有了一些基础的应对方法,通过参加这次的比赛也让我有了一些总结。
1.压缩自己擅长部分的工作时间。我其实大部分时间都是花在了调试代码上,即使实际运行起来没有很大的问题了,我还是会不停地调试,以至于美术和音频的准备十分仓促,这也是我的一大毛病。
2.尽量将每个功能独立于项目之中。在开发的过程中我十分庆幸做出了将各个地图和脚本作为一个个的独立文件这个决定,虽然会增加工作量,但每个区域出现的问题也是单独的,不会污染到全局,包括攻击和敌人的行为树,在开发中不止一次更换这些关键代码,但好在由于是独立出来的,可以像零件那样自由拆卸和定义,所以不会出现很大的问题
3.不要低估某些工作需要的时间。我曾一度以为素材的绘制可以很快,然而当我真正开始画时,啪的一声,已经从晚上十点画到凌晨三点了。其实真正费时间的是角色的设计和序列帧的绘制,以及颜色的选择(我色感极差)总之绘制素材已经是一个大挑战了(当然比不上处理报错信息这个挑战来的大)
4.不要想当然地写代码。我之前一直以为js文件是可以随着动态移除而失效的,以及js文件的加载策略是同步执行的。直到项目进行到一半我才发现浏览器是可以缓存js代码的,包括至关重要的***和定时器,因为缓存导致后面所有重名的变量全部不能用,一度让我产生了放弃参加这次比赛的想法。但好在最后发现了在加载js文件时加上版本号或时间戳可以让浏览器始终解析最新的js文件而不是解析缓存文件(更棒的是时间戳可以离线获取),这才缓解了一大漏洞(没解决,还是有很大的几率触发,但至少看起来除了敌人的移速加快之外没有其他的问题,早期的bug真的堪称毛骨悚然)
5.合理利用“遗产”。这里的遗产指的是之前遗留下来的没有实现或实现了一部分的想法和美术或音频等资产,整个项目的音频除了序章结尾的音乐是在开发期间制作的,其余全是之前已经制作好的成品(第二章是之前制作好的音乐的remix),让我惊喜的是效果居然还不错(除了序章结尾卡点卡的想原地去世),以及攻击模块是根据之前写好的射线检测法魔改的,直接省了不少时间。
不管结果怎样,我对自己的作品十分满意(当然比不上其他大神制作的精品),对于我个人而言,这次的经历让我学到了很多新的东西和接触了新的领域,最主要的原因是我需要一个动机来鞭策我完成项目。在最后感谢主办方送的卡套,这份特殊的礼物让我继续完成了项目,同时也希望能在大赛中能玩到各位参赛者制作的精品(反正比我的好,我最初是抱着在赛程上给大家崩一托稀的想法过来的
)
![[表情_微笑]](https://img.tapimg.com/market/images/0f170d4b1ecf80c267e5a44b5992a199.png)