对想学习Kjava开发手机游戏的同学说几句(转)

目前开发手机游戏的主要语言还是以kjava为主,现在市面上也很多介绍这方面的书,老实说这些书都是千篇一律,其实要想真正学习好手机游戏开发不能仅仅局限于书中的那些模式,下面是我认为在手机环境中开发2D游戏中需要掌握的知识

1、基础数学和物理学:这是基础,不要认为这个很枯燥,其实不掌握基础数学和物理学,你在游戏这方面是走不远的。基础数学主要包括的是

a)求两点间距离、两直线焦点、圆方程、直线方程

b)矢量的计算--非常重要,比如矢量的差乘,点乘,使用矢量计算转向问题

c)矩阵计算

d)排序算法

e)链表结构,Kjava中有Vector,如果你认为其效率不高自己可以实现一个自己的Vector(注意与矢量的Vector分开)

物理学:主要包括1)速度的矢量表示和计算 2)弹性碰撞 3)斜抛运动 4)反射计算等

2、学习掌握地图绘制原理,能实现编码与数据的分离,掌握地图编辑器的使用,显示地图采用克马克计算方式。

3、掌握精灵动画的基础编写,在此基础上掌握或自己开发动作编辑器。

4、精灵与地图物件的遮罩问题和精灵间的遮罩问题

5、精灵的碰撞问题

6、FMS,有限状态机的实现,这是--模拟人工智能目前看最好的办法,其次是A*算法等。游戏中其实神经网络,遗传算法使用的并不太多,好的状态机制是很重要的

7、触发器实现

8、掌握在游戏中使用脚本语言,比较可惜的是在Kjava中不能使用Lua语言(java中可以使用for java的Lua,但是在Kjava中目前我还没能找到)网上也有朋友自己搞出了脚本语言

9、努力使你的程序是实现代码与数据的分离,分离体现就是,程序是程序,数据放到外部文件中,可以是TXT的也可以是二进制的。

以上主要是指程序员,游戏还需要美工和策划,这个不再我这讨论之列。另外对于棋牌博弈类游戏主要是在算法上比如决策树等。这些都是一个游戏程序员必须很好掌握的知识,如果你仅仅局限于书上那些知识,你会发现你也能编个游戏,但是距离商业化的程序还差的很远,例如,普通的书上对人物的移动一般是x+=step,使用步长来计算下一帧的位置,如果你掌握矢量,就会使用速度来表示 x+=Vx*t,开始你可能不习惯,但是很快你会发现引入速度这样的矢量会给你的程序更贴近现实和优雅的计算。虽然kjava中为了速度不得不牺牲面向对象的一些优点,但是掌握好面向对象的开发技术和模式也是很必要的。

除了以上的你还需要掌握版本管理器(目前比较多使用SVN),代码对比合并工具(B2,Merge),单元测试(老实说kjava下单元测试是不很方便)以及多接触些手机,因为你很快会发现不同手机的上变化会直接影响你的开发。对于那些刚学习的同学,时你可以使用MIDP2.0入门,但是一旦掌握后还是要使用MIDP1.0来开发自己实现那些管理类。

以上是我对那些准备在手机上开发2D游戏进而学习的同学的一点建议,希望能有所帮助!

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值