游戲腳本高級(jí)編程

出版時(shí)間:2006-10  出版社:清華大學(xué)出版社  作者:瓦蘭尼斯 (Alex Varanese)  頁數(shù):889  字?jǐn)?shù):1284000  譯者:陳洪  
Tag標(biāo)簽:無  

內(nèi)容概要

本書引領(lǐng)讀者進(jìn)入程序員們稱之為“游戲腳本編程”的全新領(lǐng)域,本書將從概括論述什么是腳本編程以及它是如何實(shí)現(xiàn)的開始,闡述游戲編程的理念,根據(jù)作者多年的開發(fā)經(jīng)驗(yàn),使讀者掌握使用腳本是把游戲代碼和主引擎分離開的最理想的辦法,帶讀者進(jìn)入神秘的游戲腳本語言世界,學(xué)習(xí)如何編寫腳本語言,編譯器理論,享受游戲編程方面的極大樂趣。     本書是游戲開發(fā)經(jīng)典叢書系列之一,適合游戲開發(fā)人員、業(yè)余游戲軟件開發(fā)愛好者,也可以作為大專院校相關(guān)專業(yè)的參考書。

作者簡介

Alex Varanese從20世紀(jì)80年代中期,也就是在他5歲時(shí)就被游戲開發(fā)給迷住了,他首先把眼光投向了——帶著迷戀和某種不可解釋的親密——8位的任天堂娛樂系統(tǒng);同時(shí)他也對(duì)藝術(shù)有極大的熱情,但是后來才成為一個(gè)真正的代碼編寫者。
現(xiàn)在是eGameZone(http:www.egamezone.net)

書籍目錄

第1篇 腳本編程的基本原理  第1章 腳本編程概論    1.1 什么是腳本編程    1.2 結(jié)構(gòu)化的游戲內(nèi)容——一種簡單的游戲設(shè)計(jì)方法    1.3 通過將邏輯和具體實(shí)現(xiàn)相互分離來改善這種方法    1.4 硬編碼的危險(xiǎn)性    1.5 將功能函數(shù)存放到外部文件    1.6 腳本是如何運(yùn)行的    1.7 腳本系統(tǒng)的基本類型    1.8 總結(jié)  第2章 腳本編程系統(tǒng)的應(yīng)用    2.1  編寫腳本的普遍目的    2.2  角色扮演游戲(Role Playing Games,RPGs)    2.3  第一人稱射擊游戲(First-Person Shooters,F(xiàn)PSs)    2.4  總結(jié)第2篇 基于命令的腳本  第3章 基于命令的腳本編程緒論    3.1  基于命令的腳本編程的基礎(chǔ)知識(shí)    3.2  基于命令的腳本編程綜述    3.3  實(shí)現(xiàn)一種基于命令的語言    3.4  為一個(gè)游戲的介紹順序編寫腳本    3.5  為RPG游戲中某個(gè)角色的行為編寫腳本    3.6  并發(fā)的腳本執(zhí)行    3.7  總結(jié)    3.8  CD上的內(nèi)容    3.9  挑戰(zhàn)  第4章  基于命令的高級(jí)腳本    ……第3篇 結(jié)構(gòu)化的腳本編程語言概述  第5章 結(jié)構(gòu)化的腳本編程系統(tǒng)介紹  第6章 對(duì)現(xiàn)有腳本編程系統(tǒng)的集成和使用  第7章 設(shè)計(jì)一個(gè)面向過程的腳本編程語言第4篇 設(shè)計(jì)和實(shí)現(xiàn)一種底層語言  第8章 匯編語言入門  第9章 構(gòu)造XASM匯編器第5篇 設(shè)計(jì)和實(shí)現(xiàn)虛擬機(jī)  第10章 匯編語言入門  第11章 高級(jí)虛擬機(jī)的概念和問題第6篇 編譯高級(jí)代碼  第12章 編譯理論概論  第13章 詞法分析器  第14章 構(gòu)造XtremeStcript編譯器框架  第15章 語法分析和語義分析.第7篇 完成培訓(xùn)  第16章 應(yīng)用這個(gè)系統(tǒng)開發(fā)的一個(gè)完整游戲  第17章 從今往后,何去何從

編輯推薦

  《游戲腳本高級(jí)編程》是游戲開發(fā)經(jīng)典叢書系列之一,適合游戲開發(fā)人員、業(yè)余游戲軟件開發(fā)愛好者,也可以作為大專院校相關(guān)專業(yè)的參考書。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    游戲腳本高級(jí)編程 PDF格式下載


用戶評(píng)論 (總計(jì)32條)

 
 

  •   這本書不僅僅介紹了游戲開發(fā)中常用的腳本語言,更是教你如何實(shí)現(xiàn)一個(gè)腳本解釋器。全書簡單易懂,不過要看完還是要有一定耐心的,呵呵。
  •   獲益非淺!!作者的水平是假設(shè)你對(duì)腳本一點(diǎn)也不了解,從頭教你去寫一個(gè)腳本解釋器,雖然有點(diǎn)啰嗦,但是越看會(huì)讓你對(duì)腳本編程理解越深刻!!
  •   本書作者深入淺出~適合初學(xué)者和有一定工作經(jīng)歷的讀者
  •   非常不錯(cuò)??梢宰鳛閷W(xué)習(xí)編譯原理的材料看。。比較通俗易懂。。也非常適合學(xué)習(xí)編譯原理的初學(xué)者。。
  •   只是虛擬機(jī)和匯編器結(jié)構(gòu)上得重構(gòu)重構(gòu),呵呵
  •   剛買來,看了一部份,收獲很大。
  •   很不錯(cuò)這種書同類的感覺比較少
  •   由淺入深,寫得很好,我正在學(xué)。
  •   買了,還沒看。。。。
  •   書還可以,就是大錯(cuò)沒有,小錯(cuò)不斷。審校太不負(fù)責(zé)任了!??!
  •   看了前幾張,還行,沒太多感覺,看完再說
  •   看了前面的一些,真的是好書??!我喜歡?。?!
  •   書看了一小半,感覺很爽~~
  •   書籍質(zhì)量不錯(cuò),送貨很快,謝謝
  •   初步的感覺,書是有用的。但翻譯者的水平有待提高!
  •   真馬虎!沒有給我盤??!我也是馬虎,沒有檢查!郁悶
  •   游戲腳本高級(jí)編程,后面的600頁左右有2/3都是在說怎樣設(shè)計(jì)及編寫一個(gè)虛擬機(jī),而不是實(shí)實(shí)在在的筆述腳本應(yīng)用編程,與主語言嵌入編程等。
  •   送來的時(shí)候,書中夾的光盤是已經(jīng)折斷的!
  •     書還行。不過我覺得光買書還不夠,自己學(xué)這個(gè)又慢又累,想等著學(xué)完換工作呢。后來還是去一個(gè)獵豹網(wǎng)校報(bào)名學(xué)了。感覺上網(wǎng)校,還是比自學(xué)容易多了。
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
  •      Alex Varanese的《Game Scripting Mastery》是本不可多得的好書,我在網(wǎng)上試讀幾章后就決定買一本,看了下有中文翻譯版的,于是花了70多塊錢在網(wǎng)上訂購了一本,從此,噩夢(mèng)開始了。
      
       以前基本沒買過清華大學(xué)出版社翻譯的書,我學(xué)C/C++時(shí)看的基本都是侯捷老師的作品,不管是親自撰寫還是翻譯,侯捷老師都能做到認(rèn)真二字,每一行代碼,每一句翻譯稿都經(jīng)過仔細(xì)推敲,甚至還能發(fā)現(xiàn)原書的不妥之處,把自己的修改意見放在譯文邊上做為參考。后來還有買了些李建忠翻譯的.Net書籍,著實(shí)不錯(cuò)。這讓我對(duì)市面上的書籍估計(jì)的過于樂觀,閑話少說,來說這本書吧:
      
       《游戲腳本高級(jí)編程》拿到手的第一感覺還是不錯(cuò)的,重新設(shè)計(jì)了封面,封面上繪有中國氣息的龍圖案,寫著清華大學(xué)出版社,北京遞歸開元教育有限公司審校。我看還有專門的審校公司,質(zhì)量應(yīng)該有保證??墒且环_書,粗粗看了下,就發(fā)現(xiàn)有點(diǎn)不對(duì):
      
      本書目錄結(jié)構(gòu)就有明顯錯(cuò)誤,第8章和第10章都叫“匯編語言入門”,而實(shí)際上第10章是講虛擬機(jī)的。這個(gè)錯(cuò)誤可以很容易在卓越網(wǎng)的目錄結(jié)構(gòu)上看到。
      英文原版的每頁都有精美的圖形頁腳頁尾,中文版的只是白紙黑字。
      英文原版對(duì)應(yīng)的每個(gè)關(guān)鍵字都有特殊字體(斜體)表示,而中文版的正文就一個(gè)字體過去,并且沒有關(guān)鍵詞翻譯對(duì)照表。
      原文中的備注用的是一個(gè)精美的方框,黑底白字寫上注釋,而中文版的就一個(gè)簡單的注釋跟在正文后面。
      做為一本標(biāo)價(jià)99元人民幣的書籍,中文版并沒有將原文中的圖片重新繪制,導(dǎo)致圖片顯示失真現(xiàn)象很嚴(yán)重,在英文版很清楚的圖片,經(jīng)過了第二次印刷后效果大大不如從前。
      本書的CD-ROM不包括微軟提供的DirectX,而是要讀者自己去下。
      以上是中文版的書給我的第一感覺,不過我們畢竟是看內(nèi)容,只要內(nèi)容好,對(duì)于書的包裝和排版就別做過多苛求了,因?yàn)槲覍?duì)匯編語言比較感興趣,所以我就先讀了第8章,讀著讀著,實(shí)在是讀不下去了,很多翻譯感覺就像機(jī)器翻譯出來的,雖然每個(gè)漢字都認(rèn)得,但連在一起就不想到到底是個(gè)什么意思,沒辦法,重新買了本英文的,一對(duì)比,恍然大悟,不是我理解能力不行,實(shí)在是翻譯的太不負(fù)責(zé)任!我只舉8.36這一小節(jié)(中文版299頁開始,英文版389頁開始)做為說明:
      
      中文版:由于堆棧固有的增長和壓縮能力,以及嚴(yán)格和順序的命令用來壓入和彈出數(shù)據(jù),堆棧已經(jīng)成為管理順序變化數(shù)據(jù)(也就是函數(shù)調(diào)用的劇烈行為)的典型數(shù)據(jù)結(jié)構(gòu)。 不知道各位看到上面這段翻譯是什么感受,我反正是一頭霧水。什么叫“順序變化數(shù)據(jù)?”什么叫“函數(shù)調(diào)用的劇烈行為?”看原文吧:The stack, due to its inherent ability to grow and shrink, as well as the rigid and predictable order in which data is pushed on and popped off,make it the ideal data structure for managing frequently changing data—namely, the turbulent behavior of function calls. 于是一切都清楚了,所謂的“順序變化數(shù)據(jù)”正確意思應(yīng)該是“經(jīng)常變化的數(shù)據(jù)”,再具體一點(diǎn),指的是函數(shù)調(diào)用時(shí),需要傳遞給堆棧的返回地址,參數(shù),返回值等等,你也許還需要處理函數(shù)中的局部變量,所以數(shù)據(jù)是frequently changing 的。而不是什么“順序變化”!
      如果上面這個(gè)例子讓你一頭霧水的話,下面這個(gè)例子就讓你覺得莫名其妙。這個(gè)例子是介紹堆棧的兩個(gè)基本操作PUSH和POP,我們先看英文版吧:Push accepts a single value and pushes it onto the stack. Pop accepts a single memory reference and pops the top stack value into it.這段話在中文版被翻譯成:壓入操作接收一個(gè)值并把它壓入堆棧。彈出操作會(huì)彈出堆棧頂部的值并把它賦給一個(gè)內(nèi)存引用作為自己的返回值。 這時(shí)候容易讓人疑惑的是,翻譯最后的“作為自己的返回值”這句話是從哪來的?大家都該清楚Pop語句只是將棧頂元素賦值給那個(gè)接收的參數(shù),并沒有什么返回值!。此外這種Push和Pop這種單詞,一般正規(guī)的默認(rèn)不翻譯,保持英文更讓人容易理解。而返回值(return value)這個(gè)單詞在本章中特指函數(shù)的返回值,估計(jì)被人翻混了。
      好了,上面兩個(gè)翻譯如果你說我強(qiáng)詞奪理的話,這次看的這個(gè)錯(cuò)誤也許是個(gè)人都不能容忍了:英文原版:Call is a lot like Jmp in the sense that it causes the flow of execution to branch to another instruction.However, in addition to simply making an unconditional jump, it also pushes the current instruction index (which is its own index, as well as the return address) plus one onto the stack. It adds one to its own address to make sure the function returns to the following instruction, not itself;otherwise you’d have an infinite loop on your hands.,在中文版中被翻譯成:Call使得執(zhí)行流分支到另外一個(gè)指令,從這個(gè)意義上來說很想Jmp。然而,除了做了一個(gè)簡單的非條件跳轉(zhuǎn)之外,同時(shí)還把當(dāng)前指令的索引(是它自己的索引,也是返回地址)壓入堆棧。它把自己的地址壓入堆棧來確保函數(shù)返回到下一條指令,而不是自己,否則的話就造成了一個(gè)無窮循環(huán)。問題來了,英文原版紅色的plus one在中文版的翻譯中哪去了?英文原版的意思是當(dāng)發(fā)生函數(shù)調(diào)用時(shí),Call指令會(huì)把“當(dāng)前指令的索引+1”做為函數(shù)返回值壓入堆棧,這樣函數(shù)退出時(shí),就執(zhí)行堆棧中的“當(dāng)前指令的索引+1”的指令??煞g中卻把+1漏掉了,這不正是造成死循環(huán)的原因嗎?
      其他的翻譯晦澀,翻譯錯(cuò)誤還很多,比如書中后來提到了堆棧對(duì)返回地址(return address)的處理,以及堆棧對(duì)函數(shù)返回值(return value)的處理。對(duì)照英文原版可以看到,中文版至少有兩處把return value 和return address翻譯混淆,本該是“返回地址”的地方翻譯成了“返回值”。
       基于以上原因,我決定再買一本英文原版(因?yàn)檫@本書的確值得買,值得細(xì)看),同時(shí)奉勸各位還是打開金山詞霸看英文原版吧,最多也就是單詞不認(rèn)識(shí)??粗形陌嬷粫?huì)讓你一頭霧水。另外,開始懷念看侯捷老師書的日子,懷念那種和作者一起交流,一起學(xué)習(xí)人類智慧結(jié)晶的喜悅。而不是面對(duì)一堆翻譯出來像機(jī)器翻譯的,毫無生氣的文字。對(duì)于本書的翻譯,我只能用一句話形容--用google翻譯吧,也許效果還好點(diǎn)!
      
      
  •     雖然代碼羅唆了一點(diǎn),不過寫的scirpt VM思路還是很有意思的,其實(shí)當(dāng)年大學(xué)里的編譯原理就應(yīng)該這樣教。。。
      不知道有沒有中文譯本,可以做不錯(cuò)的編譯原理教材。不過估計(jì)銷量不會(huì)太好,國內(nèi)功利的環(huán)境,讓一般技術(shù)人員沒有耐心研究這類一時(shí)用不上的東西。
      如果你對(duì)實(shí)現(xiàn)自己的script VM沒有興趣,也可以看一看里面的一章,講如何整合python, lua或者TCL進(jìn)自己的系統(tǒng),寫的深入淺出
  •   同感,大部分翻譯過來的經(jīng)典著作都有點(diǎn)讓人猜不忍睹的感覺?。?!
  •   還在看中,清華的 給我最好印象的就是c的那本 不過不是翻譯的 翻譯的感覺看上去都是會(huì)看死我的 象過幾天要考試的體系結(jié)構(gòu)- -
  •   很無語的是我把評(píng)論發(fā)到當(dāng)當(dāng)和卓越,都被河蟹掉了。
    以后買書真的不能聽這種門戶網(wǎng)站的評(píng)論了,都是利益相關(guān),只許說好,不能說差。不過話說回來,這本書還是很經(jīng)典的。
  •   本來今天想去買一本的,看來還是看英文電子版算了。。
  •   翻譯大概不懂編程 哈哈
  •   差點(diǎn)買了 幸好看到你這個(gè)評(píng)論。。
  •   現(xiàn)在有些人急功近利,拿個(gè)機(jī)器翻譯的東西改改就出版,極度不負(fù)責(zé)任。我看了電子版的,覺得很有收獲,正想去買一本回來再仔細(xì)看看。感謝你的評(píng)論!
  •   看英文的啦~ 看起來 很流暢很舒服
  •   我現(xiàn)在只要一看到 清華大學(xué)出版社 出版的書就不敢買,清華出版社貌似是給錢就印,,,比機(jī)工和人郵的書差遠(yuǎn)了
  •   翻譯確實(shí)一般,最好中英文對(duì)照看吧,覺得書本身還是很贊的
  •   多謝,不然就買了
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7