我的世界終末之詩作為游戲的“結(jié)尾”,意味深長,這列給大家?guī)砹宋业氖澜缃K末之詩翻譯解釋,希望能幫助到我的世界的玩家。 I see the player you mean. 我看到你所指的那位玩家了。 Yes. Take care. It has reached a higher level now. It can read our thoughts. 是的。小心。它已達(dá)到了更高的境界。它能夠閱讀我們的思想。 That doesn't matter. It thinks we are part of the game. 無傷大雅。它認(rèn)為我們是游戲的一部分。 I like this player. It played well. It did not give up. 我喜歡這個玩家。它玩得很好。它從未放棄。 It is reading our thoughts as though they were words on a screen. 它以屏幕上出現(xiàn)的文字的形式閱讀著我們的思想。 That is how it chooses to imagine many things, when it is deep in the dream of a game. 在它深陷游戲夢境中時,它總以這種方式想象出形形色色的事物。 Words make a wonderful interface. Very flexible. And less terrifying than staring at the reality behind the screen. 文字是種美妙的界面。非常靈活。且比凝視著屏幕后的現(xiàn)實要更好。 They used to hear voices. Before players could read. Back in the days when those who did not play called the players witches, and warlocks. And players dreamed they flew through the air, on sticks powered by demons. 它們也曾經(jīng)聽到過聲音。在玩家能夠閱讀之前。君不見那些不曾游玩的人們稱呼玩家為女巫,和術(shù)士。而玩家們夢見它們自己乘坐在被惡魔施力的棍子上,在空氣中翱翔。 What did this player dream? 這個玩家夢見了什么? This player dreamed of sunlight and trees. Of fire and water. It dreamed it created. And it dreamed it destroyed. It dreamed it hunted, and was hunted. It dreamed of shelter. 它夢見了陽光和樹。夢見了火與水。它夢見它創(chuàng)造。它亦夢見它毀滅。它夢見它狩獵,亦被狩獵。它夢見了庇護(hù)所。 Hah, the original interface. A million years old, and it still works. But what true structure did this player create, in the reality behind the screen? 哈,那原始的界面。經(jīng)歷一百萬年的歲月雕琢,依然長存。但此玩家在那屏幕后的真實里,建造了什么真實的構(gòu)造? It worked, with a million others, to sculpt a true world in a fold of the [scrambled], and created a [scrambled] for [scrambled], in the [scrambled]. 它辛勤地勞作,和其它百萬眾一起,刻畫了一個真實的世界,由[亂碼],且創(chuàng)造了[亂碼],為了[亂碼],于[亂碼]中。 It cannot read that thought. 它讀不出那個思想。 No. It has not yet achieved the highest level. That, it must achieve in the long dream of life, not the short dream of a game. 不。它還沒有到達(dá)最高的境界。那層境界,它必須完成生命的長夢,而非游戲中黃粱一夢。 Does it know that we love it? That the universe is kind? 它知道我們愛它么?這個宇宙是仁慈的? Sometimes, through the noise of its thoughts, it hears the universe, yes. 有時,通過它思緒的雜音,它能聽到宇宙,是的。 But there are times it is sad, in the long dream. It creates worlds that have no summer, and it shivers under a black sun, and it takes its sad creation for reality. 但是有時亦不勝悲傷,于那漫漫長夢中。它創(chuàng)造了沒有夏日的世界,在黑日下顫抖著,將自己悲傷的創(chuàng)造視為現(xiàn)實世界。 To cure it of sorrow would destroy it. The sorrow is part of its own private task. We cannot interfere. 用悲傷來治愈會摧毀它。而悲傷是它的私人事務(wù)。我們不能干涉。 Sometimes when they are deep in dreams, I want to tell them, they are building true worlds in reality. Sometimes I want to tell them of their importance to the universe. Sometimes, when they have not made a true connection in a while, I want to help them to speak the word they fear. 有時當(dāng)它們深陷夢境中時,我想要告訴它們,它們在現(xiàn)實中創(chuàng)造了真實的世界。有時我想告訴它們它們自身對宇宙的重要性。有時,當(dāng)它們和現(xiàn)實失去了聯(lián)系,我想幫助它們與它們所懼怕的世界交流。
編推薦:
我的世界1.0正式版更新全解
我的世界1.0正式版下載(安卓)
下載更多我的世界攻略,敬請關(guān)注搞趣網(wǎng)我的世界專區(qū)。
責(zé)任編輯【W(wǎng)】
我的世界》(Minecraft)是一款由Mojang AB開發(fā)的沙盒式建造游戲。在3D的世界中破壞、組合、建造磚塊,創(chuàng)造世界或在這個世界中冒險,多種多樣的道具組合與游戲方式讓許多玩家都深深被其獨特的色塊魅力所吸引。
“不就一個造房子游戲嗎?有這么好玩嗎?”我只能笑著回答道,“這是生存!我的世界你不懂。”
現(xiàn)如今的Mojang已經(jīng)被微軟收購并成為了旗下的明星產(chǎn)品,更是配合著微軟的Hololens(虛擬現(xiàn)實設(shè)備)在各大游戲和科技展會上大放異彩。該游戲最先起源于PC平臺,而后逐漸拓展至手機、家用機平臺。有多熱門呢?這么和大家說吧,主機平臺在發(fā)售后半年的時間里就一舉超越了之前PC平臺的成績,且游戲總體在2014年6月就達(dá)到了5400萬份的銷量。
你可以把它當(dāng)作像素風(fēng)的《模擬人生》來玩:造房子、種菜、養(yǎng)豬、生孩子(其實并不能),看日出日落,愛上一匹野馬,這里有廣袤無垠的草原;也可以把它當(dāng)作像素風(fēng)設(shè)計軟件:埃菲爾鐵塔、長城、天安門或是iPhone200?只要你想得到?jīng)]有你做不到。你還可以把它當(dāng)作冒險游戲來玩,挖礦、打怪、做裝備,探索神秘的神殿和地獄還有終界,成為這個世界的大英雄。
埃菲爾鐵塔,這個看到的時候都驚呆了
還不只是這樣,游戲中還有類似電路的紅石系統(tǒng),讓你瞬間從石器時代進(jìn)入了工業(yè)時代,復(fù)雜的紅石系統(tǒng)就像電路,等著你去挖掘它的功能。有多種多樣的Mod可以在PC上享用,豐富的材質(zhì)包,讓你感覺就像是在玩“創(chuàng)造鄉(xiāng)村”原始版的《GTA》。
依靠簡單的設(shè)定和多樣的可玩性,這款方塊風(fēng)游戲席卷了游戲圈內(nèi)大大小小的各式平臺。
遇見索飯的信仰
下頁:《我的世界》就是現(xiàn)實的比喻
陳星漢在《一人一世界》的演講中提到,絕大多數(shù)的游戲,都具有很強的商業(yè)目的——目標(biāo)瞄準(zhǔn)了受到限制,渴望自由的年輕人。游戲設(shè)定常常是這樣的:玩家扮演一位英雄或弱者,通過劇情的發(fā)展獲得力量、變得強大,最終走上了巔峰順帶拯救了世界;不少游戲是快餐時代的產(chǎn)物,精美的畫面、簡單的玩法、分?jǐn)?shù)的排名和氪金的道具,即滿足了虛榮也打發(fā)了時間。
反觀《我的世界》,它沒有依照這一常理出牌。游戲通過再現(xiàn)“真實”,讓玩家對“我的世界”漸漸產(chǎn)生了熟悉感與依賴感。與現(xiàn)實似同非同,是《我的世界》最大的魅力之處。
在《我的世界》中,世界的運轉(zhuǎn)和我們的現(xiàn)實世界一樣,是遵循著各類常識和定律的。制作方面,絕大多數(shù)道具制作所需的原料都是符合我們的常識的,但一些相對較為復(fù)雜的東西的制作卻是用不符合我們的常識的材料和搭配制作的。不符合常識中的設(shè)定里,水流,是最令我印象深刻的一個大奇葩。
制作噴泉在現(xiàn)實世界絕對算得上是一項工程,管道的鋪設(shè),造型的設(shè)計,燈光的打造,做好了是一件藝術(shù)品,做差了那就成了燈光游泳池。聽聞在我的世界也能造這樣復(fù)雜而美麗的東西,我就好奇地百度了一下制作方式,結(jié)果卻大跌眼鏡。在《我的世界》中流體是受到引力往低處走的,這一點與現(xiàn)實世界相同,然而,流體的源頭是源源不斷輸出流體的。也就是說,下圖我所做的噴泉,只是在頂部的石頭倒一桶水就做出來了,哈哈。僅需要在往頂端倒水前設(shè)計好柱子造型,以及水流向低處的過程的流向,再有防水的燈光擺設(shè),就能隨心所欲的設(shè)計你想要的噴泉效果了。
噴泉,純粹為了壯觀而設(shè)計,沒啥美感大家請原諒我
《我的世界》中還有一些違反常識的有趣“Bug”,比如重力的表現(xiàn)。舉個例子來說,假設(shè)我從地面搭起一條五個方塊構(gòu)成的石頭柱子,再破壞從地面數(shù)起的四個方塊,頂端的那塊石頭并不會因為重力而下落,而是一直保留在原來的位置,風(fēng)吹雨打都不會改變。
再比如,無論玩家從多高跳下,只要著陸點有水,則都不會受到傷害(游戲中其他一般的墜落,會根據(jù)起跳點高度來計算傷害)。在《我的世界》中找一座高山,在地上預(yù)先鋪好水,你就能體驗一把不需要系安全繩的蹦極了,而且游戲還把墜落過程的加速感做出來了——嗯,這個時候重力作用沒有消失。
每次站在邊緣俯瞰大地總是有點怕怕的
那么這樣豈不是背離了“世界”的常識?并不是,這樣理想化的設(shè)定賦予了《我的世界》更好的游戲性。在部分內(nèi)容保持與現(xiàn)實一致之外,其他的設(shè)定則依據(jù)游戲的平衡性做出調(diào)整,化繁為簡,使游戲簡單易懂,上手簡單。就像《名偵探柯南》中的設(shè)定一樣,絕大多數(shù)的角色從來都不會發(fā)現(xiàn)柯南使用麻醉槍和變聲器,即使柯南的表現(xiàn)有多明顯,借口有多胡逼。
《超級馬里奧》的規(guī)則是一路過關(guān)斬將,到達(dá)終點,取得高分;《坦克大戰(zhàn)》的規(guī)則是保衛(wèi)我方的大本營不遭受破壞,摧毀敵方的坦克,以及不做豬隊友。那《我的世界》的規(guī)則是啥??
《我的世界》主機版之中有三個模式“創(chuàng)造”、“生存”、“冒險”。
創(chuàng)造模式下就會給你無限的材料,盡情搭建,這個模式下不會任何的傷害
另一方面《我的世界》也會在玩家找到終界,殺死終界龍之后結(jié)束整個游戲,當(dāng)然你還可以再度回到世界中繼續(xù)游玩。
在《我的世界》中有晝夜時間概念,白天比較太平,晚上卻危機四伏。你要用你手中得到的方塊去度過游戲里的生活,創(chuàng)造你在現(xiàn)實中無法實現(xiàn)的設(shè)計夢。這是一款通關(guān)打怪的游戲?似乎不是,你只要能生存下去,想怎么做都可以;設(shè)計創(chuàng)作類游戲?也不是,游戲沒有要求你設(shè)計東西或達(dá)到一些要素與條件。
《我的世界》沒有規(guī)則,讓玩家怎么玩?
我和我的好友選擇的是“生存下去”這樣的游戲方式。我們從一開始的一無所有,到一步一步建立了地下一層地上三層的玻璃房子,農(nóng)田也從開始單一的品種到種起了豐富品種,并還借著紅石系統(tǒng)學(xué)會了自動收割,找到了馬鞍,馴服了野馬,稱霸了一片草原,十分具有成就感。
我自己琢磨的小型自動收割農(nóng)場
在我們不斷琢磨《我的世界》、不斷做出更復(fù)雜的設(shè)計的過程中,這個游戲越發(fā)讓我們感覺到它與現(xiàn)實世界的相差仿佛。我們搜刮了地獄一趟,死去活來了好幾遍,現(xiàn)在正在籌備通往終界,為自己的努力畫上一個句號。
《我的世界》的規(guī)則因人而異,由玩家來決定的。它的自由度非常高,這個世界無處不給了你豐富多樣選擇和結(jié)果,就好比我們在現(xiàn)實中所追求的“自由”。然而現(xiàn)實是這樣的:絕對的自由和權(quán)利是不存在的,自由和權(quán)利是相對的。相對的自由建立在遵守法律和公德且不侵害他人自由的條件之下。
扯得有些遠(yuǎn)了,但這卻是《我的世界》和現(xiàn)實的世界相似的地方。似有若無的規(guī)則在《我的世界》給玩家朋友們提供了相對的自由,遵守規(guī)則的游戲角色才能在游戲中存活下去,從而完成任何我們想要在這個世界完成的大事小事。似有若無的規(guī)則也在我們的現(xiàn)實世界里存在著,我們遵守這樣的規(guī)則在現(xiàn)實中活下去,去爭取我們想要過的生活。這樣的規(guī)則也許就是《我的世界》被稱為“世界”的最主要原因吧。它廣闊無邊,玩家出生自一無所有,就好像人類進(jìn)化論的發(fā)展一般,在生存中逐漸發(fā)現(xiàn)規(guī)律,從而形成規(guī)則,最終一切井然有序的隨著時間的推進(jìn),逐步向前發(fā)展。
這畫面實在是太過于和諧,玩過游戲的一定懂,對于沒玩過本作的朋友,這里就不講解了
下頁:在終界唱響寓言詩
“真實”是對《我的世界》準(zhǔn)確的描述,雙引號則是強調(diào)它為游戲平衡而做出的“不真實”調(diào)整。與《GTA V》里的瘋狂、自由、無憂無慮不同,《我的世界》簡單的操作和多樣玩法通過方塊傳遞給每一位玩家一份簡單的創(chuàng)造的快樂。
《我的世界》亦是現(xiàn)實世界的方塊投影,里面實現(xiàn)了許許多多在現(xiàn)實中未能達(dá)成的夢想、愿望和喜悅。在這個“我們的世界”,有和現(xiàn)實世界一樣的精彩和歡聲笑語。《我的世界》中最后打敗終界龍會出現(xiàn)一首終界之詩,由此你也許就能體會何為“我們的世界”。在此節(jié)選一小段,感興趣的玩家可以去搜索全篇。
What did this player dream? 這個玩家夢見了什么?
This player dreamed of sunlight and trees. Of fire and water. It dreamed it created. And it dreamed it destroyed. It dreamed it hunted, and was hunted. It dreamed of shelter.
它夢見了陽光和樹,夢見了火與水。它夢見它創(chuàng)生。它亦夢見它毀滅。它夢見它狩獵,亦被狩獵。它夢見了庇護(hù)所。
Hah, the original interface. A million years old, and it still works. But what true structure did this player create, in the reality behind the screen?
哈,那原始的界面。經(jīng)歷一百萬年的歲月雕琢,依然長存。但此玩家在那屏幕后的真實里,創(chuàng)造了什么真實的構(gòu)造?
It worked, with a million others, to sculpt a true world in a fold of the [scrambled], and created a [scrambled] for [scrambled], in the [scrambled].
它辛勤地勞作,和其它百萬眾一起,由[亂碼]刻畫了一個真實的世界,且為了[亂碼],創(chuàng)造了[亂碼],于[亂碼]中。
It cannot read that thought.
它讀不出那個思想。
No. It has not yet achieved the highest level. That, it must achieve in the long dream of life, not the short dream of a game.
不。它還沒有到達(dá)最高的境界。那層境界,它必須完成生命的長夢才能達(dá)到,而非游戲中黃粱一夢。”
一節(jié)我們通過WebAPI接口讀取到了分類數(shù)據(jù),并能夠在程序中呈現(xiàn),這節(jié)我們完成從數(shù)據(jù)中的提取。
用C#平臺來開發(fā)Web項目,數(shù)據(jù)庫首選還是SQLServer。不過考慮這是入門教程,如果用SQLServer又牽涉到了相關(guān)的安裝及配置,不便于演示,仍然還是沿用我們第一階段使用的SQLite,相關(guān)代碼也不需要重構(gòu)了。
我們回顧下,在做Diary.Win的時候,我們用下面的語句就可以連接到數(shù)據(jù)庫:
BAL.DBController.Default.connectToDatabase(Global.Default.DBFilepath);
只要有了數(shù)據(jù)庫的文件地址就可以。在Diary.Win中,數(shù)據(jù)庫的文件地址我們是這樣獲取的:
Global.Default.DBFilepath=string.Format("{0}{1}", Application.StartupPath, DBFilename);
然后我們嘗試在Diary.WebAPI中也使用這樣的代碼,結(jié)果得到了這樣的錯誤:
找不到Application的定義,大家可以先自行考慮為什么?
我們寫程序的過程中就是不停地遇到問題,然后分析原因,解決問題。一個項目可以,一個項目不行,那肯定要先對比不同在哪里:
我們在Diary.Win項目中找到Application,因為這里是可以編譯通過的。我們把鼠標(biāo)移到Application的上面,Application一般是淡青色的,然后就會彈出這個類的釋義。
我們可以看到,Application是定義在System.Windows.Forms這個命名空間下的。System.Windows.Forms是什么?是專門為WinForm程序定義的類庫,只在WinForm程序下才能使用,因為WinForm的類庫會直接調(diào)用Windows系統(tǒng)的API。而WebAPI是Web服務(wù)端程序,可能是Windows Server服務(wù)器,也可能是Liunx服務(wù)器或者其他操作系統(tǒng),根本就沒有WinForm程序得以依賴運行的環(huán)境,所以也就沒辦法支持Application這個類了。
那.net5是否存在一個與Application.StartupPath功能類似的類庫或函數(shù)呢?當(dāng)然是有的:AppDomain.CurrentDomain.BaseDirectory 就是獲得當(dāng)前網(wǎng)站運行的根目錄。
如下圖,我們可以輕易地獲得這個目錄
但是從設(shè)計上考慮,這樣并不好。主要是兩點考慮:
1、多服務(wù)端共享
我們做的這個私人筆記是很簡單的,無所謂多項目。大一點的項目管理后臺與用戶前臺是分開的,甚至為了平衡負(fù)載,某些關(guān)鍵的、需要大量計算的接口會單獨作為服務(wù)器來運行。而他們指向的數(shù)據(jù)庫都是同一個甚至多個。如果你的數(shù)據(jù)庫連接僅僅是在自己的項目中,那別人就沒辦法連了。
2、可維護(hù)性
網(wǎng)站項目不同于單機版。單機版就你一個人用,隨時關(guān)隨時停都沒問題,有錯誤慢慢調(diào)。網(wǎng)站可能一直都有人在用,如果是寫死在代碼中,就意味著如果再修改,就要重新編譯然后替換,有的時候你無法確定編譯后會發(fā)生什么。這種事情對網(wǎng)站來說,越少發(fā)生越好,能通過改配置實現(xiàn)的,盡量不重新編譯。
正確的方法是什么呢?當(dāng)然是通過配置文件來定義。我們在解決方案目錄中找到appsettings.json文件,然后增加:
在Startup.cs文件中讀取配置:
這樣就可以通過配置文件來定義數(shù)據(jù)庫的路徑,如果以后想要修改就直接改配置文件,網(wǎng)站不需要重新編譯,只要重啟服務(wù)就好了。
然后我們把Diary.db文件復(fù)制到網(wǎng)站目錄,嘗試運行,發(fā)現(xiàn)并沒有成功。調(diào)試代碼發(fā)現(xiàn)DBConnection中的中文字符竟然成了亂碼,初步判斷就是文件編碼的問題。這種以前在做VC開發(fā)的時候太常見了,用C#開發(fā)以后少了很多。
我們用windows記事本打開appsettings.json,然后另存為時,果不其然,發(fā)現(xiàn)編碼為ANSI
也就是說,默認(rèn)生成的appsettings.json編碼格式為ANSI,而讀取的時候默認(rèn)是按Utf-8,這個坑實在是太低級了。
記事本中在保持的時候改成UTF-8,再次運行,數(shù)據(jù)連接就成功了。
我們接下來就嘗試在api接口中,從數(shù)據(jù)庫返回真正的數(shù)據(jù)。
修改成紅線部分的代碼,然后運行:
成功讀取數(shù)據(jù)。
至此,我們完成了數(shù)據(jù)從數(shù)據(jù)庫->WebAPI->WASM->瀏覽器的呈現(xiàn)。相比WinForm,這個過程太漫長了。而如果我們Web采用的是Blazor Server的方式,也可以減少WebAPI的這一環(huán)節(jié)。那么是不是說WASM這種方式開發(fā)低效呢?對小項目來說確實是這樣的,每個功能都要多出2-3個步驟,沒有跨平臺計劃的,還是考慮用Blazor Server的方式吧。
如果放眼到跨平臺的原生支持,上面的這些工作就不白做了。有了WebAPI作為中介,我們前端的處理就只關(guān)心界面和數(shù)據(jù)就好了,跨平臺不再是問題,不同界面做不同的事情,Web也不過是其中的一種展現(xiàn)形式,這種方式可以讓系統(tǒng)變得更寬。
打通了任脈后,我們接下來需要打通督脈,即把數(shù)據(jù)由瀏覽器寫入到數(shù)據(jù)庫中,下節(jié)繼續(xù)。
----------------------------------------------------
本教程項目源碼已作為開源項目加入到Gitee,代碼內(nèi)容會隨教程實時更新,大家有興趣的話可以關(guān)注我,以獲得最及時的更新。私信:
私人日記 可以獲取相關(guān)鏈接;
大家閱讀過程中有哪些看不懂或未盡興的地方,可以在評論區(qū)留言,我會先記下來在后續(xù)的教程中找機會再說。
教程有幫助的話請大家?guī)兔﹃P(guān)注、轉(zhuǎn)發(fā)、擴散,能不能開專欄還需要你們的支持!
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。