標籤:

上古時期的程序員都有哪些當今普通程序員無法想像的神級操作?

寫出來讓後輩們瞻仰一下。比如輪子哥說過的: 「當然是billgates厲害了。人家能在飛機上通過打孔搞定一個Basic的解析器,不用debug直接就能用了,我可不行。」


手撥十三條
————————————————————————————————————————————
事情是這樣的:1970 年代國內出了一款小型機叫做 DJS-130,山寨 DG Nova 的,在當時算是比較先進的機器。然後,沒錯,這機器是沒有 BIOS 的,想開機引導進系統用終端操作就必須用手通過撥開關的方式輸入 13 條指令……

就是用底下的開關來撥,一位一位地寫入內存進去。
這段源碼是這樣的(我總算找到了帶注釋的版本)


程序真的是編出來的。
【多圖】


是時候放上我女神的照片了。

阿波羅計劃的首席軟體工程師瑪格麗特·漢密爾頓站在阿波羅項目中導航計算機源代碼旁邊,正是這些代碼把人送上了月球。

我們來看看為什麼這些代碼是神操作:
1. 火箭和飛船上的代碼開發難度完爆其他人說的電腦上的代碼(不管是磁心線還是打孔卡片),在計算機還沒有發展完善以前,火箭代碼是沒法debug的喔,總不能每改一段代碼就發一顆新火箭吧。打孔卡片雖然逼格高,但是總不會程序出了bug就炸飛幾千萬美元的設備吧。火箭和飛船的程序員們肯定通過紙筆度過了很多不眠不休的夜晚。

2. 那個時候晶體管計算機還沒發展完善,很多東西沒有統一,大家做一個計算機出來就自帶一套彙編。而阿波羅飛船上包含著許多不同的計算機模塊,避障模塊是A公司產的,中央處理器是B公司產的……為了給不同的模塊編程,少說得學三五套彙編語言。手下的程序員專門負責某個模塊,只用學一套,但是瑪格麗特自己作為項目的leader,應該得是每一套都基本可以弄懂、會寫、還不搞混吧。當然,這一點相比於其他事情已經是小事了。

3. 人類實現的第一個卡爾曼濾波器(線性系統的最優估計觀測器)是在阿波羅計劃中實現的,作者是斯坦利施密特,不過我猜瑪格麗特作為首席工程師也是參與討論和開發的,代碼一定也在這一摞厚厚的紙當中。為什麼開發卡爾曼濾波器就比比爾蓋茨寫Basic解釋器更屌呢,根據吳軍老師《文明之光》第二冊(哎呀媽呀這一段太屌了,每次和別人講都覺得熱血沸騰),斯坦利施密特是和卡爾曼討論阿波羅的軌跡預測問題時發現卡爾曼濾波器的妙用的。卡爾曼濾波器是一個我覺得很高大上的東西,因為和一般的程序不同,他用到了深刻的數學和數值計算工具。軌跡預測的話,三維位置,三維速度?如果是這樣的,那麼他們的代碼里包含對六階矩陣的乘法、求逆矩陣(LU分解或者QR分解)。當然也許他們只預測位置,那麼三維矩陣求逆就好辦了一些,然而我覺得,我們可是在談幾百萬美元的大飛船啊怎麼可能沒有帶速度的運動模型,應該還是搞六維的吧。讓現在任何一個工程師拿C手寫矩陣分解,估計都會讓他痛苦好幾天的,別說上古時代只有晶體管計算機和彙編語言了。

大家應該能想想出更多艱難的事情了。。。

4. 最神操作的當然是「女神瑪格麗特對自己人生的選擇」 =。=
大家可以自行百度她的照片,真人很漂亮,在1969年就已經引領了黑絲連衣裙的流行女神裝扮,中年之後依然知性優雅。明明靠臉就能夠生活得很好了,卻選擇了程序員的職業生涯,而且還領導了人類歷史上最偉大的軟體工程,這個人生真是。。。我輩只能佩服得五體投地。


所以每次我寫好程序到飛行器里忐忑不安地準備測試的時候,我都會想一想我的女神,然後鼓勵自己:這沒什麼難的,你的卡爾曼濾波器是用Eigen寫的,安全的很;你的飛行器也就幾萬塊錢,便宜得很……

====================================================
評論區起了奇怪的爭論,讓我覺得有必要喊輪子哥出來解釋一下。
根據Altair BASIC和Interview with Bill Gates(兩個應該都是比較可信的原始資料),並沒有Bill Gates在飛機上擼出Basic解釋器這個說法。史料中只是記載,當Gates和Allen完成他們第一版的BASIC解釋器之後,Allen飛去位於Albuquerque的MITS公司給他們做展示,那裡有一個Altair機器可以用來測試BASIC。在路上Allen想到他們忘了寫bootstrap,於是在飛機上寫了一個,長度為46位元組。而比爾蓋茨後來寫了個長度為17位元組的bootstrap,但是沒有說寫這個更短的bootstrap是在Allen去展示之前還是之後,我猜是Allen去展示之後,而且是蹲在家裡寫的……

另外根據比爾蓋茨自己的說法「Paul was very good with the PDP-10 Assembler. I, in the meantime, laid out the design and charged off coding the BASIC. Paul later came in and helped out with that. A third person, Monte Davidoff, sat down for lunch with us and said he knew floating point packages. So, we had him write some of the math routines. And then we just kept squeezing it.」我們得知有另外一個人幫助蓋茨和艾倫寫了一些數學函數,而且蓋茨他們用了simulator測試BASIC解釋器,而且蓋茨把碼代碼的過程叫做「squeeze」,顯然回憶起了開發過程的辛苦。

所以我覺得輪子哥所說「在飛機上寫個BASIC解釋器不debug就直接用」非常誤導人。蓋茨和艾倫就是正常在開發流程中做了個正常的解釋器,而且根據他們開發的年代,應該是Unstructured BASIC。Unstructured BASIC轉PDP-10 Assembler應該只需要拆loop,解釋條件判斷等等,沒有太多現代編譯器理論,應該還是好寫的。難度主要是工程上的,因為要把解釋器塞到4K內存里。

Anyway我就陳述個事實和我自己一點點看法。還是那句話,膜拜女神最重要,其他技術問題都是小事。。。


以前使用電腦的費用非常高,10塊錢一小時,考慮通脹的話,應該相當於現在100塊一小時。為了省錢,我都是把關鍵代碼寫到本子上,不斷檢查盡量確認能一次過沒有編譯錯誤和Bug。所以那時我幾乎記得所有的方法簽名。然後存幾天的錢,某一天衝進機房以最快的速度寫完代碼、編譯調試。然後把所有修改記到本子上,為下次做準備。巔峰時期我手寫代碼的效率高於敲鍵盤。後遺症是工作之後只要一打開電腦就不自覺的要不停估算我已經用了多長時間,超過兩小時就開始焦慮,而且要不斷關閉不需要的窗口和進程,保證電腦不卡。


基本上那時候的程序員都有人肉 IDE 和 debugging 的功能。空間想像力和短期記憶力驚人。Word 的主程說他年輕時可以想像一個幾十個房間的房子,再在裡面擺上傢具物品,然後移動。

《人肉 …… 哦,《人月神話》里管這個叫做 accidental complexity。可以用工具彌補。也就是如今我們的 IDE 和 debugger 了(還有越來越多的 monitor)。上古時代,連 version-control 也是大多靠人腦來管理。你們 branch 來 branch 去的怎麼能想像管理兩三個 temp version 的痛苦呢?

雖然 accidental complexity 的比例在下降,但是隨著 inherent complexity 的增加,accidental complexity 的絕對值並沒有減少。比如說,三四年前的 GPU 開發工具還很少,調試 pipeline 也主要靠想。所以「上古」程序員的神秘操作沒什麼特別的,就是「想」。這東西也不是上古才用到,計算機的任何一個缺乏成熟工具的前沿都用得上。


王小波寫東西用的文檔編輯器是他自己開發的。



突然想說下我媽,對,她不是程序員而是一名高中物理老師,大學學的也是物理學(估計那時候沒幾個女生學物理吧),畢業以後分到了縣城的高中可是當時性差陽錯的分到的職位是計算機教師,沒辦法只能硬著頭皮上了,當時的計算機課還不像現在這樣方便講講軟體office啥的,電腦也只有學校有家裡自然買不起,但是當時有一個很棒的替代品,估計那年代出生的孩子們也基本有過,沒錯,大名鼎鼎的小霸王!孩子們大多都是用它打打超級瑪麗魂斗羅,而我媽那時買一台確是為了…………學編程,從頭開始沒有任何基礎,漸漸的上手了。當時學習每次考試統計學生成績的時候還是一堆老師抱著卷子喊分數排名的,我媽於是著手想辦法寫程序,我沒查當時有沒有office和wps之類的軟體,反正當時她自己一個人開發了一套軟體用於統計全校學生的成績一直沿用到win95的時代。之後學校又買了幾台電腦,於是又用網線實現了全校電腦的簡易區域網。最後,互聯網時代到來,全校電腦老師不超過五個,又從頭開始啃網站製作,一個人做完了學校的官方網站知道域名和別的有衝突不得不關掉網站。當然又換回了物理老師的職位。而這一切全是一個物理專業的物理老師做到的,她讓我完整的感受到了從DOS時代到現在的電腦變化,98年整個縣城只有為數不多的人家有電腦更不用說接上網的了,我家就是其中之一。這就是一個非程序員的程序員故事。


依稀記得DOS下的TSR技術。DOS是單任務操作系統。程序員們想出一個辦法,讓程序駐留在內存里,把系統中斷改寫了,有點像現在的API Hook,於是通過相應中斷就能調出駐留程序,變相實現多任務效果。那些DOS光碟機驅動、中文輸入系統(天匯、UCDOS等)之類的都要依靠這個技術實現。


Michael Abrash發現xor ax ax是最快的置零方法,算嗎。

據說有人覺得intel的實模式切換保護模式需要一次的軟複位,調用reset指令需要幾秒,太慢了,於是先把非法指令中斷截取了,在裡面加入一個非法指令。intel的規定是中斷不能遞歸。所以這時候執行一條非法指令,就會進入中斷,中斷里再次非法指令就自動軟複位,於是進入了保護模式,只要幾百毫秒。DOS4GW之類後來都用這個方法。

再講一個真實的故事。20年前intel和ms的人在開一個關於performance的會。結束的時候intel問,如果只允許提升一個地方的性能,你們會選哪一個。ms說,觸發非法指令中斷的速度。intel的人以為是個笑話。後來profile了win每次需要進入ring0的時候,都是執行一個非法指令,在中斷處理服務里進入ring0。於是intel後來提供了sysenter/sysleave這兩條專用指令,加速和簡化了這個過程。

這些都是怎麼想出來的啊啊啊啊啊。


我是來逗機靈的。
記得看過一個,好像是中科院第一批搞計算的吧。一位女程序員奶奶,打孔帶寫程序一般不需要第二條的。


------------------------------------------------------------------
鄭重警告:
脫離時代談難度都是耍流氓。
請再看看問題的標題「上古時期的程序員都有哪些當今普通程序員無法想像的神級操作?」
文章中已經介紹了,這是在當年義務教育都不普及的時代所做的當時的前沿科學。
這位程序員奶奶也獲得當時同事們的一致認可
這位程序員奶奶現在也是有著「連印表機都不會設置」的窘迫。
時代能成就一個人,也能拋棄一個人。

talk is cheap
覺得這位奶奶沒啥水平的
請在只購買參考書的情況下用機器碼寫一段程序跑起來給大家看看。
不許用IDE等等這種50~60年代還沒有發明的東西。


牛頓三定律現在是個上大學的都會,你擱牛頓活著的時候不一樣是前沿科學?

babayetu liu
呵呵,幾十年的程序規模和現在能比嗎,現在一個普通程序員的功力和知識體系分分鐘完爆這個人。現代人和山頂洞人還是不要比較誰厲害了吧。

劉昊(作者) 回復 babayetu liu
脫離時代談難度都是刷流氓。要實在抬杠,那您老在只能買參考書的情況用機器碼寫一段小程序跑起來給我們看看唄。

babayetu liu 回復 劉昊(作者)
我寫的任何一段程序,最後都是變成機器碼在跑,而且目前還跑的不錯。讓您失望了吧。這個女程序員既不是機器碼的發明者,又不是打卡紙袋法的先驅,更不是圖靈機的理論鼻祖,沒看出她比現代程序員牛在什麼地方,哪怕擱在當時。

劉昊(作者) 回復 babayetu liu
人吃的飯最後還都能變成屎呢。

babayetu liu
您的意思是我們現代程序員生產了飯,而您文中的女程序員生產了屎。謝謝誇獎。抱抱

評論區大家自己看吧。
------------------------------------------------------------------

感謝 @華一雷 的提醒,這個是薩蘇講過的故事
下面是薩蘇的全文,連接:早期計算機研製小故事外一篇 第一個女程序員
為方便大家(順便湊字數),下面再貼一個引用

上一次寫早期計算機,放了一張照片,有很多朋友對照片正中的兩位女研究人員很感興趣,詢問她們是誰。

燙髮的那位,應該是夏培肅,而中間戴眼鏡的,雖然過了五十年依然面熟,如果我沒認錯的話,今天她仍經常在計算所大院里出入,是母親晨練時候的夥伴。在父親的告別儀式上,她曾扶住母親,熱淚難抑。但我卻無法說出她完整的名字,最後一個字我不能確認。

這真是件慚愧的事情,但我又無可奈何。

一直叫她張阿姨,叫習慣了。

但她的名字我說不出來。科學院人有個壞毛病,說話力圖簡練,往往把人家三個字的名字說成兩個字,比如陸啟鏗先生,大家只說「陸啟」,金翠柏研究員,大家只說「金翠」。他們自己人都明白,當面也這樣叫。

不過也不是都這樣叫,項可風先生就是項可風,張廣厚先生就是張廣厚,不會被叫成「項可」或者「張廣」。

我推測這可能和發音好聽不好聽有關,因為凡是被簡化成兩個字的,聽起來都顯得鏗鏘有力,不過這個可沒有確證。

他們是簡單了,問題是我們這些小輩就經常亂套,至少我很長時間一直以為陸啟鏗先生就叫「陸啟」。

我也一直弄不清這位張阿姨的名字最後一個字是哪個字,記得還問過一次,知道了她名字中間的那個字,是「綺」,「綺羅」的「綺」,可最後一個字,因為不常用,還是忘掉了。

據我所知,她是北京人,1958年來到的科學院,隨即到計算所,入程序設計室,一直在科學院工作到退休。

為了寫這篇文章,我在各種網頁上拚命搜尋以「張綺」開頭的名字,最終無功而返。

她的名字找不到,但我們這些曾經以編程序為生的,都該來對她表達一份敬意。

因為,她是我國第一代程序員中唯一的女性,蘇聯專家什米格列夫斯基最優秀的弟子之一。我國第一顆人造衛星的地面跟蹤,主要程序就是出自她的手筆。

現在有一種說法,認為女性不適合作編程。這不知道是從何而起,據說世界上第一個程序員就是女的。「女性不適合編程」這是不是傳說暫且不論,至少她是這個傳說的絕對顛覆者。

父親回憶當年的工作時講過,「張綺霞(天,寫到此處忽然靈光一閃,這個名字一下就冒了出來,雖然最後那個字是不是這個霞有待存疑,但肯定是這個音)編的程序,一次就過。」

這份本領,當時幾個男的程序員都比不了。

編過程序的人,大體能夠感到其中的厲害 – 至少我編程從來不敢說一次就過,要反覆修改,才能剔除其中的Bug。

當然,我知道自己的朋友中,能夠編程不出錯,一次就過的也會有,也很了不起。

慢。。。

請記住時間背景 – 那是五十年代的編程阿。

什麼是五十年代的編程呢?這意味著沒有Basic,沒有彙編,沒有Colbol。。。 這種編程不是今天那樣的「寫」程序,而是用機器語言來編!也就是說,編出的程序根本不是寫在紙上的,而是在紙帶上打出的不規則小孔(修改程序就是給紙帶打 補丁),程序員需要先把給計算機的指令換算成二進位數字,然後把二進位數字轉成這些小孔,每一個小孔代表了給計算機的一個信號,上百個小孔驅使計算機作一 個動作,成千個小孔形成一條指令!

那根本不是人能看懂的東西。

讓我用成千個小孔向計算機下達指令。。。

別說作這樣的程序了,就看懂它,也足以令人恐怖。

而張綺霞編的程序「一次就過」!

這種本領,就太。。。

空調可能壞了,後背一陣發冷。

弄明白這件事後,當時我見到她常常會多看兩眼,而且根本不敢跟她提自己也是個編程序的。。。

早年曾對這些帶點兒「非人」的描述有所疑惑,但真正見識了幾次,心裡又有點兒怯懼,只是找不到表述那種感覺的方法。直到看了馮驥才先生的「刷子李」。

「刷子李」是馮驥才《俗世奇人》中的一位粉刷師傅,據說是這樣的 -- 「他要是給您刷好一間屋子,屋裡任嘛甭放,單坐著,就賽升天一般美。最叫絕的是,他刷漿時必穿一身黑,幹完活,身上絕沒有一個白點。別不信!他還給自己立下一個規矩,只要身上有白點,白刷不要錢。」

這簡直不是人的本事。

刷子李收了個徒弟曹小三,曹小三不大信師傅有這個本事,老想看出破綻來。

於是,第一次跟著師傅刷房子,就出現了這樣一個場面 --
「當刷子李刷完最後一面牆,坐下來,曹小三給他點煙時,竟然瞧見刷子李褲子上出現一個白點,黃豆大小。黑中白,比白中黑更扎眼。完了!師傅露餡了,他不是神仙,往日傳說中那如山般的形象轟然倒去。但他怕師父難堪,不敢說,也不敢看,可妨不住還要掃一眼。

這時候,刷子李忽然朝他說話:「小三,你瞧見我褲子上的白點了吧。你以為師傅的能耐有假,名氣有詐,是吧。傻小子,你再細瞧瞧吧——」

說著,刷子李手指捏著褲子輕輕往上一提,那白點即刻沒了,再一鬆手,白點又出現,奇了!他湊上臉用神再瞧,那白點原是一個小洞!剛才抽煙時不小心燒的。裡邊的白襯褲打小洞透出來,看上去就跟粉漿落上去的白點一模一樣!

刷子李看著曹小三發怔發傻的模樣,笑道:「你以為人家的名氣全是虛的?那你在騙自己。好好學本事吧!」

看到這句話的時候,有一種想拿磚頭砸馮先生的衝動。

沒說的,這句話值得記一輩子。

不過,我見到張綺霞先生更多的時候,是在她退休以後。那時,她常來找父親幫忙 – 多半是相機玩不轉了。還有的時候是微機玩不轉了 – 這有什麼奇怪的?今天的計算機和當年簡直沒有相似的地方,整個一個家用電器。這些作研究的,多半是對著二進位口若懸河,自家的電視有幾個功能永遠搞不清 楚。計算機成了家用電器他們玩不轉,恐怕一點兒也不奇怪。

後來她曾經說過,這些搞計算機的老人兒,應該自己成立一個組織,相互通氣,交流技術。

估計是覺得跟小輩兒們請教Windows裡面印表機在哪兒設置這類事情多少有點兒傷自尊吧。

再看這張照片,目光清澈犀利的張綺霞女研究員,和計算所食堂前面清晨舉著把劍鍛煉身體的張阿姨。。。 無法分明的感覺。

大巧若拙,是不是就是這個意思?

[待續]

寫到中間,因為心裡打鼓,給一個出身計算所的朋友寫了個郵件確認,他的回信讓我放了心 – 張綺霞,的確是這位我國第一位女程序員的名字。他還說了一件事 – 1960年,陳賡大將來所里,看了張綺霞編的程序,聽人家說明白這是幹什麼的,大為欽佩,一個勁兒地敲自己腦袋。

能讓陳賡大將敲自己腦袋的,能有幾個?

蔣介石,肯定是做不到。。。

類似的是一個段子,拿個小磁鐵就能在鋁盤上蹭出來蒼井空.avi和魔獸爭霸的


WPS 第一版貌似是求伯君一個人用純彙編寫出來的。


1961年,IBM 7094 成為了世界上第一台會唱歌的電腦。有伴奏有人聲。人聲還是潮流的電音效果。
John Kelly, Carol Lockbaum編程了人聲部分,Max Mathews編寫了伴奏。
視頻 &>&> daisy bell—在線播放

簡直無法想像。


應該是二十多年以前吧,操作系統還是dos3年代,我做過一個引導扇區病毒,當時市面上所有的殺毒軟體都沒辦法查出來。可惜,沒有流行……

常規的引導區病毒,會把引導扇區改得天翻地覆,一眼就能看出來。針對於這點,我剖析了引導扇區,發現引導扇區一堆代碼,實際上有用的只有不到十條語句,其餘都是各種錯誤提示,這幾條語句的作用,就是從dos分區裝載一個扇區,並把控制權轉移過去。我就想了個辦法,只修改一個位元組,不從dos分區裝載內容,而是從存放病毒的扇區裝載病毒,病毒接管系統後,再由病毒去裝載dos分區內容,完成正常引導。

如此一來,引導扇區只改了一個位元組,根本不會使人注意,當時市面上所有的殺毒軟體都查不出來。


DOS時代早期流行的外掛中文系統2.13(產品名字就叫2.13)的作者吳曉軍,據說是說DOS調試工具debug完成的開發。要換個角度理解的話也可以說他可能比較懶,沒有想過去使用效率更高的開發工具……

debug裡面寫程序大約是這樣的:

a &<回車&> (開始輸入彙編指令)
MOV AX, 100h &<回車&>
MOV BX, 20h &<回車&>
INT 21 &<回車&>
&<回車&>
w &<文件.com&> & & (把指定內存區域寫到文件)

因為DOS的COM可執行文件沒有文件頭,相當於直接的內存映象,所以用debug寫也還過得去……但因為不像EXE那樣可以有多個段和重定位表,代碼量不能超過64KB。所以好像他自己還在這基礎上自己做了基於COM的OVL覆蓋文件。

當然其實以當時的軟體規模來講,2.13的代碼量不會很大。
但是也不要忘了當時國內還沒有internet就是了。拋開時代談難度沒什麼意義。


精通各種古典節約型演算法,每個演算法必定一個個數位(不是位元組)想著怎麼精打細算。
(看向 顧乃傑


沒有特別牛的代碼,來說兩個我經常聽父母提起的小故事。

1.我老媽是文革之後第二批高考的,復旦計算機系。當時學校只有兩台計算機,一台基本擺滿一間50平米的屋子,想想一下屋內是不寬的過道,兩側是設備操作旋鈕和指示燈。

寫的程序是00101110這樣,編碼語言是二進位化的彙編。錄入給計算機的方式是打孔。就是用個2米左右的硬紙條,上面等距的地方打孔or不打孔。Debug發現錯誤了就要重新來過,那絕對是痛苦的經歷,足夠記一輩子~

最有趣的是學期的課程項目,每個組提交的都是一大堆代碼,確實是用『堆』的代碼

2.老爸是福州大學電機系,其實擅長電子電路。不過工作分配到了修配所,接觸的第一個任務是「用Blabla晶元完成電話鈴」。鈴聲就是『響2秒空4秒』這種,分八個節奏區分功能。

按照正常的程序思路,應該是把八種鈴聲分別作為數據存儲下來,在需要的時候分別調用就行了。這個任務難的地方,在於方面的存儲空間非常小,是按照位元組來計算的。於是問題來了:存不下八種鈴音,空間只夠存1種(256位元組的存儲空間,包括代碼本身,彙編語言)

最後聽老爸說,他用了非常多的跳轉,把鈴音摺疊編碼處理,鈴音只儲存一次就夠了。


『那個年代的技巧,現在聽起來都是神乎其技但是再也沒必要掌握得了吧』


我讀研時候教計算機體系結構的老師說,當年他的老師教他們寫程序的時候,還是在打孔帶上。他老師拿起打孔帶就可以直接閱讀程序,還會指著打孔帶上的某些洞跟他們說:

看,這裡有個bug。


不能不提那個蛾子的事情啊,你想想那個debug操作,只是輕輕的從繼電器里拿了個蛾子出來.夠上古了吧.


最逆天的程序員據說是NAMCO的某位主程,用68000的彙編語言寫了一個3D遊戲引擎
之前我提到這件事,知乎上有程序員堅決不信。
不信我也沒辦法。
當時CPU的主頻才12MHZ,比80286還低,不用這種方法怎麼做3D遊戲。


想起個好玩的事,《勇者斗惡龍1》製作的時候是8位遊戲機,8位CPU支持的最大定址空間是64K,當時還沒有擴展內存技術(遊戲卡屬於內存的一種),所以遊戲大小就被限制到60K左右。遊戲做好了,不出意外超容量了。製作組開始瘋狂刪內容,極端到什麼程度呢?他們只保留了角色的正面圖像,其他方向的都刪了,遊戲里角色無論是往左還是往右,都是正對玩家,跟螃蟹一樣。但是角色圖像還是太多,怎麼辦?主角和看門的小兵共用同一套圖像!怪物也刪得就剩下幾種,然後同一個怪物變個顏色(利用調色盤技術的話只要幾位元組容量)起個新名字就是另一種怪物了。
當然,容量還是超,這時候發售日期臨近,再也拖不起了,製作人使出了終極大招——重新發明了一遍日語
在DQ里使用的日語與正常日語不一樣,有一些不常用的字母被刪了,然後把劇本用這個縮水版日語重新寫了一遍(只刪了片假名,平假名沒敢動)。到現在DQ系列也保持著這個傳統,片假名單詞不使用某些字母。
(後來發售美版的時候容量翻倍,製作人狠狠出了一口惡氣,把刪的素材全加回來了)

打個比方,所有拼音有N的漢字都不能用,這樣漢字數量就大大減少對不對?
這樣寫出來就是:
「打個比方,所有讀法有N的Z國字都不可,於是字型檔就大大少掉了對不對?」


推薦閱讀:

面試時 HR 問你怎麼看待阿里月餅事件,作為程序員要怎麼回答?
程序員有流派嗎?
優秀的程序員和一般的程序員差別在哪?
初級程序員如何快速成長?
有哪些好笑的關於程序員的笑話?

TAG:程序員 | 編程 |