我是菜鳥
幾乎剛好是6個月前,我決定開始從事一項新的職業。2010年10月之前,我從未接觸過編程。要說有,那也只是在6年級時學過了大概一周的非?;?本、基本、基本的編程知識。就這些。我不知會學成什么樣。2010年10月9日我在微博上寫道:“我究竟想干嗎?我決定學習編程,我沒有任何的基礎。唉, 兄弟們,我有些擔心。”這是一段生涯的開始,我很高興能走上這條路。我不會回頭。
開端
我將只快速簡單的給你們講一下我前幾個月的學習過程,因為這段時間非常的枯燥。我從Invent with Python這本書開始,這是一本對新手來說非常不錯的教程。為了讓你們知道它是如何的初級,我向你們展示這本書里的一段話:
+ 這個符號是來告訴計算機把2和2相加。做減法用這個符號 -,做乘法用星號(*)。
在我學會了一些非?;镜闹R后,我隨意的做了很多文本形式的小游戲,比如劊子手,jotto,猜數字。我的第一個比較大一點的小玩意叫做“大齒怪”。這個游戲的情景是關于一個大齒怪(就把它想成一個怪物吧),禍害村里。它藏在什么地方,你需要去猜它在哪:
也就是在此時我收到了我的第一張珍貴的粉絲畫的作品。我把這個游戲發布在了Reddit上,Michael Hussinger為它制作了這張令人驚嘆的封面畫:
接下來,我轉移到了我的第一個半圖形游戲:”掃雷“。在此時我才開始真正的理解構造一個靈活的游戲引擎有多么的重要(沒錯,就像我開發的這個游戲引 擎)。這個游戲仍然是文本形式的,但已經有相當的靈活度了,在這個游戲里,我可以指定布景的大小和地雷的數量。這樣一來游戲就可以從頭再玩,你可以把地雷 數量設置很小而很快能看到游戲的結果,這樣有趣多了。下面就是這個游戲:
歡迎使用蘋果iOS
此時,我已經感覺到應該轉向真正的圖形游戲了。我感覺陷入了僵局。我根本不知道從哪里入手。我研究了一下SDL,這個東西超過了我的接受能力,我很快放棄了。因為我知道最終我想做iPhone應用程序,我請教了Matt Rix (Trainyard),他給了我一些很好的建議。他建議我從學C語言開始,然后學Objective-C,然后Cocos2d。今天說起這些我很快高興,這三種語言我都學會了,雖然很基礎。
在學習C和Obj-C時,我遇到的大量的挫折,我沒有做出多少游戲。很多次,我真的懷疑是否能渡過難關、找到出路。很多東西當我第一次看到時愁得我撓掉了很多頭發:結構體,數組,多維數組,屬性,表現層,控制層,協議和代理,內存管理,還有很多。很多東西我目前仍然無法理解領會。但是我堅持繼續下去,我對很多人都說:讓自己進步的唯一方法就是不斷的做游戲。我十分清楚,想成為鋼琴家,練習時根本,所以,這也是我需要的(我就持續這樣下去)。
歡迎使用Cocos2d
一旦我最終把iPhone應用的基本知識攻克下,我立即開始研究Cocos2d。我很緊張,也很興奮?,F在,我不知道自己是太挑剔還是太笨,我感覺 Cocos2d的文檔寫的不太好。所有的類,方法,屬性都列出來了,但卻很難讓人讀懂,它們解釋的不太清楚。一個例子:每個”node“(Cocos2d 的主要元素)都有一個”(BOOL) isRunning“屬性??雌饋矸浅5暮唵?,但它似乎能夠表示任何意思。所有的文檔對這個屬性的解釋都是:”標志這個node是否在運行。嗯,ok … 不用說,Cocos2d里面有很多東西我都十分的困惑。
盡管這些的不滿,我還是非常喜歡Cocos2d。一旦掌握了一些基本知識,我就開始研究它如何能夠容易的做出一個簡單游戲,讓它馬上能跑起來。我已經知道了如何做音樂和聲效,我還知道一些Photoshop,我就真的開始要讓它輸出一些很酷的結果了。起初我對Cocos2d很困惑,我從Ray Wenderlich的一些非常棒的教材開始學習。
我開發的各種暫且算是游戲的游戲
下面的是我的第一個Cocos2d游戲,它是我直接按照Ray的教材開發出來的(我在里面還加上了我的音樂和當一個敵人被消滅時的很傻的音效!):
接著,我仿制了一個Pong。這個游戲還可以多人參與!:
Pong之后,我受到了鼓舞,決定開發Tetris。這是個巨大的錯誤。我根本沒有準備好。我遇到了各種讓人懊惱的錯誤和問題,當我最終把框架搭起來后,我在微博上寫了這樣的話:“我很驕傲。我為我的Tetris仿品開發了一個真正復雜的類/子類系統。”Noel Llopis很快的告訴我,說我的決定十分的錯誤。我搜集了一些教材,試圖好好的修改一下這個仿Tetris游戲,但太困難了。我決定放棄,但有一天我會打敗你的,Tetris!
這次Tetris失敗的嘗試之后,我受Tilt to Live的啟發做了一個游戲初始原型,我計劃在這個游戲里,你需要去收集紅點來獲取積分,而不是像其它游戲里去避開它們?,F在做的這個里面并沒有加入真正的游戲里面會有的音樂:
學習了更多的Cocos2d之后,我突然來了靈感要做一個循環的褶皺紙樣式的背景。于是把一張紙做出褶皺型,以循環方式填充背景。然后我在上面放了 一個小圓片,你可以用加速器讓它在上面滾動。當我弄明白如何讓這個小圓片滾動后,我為自己能做出這個東西很自豪,因為這牽涉的一些數學知識,我并沒有用很 久的時間就把它能明白了(盡管只是一個很簡單的幾何問題)。背景很難看 —— 但很好用: