http://www.newsmth.net/pc/pccon.php?id=95&nid=98098
robocode合作開(kāi)發(fā)倡議。(有任何意見(jiàn)或建議,可以在blog里為這篇文章發(fā)表評(píng)論)
一,目的:
希望這個(gè)合作開(kāi)發(fā)活動(dòng)能給參加的人提供一個(gè)機(jī)會(huì),學(xué)習(xí)和鍛煉一個(gè)或多個(gè)下列技能:
1,體驗(yàn)一種主要通過(guò)網(wǎng)絡(luò)通信手段進(jìn)行協(xié)作開(kāi)發(fā)軟件的過(guò)程。
2,試驗(yàn)一種松散的、開(kāi)放式的開(kāi)發(fā)過(guò)程,即任何局外人可以了解開(kāi)發(fā)進(jìn)程,在開(kāi)發(fā)過(guò)程中允許新人加入、舊人離去而同時(shí)保持開(kāi)發(fā)的持續(xù)進(jìn)行。
3,實(shí)踐一種可以聚合抱著不同的學(xué)習(xí)和鍛煉目的人的能力的協(xié)作方式。
4,探討游戲設(shè)計(jì)思想、方法。
5,學(xué)習(xí)、摸索和實(shí)踐軟件過(guò)程、軟件體系結(jié)構(gòu)設(shè)計(jì)、OO設(shè)計(jì)模式的思想;實(shí)現(xiàn)一種便于擴(kuò)充的模擬平臺(tái)。
6,練習(xí)建模語(yǔ)言(UML)、工具的使用。
7,學(xué)習(xí)和掌握一種面向?qū)ο缶幊陶Z(yǔ)言。
(有興趣的可以繼續(xù)閱讀:或到我的blog去討論。)
二,起源:
robocode是IBM的一個(gè)牛人開(kāi)發(fā)的一個(gè)編程游戲,特殊之處是它的游戲者不直接是人,而是由人編寫的程序。具體來(lái)說(shuō),robocode是個(gè)軟件坦克戰(zhàn)斗的平臺(tái)。通過(guò)平臺(tái)提供的java API,軟件坦克(bot)可以得到部分的戰(zhàn)場(chǎng)情況,想辦法最大程度地攻擊敵人和保存自己。有很多人樂(lè)于設(shè)計(jì)自己的坦克策略和編寫坦克,拿來(lái)與別人的軟件作戰(zhàn)。
關(guān)于此一游戲的網(wǎng)站:
http://robocode.alphaworks.ibm.com/home/home.html (這是robocode的主頁(yè))
http://robocode.net (很多cobocode站點(diǎn)的鏈接)
http://robocoderepository.com/ (bot交流站)
http://robowiki.net/ (關(guān)于robocode的wiki)
http://www.alphaworks.ibm.com/tech/robocode (robocode的技術(shù)討論區(qū))
http://www.robochina.org (一個(gè)中文的robocode交流站點(diǎn))
三,目標(biāo):
改進(jìn)robocode原有的設(shè)計(jì)。我看了一些robocode的介紹,覺(jué)得很有意思,本想寫個(gè)bot玩玩,后來(lái)覺(jué)得更有挑戰(zhàn)的是改進(jìn)這個(gè)平臺(tái),給bot開(kāi)發(fā)著有更多的可能性展示自己的智慧。robocode的原作者早就聲稱終將開(kāi)放該游戲平臺(tái)的源代碼,但遲遲沒(méi)有付諸實(shí)際。所以希望能和一些有共同興趣的人一起親自重寫這個(gè)平臺(tái),并按照我們的設(shè)計(jì),對(duì)它進(jìn)行改進(jìn)。對(duì)上面列出的目標(biāo)中某一項(xiàng)感興趣的,可以大家聚起來(lái)共同商議,群策群力。完成這個(gè)挑戰(zhàn)。
我已有了個(gè)初步的設(shè)想。比如,現(xiàn)在robocode雖然有team battle方式,但機(jī)器人之間的合作可選擇的策略比較少,bot開(kāi)發(fā)者在這方面沒(méi)什么可發(fā)揮的。大部分論壇上的大部分討論集中在one on one 或者melee模式對(duì)戰(zhàn)中單個(gè)機(jī)器人的策略。我想也許平臺(tái)可以為bot提供裝甲設(shè)置功能,bot自己選擇裝甲安裝在自己身上的位置,這樣一個(gè)team里的bot的裝甲位置如果不一樣,也許可以產(chǎn)生各種各樣的合作策略,這就允許team bot開(kāi)發(fā)者發(fā)揮自己的智慧了。
當(dāng)然,如果大家覺(jué)得這個(gè)目標(biāo)意義不大,也可以提議更好的目標(biāo),只要同樣能夠達(dá)到上述目的。
四,長(zhǎng)遠(yuǎn)目標(biāo)。
做這件事情,不僅僅是為了開(kāi)發(fā)一個(gè)機(jī)器人戰(zhàn)斗模擬平臺(tái),更重要的,是摸索一種軟件開(kāi)發(fā)機(jī)制;建立一個(gè)或多個(gè)團(tuán)隊(duì)。
這種機(jī)制,盡量做到:使那些天南海北的,對(duì)某種軟件的開(kāi)發(fā)有共同興趣的人,主要借助于網(wǎng)絡(luò)交流的方式(bbs、blog、wiki),可以一起合作,包括制定開(kāi)發(fā)計(jì)劃、控制開(kāi)發(fā)過(guò)程、討論和解決問(wèn)題、分工、測(cè)試、編碼...;組織方式要有嚴(yán)密的結(jié)構(gòu)和靈活的應(yīng)變性。
至于建立團(tuán)隊(duì)的目的,當(dāng)然是糾合一些志同道合的人了。雖然這個(gè)活動(dòng)本身奉行開(kāi)放的原則,這包括,所有的成果都免費(fèi)提供給任何人。但通過(guò)這種活動(dòng),成員可以間接獲益:1,鍛煉自己的能力。2,合作成果的質(zhì)量、影響力,都可以作為成員能力的一種證明,成為他(她)的一種資質(zhì)。3,結(jié)識(shí)一些合作者,與他們建立工作默契。他們?cè)诤献髦邢嘧R(shí)相知之后可以走向以盈利為目的的商業(yè)團(tuán)隊(duì)。
五,Q&A
1,這個(gè)活動(dòng)如何起步?
現(xiàn)在還只是征求意見(jiàn)和建議。不管褒的貶的,好的壞的。只要有人回應(yīng),說(shuō)明這個(gè)活動(dòng)有某些可行的元素。這也激勵(lì)我進(jìn)一步制定詳細(xì)的計(jì)劃。
2,有什么初步的設(shè)想?
1,有必要先為這個(gè)活動(dòng)建立一個(gè)討論的地方。至于是BBS、blog還是wiki,看大家建議了。另外。2,先維護(hù)一個(gè)任務(wù)列表,好讓大家在任何時(shí)刻都能知道現(xiàn)在要做什么。這個(gè)任務(wù)列表目前放在我的blog目錄OpenTeam下,文章名為《“新robocode”任務(wù)列表》。當(dāng)然了,任務(wù)列表是開(kāi)放的,希望大家提出新的任務(wù)!
3,如何提出建議?誰(shuí)決定某想建議是否應(yīng)當(dāng)采納?
目前可以通過(guò)在我的blog上發(fā)表評(píng)論來(lái)提出建議,或者在smth bbs的游戲設(shè)計(jì)版(Game_designer)或自由與協(xié)作版(FreeDevelop)提出建議。
作為發(fā)起人,我有責(zé)任維護(hù)一個(gè)“建議列表”,目前我暫時(shí)把他們放到我smth的blog里,OpenTeam目錄下,文件名《新robocode設(shè)計(jì)建議列表》。以方便大家查看和評(píng)論。至于最終哪條建議被采納并被列入任務(wù)列表,我想需要建立某種制度,比如投票表決、特別委員會(huì)磋商等等,但現(xiàn)在只有我一個(gè)人,暫時(shí)采取發(fā)起人大權(quán)獨(dú)攬的方式吧。歡迎大家對(duì)這些機(jī)制提出建議!
聯(lián)系客服