全部博文(436)
分类: 系统运维
2010-10-28 23:54:35
第四周进度报告
上一周我们已经尝试着往地图里面添加了像水池、音效、新的地形等东西。不过由于知识有限,水池的整体效果仍然非常粗糙。为了继续丰富游戏的内容,这周我们主要研究了数据块的作用,从而成功的往游戏里面添加了一些以数据块为基础的物件。
首先我们按照书上70页的内容创建了一个名为enemySoldier的PlayerData数据块,并制定分类为enemy。代码如下:
datablock PlayerData(enemySoldier)
{
Category="Enemy"; //指定分类名
ShapeFile="~/data/shapes/player/player.dts"; //指定所使用dts的文件
Health=100;
Attack=10;
Defense=10;
};
将上述代码保存为enemy.cs文件之后在game.cs添加exec("./enemy.cs");就可以在World Editor Creator 的树型结构中的shapes下找到enemy文件夹。不过我们在执行过程发现,如果按照书上的代码来操作的话是不会自动产生enemy文件夹得。经过反复尝试之后才明白Category这项属性不能写成大写的。在将C改为小写之后树形结构中成功的出现了enemy文件夹。
虽然已经能够自己添加一些模块,但是在点击相应按键之后发现没有任何反应。通常在点击文件相应名字时会自动生成在数据块当中定义的物体,但凡是我们自己定义的都不会生成。我们估计是缺少一些使其实体化的功能函数,但目前仍然没有找到一些系统已有数据块的相关生成函数。所以我们希望在下一周的工作当中能够找到问题所在,争取实现自定义文件的生成。
尽管我们没能插入自定义物体,但是我们成功的通过定义粒子数据块和天气数据块往地图里面加入了瀑布和雨天等效果。天气数据块是Torque引擎中已经定义好的有关实现天气效果的数据块。通过定义其中的各项数值可以实现不同的效果。然而书中提供的属性解释有限,所以我们只是简单的定义了几个基本属性。不过最后产生的效果还是比较让人满意的。
代码如下:
datablock PrecipitationData(HeavyRain)
{
dropTexture = "~/data/environment/rain";
splashTexture = "~/data/environment/water_splash";
dropSize = 0.60;
splashSize = 0.1;
useTrueBillboards = false;
splashMS = 500;
};
将上述代码像enemy.cs文件一样成功加入之后,我们就可以在创建天气对象时选择要载入的数据块,从而生成自己想要的雨天。
在接下来的工作中,我们又对Torque的粒子系统进行了研究。通过Torque的粒子系统,我们可以产生像火焰、瀑布、爆炸、烟雾等特殊效果。可以说粒子系统对于一个游戏非常重要。
代码如下:
datablock ParticleData(DemoWaterfallParticle)
{
textureName="~/data/water/water.png";
dragCoefficient=1.0;
windCoefficient=1.5;
gravityCoefficient=0.5;
inheritedVelFactor=2.0;
lifetimeMS=16000;
lifetimeVarianceMS=2500;
spinRandomMin=-30.0;
spinRandomMax=30.0;
times[0]="0.0";
times[1]="0.5";
times[2]="1.0";
colors[0]="0.5 0.4 0.7 0.1";
colors[1]="0.5 0.6 0.8 0.1";
colors[2]="0.5 0.5 0.9 0.0";
sizes[0]="5.0";
sizes[1]="10.0";
sizes[2]="15.0";
uselnvAlpha=false;
};
datablock ParticleEmitterData(DemoWaterfallEmitter)
{
particles="DemoWaterfallParticle";
ejectionVelocity=0.55;
velocityVariance=0.30;
ejectionPeriodMS=10;
periodVarianceMS=5;
thetaMax=90.0;
thetaMin=0.0;
};
datablock ParticleEmitterNodeData(DemoWaterfallEmitterNode)
{
timeMultiple = 1.0;
};
在编写代码时最困难的是我们对于每项属性的定值没有一个具体的概念。我们不知道一项属性在给其赋值之后能够产生怎样的实际效果。所以我们不得不先瞎填一些属性,然后看一看游戏的效果再去对相关属性进行修改。好在参考了一些其他已经存在的数据块之后比较成功的实现了瀑布的效果。美中不足的是最后做出来的效果仍然有点粗糙。瀑布的添加方法与上述添加雨的方法大体一致,也是将生成的数据块载入即可。
虽然这个星期我们实现的功能并不多,但是在进一步了解相关数据块之后,我们相信今后在插入一些树木,岩石,篝火,烟雾等效果时会简单许多。
本周成员分工:
唐武兵:对Torque数据块的内容进行研究,同时对其内容加深理解。
赵君毅:对Torque数据块的内容进行研究,同时对其内容加深理解。
何鹏:对Torque数据块的内容进行研究,同时对其内容加深理解。
赵学:对Torque数据块的内容进行研究,同时对其内容加深理解。
董晔:对Torque数据块的内容进行研究,同时对其内容加深理解。
邹明航:对Torque数据块的内容进行研究,同时对其内容加深理解。
下一周的计划:
下周我们希望在解决对象的实例化这个问题之后对一些函数的功能进行一些研究。争取通过插入的对象,去实现一些简单的动态功能。当然现在对许多数据块的属性还是太陌生,而书上给的知识有限,所以仍然需要在这方面在网上进行了解。
小组成员总结报告:
第四次个人总结报告
邹明航1081000057
这次,我尝试给游戏加入一些背景模块并增加一些效果。
创建天空对象:游戏中已经默认创建了一个天空对象,只需修改一些参数就行。比如指定云的移动速度、二维向量、高度。设定游戏环境的可视距离,开始产生雾化模糊的距离,雾的颜色。
创建太阳对象:可以加入一个或多个太阳,设定太阳的方向矢量,太阳光的颜色,环境光的颜色。
创建闪电效果的对象:因为要加入闪电对象的数据块,而我们对数据块这一部分还不是很熟悉,所以并没有成功。
创建水模块:设定水覆盖的范围,深度,水材质的尺寸,产生波浪效果的参数,水表面使用的材质,水面反射周围环境的材质。
创建地形对象:导入制作好的等高地图地形文件。还有地形的面积。
创建声音的“发射器”,即音源:设定声音的有效距离、最大传播距离,是否为3D音效,是否允许屏蔽声音,声音强度值,这个有几个地方也要导入数据块,也不是很成功。
创建粒子发射器的节点:要使用到数据块,也没有具体去实现。
这次虽然创建了一些游戏环境背景,但这离真实的游戏环境背景还差很远,自己看起来都觉得粗糙,我会继续努力的。
第四次个人总结报告
赵学1081000056
在这个星期中,我主要针对我们打算做的坦克游戏,对书上第4章的部分进行了阅读,和尝试。为了能够做出坦克的玩家外形,我先对starter.fps中的人物进行了引用,作为以后设计完坦克外形以后的参考。这样,我的小游戏中就出现了starter.fps中的3D人物,比原来的由蓝色方块组成的人物要漂亮了许多。同时,我在GameOne这个游戏中又添加了许多数据块,通过这些数据块,我修改了游戏中的许多场景。让我切真的体会到数据块的强大,通过数据块,我可以修改游戏中几乎所有的数据,同时让游戏变得更加美化和符合人们常用的操作习惯。在这一章中,因为书上讲的并不十分详细,因此我在数据块中进行了各种尝试,在尝试中,不仅对Torque中的功能进行了了解,还为游戏制作提供了方便,可以使我们在做游戏时更加的熟练。在数据块添加的过程中,我发现制作游戏真不是一件容易的事,因为在编写完代码后,还需要图片和3D文件的支持,才能够在游戏中显示出来,因此,如果我们打算这个做坦克大战的游戏,还需要利用3D MAX来制作坦克的外形,在下周,我打算在3D MAX这方面下功夫,争取把坦克文件做出来。
第四次个人总结报告
唐武兵1081000035
由于这一周的大部分时间我跟随老师在成都参加中国电子协会举办的全国电子信息实践教学研讨会,没能按照计划学习Torque 3D,但我在回来之后马上就投入了Torque的学习当中,因为我不想因为我个人的原因而影响整个小组的进程。
在回来后的短暂时间里,我主要学习了Torque Script 的数据模块的添加,在学习过程中,可能由于过于心急,遇到了很多困难,感觉对Torque的理解远远不够,添加的各个模块不能达到应有的效果,在咨询了其他小组成员后,方才成功添加部分模块,但对其中的一些细节还存在很多疑问,不能很好的将前后的知识整合在一块,感觉只是零散的知道一些,我想我们现在已经到了游戏开发的攻坚阶段了,遇到的问题也越来越多,越来越难了,但在困难面前我们不能松懈,否则等待我们的将是失败,作为组长的我,一定要做好带头作用,鼓励大家勇往直前,最终取得成功。
第四次个人总结报告
何朋1081000017
由于前面看书比较仓促,很多地方只是简单地过了一遍,又加之同组同学进度不一致的问题,我最终决定在这周再好好复习一下看多的东西。我选择了一些自己认为最不“靠谱”的章节看。第四章《Torque Script》这一章重点介绍了Torque Script的一些重要概念和术语。Torque Script是一种类似C++语言的非常强大、灵活的脚本语言。它具有很多脚本语言的全部优点!我学习了变量、字符串、对象、数据块这些内容。有些东西不一定需要记住,我们只要大概了解其用法和一些常用的内容就可以了,特别具体的内容可以通过翻阅资料获取!比如数据块这一节,书中介绍了大大小小很多种数据块,如果要每一种都一一看完必然会花费大量的时间,这样换来的只是疲惫和低效率带来的时间浪费!我对于对象方法(函数)的理解不是很够,%h.function(10,”arg1”,”arg2”)这种调用一个通过对象引用的方法以前在其他编程语言中见到的非常少,感觉比较陌生……对于我们初学者来说,完全掌握对象类的方法是一件非常令人头疼的事情。当我们需要一个对象的方法的时候,我们根本不清楚引擎是否已经为我们提供了这样的方法,还是需要自己去创建!作者推荐我们在游戏控制台中,使用“对象句柄》dump()”命令,它可以打印出该对象所有可用的方法……好像是一种比较有用的方法啊!这周零零碎碎就做了这些事情。下周,主要是完成组长分配的任务!
第四次个人总结报告
赵君毅1081000054
按照上一周的计划,我在这一周对Torque引擎数据块的内容进行了比较细致的研究。可以说如果我们能够比较好的掌握数据块的使用方法,那么最后做出来的游戏效果会有质的飞跃。不过越是重要的东西越复杂,尽管花了不少的时间研究,但最后只是实现了一些较简单的效果。
由于网上的资料有限,我们参考的主要资料便是参考书。但是书上的内容有时候说的比较简略,所以这就要求我们不得不反复的尝试,有时候甚至还需要去猜测。在按照书上的指示操作之后如果不成功的话,我们得自己去试着更改,这确实会耽误我们的一些时间。不过我觉得这对于培养我们的毅力以及提升我们解决问题的实践能力是有不小的帮助的。
书里面已经介绍了Torque系统中的几乎所有数据块以及其中相关属性。但是它却没有明确告诉我们每一项属性具体取什么样的值会造成什么样的后果。也正因为这个,好多属性我们即便想加进去也不知道如何设置。所以目前我们面临的最大困难是如何获得更多的资料进行参考和改进。所以今后的工作需要我们更多的去网上进行搜寻,从而了解更多数据块的功能以及使用方法。
当然要想成功做成一部好的游戏,实践是必不可少的。我们今后会继续不断地尝试,不断的摸索,争取总结出有用的经验,应用到以后的各个工作当中。在下一周,我会在继续研究数据块的基础上将一部分注意力花在功能函数上面,从而着手实现一些简单的游戏特效。虽然今后会遇到更多更有难度的困难,但是我相信没有什么是难的住我们的。
第四次个人总结报告
董烨1081000010
在上一周的学习中,我学习了Torque游戏引擎中的编辑器的内容,其中包括了World Editor(世界编辑器) 和GUI Editor (GUI 编辑器 )。通过这两个编辑器的使用,我已经可以开始将游戏场景搭建地更加精美和完善。
新的一周中,我开始进行Torque Script, 即脚本语言的学习和使用。脚本语言同C++ 语言非常类似,它可以直接进行代码的编写,而不用花时间去考虑数据类型或者内存管理的是如何进行的等底层的原理。同时,它还允许用户直接修改代码,而不需要重新编译。但它最大的缺点是运行速度较慢。在新一个部分学习的过程中,我先后阅读了Torque Script中有关变量、对象(对象的创建、使用对象和对象方法)以及数据块的内容。Torque Script中的对象同JAVA中的对象大体相似,也同样具有属性和方法,可以通过相关的方法进行调用,相比于JAVA,它可以运用多种方法对对象进行赋值操作,更加灵活。其中,在学习对象方法的时候,我还掌握了一个对于初学者来说很有效的方法,那就是当我们需要一个对象的方法时,可以在游戏控制台中使用“对象句柄.dump()”命令,该命令就可以为用户打印出该对象所有可用的方法,非常方便。除此之外,Torque Script 中最重要的一个部分就是数据块的内容。它是Torque引擎的重要组成部分。通过数据块可以快速的定义各种游戏物品的公共数据,并且能提高游戏的运行速度。在这一部分中,我先后学习了Torque中一些预先定义的数据块,并了解了各个不同数数据块中的属性,以及属性的类型、默认值和相关描述和说明。通过对数据块的载入,游戏中场景和模式将会变得更加丰富和生动:比如在VehicleData数据块中,我们可以根据impactWaterHard和dustHeight 来分别定义物体露出水面时的重度声音以及车辆产生的尘土效果的高度。
在学习了Torque Script的知识和如何创建数据块对象的内容之后,我又初步的的学习了tutorial.base文件中的各个文件的内容,从根本上掌握如何使用Torque构建一个真正属于自己的游戏。首先,我了解了tutorial.base文件夹同example文件夹的关系,并初步的尝试着开始阅读tutorial.base中各个脚本的代码,慢慢的料及和掌握它们各自的作用。
在接下来的一周中,我会继续不断深入的学习和分析tutorial.base的脚本代码,在学习和借鉴中尝试编写自己的游戏代码,不断对游戏进行改进和完善。