和美少女游戲設(shè)計師一起云游戲 Episode 02

登場人物:
甲:美少女游戲設(shè)計師(聲稱)
乙:普通的游戲玩家
甲:獨立游戲這個業(yè)界,代碼風格是和別的業(yè)界不太一樣的。
乙:這個你得給解釋解釋。
甲:講究的就是四個字:“能用就行”。
乙:這可真是一點都不講究。
甲:干這一行的程序大致上有兩種:一種或是半路出家,或是在培訓班簡單學過幾個月,水平本來就比較次,湊合著能寫一個跑得起來的游戲就不錯了。
乙:確實,在代碼上再做要求就有些難為人家了。
甲:另一種人倒是正規(guī)的計算機系出身。
乙:這種人的代碼風格就好了。
甲:不是。這種人的代碼風格更差——你想,什么樣的人會放著大廠的工作不要,跑來做獨立游戲?
乙:有理想,有追求的?
甲:不,是想要打破拘束,放飛自我的人。
乙:這不也挺好的嗎?
甲:具體到代碼風格上,就是隨心所欲,想怎么寫就怎么寫。注釋一行沒有,goto遍地開花。全局變量到處都是,private聲明根本就不存在。
乙:這未免也太放飛自我了。
甲:想ijk就ijk,想abc就abc,想不大寫就不大寫,想不縮進就不縮進。英語不好可以用拼音變量名,中文不好拼音可以拼錯……
乙:你這根本說的就是你自己吧!
甲:推己及人地想一下,想來這個業(yè)界泰半如此吧。
乙:不,你真的是一個人。
甲:這叫獨立精神。
乙:有一說一,你這么寫程序圖什么?
甲:禁忌這種東西,就是為了打破而存在的——或許,這就是世人所說的“禁斷的魅力”。
乙:一般不是往這個方向較短吧。
甲:你感受不到嗎?將goto語句交錯在一起時,那種強烈的背德感,還有就是,心底的悸動。
乙:我實在無法體會……這種程序員的興趣。
甲:這么說吧,當年我上學的時候,助教特別愛讀我的代碼。
乙:還有這種事?
甲:讀一次扣十分代碼風格分的那種。
乙:所以說你從小到大一直都是ijk拉滿的嗎?
甲:等到學期末,我覺得這樣不行。就去打聽助教有什么愛好。我一打聽,喜歡看電影。于是,我就想辦法搞了張票。
乙:人家也是講學術(shù)道德的,不吃這一套吧。
甲:看完之后,把劇透寫進了代碼注釋里。反正分都扣的差不多了。
乙:……你這分扣得不冤。
甲:如今沒人管得著我代碼風格了,還不讓我爽一爽嗎?
乙:意思是你跟助教逆反到了現(xiàn)在?
甲:當然,這么寫也是有代價的。那就是容易出bug。
乙:知道容易出bug你還寫?
甲:修bug是工作,寫bug才是生活。
乙:……你喜歡就好。
甲:最近我就修復了一大堆bug。包括但不限于……
?
以下內(nèi)容我懶得改寫成對話了
?
游戲中的行號和文本無法對齊
原理:行號從滾動條處讀取文本位置,但滾動條的數(shù)值有時候不是特別精確。
解決方案:手動實現(xiàn)滾動條和文本框的關(guān)聯(lián)。
?
兩個看起來完全相同的字符串被游戲識別為不同
原理:玩家可能會偶然輸入一些不可見的符號。
解決方案:偷偷地刪除掉玩家輸入的不可見符號,反正玩家也看不見我刪了。
?
游戲中的光標和文本無法對齊
原理:我實現(xiàn)的滾動文本似乎有一些難以處理的故障。
解決方案:放棄自己琢磨,改為找插件作者解決第一個問題。
?
玩家可以進行注入攻擊
原理:我使用富文本來高亮顯示文字,但玩家也可以輸入富文本。
解決方案:使用一個透明的文本框覆蓋在輸入框上方,富文本效果全部放在新的文本框里。從而,玩家無法直接與富文本互動。
?
有時候玩家輸入的文本會神秘失蹤
原理:我看漏了一個勾選框的效果,我以為效果是自動重置光標位置,實際上是自動重置光標和文本。
解決方案:反選這個勾選框。
?
在載入一個場景的第一幀,有時候不該出現(xiàn)的滾動條會一閃而過。
原理:不清楚,大概是沒有第一時間運算到那一塊。
解決方案:在第一幀里關(guān)掉滾動條。
?
在載入一個場景的第一幀,有時候該出現(xiàn)的滾動條會晚一幀再出現(xiàn)。
原理:上一個問題。
解決方案:考慮到第一幀就出現(xiàn)滾動條的場景并不頻繁,以及“晚一幀出現(xiàn)”的視覺效果沒有“一閃而過”明顯,這事情要么就算了。
?
盡管我調(diào)用了unity自帶的禁用輸入法功能,但它僅僅只是暫時關(guān)掉輸入法。玩家仍然可以手動打開輸入法。在點擊一個輸入框時,輸入法會自動開啟。
原理:我不愿意思考這事情。
解決方案:每幀關(guān)閉一次輸入法。理論上玩家的手速不足以在切出輸入法的同一幀里完成輸入。
?
乙:有一說一,你這種修復方式實在是……
甲:業(yè)界標準:能用就行。
---
甲:最后我想說一句,這篇文章其實是一個廣告。我最近在開發(fā)一款游戲……
乙:你說的不會是上面那個全是bug的游戲吧。
甲:放心,基本上都修復了。
乙:你給我解釋解釋,什么叫基本上。
甲:游戲的名字是A=B。這是一款編程解謎游戲,在游戲中,玩家將會掌握一門叫做A=B的原創(chuàng)編程語言。游戲中唯一的一種指令就是A=B,意思是將A替換為B。對,這就是全部的指令。沒有for,沒有if,沒有while,沒有與或非,沒有縮進……什么都沒有,就是這么簡單易學。
乙:我怎么覺得只會更加難寫……
甲:但這不正是編程游戲的樂趣所在嗎?
乙:你確定會有人想玩這個嗎?
甲:老實說我也不太確定。但是,沒有關(guān)系,我們像深圳IO那樣,制作了一款內(nèi)置小游戲。即便不喜歡游戲本體,小游戲的部分也會讓你覺得物有所值。
乙:你這是……什么商法?
甲:游戲預定在今年11月發(fā)售,demo則在10月初的steam游戲節(jié)上就可以玩到。心動不如行動,現(xiàn)在將它加入愿望單……呃,你的愿望單里就會多一個游戲。
乙:真的會有人因為這種文章心動嗎?
?
https://store.steampowered.com/app/1720850/AB/

甲:對了,你覺不覺得這個宣傳片看著很有黑客氛圍?我差不多花了半小時才從免費素材網(wǎng)站淘到了這個bgm。
乙:要我說的話……鏡頭上的鼠標太破壞氣氛了。眾所周知,黑客是不用鼠標的。
甲:我想……那是刻板印象。你可以認為這是我對打破刻板印象的一種嘗試。
乙:你就不能承認自己忘了隱藏鼠標嗎?
甲:……看在錄視頻很麻煩的份上,要么就湊合一下?
乙:還是請你努力修正吧。