游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5892|回复: 8

作品:《舰炮射击3D》[转载,TV3D游戏]

[复制链接]

61

主题

1429

帖子

1430

积分

金牌会员

Rank: 6Rank: 6

积分
1430
发表于 2008-5-29 16:04:00 | 显示全部楼层 |阅读模式
作者:西昌.何雨锋
Email:xcslbj@163.com

下载:(29M)
http://show.gameres.com/BTHOT/BTHOT.zip 

这是一个以台湾战争为主题的海战游戏,bug较多,望见谅。
请在主频为3G以下的CPU机器中使用该游戏,若速度过快会引起弹出。

1、我做这个游戏使用的东西
     P42.4  512内存  ATI9500显卡(256M)
    估计能玩得最低配置:
    P41.5   256M   GeforeceMx440(64M)

2、没有安装TV3d62的朋友怎么无法运行游戏?
      答:如果游戏无法运行,请先运行目录下的文件:  [注册TV3d.bat]  来注册TV3D62引擎。
             然后运行  游戏目录\bin\my2\Release\舰炮射击3d.exe   就可以玩了。

2、当我打完一个小关卡时,为什么敌人和海都不见了?
     答:因为我还没做也不打算做小关卡结束时移动我方船只到新关卡那里去的动作,所以消灭完敌人后,你自己开着船到下一关卡去玩吧。如果找不到船在哪里,那么你可以按W键切换到第一人称模式把船开到新关卡里。

3、我可以把船开到敌人内部打吗?
    答:不可以,我还没有做敌我碰撞检测和陆地碰撞检测部分,所以你如果开到敌人肚子里开炮,游戏一定会被弹出的,你打敌人的时候最好离敌人远点。

4、为什么我打到第5小关卡的时候,杀完了敌船还不过关?
    答:我也不知道,反正第5关的敌人你得杀两次,才可以过关。

5、为什么我打过关后我的经验值没有增加呢?
    答:因为我还没做到那里,你如果实在嫌经验值不够,在游戏的目录下有个data_test.exe文件,你可以在那里面改你想要的经验值

6、我可以连续玩两个大的关卡吗?
     答:不可以,因为我还不能做到完全卸载地图,所以你会在第二个关卡里找到第一关里被你击沉的幽灵船,会把你的游戏速度大大拖慢,所以建议打完某关后退出,然后再启动游戏重新选其他关。

7、为什么敌人打不死我?
    答:因为我还没做你被打的动作。

8、这个游戏是成功的吗?
      答:不是,因为工作实在很忙,虽然我很想做这个东西,但是没办法我得吃饭啊,因为这个做游戏实在太花时间了,所以我不得不放弃这个游戏的后期开发,我一直认为做这么小规模的游戏应该不难,但是后来发现,即使是这么一个小游戏,工程量和涉及的东西也着实惊人,不是一个人能够独立完成的,光是做美工我都做了一个月。当然真正促使我放弃这个游戏的还是政治因素,由于马因九的上台,战争的可能性大大降低了,所以也就失去了这个游戏的历史和政治背景,我做这个用来战时鼓励大陆人精神的游戏已经没有意义了。另外,有时候真的觉得一个程序员生活起简直跟中国的环境格格不入,这个社会是一个以关系为基础的社会,你得花很多的时间和精力去社交而不是呆在电脑面前。

9、限制这个游戏制作的瓶颈是什么?
      答:是Bug,由于我也是第一次用VC来做游戏,发现里面的bug实在太多,甚至于很难一次玩完一个完整个关卡,由于运算中的实时错误导致程序弹出的情况实在再平常不过了,大家可以慢慢体会。由于不象在VB下做游戏那样,一旦出现实时错误就会弹出调试,所以很难找到导致错误的代码位置,我工作很忙,实在抽不出时间来做大量的调试和游戏测试,所以放弃了。

10、从做这个游戏中得到了什么提高吗?
     答:就游戏引擎而言,几乎是没有,里面所有涉及引擎的部分我都在其他例子中实验过了。真正让我提高的是其他方面,例如:如何在多个菜单中进行切换?如何进行关卡游戏的制作?如何让关卡以文件的形式存在?如何驱动所有的对象协同工作?如何编写类?(实际上我以前几乎没有真正的写过一个属于自己的类,但在这个游戏中,所有的类都得自己写)如何用几种不同的语言使用xml?(这对我的数据库方面的编程也有一定帮助)

11、Tv3D引擎已经尽善尽美了吗?
     答:不是这样的,实际上我用的是Tv3D6.2的版本,这个版本对VC的支持同对VB的支持比起来实在是太差了,比如不支持实体之间的碰撞、不支持math运算库、不支持media声音,当然我也找了很多办法,比如使用线与实体的碰撞来检测碰撞,所以大家可以看到经常有炮弹与地面与敌人的碰撞没有爆炸的情况。再就是media声音,我只有使用了FMOD的音频引擎,好在这个声音系统还不是那么难用和难学。至于几何运算,我高中数学从来就没及格过一次,这也是我要用3D引擎却实际做的是2D运算游戏的原因,也是这个游戏那么多Bug的原因。我把英语和编程都学好了,但是最后却败在了数学上。听说Tv3D6.5已经加强了对VC的支持,而且还使用了牛顿物理引擎(看来他们比我们也好不到哪里去,别人都用havork2了,他们还在用newton,图便宜嘛),如果以后有机会我会试着接触的。

12、会有游戏的正式版推出吗?
     答:不知道。如果我有时间,我会去做的,但是不太可能再使用TV6.2做了。

sf_200852916339.jpg

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-29 16:22:00 | 显示全部楼层

Re: 作品:《舰炮射击3D》[转载,TV3D游戏]

说下游戏感想,首先是作者完成了一个游戏,值得表扬。

先说下游戏运行问题,错误的确很多,经常莫名其妙的弹出游戏。
提示信息是这个,游戏玩起来速度过快,可能没有用时钟控制动画速度同步。


sf_2008529162211.gif

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-29 16:26:00 | 显示全部楼层

Re: 作品:《舰炮射击3D》[转载,TV3D游戏]

画面显示问题,不知道是不是游戏的分辨率设置过大了,不会自动适应屏幕, 设置难度和关卡的画面底下的字看不到,就是说跑到屏幕外面去了。

见截图,装甲度下面的字看不到? 好象是超过了1024*768的分辨率。
sf_2008529162535.jpg

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-29 16:29:00 | 显示全部楼层

Re: 作品:《舰炮射击3D》[转载,TV3D游戏]

作者继续加油!!!
sf_2008529162853.jpg

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2008-5-29 17:43:00 | 显示全部楼层

Re:作品:《舰炮射击3D》[转载,TV3D游戏]

呵呵,感谢大家的支持。
如果在菜单处出现弹出问题,那倒是真的不正常了,因为我以前测试是没有弹出过的。
至于在3D游戏部分出现弹出,那就再正常不过了,因为我在制作时的测试很难把一小关打完还不弹出的。
弹出的主要原因根据经验应该有90%是由于炮弹等武器的轨迹运算出错而弹出的,比如除数为0、大数溢出等都可能引起实时错误,这些在VB下一执行都会跳到出错语句处的地方,在C下根本就无法判断出错语句的位置,更无从跟踪导致出错的地方。
我用VB做了个弹道编辑器,所有弹道代码都是从那个编辑器中移植过来的,在移植前是没有任何一点实时错误的,但是一移植后有些地方就自然而然的产生实时错误,没法跟踪每一发炮弹的出错代码位置。看来先编译后执行的语言在调试上先天不足啊。
至于时钟控制,应该说所有的动作都使用了,engine->tickcount或者escapetime的,开始在家里用P4 3.0的机器玩呢,速度倒还没多快,等我发游戏时找了台网吧双核4.6的机器来耍,速度快得吓人,还没等我反应过来就弹出了,我不知道是不是该让所有的动作都随着机器速度的变化而变化,这样才不会在性能过高的机器上速度太快。
最后是那个分辨率的问题,我引擎初始化时就已经设定为800*600的了,无论你机器设置的分辨率是多少它都不会变化什么的,可能是在PS下做那张背景图的时候没有注意到的问题吧。
最后说一句,游戏之家的显卡看来比较好,居然出现了107的FPS,我的从没到过100以上。我的是GF9500。

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-29 21:12:00 | 显示全部楼层

Re:作品:《舰炮射击3D》[转载,TV3D游戏]

菜单处不会弹出游戏,我说的是游戏过程中, 反应太快了,有时候无法操作,一操作快就弹出游戏。
其实你设计的时候可以不考虑太多炮弹因素,用点随机的炮弹还好,不容易出错。

我设计的游戏换个快的电脑,速度是一样的,105FPS不算快,只是GF7100显卡,估计我家的GF8500能达到150FPS以上。

所有的速度都要乘上时间平均函数,A=A+1 必需写成 A=A + 时钟平均函数 * 0.1。

其实你这个游戏就因为弹道发射地方出了问题,看来VC调试起来真的麻烦,其实VB开发起来也不容易,只是我摸索出了经验,有人还说TV3D一个例子一个游戏,不用自己做,哈哈!

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2008-5-30 15:26:00 | 显示全部楼层

Re:作品:《舰炮射击3D》[转载,TV3D游戏]

你说的时钟平均数是tickcount还是timeescape?
我一直没怎么弄明白这两个函数的区别是什么。

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-30 19:13:00 | 显示全部楼层

Re: Re:作品:《舰炮射击3D》[转载,TV3D游戏]

hotrainfall: Re:作品:《舰炮射击3D》[转载,TV3D游戏]

你说的时钟平均数是tickcount还是timeescape?
我一直没怎么弄明白这两个函数的区别是什么。


VB6里是这样写:
X = X + TV3D.TimeElapsed * 0.01

如果不去控制速度 X = X + 1
TV3D.TimeElapsed 是时钟平衡函数
我不清楚VC里是怎么写.

0

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2008-7-26 13:26:00 | 显示全部楼层

Re: Re: Re:作品:《舰炮射击3D》[转载,TV3D游戏]

游戏之家站长: Re: Re:作品:《舰炮射击3D》[转载,TV3D游戏]



VB6里是这样写:
X = X + TV3D.TimeElapsed * 0.01

如果不去控制速度 X = X + 1
TV3D.TimeElapsed ...


VC就直接X++了,哪还用X=X+1这种口水话
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 21:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表