成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

6個月從“菜鳥”到“牛人” iOS游戲開發者成長記

移動開發 iOS 游戲開發
本文講述一名iOS游戲開發者用6個月的時間從基本語言Objective-C都不甚了解的“菜鳥”到獨立開發出iOS應用“牛人”的成長記。

這是一個毫無編程經驗的“菜鳥”在成長為 iOS 游戲開發者后,總結的成長史。短短6個月間,他從 Python 入門,發展到給 Mac 開發小游戲,再到自學 Objective-C 和 Cocos2d。除了你可能已經讀過無數次的勵志元素,文中的書籍、網站推薦以及開發過程中的經驗教訓總結很值得打算或剛剛進入蘋果開發領域的新人一看。

我是菜鳥

幾乎剛好是6個月前,我決定開始從事一項新的職業。2010年10月之前,我從未接觸過編程。要說有,那也只是在6年級時學過了大概一周的非常基 本、基本、基本的編程知識。就這些。我不知會學成什么樣。2010年10月9日我在微博上寫道:“我究竟想干嗎?我決定學習編程,我沒有任何的基礎。唉, 兄弟們,我有些擔心。”這是一段生涯的開始,我很高興能走上這條路。我不會回頭。

開端

我將只快速簡單的給你們講一下我前幾個月的學習過程,因為這段時間非常的枯燥。我從Invent with Python這本書開始,這是一本對新手來說非常不錯的教程。為了讓你們知道它是如何的初級,我向你們展示這本書里的一段話:

+ 這個符號是來告訴計算機把2和2相加。做減法用這個符號 -,做乘法用星號(*)。

在我學會了一些非常基本的知識后,我隨意的做了很多文本形式的小游戲,比如劊子手,jotto,猜數字。我的第一個比較大一點的小玩意叫做“大齒怪”。這個游戲的情景是關于一個大齒怪(就把它想成一個怪物吧),禍害村里。它藏在什么地方,你需要去猜它在哪:

也就是在此時我收到了我的第一張珍貴的粉絲畫的作品。我把這個游戲發布在了Reddit上,Michael Hussinger為它制作了這張令人驚嘆的封面畫:

[[28667]]

接下來,我轉移到了我的第一個半圖形游戲:”掃雷“。在此時我才開始真正的理解構造一個靈活的游戲引擎有多么的重要(沒錯,就像我開發的這個游戲引 擎)。這個游戲仍然是文本形式的,但已經有相當的靈活度了,在這個游戲里,我可以指定布景的大小和地雷的數量。這樣一來游戲就可以從頭再玩,你可以把地雷 數量設置很小而很快能看到游戲的結果,這樣有趣多了。下面就是這個游戲:

歡迎使用蘋果iOS

此時,我已經感覺到應該轉向真正的圖形游戲了。我感覺陷入了僵局。我根本不知道從哪里入手。我研究了一下SDL,這個東西超過了我的接受能力,我很快放棄了。因為我知道最終我想做iPhone應用程序,我請教了Matt Rix (Trainyard),他給了我一些很好的建議。他建議我從學C語言開始,然后學Objective-C,然后Cocos2d。今天說起這些我很快高興,這三種語言我都學會了,雖然很基礎。

在學習C和Obj-C時,我遇到的大量的挫折,我沒有做出多少游戲。很多次,我真的懷疑是否能渡過難關、找到出路。很多東西當我第一次看到時愁得我撓掉了很多頭發:結構體,數組,多維數組,屬性,表現層,控制層,協議和代理,內存管理,還有很多。很多東西我目前仍然無法理解領會。但是我堅持繼續下去,我對很多人都說:讓自己進步的唯一方法就是不斷的做游戲。我十分清楚,想成為鋼琴家,練習時根本,所以,這也是我需要的(我就持續這樣下去)。

歡迎使用Cocos2d

[[28668]]

一旦我最終把iPhone應用的基本知識攻克下,我立即開始研究Cocos2d。我很緊張,也很興奮。現在,我不知道自己是太挑剔還是太笨,我感覺 Cocos2d的文檔寫的不太好。所有的類,方法,屬性都列出來了,但卻很難讓人讀懂,它們解釋的不太清楚。一個例子:每個”node“(Cocos2d 的主要元素)都有一個”(BOOL) isRunning“屬性。看起來非常的簡單,但它似乎能夠表示任何意思。所有的文檔對這個屬性的解釋都是:”標志這個node是否在運行。嗯,ok … 不用說,Cocos2d里面有很多東西我都十分的困惑。

盡管這些的不滿,我還是非常喜歡Cocos2d。一旦掌握了一些基本知識,我就開始研究它如何能夠容易的做出一個簡單游戲,讓它馬上能跑起來。我已經知道了如何做音樂和聲效,我還知道一些Photoshop,我就真的開始要讓它輸出一些很酷的結果了。起初我對Cocos2d很困惑,我從Ray Wenderlich的一些非常棒的教材開始學習。

我開發的各種暫且算是游戲的游戲

下面的是我的第一個Cocos2d游戲,它是我直接按照Ray的教材開發出來的(我在里面還加上了我的音樂和當一個敵人被消滅時的很傻的音效!):

接著,我仿制了一個Pong。這個游戲還可以多人參與:

Pong之后,我受到了鼓舞,決定開發Tetris。這是個巨大的錯誤。我根本沒有準備好。我遇到了各種讓人懊惱的錯誤和問題,當我最終把框架搭起來后,我在微博上寫了這樣的話:“我很驕傲。我為我的Tetris仿品開發了一個真正復雜的類/子類系統。”Noel Llopis很快的告訴我,說我的決定十分的錯誤。我搜集了一些教材,試圖好好的修改一下這個仿Tetris游戲,但太困難了。我決定放棄,但有一天我會打敗你的,Tetris!

這次Tetris失敗的嘗試之后,我受Tilt to Live的啟發做了一個游戲初始原型,我計劃在這個游戲里,你需要去收集紅點來獲取積分,而不是像其它游戲里去避開它們。現在做的這個里面并沒有加入真正的游戲里面會有的音樂:

學習了更多的Cocos2d之后,我突然來了靈感要做一個循環的褶皺紙樣式的背景。于是把一張紙做出褶皺型,以循環方式填充背景。然后我在上面放了 一個小圓片,你可以用加速器讓它在上面滾動。當我弄明白如何讓這個小圓片滾動后,我為自己能做出這個東西很自豪,因為這牽涉的一些數學知識,我并沒有用很 久的時間就把它能明白了(盡管只是一個很簡單的幾何問題)。背景很難看 —— 但很好用:

接著,當我看到了即將發布的游戲Bumpy Road的令人驚訝的海報后,我受啟發,心想是否能夠也做一個跟里面的高高低低的路面相似風格的游戲元素。很顯然,我的做圖水平很有限,你可以比較一下。

Bumpy Road:

我的版本:

這之后,我想在真正的動畫上試試身手。以前從沒有做過動畫,先在Photoshop試試。人物的制作很乏味冗長。即使是畫一條很傻很短的線條也很費 勁。但我還是完成了,我把他稱作“狂歡者”。他能做的就是一遍遍的張開和閉上他的大嘴,每次都隨機的發出一些哼哼聲。你還可以在屏幕上移動他。背景閃動不 同的顏色。當你觸碰屏幕時,他只能哼哼和張嘴:

然而,“狂歡者”有了一小隊粉絲。這些粉絲的頭像圖標里包括Mario, Link, Samus,等等。事實上我把這個游戲發給了Touch Arcade的Jared(嘿,是他向我要的)。之后,讓我大吃一驚和無比高興的是,Retro DreamerCraig Sharpe創作了我的第二張正規的粉絲的藝術作品!下面就是Craig為“狂歡者”創作的杰作:

他的作品是如此的優秀,我甚至把它放入了我的下一個游戲里。但起初,我突發奇想,要做一個跳桿子的游戲。起初的出發點只是為了使用一個簡單的游戲技 術測試一下視差背景的效果,但做下來就做成了這個游戲。最終的游戲有一個小屏幕,有記分功能,有重玩功能,有音樂、音效,各種跳躍高桿,有一個高度指示 器,甚至還有一個鳴謝頁面!它是我的功能最全的一個游戲。我在游戲里畫了一些非常丑陋的精靈,就像你下面看到的:

 

因為畫的太差,我詢問Michael Hussinger是否愿意為我做一些簡單的修改,他同意了!他在二十分鐘內就畫出來一個讓人驚嘆的匹薩伙計。我估計花幾個小時也畫不出這么好的作品來。他還為游戲中的視差效果畫了一個漂亮的山作為背景。下面的就是在他的幫助下游戲的樣子,我加上了標題和鳴謝頁:

游戲運行中!

我的下一個游戲受Trainyard的啟發。我想看看是否能做出 一個地圖,上面畫些網格道路,卡車能跑在上面。看看,制作“狂歡者”有了很好的回報。所以我稱這個為“狂歡大巴”。游戲的玩法就是點擊地圖上的一個地方就 設定一個聚會點(一個閃爍的,顏色變換的點,伴有音樂),然后圖上會畫出一條路,通向這個點,“狂歡者”會把他的“狂歡大巴”開到那里。不用說,這是一個 非常簡單的游戲。但里面很酷的東西是,當他到達目標地點后,音樂聲會變大,卡車會開始跳舞,Craig畫的作品會出現在開車上面左右搖擺!

代碼寫的很亂,有很多問題。我讓弟弟試玩了一下,他式了三次,什么都沒干成,他總是每次都是在錯誤的時間點擊到錯誤的地方,這樣游戲根本就不能正常 玩下去。每次我都要從頭開始玩這個游戲,因為我沒有給它加入“重新開始”的功能。但我還是挺為這個Trainyard的復制品感到自豪的。Matt應該為 此感謝我。

我的下一個項目是要做一條蛇。我發現了這個如何用flash做出一條蛇, 我只需要把它移植到iPhone上。這個教材讓我明白了很多如何做這種游戲的內幕。之前,我計劃讓蛇每一幀移動一次,但在如何讓蛇尾和蛇身保持一致的問題 上遇到了很多的麻煩。我本打算建一個數組存所有歷史動作,蛇尾將按照這個數組里的信息做它的每個動作,但這樣一來它動的太快,讓人很不舒服。這個教程整個 顛倒了我的思維,我意識到蛇其實根本沒有動。這種看起來在移動的視覺效果其實是簡單的在幀上添加和移去一小段蛇身產生的。這樣,當你撿起一 個蘋果,所需要做的只是告訴程序不要刪除任何片段。事實上我需要重新寫這個程序,因為界面太難看了,控制的也不好。因為我是移植過來的,代碼寫的很亂。但 事實上作為一個基本的游戲來,它還是很不錯的!

在完成這條蛇之后,我打算制作“狂歡大巴2”:“狂歡者”的周末狂歡。我把上一版升級了一些。我在里面加入了一些Trainyard里面的速度條, 一個車站,車可以從里面開車,一些聲音特效(當他被碰著時會出現很大的汽車相撞的聲音,而且會喊出“今天沒有活動!”),程序也整理的更整潔了。但沒多 久,程序又開始變亂,當我要糾正一個問題時,另外一個東西又出現了問題。最大的問題是當我把速度設成最大時,卡車會在路上某個點崩潰。這是因為更新調用的 太頻繁,程序來不及在下一次調用前更新完。盡管我知道這個問題的原因,如想修復這個問題需要重做大量的東西。我想我需要升級到“狂歡大巴3”:最后的狂歡。

我最近的目標是重做Doodle Jump。目前為止一切進展順利。里面很多小平臺,移動速度會約來越快,一個會跳的小人,一些其它物品(目前為止只有一個彈簧),自定義音樂和聲效,以及完全從原作里拷貝的背景。目前為止我對做出的東西很高興。我會繼續往里面增加很多的東西。

結論

練習給人帶來的進步是驚人的。每次當寫出一個新程序,我都會遇到大量的無法預知的問題和bug。當遇到挫折時,我一般是將問題移到下一次升級時解決。這讓我感覺自己就在走一個while循環:

  1. while (編程技術仍然很糟) { 
  2. 練習時間++; 
  3. 程序 * 新程序 = [程序 程序類型:游戲]; 
  4. if (新程序.做的很好嗎 == 是的 && 練習時間 >= 大量) { 
  5. 編程技術仍然很糟 = 否; 

我會一直這樣制作下去,一轉眼就到現在了,我幾乎等不及想知道再6個月后會是什么樣。請下次當我來述說如何給Casey’s Contraptions制作音樂(和一些聲音)時,請記住一定來看看!

 

【編輯推薦】

  1. iOS開發的路線圖
  2. 創建一個iOS應用程序
  3. iOS平臺開發工具 Xcode
  4. iOS平臺Cocoa Touch層
  5. 關于iOS應用開發
責任編輯:佚名 來源: cocoachina
相關推薦

2015-07-28 14:14:56

iOS開發者follow

2010-04-27 10:56:37

CTO程序員

2012-09-27 09:03:02

開發者iOS 6iPhone 5

2011-08-09 11:13:07

iPhone游戲網絡連接測試游戲

2013-09-03 09:54:15

Web開發

2011-12-08 20:19:39

2016-04-07 10:49:28

游戲開發者

2012-01-04 10:04:13

App Store開發者

2012-10-08 13:16:12

iOS 6

2017-11-02 15:42:32

開發錯誤代碼

2016-08-12 10:03:57

游戲行業移動開發移動游戲

2017-10-23 09:27:47

2013-04-17 11:18:11

編程語言

2011-08-09 15:17:07

iOS開發

2012-10-08 13:22:16

iOS 6

2012-03-08 22:18:45

2011-08-05 17:28:06

開發者游戲

2013-08-11 20:55:29

2012-03-07 09:41:01

Java

2015-09-07 10:15:53

移動端開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97精品一区二区 | 国内精品一区二区 | 日韩精品二区 | www国产成人免费观看视频,深夜成人网 | 美女爽到呻吟久久久久 | 欧美综合一区 | 一区二区三区中文字幕 | 91色站| 欧美极品一区二区 | 麻豆av免费观看 | a a毛片 | 国产真实精品久久二三区 | 成人av一区二区在线观看 | 成人在线播放网址 | 欧美一区二区免费电影 | 日本精品在线一区 | 国产成人精品久久二区二区91 | 99re6热在线精品视频播放 | 国产精品美女久久久免费 | 成人精品在线观看 | 日韩中出 | 亚洲综合在线视频 | 日韩精品一区二区三区中文字幕 | 91高清视频在线观看 | 亚洲一区二区三区免费在线观看 | 日韩超碰 | 欧美区在线| 国产999精品久久久久久 | 1级黄色大片 | 日韩中文字幕视频 | 91色在线 | 黄色大片在线播放 | 国产欧美日韩精品在线观看 | 蜜桃精品噜噜噜成人av | 一区二区视频在线 | 成人av观看| 视频二区在线观看 | 欧美人人| 国产在线一区二区三区 | 国产一区二区在线91 | 中文字幕电影在线观看 |