游戏开发小记 01

半,年,没,写,Blog,了!半年来发生了不少的事情,主要是实习和比赛这两件大事。之后生活恢复常态,但是却没恢复到以前的状态,比如——Blog 就长草了。

之前觉得 WordPress 逼格有点低下,所以想用 GitHub Page 取而代之,然后又想学 Belleve 巨巨Yuki 一样自己写一个生成器,最后坑了。然后托 GitHub 的福,得到了一个免费用两年的 VPS

总而言之,在比赛完不知道干什么的那段日子,我开始了这个游戏项目,名叫 Sansa,最后完成的游戏是不是叫这名我不确定,反正这个项目正好创建于一个月前的明天,也就是说我已经差不多写了一个月了!

所以……进度呢?

屏幕快照 2014-12-18 下午8.08.51

……就是这点内容,你所看到的就是全部了。

嘛嘛,进度那么慢主要是持续不断的重构,基本上写一个功能重构三次,然后上周才把整个项目推倒重写了一遍。

我写代码到底有多慢,我算是见识到了。

现在能做到的有:

  • 最简单的随机世界生成:基于 Perlin 函数,耗时数小时。
  • Tile(瓷砖)式画面:很简单,耗时数小时。
  • 人物的移动和摄像头:同样很简单,耗时数小时。

剩下的时间都是重复劳动,进行重构,重写……

比如说我一开始就意识到,游戏关于画面的部分和游戏整个逻辑的部分应该分离,不过虽然分开了,其实耦合还是挺高的,我用一种类似事件消息传递的模式才将两部分分开。

还有很多琐碎的顾虑,比如说具体如何管理这些对象,控制视野的摄像头 Camera,应该是逻辑层还是表现层呢?

今天才处理了一个问题,那就是游戏 CPU 占用过高。之前一直没看 CPU 占用,因为这游戏太简单了,没有什么计算。结果发现 100% ……电脑有八线程,一个线程占用慢了并没有感觉变慢。

搜了一下,才发现是因为事件循环的原因,因为事件循环如果没有收到事件的话会变成空转。解决方法是加一个 delay (类似 Sleep 吧)。

现在是最基础的时候,我没有用游戏引擎,前期进度慢还是可以理解的。不过今天看到了这样一个视频:我的游戏开发日记 感觉和他比起来我真的是渣渣。

没什么干货呀,推荐一个网站 Red Blob Games ,有意做游戏的旁油,看一看绝对有帮助,有很多可视化的例子。特别是这个 Amit’s Game Programming Information

比如说里面讲地图生成算法的文章对我帮助很大,虽然我现在没有用里面的算法。

游戏开发小记 01》上有8条评论

    1. 酿泉 文章作者

      用一种结构,储存不同的信号,比如说

      移动 {角色: , 方向: (0, 1)}
      攻击 {攻击者:
      , 被攻击者: }

      然后前端收到用户的信号,生成一个事件传递给后端的事件处理器,而不直接调用后端的方法,后端的反馈也类似。

      回复
  1. Pingback引用通告: 游戏开发小记 2.1 玩具游戏引擎 | 蛋炒饭

发表评论

电子邮件地址不会被公开。 必填项已用*标注