Paracraft是一款免費開源的3D動畫與游戲創(chuàng)作軟件,使用NPL語言開發(fā)完成。NPL語言是本書作者于2004年為了解決基于相似原理的AI仿真問題而研發(fā)的一種編程語言,其語法與主流編程語言兼容,NPL社區(qū)通過github開源了200多萬行引擎與NPL類庫代碼。我們期待編程愛好者的加入。
《Paracraft編程入門》通過作者原創(chuàng)的Paracrft工具,讓讀者可以隨心所欲地創(chuàng)作出任意復雜的3D動畫與游戲,是一本AI及編程入門教材。
《Paracraft編程入門》中作者還分享了自己從7歲開始學習編程的經(jīng)歷,30多年編程生涯的感悟及學習編程的方法論。
《Paracraft編程入門》共分三篇:上篇包含61個循序漸進的編程項目,訓練讀者通過思維實驗解決問題、理解AI和體驗編程;中篇主要介紹編程理論,系統(tǒng)地講解了變量、函數(shù)等重要編程概念;下篇為參考手冊,《Paracraft編程入門》中所有的編程詞匯都可以在下篇中查詢。
《Paracraft編程入門》可供7歲以上喜歡編程的大、中、小學生,以及家長、教師、程序員等參考使用。
編程一直被誤解為一件很難的事情。其中一個原因是幾乎所有編程語言(工具、文檔、開發(fā)者社區(qū))都是英語文化圈下的產(chǎn)物,如果你英語不好,就無法真正融人其中;另一個原因是編程語言沒有被教育者真正當作一種人類的語言去對待。
本書作為編程的入門教材,將正確的工具、學習方法介紹給希望真正掌握編程的你。本書的目標是通過我們原創(chuàng)的Paracraft工具,讓你隨心所欲地創(chuàng)作出任意復雜的3D動畫與游戲。當你具備這種入門編程能力時,你仍然可以繼續(xù)使用Paracraft開發(fā)專業(yè)的計算機軟件或自學其他編程語言。
學習編程和學習外語很像,需要大量的打字練習。動手打字就如同學習外語中的發(fā)音一樣重要;貞浺幌拢覀儚某錾_始就在學習母語的發(fā)音,然后每天還要去使用它,長大后又系統(tǒng)地學習它。一個4歲的小孩已經(jīng)能用母語表達自己的任何想法。相似的,本書希望營造一個類似的學習環(huán)境,讓你可以在計算機世界中表達自已的任何想法。這也是當代希望從事科學與創(chuàng)造性工作的人的一項必備技能。擁有編程的入門能力并不困難,但也需要4年的時間或打5000行以上的代碼。
1989年,7歲的我照著我父親給我的一本書編寫了我人生中的第一個程序,并從此喜歡上了編程,小學期間我完成了大量的個人編程作品,達到隨心所欲的入門狀態(tài),這要感謝我的老師。本書也希望和大家分享我的學習經(jīng)歷。
本書能夠順利出版,要感謝Paracraft的用戶,尤其是奇仔、桃子、無心和阿杰,是你們的辛勤付出讓我們的工具可以大放異彩。
感謝魔法哈奇超過500萬注冊用戶近10年來的陪伴,很多用戶從小學升到了大學,仍然沒有完全離開這款3D社區(qū)和Paracraft。
感謝我過去和現(xiàn)在的團隊,未來我們還有很長的道路要走,很多中途離開的同事依然在遠程參與我們的開源社區(qū)。感謝合作伙伴與多位教育工作者愿意在我們的產(chǎn)品還不完善時,堅持使用我們的產(chǎn)品。
李西峙,1982年出生于哈爾濱。2005年畢業(yè)于浙江大學計算機系(竺可楨學院)。大學期間在國內(nèi)外會議和刊物上發(fā)表游戲引擎、腳本語言技術(shù)、三維動畫制作、CPU芯片設計等相關(guān)論文7篇,撰寫專著1部。2004年出于長期對人工智能的興趣和研究,開發(fā)了NPL語言(Neural Parallel Language)和ParaEngine3D游戲引擎,至今寫了兩百多萬行的開源代碼及工具。Paracraft也是基于NPL語言開發(fā)的一款3D創(chuàng)作工具。2007-2015年,先后獲得著名風險投資IDC和國內(nèi)著名企業(yè)家的投資,并出任CEO。
李鐵才,1950年出生于上海,李西峙之父。哈爾濱工業(yè)大學及深圳研究生院雙基地教授,博士生導師,深圳航天科技創(chuàng)新研究院科技委主任。1996年獲“航天突出貢獻專家”稱號;1997年獲國家特殊津貼;獲國家、省部級科技成果獎18次;獲中國發(fā)明專利30項,獲美國發(fā)明專利3項。在國內(nèi)外發(fā)表論文50余篇。歷時30年致力于相似性原理及其應用技術(shù)的研究,撰寫《相似性和相似性原理》,并編寫了本書第5章。
上篇 項目
第1章 編程項目
1.0 緒論
1.0.1 Paracraft是什么
1.0.2 如何學習本書中的項目
1.0.3 項目8x27:安裝Paracraft和編輯模式
1.1 幾何相似與構(gòu)建相似的虛擬世界
1.1.1 項目8x28:創(chuàng)建方塊
1.1.2 項目8x29:批量操作
1.1.3 項目8x34:bmax模型
1.1.4 項目25x85:介紹“繪圖程序”小游戲
1.2 基于編程的3D建模
1.2.1 項目35x127:CAD建!雷
1.2.2 項目35x129:CAD建模——空心的盒子
1.2.3 項目35x128:CAD建!獖W運五環(huán)
1.2.4 項目35x133:CAD建!
1.3 虛擬人物與虛擬人物的運動
1.3.1 項目8x30:電影方塊
1.3.2 項目8x31:演員和動畫
1.3.3 項目8x32:夏天游泳
1.3.4 項目8x33:制作簡易動畫開頭
1.3.5 項目8x35:簡易bmax小吉他
1.3.6 項目8x36:簡易bmax小動畫
1.3.7 項目20x60:動畫模型方塊
1.3.8 項目20x73:四足動物與鏡頭抖動效果
1.3.9 項目20x77:密室教學
1.3.10 項目20x80:bmax簡易骨骼與x文件應用
1.3.11 項目20x105:傳送石、電影地震鏡頭與人物表現(xiàn)
1.3.12 項目20x121:密室開頭設計
1.4 構(gòu)建我的電影世界使它可持續(xù)發(fā)展
1.4.1 項目20x132:電影方塊與過山車
1.4.2 項目20x134:子母電影方塊
1.5 如何賦予虛擬人物智能
1.5.1 項目6x18:代碼方塊教學1
1.5.2 項目6x19:代碼方塊教學2
1.5.3 項目6x20:乒乓球小游戲
1.5.4 項目6x22:迷宮小游戲
1.5.5 項目6x109:打字練習
1.5.6 項目26x100:曼德勃羅特集
1.5.7 項目17x69:飛行的小鳥
1.5.8 項目17x74:坦克大戰(zhàn)
1.5.9 項目20x79:星球運動仿真教學
1.5.10 項目6x24:雙重機關(guān)與事件
1.5.11 項目6x25:制作圖形界面
1.5.12 項目6x26:代碼方塊的輸出
1.5.13 項目6x21:鋼琴
1.5.14 項目17x120:制作鐘表
1.5.15 項目35x130:CAD建模“擲骰子”
1.5.16 項目6x37:劇E一髟E
1.5.17 項目36x136:臺式計算機模擬
1.5.18 項目36x135:狗狗陪護機器人模擬
1.6 編程中的抽象建模
1.6.1 項目28x107:電梯調(diào)度算法
1.6.2 項目28x108:由電梯調(diào)度算法了解編程思維
1.6.3 項目28x110:3D世界的編程模型
1.6.4 項目28x112:編程中的建模過程——乒乓球小游戲
1.6.5 項目28x114:編程中的建模過程——迷宮小游戲
1.6.6 項目28x115:編程中的建模過程——鋼琴
1.6.7 項目28x125:編程中的建模過程——飛行的小鳥
1.6.8 項目28x126:編程中的建模過程——坦克大戰(zhàn)
1.6.9 項目28x116:編程中的建模過程——跳一跳
1.6.10 項目28x117:復雜編程中的建模過程——電梯調(diào)度算法小游戲
1.6.11 項目34x123:生命游戲
1.6.12 項目34x124:復雜編程中的建模過程——生命游戲的制作
1.6.13 項目24x84:BlockBot小游戲介紹
1.6.14 項目24x95:復雜編程中的建模過程——BlockBot核心部分的制作
1.6.15 項目24x93:BlockBot小游戲——3D UI
1.6.16 項目24x94:BlockBot小游戲——2D UI
1.6.17 項目24i96:BlockBot小游戲——復雜UI設計
1.6.18 項目33x122:人力資源游戲
1.7 保存并分享你的作品
1.7.1 項目29x118:制作個人網(wǎng)站
1.7.2 項目23x83:創(chuàng)建課程包
……
中篇 編程理論
下篇 參考手冊
附錄
后記