我的网页游戏开发计划[7.03更新]
谨以此博记录我的游戏开发路程,进度将不定期在此文中更新。
想要开发一个网页游戏,下面是我的计划:
1.客户端计划用flash语言,所以需要先学习AS3和Flex。
目前AS3已经大致学完,对Flex也有一定的了解,因为在学Flex的过程中,感觉Flex更适合做一些Form,而在绘制游戏界面并没有发现有什么特别的优势,特别是如果引入Flex将不必要的加大flash文件的大小,所以计划使用纯AS3.
AS3:
ActionScript3(AS3)类库学习之(一)——Object基本对象
ActionScript3(AS3)类库学习之(二)——掌握Array和Vector数组操作
ActionScript3(AS3)类库学习之(三)——灵活操作XML
ActionScript3(AS3)类库学习之(四)——Event事件和定制自己的Event
ActionScript3(AS3)类库学习之(五)——EventDispatcher事件分发和监听
ActionScript3(AS3)类库学习之(六)——用Point和Rectangle进行计算
ActionScript3(AS3)类库学习之(七)——Transform二维平面转换
ActionScript3(AS3)类库学习之(八)——自定义上下文菜单
ActionScript3(AS3)类库学习之(九)——响应鼠标和键盘
ActionScript3(AS3)类库学习之(十)——DisplayObject等显示对象基类
ActionScript3(AS3)类库学习之(十一)——Graphics类
ActionScript3(AS3)类库学习之(十二)——BitmapData类
ActionScript3(AS3)类库学习之(十三)——使用合适的显示子类
AS3语言注意事项汇总(不定期更新)
Flex:
Flash的控件库(不定期更新)
2.确定客户端Flash开发工具
Flash开发工具决定使用flashdevelop,因为用惯了VS,感觉这个比Flash CS更符合自己的开发习惯。
flashdevelop使用中遇到的问题汇总(不定期更新)
3.AS3框架的研究
看了pureMVC,对我来说,感觉从这个框架主要学到的是listNotificationInterests方法,这个方法列出的是一个Mediator关注的信息,当每个Mediator被加入系统中时,系统都会通过listNotificationInterests方法查看该Mediator关注哪些消息,并将Mediator加入相应的观察者中,将其handleNotification方法注册为其关注的消息的处理函数。
看了IOC框架SwiftSuspenders,这个框架让我发现了describeType函数的妙用,框架在getInjectionPoints函数中利用describeType函数来获取类的内容,并进行解析以实现自动获取注入点。
看了RobotLegs,感觉这个框架的亮点是充分运用SwiftSuspenders实现了系统的自动化,通过映射Mediator和view component,能够在view component被加入view list中时自动创建相关联的Mediator。
AS3的通用框架暂时就准备看这几个了,不知道还有什么更值得学习的没有呢?
4.客户端game框架研究
游戏引擎PushButtonEngine:从这个引擎主要学到的就是引入一套循环机制来控制需要循环显示或者执行的对象,其中的一些模块也可以借鉴。
Ash:这是一套基于数据的游戏引擎,对于一个游戏来说,速度是很重要的,从这个引擎学到了基于数据比基于对象速度要快。
Starling-Framework:利用Stage3D进行GPU绘图的渲染引擎,因为其结构和API与AS3类库本身相近而易于使用。近期不打算研究其内部实现,可以先直接将其用作游戏的渲染引擎,只要会用就行。
可用的参考文章:
http://www.cnblogs.com/tankaixiong/archive/2012/11/28/2792047.html
http://www.cnblogs.com/zhouyuanzhong/archive/2012/12/11/2812543.html
http://www.cnblogs.com/sevenyuan/archive/2013/01/10/2854406.html
http://www.cnblogs.com/hisiqi/archive/2013/01/01/2841251.html
http://www.cnblogs.com/physwf/archive/2012/11/19/2776637.html
Box2DFlash:是由一个C++的物理引擎Box2D改写的Flash版本,Box2D被改写成了多个语言版本,应该是个很强大的物理引擎。近期不打算研究其内部实现,如果写游戏的时候需要物理引擎的话,可以先直接将其用作游戏的物理引擎,只要会用就行。
别人整理的Box2D的学习文章
还有什么推荐的么?
5.学习别人的game
下了一款别人的game,用闪客精灵反编译,结果因为那个game里面设置了如果不满足某条件会频繁的打开某网页,直接把闪客精灵都弄崩了。这款游戏采用了多层的保护,
a.Loading设置条件,不满足条件则频繁打开网页。
b.Loading采用奇异字符,且增加多种无用函数,以增加阅读难度。
c.用byteArray的形式加载主game程序
d.主game程序用无意义的名称做类名等。
虽然最后得到了主game,但是觉得看这个game花的功夫太大了,放弃。主要收获是了解了game保密的一些方法。
TODO
6.研究提高flash效率的方法
flash性能优化方案整理(不定期更新)
7.研究游戏的复杂度
a.3D的肯定不行,第一,我自己的眼睛就受不了3D的界面,第二,开发的复杂度飙升啊
b.2D的,需要实现地图,人物动作动画等,可以试着实现一个小地图和人物动画看看自己能做出来不,花费的时间等情况。感觉这种更有可玩性,但是精力有限啊。
c.最简单的,不需要地图,只需要一个个场景图片,最难的可能就是做一下战斗时的小动画,这个应该能实现。
在b,c之间纠结。
TODO
8.游戏服务器框架的研究
a.Pomelo,大公司出的游戏框架,品质应该有保证,不过其采用node.js,应该是很好用,但是貌似看到过其性能不怎么样。
b.C#,一个比较熟悉的语言,就是不知道有没有什么成熟的框架,求推荐。
c.C++,效率高,但是很多东西都需要自己写,不知道有没有什么成熟的框架,求推荐。
d.Erlang,据说是面向并发性的?很适合开发服务器,不过需要重新学,不知道有没有什么成熟的框架,求推荐。
TODO
9.游戏的各种设定
人物属性,宠物属性,升级方式,装备强化,技能,武功秘籍等等
TODO
10.程序的设计与实现
TODO
11.游戏情节主线,副线等的设计
TODO
12.营销方式的研究
TODO
作者:Jingle Guo
出处:http://www.cnblogs.com/studynote/
若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.