日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KOFLive Postmortem

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KOFLive Postmortem 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為期兩個(gè)月的團(tuán)隊(duì)項(xiàng)目完成了,我們的游戲也已經(jīng)發(fā)布。在這個(gè)名叫KOFLive的小游戲里,我們集成了五個(gè)真人角色,每個(gè)角色有拳腳基本招數(shù)以及三個(gè)小招、一個(gè)大招,硬值、防御、集氣、雙人對戰(zhàn)、人機(jī)對戰(zhàn)、練習(xí)模式等格斗游戲的Feature基本上全部實(shí)現(xiàn),并且做出了比較炫目的特效。無論從目前的下載量還是用戶反饋來看,游戲的效果都達(dá)到了我們的預(yù)期,也算不枉這幾個(gè)月的一番心血吧J除了這些,整個(gè)項(xiàng)目的教訓(xùn)也是顯然的。如果說閱讀《夢斷代碼》使我們對"軟件難做"有了感性認(rèn)識,自己親自參與到一個(gè)軟件工程項(xiàng)目中才讓我們對這一點(diǎn)有了切身體會——不過,只要群策群力規(guī)劃得當(dāng),一個(gè)軟件項(xiàng)目總歸不是難于登天的。我們愿意把我們做這個(gè)項(xiàng)目的經(jīng)驗(yàn)教訓(xùn)與大家分享,希望對軟件開發(fā)人員能有一些小小的幫助。

  • 項(xiàng)目的選擇

    一個(gè)好的項(xiàng)目方案是成功的關(guān)鍵——它不僅能讓你的團(tuán)隊(duì)得到更多的用戶,更能讓隊(duì)員們在開發(fā)過程中充滿動力——試想,沒人愿意為一個(gè)"Hello World"工程付出太大精力,同樣也沒人愿意做一個(gè)根本不可能實(shí)現(xiàn)的功能:這中間的平衡需要好好掌握。另外,在選擇項(xiàng)目時(shí)你提出的第一第二乃至第三方案,都很有可能是別人已經(jīng)做爛掉的東西,這就要求我們在選擇項(xiàng)目時(shí),要有足夠的觀察力,并做足夠的市場調(diào)研。

    現(xiàn)在想想,我們的隊(duì)伍在項(xiàng)目選擇上,做的不夠好:一是對項(xiàng)目的選擇規(guī)劃重視程度不夠,表現(xiàn)在提出的備選方案太少,全隊(duì)六個(gè)人僅僅提出了三個(gè)方案以供篩選,這是很不好的一點(diǎn);二是最終選擇的項(xiàng)目(鏈接請看這兒)最重要的Feature實(shí)現(xiàn)起來難度太大。整個(gè)開發(fā)流程中,我們對游戲的愿景可以說有三個(gè)階段:

  • 一開始,我們不想做太Trivial的項(xiàng)目,更不想基于別人已經(jīng)做爛了的技術(shù)去完成項(xiàng)目。所以我們選擇了在這個(gè)游戲里加入圖像處理的部分:用戶輸入一張全身照片,我們程序做圖像分割,再將分割出的身體各個(gè)部分拼接成人體拳打腳踢的各種動作。做的時(shí)候才發(fā)現(xiàn),別說拼接,以現(xiàn)在的圖像處理技術(shù),自動識別人體胳膊、腿等具體部位都很難,何況在此基礎(chǔ)上進(jìn)行圖像分割了;
  • 之后調(diào)整計(jì)劃,將目標(biāo)鎖定為識別人臉,即識別出人臉并將其加載到游戲內(nèi)置的人物模型上。這個(gè)也比較不現(xiàn)實(shí),因?yàn)橛螒蛑写蟛糠謺r(shí)間人物都是以側(cè)臉呈現(xiàn)的,即使我們實(shí)現(xiàn)了人臉識別并分割的技術(shù),將其加載到這樣的一個(gè)模型里也比較難看,這一階段的博客請看這兒;
  • ?

  • 這一階段才是比較現(xiàn)實(shí)的:做一個(gè)真人角色的搏擊游戲,當(dāng)時(shí)我們定下的目標(biāo)就是"在去除人臉識別的前提下,將游戲的手感做到最好"。事實(shí)證明,這是最合適的目標(biāo):可以吸引大量用戶(我們的下載量和用戶反饋?zhàn)C明了這一點(diǎn)),又有適當(dāng)?shù)碾y度,是我們努力拼搏四周可以達(dá)成的;
  • 所以,"程序員是天生的樂天派"這個(gè)說法還是很符合實(shí)際情況的。另外我們組沒有做過圖像處理的組員,在MSRA我們也需要做實(shí)習(xí)工作,同時(shí)三名主力Dev還因?yàn)閷W(xué)分問題不得不選修清華姚班開的一門操作系統(tǒng),在這么繁重的壓力下去實(shí)現(xiàn)一個(gè)圖像處理界都沒有研究透徹的Feature,實(shí)在是不夠現(xiàn)實(shí)。其實(shí),在項(xiàng)目開始之前,我們不是沒有就難度問題咨詢過相關(guān)的專家,不過可能是不愿打擊一群毛頭小伙的滿腔熱情J 他們并沒有直接告訴我們這個(gè)技術(shù)的可行性。所以,奉勸大家在選擇項(xiàng)目時(shí),一定要有足夠好的市場觀察力,肯花時(shí)間去好好調(diào)研,并要清晰認(rèn)識自身能力、時(shí)間、優(yōu)先度等客觀條件,最好將每一步都仔細(xì)規(guī)劃好,做到"大膽假設(shè),小心求證"J

    ?

    一個(gè)好的選題很重要,不過我們當(dāng)時(shí)沒有注意到這一點(diǎn),做出選擇不夠慎重——這并不是說我們最終做出的項(xiàng)目沒有吸引力,只是如果我們當(dāng)時(shí)能夠計(jì)劃的好一些,開發(fā)過程中我們能少走很多彎路。從另一個(gè)角度來說,上軟件工程這門課,最重要的是學(xué)會一整套正規(guī)的軟件開發(fā)流程,而并不是說實(shí)現(xiàn)一個(gè)多難的技術(shù),況且,一個(gè)很難的技術(shù)也不一定是用戶歡迎的,對于一個(gè)學(xué)生團(tuán)隊(duì),選擇項(xiàng)目,不應(yīng)當(dāng)以"開發(fā)者"驅(qū)動,而應(yīng)當(dāng)以"用戶市場"驅(qū)動。

    ?

  • 項(xiàng)目的執(zhí)行

    在Beta階段開始的時(shí)候,PM給每位組員發(fā)了封整體進(jìn)度安排郵件,郵件末尾說"希望軟件工程結(jié)課時(shí),我們能說出一句:"We're proud of each other"",現(xiàn)在快結(jié)課了,我們認(rèn)為每個(gè)人都值得小組其他成員的這一句話: We're proud of youJ 項(xiàng)目執(zhí)行的兩個(gè)階段,尤其是Beta階段,無論是PM/Dev/Designer/Tester的緊密配合,還是目標(biāo)改變后的緊急調(diào)整,以及發(fā)布之前的緊密測試和應(yīng)急計(jì)劃,我們都做到了一個(gè)良好軟件開發(fā)團(tuán)隊(duì)?wèi)?yīng)該做到的。

  • 良好的設(shè)計(jì)架構(gòu)和清晰的接口。我們的Dev們有著強(qiáng)大的單兵作戰(zhàn)能力和豐富的工程經(jīng)驗(yàn),他們設(shè)計(jì)了一整套高效的游戲支持機(jī)制,整個(gè)工程有著清晰的層次架構(gòu):
  • 最底層的游戲引擎負(fù)責(zé)圖片的透明化、放大縮小、去鋸齒、渲染、翻轉(zhuǎn)等操作,并進(jìn)行圖片像素級的碰撞檢測和音效支持。
  • 中間一層是基于引擎的游戲運(yùn)行邏輯層,在這一層我們進(jìn)行人物招數(shù)和狀態(tài)轉(zhuǎn)換的設(shè)計(jì)和加載,實(shí)現(xiàn)攻防判定、血?dú)夤芾怼⑤斎霗z測、AI機(jī)制、糾錯(cuò)機(jī)制等等。
  • 最上一層負(fù)責(zé)整個(gè)游戲的流程判斷:啟動、終止界面的加載、用戶選擇流程的分支等。
  • ???????????????????????????? ?

    我們?nèi)齻€(gè)層次不同的功能模塊之間定義好了完備清晰的借口,極大提高了Dev分工合作的效率以及Designer設(shè)計(jì)招數(shù)和特效的效率,并方便及時(shí)查錯(cuò)(要知道設(shè)計(jì)游戲時(shí),游戲引擎在進(jìn)行毫秒級的不斷渲染,Debug是很難通過IDE 設(shè)置斷點(diǎn)來實(shí) 現(xiàn)的J)如果可能,我們也樂于開放自己的源代碼,供大家參考指正。

    ?

  • 專業(yè)的招數(shù)設(shè)計(jì)和特效制作。我們的Designer中有拳皇游戲的骨灰級玩家,對每個(gè)人物的狀態(tài)轉(zhuǎn)換和招數(shù)設(shè)計(jì)有著很好的設(shè)計(jì)(這可是一個(gè)參數(shù)一個(gè)參數(shù)調(diào)試慢工出細(xì)活的過程^_^),同時(shí)也有精通PS特效制作、研究過用戶界面的同學(xué),制作出的效果十分炫目,不信,自己下載游戲看看吧J 大家分別發(fā)揮自己的特長,進(jìn)行充分的合作,保證了游戲的質(zhì)量和進(jìn)度。
  • 嚴(yán)密的發(fā)布前應(yīng)急和測試。我們一直有一個(gè)理念:發(fā)布日期定在那里,我們要在此之前發(fā)布,并且應(yīng)當(dāng)對用戶負(fù)責(zé),不能讓用戶使用一個(gè)Bug很多的花架子。所以我們進(jìn)行了清晰的進(jìn)度規(guī)劃,大到周,小到半天,應(yīng)當(dāng)完成的進(jìn)度十分明了。同時(shí)我們進(jìn)行了有效的發(fā)布前規(guī)劃:
  • AI機(jī)制在發(fā)布周之前都沒有涉及,我們制定了應(yīng)急機(jī)制:在目標(biāo)上降低需求,做出一個(gè)讓用戶不能輕易打贏的AI版本即可, 在實(shí)現(xiàn)機(jī)制上我們提前設(shè)計(jì)好了隨機(jī)性的AI貪心算法,并預(yù)留出了相關(guān)的接口。事實(shí)證明這套機(jī)制是行之有效的:我們的AI只用了周四一天的時(shí)間完成,經(jīng)過相關(guān)測試,周五游戲就發(fā)布了。但AI效果非常好,電腦出招很犀利,(有的角色甚至讓玩家驚呼"Bug" "Imba"J) 剛剛上手的玩家很難打贏,這無疑能刺激用戶接著玩下去^_^
  • 頻繁的健壯性測試。每當(dāng)有人要Check in一個(gè)新版本,我們都規(guī)定他自己要進(jìn)行近乎變態(tài)的測試:長時(shí)間的亂序鍵盤輸入檢測。這一點(diǎn)在發(fā)布周執(zhí)行地更頻繁:每當(dāng)有人Check in一個(gè)修改比較大的版本,我們都會組織兩個(gè)人在電腦上打一打,瘋狂的敲擊鍵盤J。事實(shí)證明這也是非常有效的:我們大部分的Bug都是這樣測試出來的,并且我們保證在發(fā)布之前這些Bug都被及時(shí)修正。在Test Report中,我們報(bào)出的"可以發(fā)布"的結(jié)果,是切實(shí)有效真正對用戶負(fù)責(zé)的。
  • 發(fā)布前整流:在臨近發(fā)布前兩天,我們兵分兩路:PM和一個(gè)Dev進(jìn)行發(fā)布的所有事項(xiàng)準(zhǔn)備,Branch一個(gè)發(fā)布版本用于制作安裝包、測試、撰寫說明文檔、確定下載站點(diǎn)及統(tǒng)計(jì)方式等,其他人員接著做之前的事情。這樣保證我們發(fā)布時(shí)不會手忙腳亂,出現(xiàn)各種意外情況。
  • ????????????????這些措施的實(shí)施,使我們提前兩天發(fā)布了游戲 ,并且到現(xiàn)在沒有收到用戶反饋的任何健壯性問題,我們保證了我們最一開始交付給用戶的,即是一個(gè)健壯合格的產(chǎn)品

    ?

  • 有效的時(shí)間管理。由于我們在確定實(shí)現(xiàn)的基本Feature時(shí)有過一些改變,所以真正開發(fā)起來時(shí)間顯得很緊張,我們必須保證大家都能充分利用時(shí)間,為此我們有以下機(jī)制:
  • 修改了Scrum的流程,如果一個(gè)Daily Scrum沒有討論出真正必要的東西,我們?yōu)槭裁从忠敲炊鄷r(shí)間呢?所以我們規(guī)定:每天的Scrum不一定必須大家聚在一塊兒,只需由PM調(diào)查每個(gè)人的進(jìn)度,并將每個(gè)人的進(jìn)度通知其他人。PM應(yīng)當(dāng)對整個(gè)項(xiàng)目的進(jìn)度有很好的了解,當(dāng)PM認(rèn)為有必要大家在一塊兒商討時(shí),我們才會專門去會議室討論清楚問題。在每次Scrum之前,我們都提前確定了本次需要匯報(bào)給其他人的進(jìn)度以及需要討論好的問題,確保會議時(shí)不會因?yàn)槔鋱龆⒄`整個(gè)組的時(shí)間。這樣我們聚在一塊兒的Scrum基本上兩天一次。事實(shí)證明這是非常有效的溝通合作手段。
  • 我們會充分考慮每個(gè)隊(duì)員當(dāng)前的時(shí)間安排:畢竟有隊(duì)員會在某個(gè)時(shí)間段因?yàn)榻M里面有deadline而時(shí)間很緊張,我們會平衡每個(gè)人的負(fù)擔(dān),將他的任務(wù)適當(dāng)轉(zhuǎn)移給其他的隊(duì)員,大家也都能做到互相體諒互相幫助
  • 總結(jié):盡管降低了難度,但不借助外界引擎開發(fā)一個(gè)完整的游戲,畢竟還是很有難度的。隊(duì)員們在四周的開發(fā)流程中圓滿完成了開發(fā)的任務(wù),交付給了用戶一個(gè)負(fù)責(zé)任的產(chǎn)品。可以說,我們在項(xiàng)目選擇、計(jì)劃階段有考慮不周的地方,但在真正的開發(fā)過程中,我們的個(gè)人努力和團(tuán)隊(duì)合作是高質(zhì)量高效率的

    回想這個(gè)KOFLive開發(fā)流程,我們經(jīng)歷過計(jì)劃大改的陣痛、成員意見的沖突、通宵工作的勞累,也經(jīng)歷過目標(biāo)實(shí)現(xiàn)的興奮、初具雛形的喜悅、游戲發(fā)布的欣慰,不管最終結(jié)果怎么樣,這樣一個(gè)過程讓我們真正了解了如何做軟件,更重要的是如何與他人合作:說服他人以及被他人說服J 這是讓我們感激彼此的重要原因。

    最后,上張合影, We're proud of each other!

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/MSRA_SE_TEAM/archive/2011/03/14/1984271.html

    總結(jié)

    以上是生活随笔為你收集整理的KOFLive Postmortem的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 一级黄色a级片 | 在线伊人网 | 午夜刺激视频 | 欧美性猛交 | 天天爽夜夜爽人人爽 | 哈利波特3在线观看免费版英文版 | 国产成人97精品免费看片 | 伊人影院视频 | 国产1区2区3区4区 | 日韩免费毛片 | 暖暖成人免费视频 | 欧美性一区 | 亚洲av无码国产精品久久不卡 | 久久婷婷伊人 | a中文在线 | 一级久久 | 99精品一区二区 | 69久久夜色精品国产69 | 亚洲玖玖玖 | 日本三级大片 | 欧美a级在线免费观看 | 国产精品久久久久久久久免费看 | 国 产 黄 色 大 片 | a国产免费| 久久久久久久久久av | 九一国产精品 | аⅴ资源天堂资源库在线 | 国产夫妻性爱视频 | 免费手机av| 粉色午夜视频 | 欧美三级久久久 | 色人阁在线视频 | 欧美日韩午夜精品 | 蜜桃av在线看 | 天天色综合天天 | 一边摸内裤一边吻胸 | 欧美.com | 91视频在线观看 | 成人毛片18女人毛片免费 | 久久亚洲av成人无码国产电影 | 91亚洲在线 | 一区二区三区四区在线 | 亚洲精品乱码久久久久久黑人 | 精品久久久久久无码人妻 | 97夜夜 | 欧美精品1区2区3区 精品成人一区 | 九九久久综合 | 岛国av在线播放 | 黄色片子免费 | 先锋影音久久 | 天天操夜夜夜 | 日韩精品成人一区二区在线 | 性按摩玩人妻hd中文字幕 | 国产九色在线播放九色 | 久久久久亚洲AV成人无在 | 亚洲精品18p | 亚洲综合av一区二区三区 | 成人一区二区在线观看 | 伊伊成人 | 91视频一区二区 | 日韩人妻精品在线 | 综合人人 | 欧美日韩综合网 | 中文字幕亚洲乱码熟女1区2区 | 欧美整片sss | 色偷偷噜噜噜亚洲男人 | 男女裸体影院高潮 | 黄色片a级片 | 强制高潮抽搐哭叫求饶h | 欧洲日韩一区二区三区 | 国产一区二区在线播放视频 | 伊人成综合网 | av片免费 | 一级黄色性片 | 视频二区中文字幕 | 成人免费毛片糖心 | 麻豆av一区二区 | 久久久久成人片免费观看蜜芽 | 健身教练巨大粗爽gay视频 | 日批av | 久久sp| 精品综合久久久久 | 性福宝av| 五月激情五月婷婷 | 婷婷激情社区 | 欧美一级在线视频 | 国产丰满麻豆 | 国产精品一区二区欧美 | 国产精品免费av一区二区三区 | 美女色黄网站 | 丁香花电影在线观看免费高清 | 青青草97国产精品麻豆 | 国产精品6666 | 久久久成人精品一区二区三区 | 国产精品乱码妇女bbbb | 五月天丁香社区 | 日本少妇一级 | 涩里番在线观看 | 好吊日在线观看 |