自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這個(gè)程序員瘋了,竟然用寫匯編游戲,狂賺3000萬美元!

開發(fā) 前端
80年代,PC時(shí)代正式開啟,MS-DOS一統(tǒng)天下,Chris在一家游戲公司做了很多把Amiga游戲移植到DOS平臺(tái)的工作,對(duì)底層編程,尤其是匯編建立了精深的理解。

誰是歷史上最厲害的游戲開發(fā)人員?

是瑞典程序員Markus Persson嗎?他開發(fā)了《我的世界》,以25億美元的價(jià)格賣給了微軟,成為了億萬富翁。

圖片圖片

是美國程序員Eric Barone嗎?他一個(gè)人干了一個(gè)游戲團(tuán)隊(duì)的活:策劃,設(shè)計(jì),編程,測試、美工、音樂,開發(fā)了《星露谷物語》,賣了2000萬份。

圖片圖片

是美國程序員John Carmack嗎?他開創(chuàng)了第一人稱射擊游戲,開發(fā)了《Doom》《Quake》等經(jīng)典游戲,發(fā)明了眾多革命性技術(shù),如“快速平方根算法”,卡馬克反轉(zhuǎn),表面緩存等。

圖片圖片

不,他們都不是,有史以來,最厲害的游戲開發(fā)者蘇格蘭程序員Chris Sawyer,他開發(fā)了《過山車大亨》。

圖片圖片

為什么他這么厲害呢?

首先,他是一個(gè)獨(dú)立的開發(fā)者,和Eric Barone一樣,獨(dú)自一人開發(fā)了一個(gè)龐大復(fù)雜的游戲,在PC游戲時(shí)代,《過山車大亨》賣了1000萬份,能擊敗它的只有《模擬人生》。

其次,他使用匯編語言開發(fā)了《過山車大亨》,把電腦性能壓榨到了極致,游戲1999年發(fā)布,即使是當(dāng)時(shí)性能最差的電腦,也能運(yùn)行《過山車大亨》。

你沒看錯(cuò),這個(gè)游戲99%的代碼是用匯編寫的,只有少量的 C 代碼用于與 MS Windows 和 DirectX 交互。

很多同學(xué)都在應(yīng)用層用高級(jí)編程語言寫業(yè)務(wù)邏輯,很難體會(huì)到用匯編寫游戲意味著什么。

一個(gè)簡單的hell world , 在Python就一句話 print("Hello World!)

但是在匯編中就變得復(fù)雜無比。

data segment 
    string db 'Hello,World!$'
data ends
code segment 
assume cs:code,ds:data
start:
    mov ax,data 
    mov ds,ax 
    mov dx,offset string
    mov ah,9
    int 21h
    mov ah,4ch
    int 21h
code ends
end start

你需要操作CPU的各種寄存器來設(shè)置參數(shù),調(diào)用系統(tǒng)中斷來輸出。

直接和硬件打交道,極其底層,極其麻煩。

沒有對(duì)CPU和硬件的精深理解,根本寫不了。

匯編不僅難寫,更是難讀。這里沒有變量名輔助記憶,相比于高級(jí)語言,匯編代碼的復(fù)雜度可以說是呈指數(shù)級(jí)增長。

除非你要學(xué)習(xí)/編寫編譯器、操作系統(tǒng)、嵌入式代碼,否則,盡量不要去碰它。


和很多大牛一樣,Chris Sawyer從小就開始玩計(jì)算機(jī),玩游戲,玩得不過癮就自己寫。

16歲就在Memotech MTX500上用Z80匯編寫游戲,并且主動(dòng)把游戲郵寄給Memotech 公司進(jìn)行發(fā)行,賺了點(diǎn)小錢。

高中畢業(yè)后,Chris上了格拉斯哥斯特拉斯克萊德大學(xué),學(xué)的是計(jì)算機(jī)科學(xué)和微處理器。

80年代,PC時(shí)代正式開啟,MS-DOS一統(tǒng)天下,Chris在一家游戲公司做了很多把Amiga游戲移植到DOS平臺(tái)的工作,對(duì)底層編程,尤其是匯編建立了精深的理解。

用他自己的話來說:“我已經(jīng)在 x86 匯編中編程了很長時(shí)間,我很少需要用手冊(cè)來查找東西。”

1994年,Chris受到《鐵路大亨》的啟發(fā),開發(fā)了《運(yùn)輸大亨》,大獲成功,版稅成為他源源不斷地收入來源。

Chris在歐洲和美國四處旅行時(shí),迷上了過山車。

他去過數(shù)百個(gè)游樂園,玩了700多次過山車!

最瘋狂的時(shí)候,他甚至兩周時(shí)間參觀了美國14個(gè)主題公園,只是為了坐過山車。

正是由于對(duì)過山車的熱愛,他在制作《過山車大亨》時(shí),考慮了各種各樣的細(xì)節(jié),讓玩家身臨其境。

在游戲中,玩家需要扮演游樂園經(jīng)營者角色,目標(biāo)是從頭開始建造一個(gè)主題公園。

玩家需要改造土地,貸款獲取資金,修建游樂設(shè)施,建造各種過山車(從木頭到鋼制的),旋轉(zhuǎn)木馬、卡丁車、摩天輪、鬼屋、迷宮、電影院和各種驚險(xiǎn)游樂設(shè)施。

還需要安排機(jī)械師來修理設(shè)施,清潔工來打掃衛(wèi)生,保安來避免破壞,還需要安排藝人穿著夸張的服裝跳舞,為排長隊(duì)的人們提供娛樂,甚至整個(gè)公園的浴室也必須精心布置。

一切的目的都是讓客人滿意,樂在其中。

圖片圖片

在實(shí)現(xiàn)技術(shù)上,Chris選擇了匯編,因?yàn)樵?998年,電腦的性能還不夠高,《過山車大亨》需要成千上萬的游客在公園中游玩,多個(gè)過山車在不同的軌道行駛,不同的音樂和音效可以相互重疊播放,營造出一種喧囂的氛圍。

圖片圖片

此時(shí)Java已經(jīng)誕生,但是它主要用于服務(wù)器端編程,做這樣的游戲肯定是不行的。

C++應(yīng)該可以,但是對(duì)Chris來說,匯編才是一個(gè)自己做出極致優(yōu)化的編程語言。

2

在蘇格蘭的一個(gè)小村莊里,Chris開始了《過山車大亨》的開發(fā)。

他裝備了兩臺(tái) PC:一臺(tái)快速的用于編碼,另一臺(tái)較慢的用于測試。

后來,游戲的要求是Intel Pentium 90Mhz 和至少 16 MB RAM。

他的辦公室還放著一臺(tái)點(diǎn)陣打印機(jī)、一臺(tái)傳真機(jī)、一本關(guān)于 x86 匯編代碼的袖珍指南,以及500 多頁的參考書,這對(duì)他來說已經(jīng)足夠了。

由于使用匯編語言,Chris并沒有良好的IDE可以使用,微軟的Microsoft Macro Assembler (MASM)中自帶了一個(gè)編輯器,Chris就用它來編程。

圖片圖片

《過山車大亨》是唯一一個(gè)用x86匯編寫的游戲嗎? 

絕對(duì)不是,用匯編其實(shí)是90年代中期之前常見的做法,因?yàn)闄C(jī)器性能很差,沒有專用的GPU,用匯編來提高性能是常見的做法,比如《帝國時(shí)代》也使用了大量匯編。

圖片圖片

但是,那些游戲都是由團(tuán)隊(duì)完成的,只有《過山車大亨》,是Chris一個(gè)人用匯編一行行地碼出來的。

兩年的瘋狂編碼,用匯編對(duì)性能極致壓榨,《過山車大亨》于1999年上市發(fā)行。

《過山車大亨》遇上了好時(shí)候,1999年,大約四分之一的美國家庭連上了互聯(lián)網(wǎng)。

人們使用郵件,即時(shí)通訊工具,論壇等新興的互聯(lián)網(wǎng)工具來分享各自玩游戲的體驗(yàn)。

品質(zhì)過硬,速度飛快的《過山車大亨》以前所未有的速度吸引了一批狂熱的追求者。

僅僅在美國,1999年就賣了驚人的70萬份!

最終,Chris從《過山車大亨》等游戲中賺了3000萬美元。

真正的熱愛加上精湛的技術(shù)成就了《過山車大亨》的巨大成功。

他寫的游戲指南長達(dá)60多頁,經(jīng)常引用現(xiàn)實(shí)中的過山車游樂園,他對(duì)游樂園的熱愛甚至體現(xiàn)在那些抱怨食物太貴和需要去洗手間的游客身上。

如果Chris對(duì)過山車不那么熱愛,雖然他也能做出過山車游戲,但是絕對(duì)無法給玩家?guī)頍o與倫比的沉浸感,玩家也就不會(huì)自發(fā)傳播。

而使用匯編則帶來了最優(yōu)異的性能,保證能在幾乎所有電腦上玩得飛起。

有意思的是,兩個(gè)游戲愛好者用C語言開發(fā)了一個(gè)《過山車大亨》的開源實(shí)現(xiàn),修復(fù)了原有的一些問題,添加了一些多人游戲,高清支持,作弊代碼等功能,感興趣的同學(xué)可以去看看:https://openrct2.org/

如需轉(zhuǎn)載,請(qǐng)通過作者微信公眾號(hào)coderising獲取授權(quán)。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2020-04-16 11:01:09

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-06-21 13:43:00

AI測試

2011-11-09 09:38:13

2009-05-30 09:39:10

iPhone蘋果移動(dòng)OS

2023-07-26 18:57:04

2022-01-21 07:51:39

加密貨幣黑客網(wǎng)絡(luò)攻擊

2021-01-03 17:05:41

比特幣加密貨幣區(qū)塊鏈

2017-11-03 09:10:48

2019-07-26 10:44:52

2024-01-05 13:56:00

2013-07-04 09:09:33

三星Boxee

2013-08-09 09:41:04

2012-02-10 09:34:02

2022-05-07 12:53:01

英偉達(dá)加密貨幣

2018-12-07 11:26:45

AI程序員代碼

2012-03-17 20:40:46

移動(dòng)社交

2012-03-27 19:04:24

拍鞋網(wǎng)

2021-02-14 09:59:55

黑客網(wǎng)絡(luò)安全勒索

2020-11-19 07:54:32

程序員報(bào)警

2025-02-21 11:08:46

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)