前言 歡迎來到第一篇Space Project的開發(fā)日誌,這次的專案是團(tuán)隊(duì)作業(yè),我在裡面主要負(fù)責(zé)程式相關(guān)工作,所以不會去涉及美術(shù)相關(guān)的技術(shù),主要是簡單說一下這次做得是什麼樣的遊戲、現(xiàn)在的製作進(jìn)度、學(xué)習(xí)的技術(shù)等等。
技術(shù)相關(guān)的東西基本上是邊做邊學(xué),所以我不敢說100%的正確,只能說當(dāng)下我的使用方法是這樣,沒有辦法講的太詳細(xì),還請多加見諒。
專案的時(shí)間差不多是半年,目前很多東西都是邊做邊調(diào)整,像是有不少的功能目前都是未確認(rèn)的狀態(tài),也就是說有必要會刪除,只留下遊戲的核心元素。
要舉例的話就像是戰(zhàn)鬥類型遊戲,可以不要對話、道具擱置、背包也不要,但是戰(zhàn)鬥一定要有,最基本的攻擊判定、玩家移動、玩家運(yùn)鏡、敵人AI這些都一定要有。
最後還有要補(bǔ)充的地方是,這一篇大多數(shù)時(shí)候會以圖片跟文字說明,一方面是進(jìn)度還在緩慢進(jìn)行,邊學(xué)習(xí)邊做的副作用就是提不起效率,但這次目的有一半就是以學(xué)習(xí)為導(dǎo)向,所以沒有那麼的緊張。
那麼前言的部分差不多就是這樣,如果看完整篇有甚麼疑問或覺得有問題的地方,都可以在下面的留言或者私訊跟我說。
(備註:如果有興趣知道更詳細(xì)的可以聯(lián)繫我,有需要我也可以給組內(nèi)的企劃聯(lián)絡(luò)方式。)
製作手機(jī)的【放置遊戲】 如果不認(rèn)識【放置遊戲】的可以參考以下幾款手機(jī)遊戲:
當(dāng)然電腦上也有放置類型遊戲,就像是最經(jīng)典的開心農(nóng)場(早期FB的網(wǎng)頁遊戲),只是現(xiàn)在已經(jīng)停運(yùn)了,並且放置類型遊戲目前更多的是轉(zhuǎn)戰(zhàn)到手機(jī)上......有點(diǎn)題外話了,有興趣可以去網(wǎng)路上找相關(guān)資料。
回到製作,這次要製作的就是【放置遊戲】,配上上面所參考的遊戲,以及經(jīng)過高概念發(fā)想後選擇了3D、科幻、漂流、建築等題材。
(經(jīng)過篩選後留下的高概念圖)
在確定高概念後就開始做遊戲玩法的發(fā)想,這邊會用文字搭配圖片的方式進(jìn)行說明。
(備註:這個(gè)是發(fā)想用,一定還會有調(diào)整,等等看會覺得元素過多,可能特色太分散,或者說時(shí)間考量上這樣可能做不完,但這就是前言說的,有些還在待確認(rèn)。)
每個(gè)玩家都會有屬於自己的島嶼,島嶼上可以透過放置後取得遊戲中的貨幣以及道具(途中說到的遺物)。
(玩家島嶼,可以先忽略上面的Icon)
(採集放置所產(chǎn)生的資源)
(查看自己獲得的資源)
島嶼可以向某個(gè)地點(diǎn)移動,當(dāng)然需要花費(fèi)一點(diǎn)資源,地方分不同種,最主要的就是[交易地點(diǎn)]、[主線地點(diǎn)]、[其他玩家島嶼(弱連線)]。
(備註:其他玩家島嶼目前確定拔除,主要是技術(shù)難題,沒有做過,不知道怎麼做。)
(讓自己移動到某個(gè)島嶼身邊進(jìn)行交流)
交易地點(diǎn)可以使用貨幣和道具交易,獲取更多的*傢俱*,[主線地點(diǎn)]是來獲得主線劇情的,遊戲中著故事給玩家去探索。
(不同的島嶼會有不同互動)
然後遊戲還有一個(gè)特色就是*傢俱*,玩家可以布置自己的島嶼,不同的布置方式可以增加你放置獲得的好處,也就是上面提到的交易能獲取的東西。
(擺放不同傢俱能有不同的效果,或者單純布置)
整體遊玩內(nèi)容差不多就是這樣,至於美術(shù)設(shè)計(jì)的部分前言說到這邊不會細(xì)談,那麼基本的遊戲題材和遊戲玩法說完,接下來準(zhǔn)備說到開發(fā)進(jìn)度的部分了。
(備註:如果遊玩有甚麼不夠詳細(xì)的,可以在下面留言我會補(bǔ)。)
開發(fā)進(jìn)度
- 資料下載、資料讀取、資料紀(jì)錄、資料更新
- 計(jì)時(shí)功能
資料下載、資料讀取、資料紀(jì)錄、資料更新
(遊戲遺物舊的Excel設(shè)定)
(將Excel的資料放到SQLite)
這個(gè)主要方便處理資料,這樣之後改完Excel後,並且寫一個(gè)可以更新的程式,就可以變成一鍵進(jìn)行更新,我個(gè)人覺得是方便不少,數(shù)值規(guī)劃時(shí)也不用特別開Unity改ScriptObject資料,動Excel就可以了。
(提供好接口,讓Control使用接口輸入更新甚麼,就可以快速進(jìn)行更新)
計(jì)時(shí)功能
這個(gè)就比較白話,主要需要的功能是:現(xiàn)在的時(shí)間、上次離開的時(shí)間、這次上線的時(shí)間、計(jì)算離線了多久,並提供時(shí)間計(jì)算功能給其他系統(tǒng),像是生成系統(tǒng)每30秒要生成,就要讓計(jì)時(shí)系統(tǒng)提供接口。
(備註:接口的部分不知道怎麼展示,等到生成系統(tǒng)做完可能更直觀一點(diǎn)。)
(總和離線時(shí)間這麼大不是bug,這是因?yàn)檫@是我隔一天才又啟動一次)
開發(fā)進(jìn)度大概就是這樣,以一個(gè)月來說真的很少,但是因?yàn)檫@之中還加上學(xué)習(xí),學(xué)習(xí)的部分等等學(xué)習(xí)的技術(shù)會提到。
還有一部分是經(jīng)驗(yàn)不足導(dǎo)致,例如目前正在製作的生成系統(tǒng),生成物品可不可以疊放這種看似簡單的問題,有時(shí)候在設(shè)計(jì)時(shí)忘記,所以要花時(shí)間問,有時(shí)候問馬上就收到回覆,可能就沒想到,但有時(shí)候是設(shè)計(jì)設(shè)想時(shí)忘記有這樣的細(xì)節(jié),就還要花時(shí)間去想,這樣一來一回就又花了不少的時(shí)間。
(備註:但是這邊引用一句某位前輩跟我說的「設(shè)計(jì)階段的時(shí)候處理掉越多事情,後續(xù)就會越順?biāo)臁梗?/font>
學(xué)習(xí)的技術(shù) 這次最主要用到的就是[洋蔥架構(gòu)]和依賴注入框架[Zenject],插件的話目前沒有,因?yàn)椴寮胚M(jìn)來也是要學(xué)習(xí),可是光前面兩個(gè)就花了很多時(shí)間,尤其目前花最多時(shí)間的是理解Zenject。
像我說的,目前都是邊做邊學(xué),再加上我個(gè)人的習(xí)慣,我不敢再不確定前把東西說死(也是為甚麼我發(fā)文不是很長就是很水),所以更多的是說目前有甚麼問題,或者單純的說明學(xué)習(xí)的技術(shù)。
洋蔥架構(gòu)
簡約的方式來說,就是將程式邏輯依照不同層級進(jìn)行分離,unity的話可以用assembly,並透過開介面(interface)做反向注入,並不像平時(shí)的直接引用,可以達(dá)到解偶的目的,而且這樣的拆分讓程式碼更清楚的擺放,也能讓程式撰寫人更好的去找到功能的所在地。
目前的困難
洋蔥架構(gòu)或乾淨(jìng)架構(gòu)等資料網(wǎng)路上的資料很多,但詳細(xì)的資料夾結(jié)構(gòu)我自己找不太到,所以目前都是以功能上做簡單的區(qū)分,不知道有沒有甚麼網(wǎng)站或github可以做參考的。
(洋蔥架構(gòu)的分層)
(目前專案的資料夾區(qū)分)
Zenject
Zenject像上面說到是一個(gè)依賴注入框架,運(yùn)用這個(gè)框架可以讓注入變得中心化,透過installer去做綁定,如果其他的程式需要某個(gè)類別的時(shí)候,只要寫上標(biāo)記就可以將該類別注入近去。
Zenject還有提供像是事件處理singal bus,工廠factory,物件池memorypool等等,真的是很強(qiáng)大的框架。
目前的困難
現(xiàn)在都是抱著Zenject的Github文檔在看,真的要說比較大的問題,那就是全原文的文檔很花時(shí)間,中文圈也只有少少人的討論,除此之外就是慢慢啃原文檔了,目前正要做生成的我也正在詳讀memorypool以及factory。
推薦教學(xué)
剛剛說到中文圈很少討論,但這邊要重點(diǎn)推一個(gè)專門做Zenject基礎(chǔ)講解的人,那就是Rstar(不是GTA那個(gè)),Rstar的Zenject教學(xué)可以說對第一次接觸的人很適合,不僅有刻意做一些新手可能犯錯的地方,並且中間還加上了單元測試的使用流程,真的是很好的教學(xué)。 (這張圖綁定:如果找IRepository這個(gè)介面,就會找或生實(shí)例的SQLiteService給你)
(所以當(dāng)這裡需要IRepository,就會是SQLiteService,使用的功能也就是它的)
結(jié)語 這是第一篇也是第一次寫這個(gè),從開始寫完寫了差不多3小時(shí),感覺還是有不少地方?jīng)]有說好,但也只能走一步算一步,所以像開頭說的,有甚麼地方有疑問或想知道更詳細(xì),都可以留言說。
那麼這次開發(fā)日誌的部分就到這裡結(jié)束了,下一次的話應(yīng)該就會是功能的進(jìn)度回報(bào)居多,更多的影片展示,程式碼想想其實(shí)也不好給,還不如給github看更快(但是不行!),那麼下次開發(fā)日誌見。