“好的,让我们开始做这个游戏吧!”
“唔,它应该支持3-5万人同时在线!”
“画面应该相当华丽,操作要绚,怪要傻!”
“随机掉宝,锻造插孔,宠物系统,玩家可以结婚生子!”
“。。。。。。”
也许我们花费了一整天美丽的时光来幻想这个游戏应该如何精彩如何吸引玩家,但当你终于决定动手去做的时候却发现,梦想与现实之间的鸿沟是如此之巨大。当你埋头编写几个像素贴图,在画面某个角落打上黄色字符串提示玩家输入帐号时,你会发现这与初衷已经全然不同。游戏是如此的精彩,而实现过程是如此之枯燥无趣,大量的精力被消耗在锁碎的细节上,最终被疲劳扼杀掉所有的创造力。
现在我们来设计一个最简单的游戏,创建一个蓝色方块和一个红色方块,让鼠标拖动蓝色方块时红色方块跟着移动。具体想想其实现,如此简单的功能已经足够消耗10分钟去实现了吧?处理鼠标消息,计算两个方块的相对距离和移动后相对于窗口左上角的的位移,重绘并刷新窗口。好的,让这个游戏复杂一点。我们假设蓝色方块离我们的眼睛比较“近一点”,红色方块“远一点”,然后有数个黄色方块散落在屏幕间,他们的距离有些远有些近。oh,这下可麻烦了。我们不得不在每次收到鼠标消息做各种位移计算的时候,考虑不同颜色方块的相互遮掩关系。如果再复杂一点呢?每个黄色方块按照自己的速率在远与近之间沉浮,红色方块以角加速度a围绕蓝色方块加速旋转。oh MyGod,这已经足够消磨大半天时光了。
能否有一种开发模式,能够让有限度的精力使用在游戏逻辑设计上,而非无穷无尽的细节实现。能否有这样一种开发模式,让红色方块"绑定”在蓝色方块上,随其移动,黄色方块只需要一个参数就可以自动沉浮,并自动处理好所有方块的相互遮掩关系?
这就是ShinyNova的目标,将程序员从琐碎的实现中解脱出来,有更充足的精力去思考游戏的逻辑,那些美妙的东西。
简单而有效的快速开发,这就是ShinyNova。
1.简便高效的资源加载模式
2.高度面向对象化设计,在游戏规模不断扩大的同时保持较低开发复杂度。
3.内核模块化设计,任意定制扩展。
4.自动资源清理