SE_team

清华大学现代软件工程学生小组 指导老师:邹欣 组长:杜圆 组员:石礼昕,张远,郭华阳,高亦陶,贾志豪,李蔚

导航

Pair Project Summary:欢迎大家围观“三人足球”

Posted on 2011-03-21 17:11  SE_team  阅读(513)  评论(0编辑  收藏  举报

  我们组的成员包括张远(我)和董沛同学。两人开发了一个小游戏-三人足球,作为pair project的作品。

  欢迎下载围观:

  source: https://files.cnblogs.com/SE-team-2011/Billiards.rar

  demo: https://files.cnblogs.com/SE-team-2011/Billiards_demo.rar

  这个游戏源自于足球游戏和台球游戏的结合。传统的足球游戏的目标是双方争夺足球将球踢进对方球门里面。传统的台球是利用球的碰撞将目标球击入袋中。两者结合就产生了碰撞足球,即每方控制几个球,撞击场上的足球,将球打入对方球门。

  我们在网上调查了一下这一类的游戏,发现了一款比较好玩的网页游戏(http://www.globulos.com/play.php?ds=1&)。如下图所示

  这款游戏本身比较丰富有趣,最近具有挺高的人气。但这个游戏现在不具备AI功能,如果想玩这个游戏需要登录并且等待其他玩家加入进行对战。董沛对这个游戏的AI设计有着非常浓厚的兴趣,非常希望能够为这个游戏写一个AI。于是我们选择这个游戏中的一个游戏项目-三人碰撞足球,作为我们的基础游戏。将这个游戏做成一个offline的游戏并加入AI。

“三人足球”的简单介绍

  在这个游戏中,每方控制三个队员(即三个球),每一回合可以选择自己的球的弹射方向和力度,点击Go,双方的球同时弹出。游戏的目标是把场中的足球(白球)撞进对方球面里面。如下图所示

  注意,自己的球掉进任何一方球门里面就会挂掉,这局比赛再也无法行动。所以行动的时候要小心不要一头撞进门里哦,要不自己三个球都进门里了就只能眼睁睁的看着对方自娱自乐了:)如下图所示

  当然比赛中可以觉得局面太囧了可以选择重新摆球,重新开始。

“三人足球”的一些拓展设计

  在这个project中,我们拓展的重点在于游戏AI的实现。AI主要要考虑一下三个因素

  1. 把足球打入对方球门
  2. 避免己方球进入球门
  3. 把对方球打入球门

  此外,我们添加了一下简单的customization的要素。包括更改AI级别,调整球的最大速度,重新开始游戏等等

Pair Programming开发经历总结

  开发的第一步就是确定要做什么。作品的创意来源于董沛。随后我们开会讨论了这个project的可行性,主要是讨论在短短两周内是否能完成游戏的开发。这个project主要有以下几个难点,并估算了每一部分的时间

  1. 前期可行性分析与survey(2天)
  2. 碰撞足球游戏中碰撞物理模型的实现(3天)
  3. 游戏框架的搭建(2天)
  4. 游戏逻辑的实现(2天)
  5. 游戏图片的制作(1天)
  6. AI的实现(4天)

  由于两人都不太熟悉WPF,我们花了两天时间做了相关的survey。

  我很幸运的在网上找到了一个台球游戏的源码(http://www.cnblogs.com/iwteih/archive/2010/04/21/1717379.html),里面有我们需要的碰撞物理模型以及一个比较好的游戏框架。对我们有很大的帮助。由于我要准备开题以及董沛同学在外实习等各种原因,pair programming只能安排在周末,其余时间完成制定好的survey和coding的任务。第一周周末我们共同完成了难点中的前两点。第二周中我们分工,董沛负责AI的实现,我负责游戏和UI的完善。在第二周周末我们共同完成本游戏的制作。

  这次的Pair Programming中体验到了这种方式的若干好处,例如

  1. 程序代码更清晰,因为是两人共同设计的。
  2. bug更少,查除bug更容易,因为两人对代码比较了解。
  3. 能够取长补短,游戏的开发涉及到方方面面,创意,代码,美工等方面都有涉及。两人可以根据自己的兴趣和状况作出分工。例如董沛对AI比较感兴趣,而我比较熟悉ps等UI方面的工作。

How different the actual time spent versus the original estimation

  实际开发过程与计划相比,我们的survey花了更长的时间,大概从第一周周末才确定计划。但由于我们有了台球游戏的源码,前两步变的容易了很多,一个周末便全部实现了。其他部分基本按照计划进行。

Some photos  

  以下是一些照片,记录了我们第一次pair project的经历:)

对partner的评论

  虽然董沛平常有实习重任,但对project依然做出了巨大贡献,也非常积极的参与到pair programming当中。董沛提出了游戏的创意设计并完成了AI的实现,非常靠谱非常有能力!
  要提不足的话就是这段时间能够自由支配的时间比较少,不过董沛还是能够合理的安排好时间,完成分工的工作。

感谢!

  感谢iwteih同学的台球源码,对我们的project有很大的帮助>_<

  最后,继续欢迎大家下载测试,并评论提意见:)