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