分享

“新robocode”合作开发提议(第一讨论稿)

 richsky 2012-04-08

http://www./pc/pccon.php?id=95&nid=98098

robocode合作开发倡议。(有任何意见或建议,可以在blog里为这篇文章发表评论)

一,目的
    希望这个合作开发活动能给参加的人提供一个机会,学习和锻炼一个或多个下列技能:
    1,体验一种主要通过网络通信手段进行协作开发软件的过程。
    2,试验一种松散的、开放式的开发过程,即任何局外人可以了解开发进程,在开发过程中允许新人加入、旧人离去而同时保持开发的持续进行。
    3,实践一种可以聚合抱着不同的学习和锻炼目的人的能力的协作方式。
    4,探讨游戏设计思想、方法。
    5,学习、摸索和实践软件过程、软件体系结构设计、OO设计模式的思想;实现一种便于扩充的模拟平台。
    6,练习建模语言(UML)、工具的使用。
    7,学习和掌握一种面向对象编程语言。
    
(有兴趣的可以继续阅读:或到我的blog去讨论。)


二,起源
    robocode是IBM的一个牛人开发的一个编程游戏,特殊之处是它的游戏者不直接是人,而是由人编写的程序。具体来说,robocode是个软件坦克战斗的平台。通过平台提供的java API,软件坦克(bot)可以得到部分的战场情况,想办法最大程度地攻击敌人和保存自己。有很多人乐于设计自己的坦克策略和编写坦克,拿来与别人的软件作战。
   关于此一游戏的网站:
    http://robocode.alphaworks.ibm.com/home/home.html (这是robocode的主页)
    http:// (很多cobocode站点的链接)
    http:/// (bot交流站)
    http:/// (关于robocode的wiki)
    http://www.alphaworks.ibm.com/tech/robocode (robocode的技术讨论区)
    http://www. (一个中文的robocode交流站点)
        
三,目标
    改进robocode原有的设计。我看了一些robocode的介绍,觉得很有意思,本想写个bot玩玩,后来觉得更有挑战的是改进这个平台,给bot开发着有更多的可能性展示自己的智慧。robocode的原作者早就声称终将开放该游戏平台的源代码,但迟迟没有付诸实际。所以希望能和一些有共同兴趣的人一起亲自重写这个平台,并按照我们的设计,对它进行改进。对上面列出的目标中某一项感兴趣的,可以大家聚起来共同商议,群策群力。完成这个挑战。
    我已有了个初步的设想。比如,现在robocode虽然有team battle方式,但机器人之间的合作可选择的策略比较少,bot开发者在这方面没什么可发挥的。大部分论坛上的大部分讨论集中在one on one 或者melee模式对战中单个机器人的策略。我想也许平台可以为bot提供装甲设置功能,bot自己选择装甲安装在自己身上的位置,这样一个team里的bot的装甲位置如果不一样,也许可以产生各种各样的合作策略,这就允许team bot开发者发挥自己的智慧了。
    当然,如果大家觉得这个目标意义不大,也可以提议更好的目标,只要同样能够达到上述目的

四,长远目标。
    做这件事情,不仅仅是为了开发一个机器人战斗模拟平台,更重要的,是摸索一种软件开发机制;建立一个或多个团队。
    这种机制,尽量做到:使那些天南海北的,对某种软件的开发有共同兴趣的人,主要借助于网络交流的方式(bbs、blog、wiki),可以一起合作,包括制定开发计划、控制开发过程、讨论和解决问题、分工、测试、编码...;组织方式要有严密的结构和灵活的应变性。
    至于建立团队的目的,当然是纠合一些志同道合的人了。虽然这个活动本身奉行开放的原则,这包括,所有的成果都免费提供给任何人。但通过这种活动,成员可以间接获益:1,锻炼自己的能力。2,合作成果的质量、影响力,都可以作为成员能力的一种证明,成为他(她)的一种资质。3,结识一些合作者,与他们建立工作默契。他们在合作中相识相知之后可以走向以盈利为目的的商业团队

五,Q&A

    1,这个活动如何起步?
    现在还只是征求意见和建议。不管褒的贬的,好的坏的。只要有人回应,说明这个活动有某些可行的元素。这也激励我进一步制定详细的计划。

    2,有什么初步的设想?
    1,有必要先为这个活动建立一个讨论的地方。至于是BBS、blog还是wiki,看大家建议了。另外。2,先维护一个任务列表,好让大家在任何时刻都能知道现在要做什么。这个任务列表目前放在我的blog目录OpenTeam下,文章名为《“新robocode”任务列表》。当然了,任务列表是开放的,希望大家提出新的任务!

    3,如何提出建议?谁决定某想建议是否应当采纳?
    目前可以通过在我的blog上发表评论来提出建议,或者在smth bbs的游戏设计版(Game_designer)或自由与协作版(FreeDevelop)提出建议。
    作为发起人,我有责任维护一个“建议列表”,目前我暂时把他们放到我smth的blog里,OpenTeam目录下,文件名《新robocode设计建议列表》。以方便大家查看和评论。至于最终哪条建议被采纳并被列入任务列表,我想需要建立某种制度,比如投票表决、特别委员会磋商等等,但现在只有我一个人,暂时采取发起人大权独揽的方式吧。欢迎大家对这些机制提出建议!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多