這個月初滿工作試用期三個月了= =,也完成了第一個線上遊戲server,但…上個星期主管又丟兩個線上遊戲server下來了~只能拼命的寫了…,工程師真的是不歸路,忙啊~有興趣要入行的請考慮清楚= =+
有空再來分享一下寫線上遊戲的心得~
補充:
2012/06/03
這篇其實是剛入行幾個月時寫的,原本的標題是"最近真忙~冏",今天看到有人在問為什麼沒有標題是"當java程式設計工程師心得(1)"的文章,就是這一篇,呵呵~我特此將標題修改,其實在發表這篇之前我退伍也快一年,一直在當米蟲,後來有一個機緣才進入了遊戲開發行業~
2013/11/16
我現在終於有空了,來補一下上述提到"有空再來分享一下寫線上遊戲的心得",現在回想當初在進入公司之前,其實有去面試一間當年做yxhoo地圖的公司,有考筆試(一堆sql語法,題目全英文),筆試跟面談都不順利,後來又過了幾星期接到了大學時代的同學打給我問要不要到他公司上班,我才開始了程式設計師之路,在試用期的三個月裡,發生滿多事的,因為我大學剛畢業退伍回來,java也學到皮毛而已,網路程式完全不會,進公司後第一個星期是叫我看書,跟看前輩寫的server,當然囉,看得懂才有鬼XD,第二個星期時,主管跟我說試用期的最終測試就是我要獨立完成一個4人傅奕game server,壓力當然非常大,第二個月底時,我用前輩寫的game server(爆多bug)改成主管要寫的專案server,某一天主管要我把server傳給他,他測試完並一行一行看我寫的程式,就把我叫過去臭駡一頓,問為我什麼拿之前的改,當然結果就是退回重寫,我的同學兼leader也被我害到,最後主管講明「三天內給你重寫一個game server,行不行?給我一個肯定的回答」,我沉默了,此時我的leader擠出了一句話:「讓他試試看,不行再跟主管您說」,主管說:「行就行,不行就不行,三天後我要開會demo給老闆看」語畢就轉身回座位,我就問了一下leader「怎辦?」,leader「只能做啊,試試看吧」。
重寫的第一天,我把game server整個流程打掉重新思考要怎做,然重寫架構與流程,之後開始補method,method裡全都留空,只print method的名稱並加上一些timer跳下一個流程,在第一天就完成了流程控制,第二天就開始把所有的method補上功能並進行測試,第三天做最後的修正,最後順利的給主管看demo。
其實這三天決定了我可以留下來,這件事在我後來離職時,主管跟我說當時給我三天是要決定留我還是fire我,好在我學習力超強才克服(XD),不過當時真的壓力超大的,我聽到只給我三天時,整個腦袋都麻掉了。
寫了這麼長,來段結論好了,我在試用期三個月內學到一件很重要的事,就是一個程式設計師要把系統或遊戲寫好,一定要先把架構決定好,以及流程的串接想好,而不是急著寫功能邏輯,功能邏輯在一開始並不是最重要的,一個專案要先拆成各流程,之後再從流程裡拆功能,功能method要給誰寫都沒什麼差別(如果沒手下,就只能自己寫),基本上參數與回傳值都已先定義好,一旦功能完成,那專案就等於好了,可以直接測試,如果有發現問題,還可以獨立把功能抽出來測試,因為獨立完成的功能一定是最乾淨(不被系統牽制),這樣說明或許有些人不能理解,那我再舉一個常見的錯誤開發方式吧,寫過系統或遊戲的人,尤其是剛開始寫的時候,一定會邊寫邊想流程,然後method或變數都定成全域,method裡用到的變數都全域,最後整個專案寫好後,要是遇到bug,要查很難查,想單獨把一個method抽出來會倒致整個class或專案不能動,牽一髮動全身,這是最差的寫法。
我曾經把server寫爛掉過,一個server重寫三次也有,因為遇到流程亂跑的bug,表示我思緒不清楚,我能做的就是一直重寫重寫。
寫程式跟練吉他一樣,一個是寫code,一個是刷code,都是要重基礎開始,才會變強。
留言
張貼留言