上篇主要介紹自己個人的經歷,這篇主要講下學習新語言的過程。
上次說到最終選擇的語言是swift,框架用spritekit,上次有網友對為什么選擇用這倆呢,為什么不用cocos和unity呢,cocos和unity我覺得相對來說比較成熟,但是一開始覺得要接觸的東西會比較多,對我來說學習的成本要大點,spritekit 本身集成在xcode中,對新手來說會省去很多的配置工作,可以很快的進入開發工作,spritekit目前用的人確實不多,現成的開發庫也比較少,遇到問題也不好解決,這個在我們后面開發中也能感受到了,不過swift在xcode的中的編碼和調試還是蠻順暢的,所以有想法自己做游戲的朋友,根據自身特點,選擇合適的框架。
接下來進入正題,講下自己是怎么學習swift和spritekit的。
蘋果推出新語言的時候,就很感興趣,也一直想做移動的應用,所以一直關注,期間也看了一本中文的swift的語法書,覺得這個語言其實跟C#和JavaScript很像的,當時的也沒覺得有什么特別之處,就是一些形式的改變,但比起object-c的語法感覺要容易理解多了。
剛開始學習spritekit的時候也是網上找書,可是講spritekit的中文書確實很少,也沒買到。然后就是在一個技術網站上發現了有一套入門教程,感覺比較適合,那套教程原價好幾百吧,不過在淘寶花了幾十買了學習碼,可以直接學習,不過只能看一周的時間,所以那幾天一直沒有停歇,一天看幾課,每課的我都照着事例寫一遍,有時候看到凌晨幾點,覺得除了高考沒有這么努力過,就這樣把這套視頻完整的看下來了,也寫了幾十個小例子,可以說對游戲開發和spritekit有了初步的了解。
因為學習spritekit的過程中,發現自己swift語言的有些不足,覺得語言的基礎也要再了解一遍了,就下了官方的swift的教程(The Swift Of Programming Language),那時候正式趕上十一期間,看朋友群的朋友各種發出去游玩的照片,自己確在小屋里看書,程序員的孤獨誰能懂,當時給自己定的目標是十一期間看完這本書,每天逼着自己看幾章,而且是英文的,自己英文水平也是一般,想想是有多費勁,但就這樣還看了一大半吧,后面的章節覺得對我游戲編程影響不是很多,而且光看語言,沒有實際的操作,覺得提高不是很大,也不好理解,就沒繼續看了,不過這本書寫的確實有水平,后面遇到的一些問題也在此書里找到一些解決辦法。
之后找到兩個Spritekit的QQ群,從群里找到一本比較新的Spritekit的英文教程(Game Development with Swift),花了2天時間給看完了,也更加清楚了游戲開發的一些事情,這其中包括精靈、攝像機、動作、控制、物理引擎、碰撞、菜單、聲音、GameCenter、上傳Appstore等等,慢慢發現自己英語水平也有所提高了,書中大部分意思也都能看懂了。另外加群還有很多好處,后面會講。
現在基本知識學習的差不多了,游戲設計也快成型了,已經清楚做什么類型的游戲了,可以開始做一個游戲DEMO出來了。
我們這次做的是一款迷宮類型的游戲,最主要涉及到的核心算法就是尋路算法。接下來兩天就一直在網上開始找和學習尋路算法,最后找到有兩個算法用的比較多,一個是Dijkstra算法,一個是A*算法。Dijkstra算法是比較有代表性的尋找最短路徑的算法,A*算法引入了估價函數,估價值與實際值越接近,估價函數取得就越好。游戲中多用A*算法比較多,效率也更好點,所以我們也是選擇了A*算法,並用這個算法寫出了一個的尋路的小DEMO。
今天就寫到這里吧,寫到這里的時候我們正在推廣自己的小游戲,推廣確實不太容易哈,后面會講我們推廣的一些方法和途徑。
下篇會主要講開發游戲的過程,希望大家繼續關注,有什么問題的話,大家可以留言與我交流。
未完待續,敬請期待。