2012年2月9日 星期四

[翻譯練習]五點起床寫程式(Waking Up at 5am to Code)





這篇文章是無意中看到,主要講工作之餘想開發自己有興趣的專案時,一般人會在下班後的晚上寫程式,但是他改用了一個不同的時間來開發。以下是他的經驗談.....


[翻譯開始]

我現在正在試驗每天五點起床,在上班前做我自己的專案。
有些在Hack News的人提到他們這樣做,而這點子在我腦中盤旋不去,所以我到目前為止已經這樣做了兩星期。

基本想法

在清晨五點跳下床並且寫上兩小時的程式,然後準備去上班。我每天都這樣做,包括假日。我會趁我晚上看電視的時候準備及維護一個線上版的Kanban board(任務看板,敏捷開發的方法),以確保我在隔天上午的時候可以快速進入狀況。

關鍵是享受工作

現在是清晨五點而我接下來將要整天投入工作。最重要的就是不要在這段時間內被壓力擊敗或感到挫折。做我喜愛且完全在我掌控中的個人專案確保了這一點。我目前只開始了兩星期,目前為止還沒有任何徵兆這會累死我,事實上完全相反,這樣做激勵了我。

優點

  • 在清晨五點是非常寧靜無聲的。沒人會在即時通訊軟體上,沒人會丟簡訊或寄email給我。我發現我非常的專心,察覺到只有兩小時可用激勵了我很專心且有效率地使用它。目前為止,我變得很有生產力。

  • 我有了一個明確界定的時間單位去做我的工作,我可以保證每星期最少有12小時、大多時候是14~18小時在這上面。(六日可以做更久)。這跟我以前要費盡心力去挖時間出來的狀況大不相同,這樣的工作架構使我有更好的整體時間運用。
  • 我只比以往更早一個小時上床睡覺。要這麼做我得要犧牲一點閱讀時間,然後我大概會睡上7-8小時。不過我目前對此一點問題也沒有。
  • 晚上的時候我心情更加的輕鬆-假日時更是如此。我可以放心娛樂放鬆自己,而不會有個聲音一直在我背後說得要對我的遊戲多做一些進展,如果是在晚上做我的專案就會這樣。但是目前為止我發現我一星期好好工作12小時,就足以在輕鬆的步伐下推進我的遊戲製作進度。滿足了創作的癮頭。
  • 我發現我在休息的時間可以不再一直想我的專案。
  • 當我要去上班時比以往更加清醒,而且因為已經有工作成效所以感覺不錯。

缺點

  • 第一次清晨五點起床超痛苦的。不過我已經在調整中。
  • 我或許已經過度消耗自己的精神而不自知。
  • 我不能像以前那樣聽音樂來提升我的效率,以免吵醒我女友。這也許慢慢變成是件好事....(我:這是說不會被女友抓去作其他事的意思嗎?)
  • 這可能會干擾到周末計畫。我有點懷疑這點,我已經不再年輕而且這些日子也不再是夜貓子了。
  • 在緊要關頭沒有任何進展,可能會拖累這些早起日子接下來的時間。希望它永遠不會發生,但是終究會。

為何週末也要這樣做?

我發現
如果我每天固定去做一件事,會更容易堅持。讓我週末時睡比較晚會讓我周一也想繼續睡。它可以被拆開來作,這只是我個人的想法。

任務看板

我真的超愛任務看板的,即使只有我一個人在用。我覺得這是關鍵。它讓我專注,專注在這些被分解到可被管理的任務碎片中(理想中可在兩小時內完成),而且確定我絕不會被想著接下來該做什麼給搞混。
我收到一些要求說要看看我的任務看板畫面節圖,就在這下面:(這邊請回原網站看吧)

其他想法

一開始的計畫是看看這是否真能堅持下去。對此我很樂觀。如果沒問題,我想會去找個適合我咖啡壺加上一個好的咖啡杯來等我起床。
我幹掉了站著工作的想法並且重回到坐下來工作。不過如果兩個小時地站立工作會不會比較理想?值得試試。

[翻譯結束]

我的想法:
我自己也這樣試了兩個星期,我得說還蠻難做到每天都提早兩小時起床的,不過一旦有做到整天的心情都還不錯。我的作法是提早起床然後到公司附近比較早開的咖啡聽寫程式,然後在NB快耗盡電源的時候也差不多就該上班了。裡面提到的專心跟有進展的心理安心感是我覺得這個方式最有幫助的地方。




2011年9月30日 星期五

網路遊戲的程式架構隨想

有的做法是將client server分成兩個app來寫,在純網路遊戲上因為邏輯一律由server處理所以很常見。但是這樣在同時有單機版跟多人版的遊戲上會有維護上的問題,同一個邏輯要寫兩份,所以也有想法是將程式架構直接切成不管單機或多人都是同樣的,只是單機時邏輯部分在本機做,而多人時由server做這樣。

如果要這樣做目前所想到的方法是將input、logic、presentation三者分開不同的layer,logic視單機與否來決定在哪裡運行。presentation要包含播放動畫、線性內插移動、播放音效特效等等。三個layer之間用message或event來傳遞。

有點像MVC設計模式這樣,可能要參考一下。

MVC、MVVM、MVP的介紹:
http://www.dotblogs.com.tw/regionbbs/archive/2011/09/29/compare.to.mvp.mvc.mvvm.aspx

2011年9月29日 星期四

DOOM啟示錄與APPLE

兩個公司都是由兩個極端不同個性的人組成,內向/愛出風頭

都導致了分裂。


但尊重及欣賞對方的專業讓APPLE能再起雄風,而分裂讓ID的遊戲只有技術而不再好玩。

但是在做不出像樣的東西(大刀)跟做不出經典巨作之間,我會選後者。

遊戲業的紀律與製作好遊戲有無關聯?

我認為是有,至少可以確定有產出(John Romero據說後面都在玩而沒做出關卡)。適當的放鬆管理會產出比較好的品質,而所謂的"適當"就是一個很難拿捏的標準(太嚴會惹毛大家,太鬆就沒有產出)。

不過歷史是由成功者所寫,所以John Romero是否後期都在混也很難說。但是掌握關鍵技術的確還是重點,FPS的關鍵是引擎,APPLE的關鍵是設計。



唯有不斷的要求進步才會成功,不管 這壓力是向自己(John Carmack)或是向別人(Steve Jobs)。

幾個關於iOS的跨平台引擎

Cocos2D
  For 2D,支援Box2D,多半在安裝好後會在IDE中增加一個templete方便直接做好COcos2D專案。

  一開始是Python,後來做了iOS版本(objective c)。cocos2d-x是由中國的開發者所維護的多平台版本(c/c++)。

  tutorial還OK,但是cocos2D-x的API說明跟特殊名稱說明比較難找。可能要看cocos2D-iPhone的說明跟教學比較好。

  原始版本,Python:http://cocos2d.org/
  最著名的iPhone版本:http://www.cocos2d-iphone.org/
  跨平台版本,多加了linux、win32:http://www.cocos2d-x.org/
 

Allegro
     For 3D,可用lua、bullet,不過文件跟教學好像有點不清楚。

 
    支援:
              Unix/Linux
              Windows (MSVC, MinGW)
              MacOS X
              iPhone
    官網: http://alleg.sourceforge.net/readme.html
    中文資訊: https://sites.google.com/site/cycuintrodutiontocomputer/home/allegro-game-development#TOC-Allegro-5-Visual-Studio-2010-
    討論區:http://www.allegro.cc/about


ClanLib
    For 3D,還有包含了不少其它的功能,像網路等
http://clanlib.org/wiki/Main_Page

2011年9月21日 星期三

2010年7月12日 星期一