diff --git a/game-programmer-zh-cn.dot b/game-programmer-zh-cn.dot index 2c1c725..b895df5 100644 --- a/game-programmer-zh-cn.dot +++ b/game-programmer-zh-cn.dot @@ -1,793 +1,810 @@ -digraph { - compound=true - fontname="Futura" - fontsize=20 - margin="0,0" - ranksep=0.25 - nodesep=0.15 - penwidth=0.5 - labeljust="left" - bgcolor="#666666" - - style="rounded,filled" - color="none" - fillcolor="" - node [fontname="Helvetica-Light", fontsize=10, shape=none, penwidth=0.5] - edge [fontname="Helvetica-Light", fontsize=10, arrowhead=vee, arrowsize=0.75] - - subgraph cluster_toc { - style=invis; - - edge [color="#cccccc"] - - { - node [fontcolor=white] - - toctop [fixedsize=true,width=8, height=3, shape=plaintext,label=< - - - -
游戏程序员的
学习之路
Milo Yip
2016/12/20
https://github.com/miloyip/game-programmer
- > URL="https://github.com/miloyip/game-programmer"] - tocbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - } - - { - node [shape="box", style="rounded,filled", fixedsize=true, width=3, height=0.5, fontname="Futura", fontsize=10] - - kid [color="#edc5ce", label=< 0. 编程学前班>] - cs [color="#edc5c5", label=" 1. 计算机科学"] - proglang [color="#eddac5", label=" 2. 编程语言"] - softwaredev [color="#ebebc6", label=" 3. 软件开发"] - math [color="#d9ebc6", label=< 4. 游戏程序员的数学课>] - gameprog [color="#c5edc5", label=" 5. 游戏编程"] - gameengine [color="#c5ede1", label=< 6. 游戏引擎开发>] - cg [color="#c5e1ed", label=" 7. 计算机图形学(CG)"] - audio [color="#c5cbed", label=" 8. 游戏音效"] - phyanim [color="#d7c5ed", label=< 9. 游戏物理和动画>] - ai [color="#edc5ed", label=< 10. 游戏人工智能(AI)>] - multiplayer [color="#edc5d7", label=< 11. 多人游戏编程>] - } - kid -> cs -> proglang -> softwaredev -> math -> gameprog -> gameengine - gameengine -> cg -> audio -> phyanim -> ai -> multiplayer[style=invis] - gameengine -> { cg; phyanim; ai; audio; multiplayer} [tailport=e, headport=e, constraint=false] - - toctop -> kid [style=invis] - multiplayer -> tocbottom [style=invis] - } - - edge [style=dotted] - - subgraph cluster_legend { - fillcolor="#dddddd" - label=<
Legends
> - node [shape=none, fixedsize=true, width=2, height=0.25] - - legendA1 [label="推荐路线"] - legendB1 [label="可选路线"] - legendA2 [label="", height=0.01] - legendB2 [label="", height=0.01] - legendA1 -> legendA2 [minlen=2,arrowhead=normal, style=solid] - legendB1 -> legendB2 [minlen=2] - - legendtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - legendbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - legendtop -> { legendA1; legendB1 } [style=invis] - { legendA2; legendB2 } -> legendbottom [style=invis] - } - - subgraph cluster_kid { - fillcolor="#f9ecef" - label=<
0. 编程学前班
> - - { - node [shape="box", style="rounded,filled" color="#edc5ce"] - { - rank=same - age5 [label="从5岁开始"] - age8 [label="从8岁开始"] - } - kidintermediate [label="中级孩童游戏编程"] - } - - scratchjr [label=<
The Official
ScratchJr Book (2015)
> URL="https://www.amazon.com/dp/1593276710/"] - - codinggamesinscratch [label=<
Coding Games
in Scratch
(2015)
> URL="https://www.amazon.com/dp/1465439358/"] - superscratchprogadv [label=<
Super Scratch
Programming Adventure!
(2013)
> URL="https://www.amazon.com/dp/1593275315/"] - learntoprogramwithscratch [label=<
Learn to Program
with Scratch
(2014)
> URL="https://www.amazon.com/dp/1593275439/"] - helpyoukidswithcomputercoding [label=<
Help Your Kids
with Computer Coding
(2015)
> URL="https://www.amazon.com/dp/146541956X/"] - - inventgamepython3 [label=<
Invent Your Own
Computer Games with
Python 3rd Ed (2015)
> URL="https://www.amazon.com/dp/1503212300/"] - makinggamespython [label=<
Making Games with
Python & Pygame (2012)
> URL="https://www.amazon.com/dp/1469901730/"] - learntoprogramwithminecraft [label=<
Learn to Program
with Minecraft (2015)
> URL="https://www.amazon.com/dp/1593276702/"] - adventuresinminecraft [label=<
零基础学Minecraft编程
(2015)
> URL="https://book.douban.com/subject/26613247/"] - "3dgpforkids" [label=<
3D Game Programming
for Kids (2013)
> URL="https://www.amazon.com/dp/1937785440/"] - - age5 -> scratchjr -> age8 - age8 -> codinggamesinscratch -> helpyoukidswithcomputercoding -> kidintermediate [arrowhead=normal, style=solid] - age8 -> superscratchprogadv -> learntoprogramwithscratch -> kidintermediate - - kidintermediate -> inventgamepython3 -> makinggamespython - kidintermediate -> learntoprogramwithminecraft -> adventuresinminecraft - kidintermediate -> "3dgpforkids" - - kidtop [fixedsize=true,width=8,height=0.01,style=invis, label=""] - kidbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - kidtop -> {age5; age8} [style=invis] - adventuresinminecraft -> kidbottom [style=invis] - } - - subgraph cluster_cs { - fillcolor="#f9ecec" - label=<
1. 计算机科学
> - - { - node [shape="box", style="rounded,filled" color="#edc5c5"] - rank=same - foundation [label="计算机基础"] - algorithm [label="算法"] - csmath [label="计算机数学"] - } - - sicp2 [label=<
计算机程序的构造和解释
(2004)
> URL="https://book.douban.com/subject/1148282/"] - csapp3 [label=<
深入理解计算机系统
(原书第3版)
(2016)
> URL="https://book.douban.com/subject/26912767/"] - caaqa5 [label=<
计算机体系结构
(2012)
> URL="https://book.douban.com/subject/20452387/"] - mos4 [label=<
现代操作系统(第3版)
(2009)
> URL="https://book.douban.com/subject/3852290/"] - - clrs3 [label=<
算法导论(原书第3版)
(2012)
> URL="https://book.douban.com/subject/20432061/"] - algorithms4 [label=<
算法(第4版)
(2012)
> URL="https://book.douban.com/subject/19952400/"] - - concretemaths2 [label=<
具体数学
(2013)
> URL="https://book.douban.com/subject/21323941/"] - computationalscieng [label=<
Computational Science
and Engineering (2007)
> URL="https://www.amazon.com/dp/0961408812/"] - - foundation -> { sicp2; csapp3 } -> { caaqa5; mos4 } [arrowhead=normal, style=solid] - algorithm -> clrs3 [arrowhead=normal, style=solid] - algorithm -> algorithms4 -> clrs3 - csmath -> concretemaths2 -> computationalscieng - - cstop [fixedsize=true,width=8,height=0.01,style=invis, label=""] - csbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - cstop -> { foundation; csmath; algorithm } [style=invis] - caaqa5 -> csbottom [style=invis] - } - - subgraph cluster_proglang { - fillcolor="#f9f3ec" - label=<
2. 编程语言
> - - { - node [shape="box", style="rounded,filled" color="#eddac5"] - - { - rank=same - cbegin [label="C"] - lua [label="Lua"] - csharp [label="C#"] - } - - cppbegin [label="C++ 新手"] - cpppractice [label="C++ 实践"] - cpplibrary [label="C++ 标准库"] - cppadvance [label="C++ 进阶"] - } - - tcpl2 [label=<
C程序设计语言
(2004)
> URL="https://book.douban.com/subject/1139336/"] - - cppprimer5 [label=<
C++ Primer 中文版
(第 5 版)
(2013)
> URL="https://book.douban.com/subject/25708312/"] - tcpppl4 [label=<
C++ 程序设计语言(原书第 4 版)
(2016)
> URL="https://book.douban.com/subject/26857943/"] - cppstandardlibrary2 [label=<
C++标准库(第2版)
(2015)
> URL="https://book.douban.com/subject/26419721/"] - boostcpplibraries2 [label=<
The Boost C++
Libraries 2nd Ed (2014)
> URL="https://www.amazon.com/dp/1937434362/"] - cppconcurrencyinaction [label=<
C++并发编程实战
(2015)
> URL="https://book.douban.com/subject/26386925/"] - - effectivestl [label=<
Effective STL中文版
(2013)
> URL="https://book.douban.com/subject/24534868/"] - - exceptionalcpp [label=<
Exceptional C++(中文版)
(2012)
> URL="https://book.douban.com/subject/10785602/"] - moreexceptionalcpp [label=<
More Exceptional C++
中文版
(2002)
> URL="https://book.douban.com/subject/1244943/"] - exceptionalcppstyle [label=<
Exceptional C++ Style
中文版
(2006)
> URL="https://book.douban.com/subject/1470842/"] - cppcodingstandard [label=<
C++编程规范
(2010)
> URL="https://book.douban.com/subject/5348095/"] - - effectivecpp3 [label=<
Effective C++
(2006)
> URL="https://book.douban.com/subject/1842426/"] - moreeffectivecpp3 [label=<
More Effective C++
(中文版)
(2011)
> URL="https://book.douban.com/subject/5908727/"] - effectivemoderncpp [label=<
Effective Modern
C++ (2014)
> URL="https://www.amazon.com/dp/1491903996/"] - optimizedcpp [label=<
Optimized C++
(2016)
> URL="https://www.amazon.com/dp/1491922060/"] - - insidecppobjectmodel [label=<
深度探索C++对象模型
(2012)
> URL="https://book.douban.com/subject/10427315/"] - imperfectcpp [label=<
Imperfect C++中文版
(2006)
> URL="https://book.douban.com/subject/1470838/"] - cpptemplates [label=<
C++ Templates中文版
(2013)
> URL="https://book.douban.com/subject/23780707/"] - elementsofprogramming [label=<
编程原本
(2012)
> URL="https://book.douban.com/subject/7564093/"] - frommathtogeneric [label=<
From Mathematics
to Generic Programming
(2014)
> URL="https://www.amazon.com/dp/0321942043/"] - moderncppdesign [label=<
C++设计新思维
(2003)
> URL="https://book.douban.com/subject/1103566/"] - - programminginlua4 [label=<
LUA程序设计(第2版)
(2008)
> URL="https://book.douban.com/subject/3076942/"] - luaprogramminggems [label=<
Lua Programming
Gems (2008)
> URL="https://www.amazon.com/dp/8590379841/"] - - mvcsharpstepbystep8 [label=<
Visual C#从入门到精通(第8版) 
(2016)
> URL="https://book.douban.com/subject/26937762/"] - csharpindepth3 [label=<
深入理解C#(第3版)
(2014)
> URL="https://book.douban.com/subject/25843328/"] - clrviacsharp4 [label=<
CLR via C#(第4版)
(2015)
> URL="https://book.douban.com/subject/26285940/"] - - cbegin -> tcpl2 -> cppbegin [arrowhead=normal, style=solid] - - cppbegin -> cppprimer5 -> cpppractice [arrowhead=normal, style=solid] - - cppbegin -> tcpppl4 - cppprimer5 -> cpplibrary [arrowhead=normal, style=solid] - tcpppl4 -> cpplibrary - - cpplibrary -> cppstandardlibrary2 [arrowhead=normal, style=solid] - cppstandardlibrary2 -> effectivestl - cppstandardlibrary2 -> cppconcurrencyinaction -> boostcpplibraries2 - - cpppractice -> effectivecpp3 -> effectivemoderncpp -> cppcodingstandard [arrowhead=normal, style=solid] - effectivecpp3 -> moreeffectivecpp3 -> effectivemoderncpp - effectivemoderncpp -> optimizedcpp -> cppadvance - cpppractice -> exceptionalcpp -> moreexceptionalcpp -> exceptionalcppstyle -> cppcodingstandard -> cppadvance - cppadvance -> elementsofprogramming -> frommathtogeneric - cppadvance -> { insidecppobjectmodel; cpptemplates } - insidecppobjectmodel -> imperfectcpp - cpptemplates -> moderncppdesign - - lua -> programminginlua4 -> luaprogramminggems - - csharp -> mvcsharpstepbystep8 -> csharpindepth3 -> clrviacsharp4 - - progtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - progbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - progtop -> { cbegin; csharp; lua } [style=invis] - moderncppdesign -> progbottom [style=invis] - } - - subgraph cluster_se { - fillcolor="#f8f8ec" - label=<
3. 软件开发
> - - { - node [shape="box", style="rounded,filled", color="#ebebc6"] - sebegin [label="软件开发新手"] - sepractice [label="实践"] - dp [label="设计模式"] - uml [label="UML"] - } - - mythicalmanmonth2 [label=<
人月神话
(2007)
> URL="https://book.douban.com/subject/2230248/"] - - codecomplete2 [label=<
代码大全
(2007)
> URL="https://book.douban.com/subject/2208626/"] - apidesignforcpp [label=<
C++ API设计
(2013)
> URL="https://book.douban.com/subject/24869855/"] - - agilesoftwaredev [label=<
敏捷软件开发
(2008)
> URL="https://book.douban.com/subject/2347790/"] - designpatterns [label=<
设计模式
(2007)
> URL="https://book.douban.com/subject/2111801/"] - headfirstdesignpatterns [label=<
Head First 设计模式(中文版)
(2007)
> URL="https://book.douban.com/subject/2243615/"] - practiceofprogramming [label=<
程序设计实践
(2011)
> URL="https://book.douban.com/subject/6524000/"] - cleancode [label=<
编码整洁之道
(2012)
> URL="https://book.douban.com/subject/11602008/"] - refactoring [label=<
重构
(2010)
> URL="https://book.douban.com/subject/4262627/"] - workingeffectivelylegacycode [label=<
修改代码的艺术
(2014)
> URL="https://book.douban.com/subject/25904007/"] - - umldistilled3 [label=<
UML精粹
(2012)
> URL="https://book.douban.com/subject/10798193/"] - umluserguide2 [label=<
UML用户指南
(2006)
> URL="https://book.douban.com/subject/1837454/"] - ooadwa3 [label=<
面向对象分析与设计
(2012)
> URL="https://book.douban.com/subject/11509672/"] - - sebegin -> mythicalmanmonth2 -> { sepractice; dp } [arrowhead=normal, style=solid] - mythicalmanmonth2 -> uml - - sepractice -> practiceofprogramming -> refactoring -> codecomplete2 -> { cleancode; workingeffectivelylegacycode } [arrowhead=normal, style=solid] - codecomplete2 -> apidesignforcpp - - dp -> agilesoftwaredev -> designpatterns [arrowhead=normal, style=solid] - dp -> headfirstdesignpatterns -> agilesoftwaredev - - uml -> umldistilled3 -> umluserguide2 -> ooadwa3 - - setop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - sebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - setop -> sebegin [style=invis] - workingeffectivelylegacycode -> sebottom [style=invis] - } - - subgraph cluster_math { - fillcolor="#f2f8ec" - label=<
4. 游戏程序员的数学课
> - - { - node [shape="box", style="rounded,filled", color="#d9ebc6"] - mathbegin [label="游戏编程数学初阶"] - mathadvanced [label="游戏编程数学进阶"] - } - - foundationsgedmath [label=<
Foundations of Game
Engine Development,
Vol 1: Mathematics
(2016)
> URL="https://www.amazon.com/dp/0985811749/"] - math3dcpcg3 [label=<
3D游戏与计算机图形学
中的数学方法(第3版)
(2016)
> URL="https://book.douban.com/subject/26864861/"] - "3dmathprimer2" [label=<
3D Math Primer for
Graphics and Game
Development 2nd Ed (2011)
> URL="https://www.amazon.com/dp/1568817231/"] - essentialmaths3 [label=<
Essential Mathematics
for Games and
Interactive Applications
3rd Ed (2011)
> URL="https://www.amazon.com/dp/1482250926/"] - - geometricalgebra [label=<
Geometric Algebra for
Computer Science (2007)
> URL="https://www.amazon.com/dp/0123749425/"] - geometrictools [label=<
计算机图形学
几何工具算法详解
(2005)
> URL="https://book.douban.com/subject/1224798/"] - computationalgeometry [label=<
计算几何
(2009)
> URL="https://book.douban.com/subject/3893574/"] - visualizingquaternions [label=<
Visualizing Quaternions
(2006)
> URL="https://www.amazon.com/dp/0120884003/"] - divgradcurl4 [label=<
散度、旋度、梯度释义
(2015)
> URL="https://book.douban.com/subject/26688502/"] - - mathbegin -> foundationsgedmath - mathbegin -> math3dcpcg3 -> mathadvanced [arrowhead=normal, style=solid] - mathbegin -> "3dmathprimer2" - mathbegin -> essentialmaths3 - - { foundationsgedmath; "3dmathprimer2"; essentialmaths3 } -> mathadvanced - - mathadvanced -> geometrictools -> computationalgeometry [arrowhead=normal, style=solid] - mathadvanced -> geometricalgebra - mathadvanced -> visualizingquaternions - mathadvanced -> divgradcurl4 - - mathtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - mathbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - mathtop -> mathbegin [style=invis] - computationalgeometry -> mathbottom [style=invis] - } - - subgraph cluster_gameprog { - fillcolor="#ecf9ec" - label=<
5. 游戏编程
> - - { - node [shape="box", style="rounded,filled", color="#c5edc5"] - gpbegin [label="开始游戏编程"] - scratch [label="使用Windows/DirectX"] - unity [label="使用Unity"] - unreal [label="使用Unreal"] - cocos2dx [label="使用Cocos2d-X"] - gpintermediate [label="中级游戏编程"] - gpmisc [label="游戏编程文选"] - } - - windowsgp2 [label=<
Windows游戏编程大师技巧
(2012)
> URL="https://book.douban.com/subject/20282993/"] - gamecodingcomplete4 [label=<
游戏编程权威指南
(2016)
> URL="https://book.douban.com/subject/26787109/"] - - introtogdprodev [label=<
Introduction to Game
Design, Prototyping,
and Development (2014)
> URL="https://www.amazon.com/dp/0321933168/"] - unityinaction [label=<
Unity5实战
(2016)
> URL="https://book.douban.com/subject/26877872/"] - - learninguegd [label=<
Learning Unreal Engine
Game Development
(2015)
> URL="https://www.amazon.com/dp/1784398152/"] - blueprintsvisualscripting [label=<
Blueprints Visual Scripting
for Unreal Engine (2015)
> URL="https://www.amazon.com/dp/1785286013/"] - - cocos2dxbyexample2 [label=<
Cocos2d-X
by Example (2015)
> URL="https://www.amazon.com/dp/1785288857/"] - - gpalgorithmstechniques [label=<
Game Programming
Algorithms and
Techniques (2013)
> URL="https://www.amazon.com/dp/0321940156/"] - gameprogrammingpatterns [label=<
游戏编程模式
(2016)
> URL="https://book.douban.com/subject/26880704/"] - gpgoldenrules [label=<
Game Programming
Golden Rules (2004)
> URL="https://www.amazon.com/dp/1584503068/"] - crossplatformgp [label=<
Cross-Platform Game
Programming (2005)
> URL="https://www.amazon.com/dp/1584503793/"] - androidndkgdcookbook [label=<
Android NDK Game
Development Cookbook
(2013)
> URL="https://www.amazon.com/dp/1782167781/"] - buildingfpsgameunity [label=<
Building an FPS
Game with Unity (2015)
> URL="https://www.amazon.com/dp/178217480X/"] - unityvrprojects [label=<
Unity Virtual
Reality Projects (2015)
> URL="https://www.amazon.com/dp/178398855X/"] - agumentedreality [label=<
Augmented Reality
(2016)
> URL="https://www.amazon.com/dp/0321883578/"] - practicalaugmentedreality [label=<
Practical Augmented
Reality (2016)
> URL="https://www.amazon.com/dp/0134094239/"] - - { - rank=same - gpgemsbest [label=<
Best of Game
Programming
Gems (2008)
> URL="https://www.amazon.com/dp/1584505710/"] - beginninggp [label=<
Beginning Game
Programming (2009)
> URL="https://www.amazon.com/dp/159863805X/"] - advancedgp [label=<
Advanced Game
Programming (2009)
> URL="https://www.amazon.com/dp/1598638068/"] - } - - { - rank=same - gpgems [label=<
游戏编程精粹 1
(2004)
> URL="https://book.douban.com/subject/1231195/"] - gpgems2 [label=<
游戏编程精粹2
(2003)
> URL="https://book.douban.com/subject/1146281/"] - gpgems3 [label=<
游戏编程精粹3
(2003)
> URL="https://book.douban.com/subject/1125738/"] - gpgems4 [label=<
游戏编程精粹4
(2005)
> URL="https://book.douban.com/subject/1435923/"] - } - { - rank=same - gpgems5 [label=<
游戏编程精粹5
(2007)
> URL="https://book.douban.com/subject/2248414/"] - gpgems6 [label=<
游戏编程精粹6
(2007)
> URL="https://book.douban.com/subject/2305250/"] - gpgems7 [label=<
游戏编程精粹7
(2010)
> URL="https://book.douban.com/subject/4903976/"] - gpgems8 [label=<
Game Programming
Gems (2010)
> URL="https://www.amazon.com/dp/1584507020/"] - } - - gpbegin -> { scratch; unity; unreal; cocos2dx } - scratch -> gamecodingcomplete4 [arrowhead=normal, style=solid, tailport=se] - gamecodingcomplete4 -> gpintermediate [arrowhead=normal, style=solid] - scratch -> windowsgp2 - - windowsgp2 -> gamecodingcomplete4[style=invis] - - unity -> introtogdprodev -> unityinaction -> gpintermediate - - unreal -> learninguegd -> blueprintsvisualscripting -> gpintermediate - - cocos2dx -> cocos2dxbyexample2 -> gpintermediate - - gpintermediate -> gpalgorithmstechniques -> gameprogrammingpatterns [arrowhead=normal, style=solid] - gameprogrammingpatterns -> gpgoldenrules -> gpmisc - gpintermediate -> crossplatformgp -> androidndkgdcookbook - gpintermediate -> buildingfpsgameunity -> unityvrprojects - gpintermediate -> agumentedreality -> practicalaugmentedreality - - { - rank=same; gpgoldenrules; gpmisc - } - gpmisc -> gpgemsbest - gpgemsbest -> gpgems - gpmisc -> beginninggp -> advancedgp - gpgems -> gpgems2 -> gpgems3 -> gpgems4 - gpgems4 -> gpgems5 - gpgems5 -> gpgems6 -> gpgems7 -> gpgems8 - - gametop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - gamebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - gametop -> { gpbegin; unity } [style=invis] - gpgems7 -> gamebottom [style=invis] - } - - subgraph cluster_engine { - fillcolor="#ecf9f5" - label=<
6. 游戏引擎开发
> - - { - node [shape="box", style="rounded,filled", color="#c5ede1"] - gebegin [label="游戏引擎开发新手"] - gearticles [label="游戏引擎文选"] - gescript [label="脚本引擎"] - geoptimization [label="优化"] - getool [label="工具开发"] - } - - { - rank=same - gameenginearchitecture2 [label=<
游戏引擎架构
(2014)
> URL="https://book.douban.com/subject/25815142/"] - "3dgameenginearchitecture" [label=<
3D Game Engine
Architecture
(2004)
> URL="https://www.amazon.com/dp/012229064X/"] - gameenginedesign2 [label=<
3D Game Engine
Design
2nd Ed (2006)
> URL="https://www.amazon.com/dp/0122290631/"] - } - - gameenginegems1 [label=<
Game Engine
Gems 1 (2010)
> URL="https://www.amazon.com/dp/0763778885/"] - gameenginegems2 [label=<
Game Engine
Gems 2 (2011)
> URL="https://www.amazon.com/dp/1568814372/"] - gameenginegems3 [label=<
Game Engine
Gems 3 (2016)
> URL="https://www.amazon.com/dp/1498755658/"] - - gamescriptingmastery [label=<
游戏脚本高级编程
(2006)
> URL="https://book.douban.com/subject/1927405/"] - languageimplpatterns [label=<
编程语言实现模式
(2012)
> URL="https://book.douban.com/subject/10482195/"] - garbagecollectionhandbook [label=<
垃圾回收算法手册:
自动内存管理的艺术
(2016)
> URL="https://book.douban.com/subject/26740958/"] - - unity5gameoptimization [label=<
Unity 5 Game
Optimization (2015)
> URL="https://www.amazon.com/dp/1785884581/"] - videogameoptimization [label=<
Video Game
Optimization (2010)
> URL="https://www.amazon.com/dp/1598634356/"] - hackersdelight2 [label=<
算法心得:高效算法的奥秘(原书第2版)
(2014)
> URL="https://book.douban.com/subject/25837031/"] - modernx86assembly [label=<
Modern X86
Assembly Language
Programming (2014)
> URL="https://www.amazon.com/dp/1484200659/"] - gpgpu [label=<
GPGPU Programming
for Games and Science
(2014)
> URL="https://www.amazon.com/dp/1466595353/"] - vectorgamemathprocessors [label=<
Vector Games
Math Processors
(2002)
> URL="https://www.amazon.com/dp/1556229216/"] - - gamedevtools [label=<
Game Development
Tools (2011)
> URL="https://www.amazon.com/dp/1568814321/"] - designinguxgamedevtools [label=<
Designing the User
Experience of Game
Development Tools (2015)
> URL="https://www.amazon.com/dp/148224019X/"] - - gebegin -> gameenginearchitecture2 [arrowhead=normal, style=solid] - gameenginearchitecture2 -> { gearticles; gescript; geoptimization; getool } - - gameenginearchitecture2 -> "3dgameenginearchitecture" -> gameenginedesign2 - gearticles -> gameenginegems1 -> gameenginegems2 -> gameenginegems3 - gescript -> gamescriptingmastery -> languageimplpatterns -> garbagecollectionhandbook - geoptimization -> videogameoptimization -> unity5gameoptimization -> hackersdelight2 -> { modernx86assembly; gpgpu; vectorgamemathprocessors} - getool -> gamedevtools -> designinguxgamedevtools - - getop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - gebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - getop -> gebegin [style=invis] - gpgpu -> gebottom [style=invis] - } - - subgraph cluster_cg { - fillcolor="#ecf5f9" - label=<
7. 计算机图形学(CG)
> - - { - node [shape="box", style="rounded,filled", color="#c5e1ed"] - cgbegin [label="游戏图形学初级"] - cgtheory [label="图形学理论初级"] - cgadvanced [label="图形学进阶"] - realtimerendering [label="实时渲染"] - offlinerendering [label="离线渲染"] - d3d [label="Direct3D"] - ogl [label="OpenGL"] - cgtech [label="图形学技术"] - cgmisc [label="图形学文选"] - } - - rt3drendering [label=<
Real-Time 3D
Rendering with DirectX
and HLSL (2014)
> URL="https://www.amazon.com/dp/0321962729/"] - "3dgpdx12" [label=<
DirectX 9.0 3D游戏开发编程基础
(2007)
> URL="https://book.douban.com/subject/2111771/"] - oglguide9 [label=<
OpenGL编程指南(原书第8版)
(2014)
> URL="https://book.douban.com/subject/26220248/"] - - fundamentalscg4 [label=<
计算机图形学
(2007)
> URL="https://book.douban.com/subject/2116178/"] - cgpp3 [label=<
计算机图形学原理及实践:
C语言描述(原书第2版)
(2004)
> URL="https://book.douban.com/subject/1230412/"] - pdis [label=<
Principles of Digital
Image Synthesis
(PODIS) (1995)
> URL="https://www.amazon.com/dp/1558602763/"] - digitalimageprocessing3 [label=<
数字图像处理
(2010)
> URL="https://book.douban.com/subject/4285832/"] - - graphicsshaders2 [label=<
图形着色器
(2013)
> URL="https://book.douban.com/subject/23858154/"] - glsl3 [label=<
OpenGL着色语言
(2006)
> URL="https://book.douban.com/subject/1911849/"] - oglsuper7 [label=<
OpenGL Super Bible
7th Ed (2015)
> URL="https://www.amazon.com/dp/0672337479/"] - ogles3guide2 [label=<
OpenGL ES 3.0编程指南
(2015)
> URL="https://book.douban.com/subject/26414014/"] - oglinsights [label=<
OpenGL Insights (2012)
> URL="https://www.amazon.com/dp/1439893764/"] - vulkanguide [label=<
Vulkan Programming
Guide (2016)
> URL="https://www.amazon.com/dp/0134464540/"] - - practiald3d11 [label=<
Practical Rendering
and Computation
with Direct3D 11 (2011)
> URL="https://www.amazon.com/dp/1568817207/"] - - rtr3 [label=<
实时计算机图形学
(2004)
> URL="https://book.douban.com/subject/1231141/"] - tricks3dgpgurus [label=<
3D游戏编程大师技巧
(2005)
> URL="https://book.douban.com/subject/1321769/"] - realtimeshadows [label=<
实时阴影技术
(2013)
> URL="https://book.douban.com/subject/25908680/"] - rtvolumegraphics [label=<
Real-Time Volume
Graphics (2006)
> URL="https://www.amazon.com/dp/1568812663/"] - graphicsprogrammingmethods [label=<
Graphics Programming
Methods (2003)
> URL="https://www.amazon.com/dp/1584502991/"] - gpugems [label=<
GPU精粹
(2006)
> URL="https://book.douban.com/subject/1480239/"] - gpugems2 [label=<
GPU精粹2
(2007)
> URL="https://book.douban.com/subject/2144796/"] - gpugems3 [label=<
GPU精粹3
(2010)
> URL="https://book.douban.com/subject/4851196/"] - gpupro [label=<
GPU Pro (2010)
> URL="https://www.amazon.com/dp/1568814720/"] - gpupro2 [label=<
GPU Pro 2 (2011)
> URL="https://www.amazon.com/dp/1568817185/"] - gpupro3 [label=<
GPU Pro 3 (2012)
> URL="https://www.amazon.com/dp/1439887829/"] - gpupro4 [label=<
GPU Pro 4 (2013)
> URL="https://www.amazon.com/dp/1466567430/"] - gpupro5 [label=<
GPU Pro 5 (2014)
> URL="https://www.amazon.com/dp/1482208636/"] - gpupro6 [label=<
GPU Pro 6 (2015)
> URL="https://www.amazon.com/dp/1482264617/"] - gpupro7 [label=<
GPU Pro 7 (2016)
> URL="https://www.amazon.com/dp/149874253X/"] - - pbrt3 [label=<
Physically Based
Rendering (PBRT)
3rd Ed (2016)
> URL="https://www.amazon.com/dp/0128006455/"] - raytracingfromgroundup [label=<
光线跟踪算法技术
(2011)
> URL="https://book.douban.com/subject/6028258/"] - advancedgi2 [label=<
Advanced
Global Illumination
2nd Ed (2006)
> URL="https://www.amazon.com/dp/1568813074/"] - productionvolumerendering [label=<
Production Volume
Rendering (2012)
> URL="https://www.amazon.com/dp/156881724X/"] - - texturingmodeling3 [label=<
Texturing and Modeling
(2002)
> URL="https://www.amazon.com/dp/1558608486/"] - lod [label=<
Level of Detail
for 3D Graphics (2002)
> URL="https://www.amazon.com/dp/0123991811/"] - "3denginedesignvirtualglobes" [label=<
3D Engine Design
for Virtual Globes (2011)
> URL="https://www.amazon.com/dp/1568817118/"] - polygonmeshprocessing [label=<
Polygon Mesh
Processing (2010)
> URL="https://www.amazon.com/dp/1568814267/"] - isosurfaces [label=<
Isosurfaces (2013)
> URL="https://www.amazon.com/dp/1466570970/"] - npr [label=<
Non-Photorealistic
Rendering (2001)
> URL="https://www.amazon.com/dp/1568811330/"] - npcg [label=<
Non-Photorealistic
Computer Graphics
(2002)
> URL="https://www.amazon.com/dp/1558607870/"] - - graphicsgems [label=<
Graphics Gems (1990)
> URL="https://www.amazon.com/dp/0122861655/"] - graphicsgems2 [label=<
Graphics Gems II (1991)
> URL="https://www.amazon.com/dp/0120644819/"] - graphicsgems3 [label=<
Graphics Gems III (1994)
> URL="https://www.amazon.com/dp/0124096735/"] - graphicsgems4 [label=<
Graphics Gems IV (1994)
> URL="https://www.amazon.com/dp/0123361559/"] - graphicsgems5 [label=<
Graphics Gems V (1995)
> URL="https://www.amazon.com/dp/0125434553/"] - - blinn1 [label=<
Jim Blinn's Corner:
A Trip Down
the Graphics Pipeline (1997)
> URL="https://www.amazon.com/dp/1558603875/"] - blinn2 [label=<
Jim Blinn's Corner:
Dirty Pixels (1998)
> URL="https://www.amazon.com/dp/1558604553/"] - blinn3 [label=<
Jim Blinn's Corner:
Notation, Notation,
Notation (2002)
> URL="https://www.amazon.com/dp/B01FGPKA62/"] - - glassenernotebook1 [label=<
Andrew Glassner's
Notebook (1999)
> URL="https://www.amazon.com/dp/1558605983/"] - glassenernotebook2 [label=<
Andrew Glassner's
Other Notebook (2002)
> URL="https://www.amazon.com/dp/1568811713/"] - - magiccg [label=<
The Magic of
Computer Graphics (2011)
> URL="https://www.amazon.com/dp/1568815778/"] - - cgbegin -> "3dgpdx12" - cgbegin -> { rt3drendering; oglguide9 } - - { "3dgpdx12"; rt3drendering; oglguide9 } -> cgtheory - - cgtheory -> fundamentalscg4 [arrowhead=normal, style=solid] - cgtheory-> { cgpp3; pdis; digitalimageprocessing3 } - - { fundamentalscg4; cgpp3; pdis; digitalimageprocessing3} -> cgadvanced - - cgadvanced -> { realtimerendering; offlinerendering; cgtech;} - - realtimerendering -> rtr3 [arrowhead=normal, style=solid] - realtimerendering -> tricks3dgpgurus - rtr3 -> graphicsprogrammingmethods -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7 - { rank=same;rtr3; rtvolumegraphics } - rtr3 -> { realtimeshadows; rtvolumegraphics } - realtimeshadows -> graphicsprogrammingmethods [style=invis] - tricks3dgpgurus -> realtimeshadows [style=invis] - - rtr3 -> { d3d; ogl } - d3d -> practiald3d11 - ogl -> oglsuper7 -> { graphicsshaders2; glsl3 } -> ogles3guide2 -> oglinsights -> vulkanguide - - offlinerendering -> pbrt3 [arrowhead=normal, style=solid] - offlinerendering -> raytracingfromgroundup - raytracingfromgroundup -> pbrt3 -> advancedgi2 -> productionvolumerendering - - productionvolumerendering -> cgtech [style=invis] - - cgtech -> { cgmisc; texturingmodeling3; lod; npr; } - lod -> "3denginedesignvirtualglobes" - texturingmodeling3 -> polygonmeshprocessing -> isosurfaces - npr -> npcg - - polygonmeshprocessing -> npr [style=invis] - - { - rank=same; glassenernotebook2; magiccg - } - cgmisc -> graphicsgems -> graphicsgems2 -> graphicsgems3 -> graphicsgems4 -> graphicsgems5 - cgmisc -> blinn1 -> blinn2 -> glassenernotebook1 -> blinn3 -> glassenernotebook2 -> magiccg - - vulkanguide -> cgmisc [style=invis] - - cgtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - cgbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - cgtop -> cgbegin [style=invis] - glassenernotebook2 -> cgbottom [style=invis] - } - - subgraph cluster_audio { - fillcolor="#eceef9" - label=<
8. 游戏音效
> - - { - node [shape="box", style="rounded,filled", color="#c5cbed"] - audiobegin [label="游戏音频编程"] - } - - gameaudioprogramming [label=<
Game Audio
Programming (2016)
> URL="https://www.amazon.com/dp/149874673X/"] - gettingstartedcppaudio [label=<
Getting Started
with C++ Audio Programming
for Game Development (2013)
> URL="https://www.amazon.com/dp/1849699097/"] - - audiobegin -> { gameaudioprogramming; gettingstartedcppaudio } - - audiotop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - audiobottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - audiotop -> audiobegin [style=invis] - { gameaudioprogramming; gettingstartedcppaudio } -> audiobottom [style=invis] - } - - subgraph cluster_physics { - fillcolor="#f2ecf9" - label=<
9. 游戏物理和动画
> - - { - node [shape="box", style="rounded,filled",color="#d7c5ed"] - animbegin [label="游戏动画初阶"] - animadvanced [label="游戏动画进阶"] - phybegin [label="游戏物理初阶"] - phyadvanced [label="游戏物理进阶"] - fluid [label="流体动画/模拟"] - } - - natureofcode [label=<
代码本色:用编程模拟自然系统
(2014)
> URL="https://book.douban.com/subject/26264736/"] - characteranimation [label=<
Character Animation
with Direct3D (2011)
> URL="https://www.amazon.com/dp/1584505702/"] - rt3dcharacteranimation [label=<
Real-time 3D
Character Animation
with Visual C++ (2001)
> URL="https://www.amazon.com/dp/0240516648/"] - computeranimation3 [label=<
Computer Animation
3rd Ed (2012)
> URL="https://www.amazon.com/dp/0124158420/"] - gameik [label=<
Game Inverse
Kinematics (2013)
> URL="https://www.amazon.com/dp/1484922328/"] - physicsbasedanimation [label=<
Physics Based
Animation (2005)
> URL="https://www.amazon.com/dp/1584503807/"] - rtcameras [label=<
Real-Time Cameras
(2009)
> URL="https://www.amazon.com/dp/0123116341/"] - - physicsforgameprogrammers [label=<
Physics for Game
Programmers (2003)
> URL="https://www.amazon.com/dp/159059472X/"] - physicsforgamedevelopers2 [label=<
游戏开发物理学 第2版
(2015)
> URL="https://book.douban.com/subject/26394564/"] - physicsmodeling [label=<
Physics Modeling
for Game Programmers (2004)
> URL="https://www.amazon.com/dp/1592000932/"] - - gamephysicsenginedev2 [label=<
游戏物理引擎开发
(2013)
> URL="https://book.douban.com/subject/25821830/"] - gamephysics2 [label=<
Game Physics 2nd Ed (2010)
> URL="https://www.amazon.com/dp/0123749034/"] - collisiondetection3denv [label=<
Collision Detection
in Interactive 3D
Environments (2003)
> URL="https://www.amazon.com/dp/155860801X/"] - rtcollisiondetection [label=<
实时碰撞检测算法技术
(2010)
> URL="https://book.douban.com/subject/4861957/"] - gamephysicspearls [label=<
Game Physics Pearls
(2010)
> URL="https://www.amazon.com/dp/1568814747/"] - - taofluidanimation [label=<
The Art of
Fluid Animation (2015)
> URL="https://www.amazon.com/dp/1498700209/"] - fluidsimulationforcg2 [label=<
Fluid Simulation
for Computer Graphics
2nd Ed (2015)
> URL="https://www.amazon.com/dp/1482232839/"] - - animbegin -> { characteranimation; rt3dcharacteranimation } -> computeranimation3 -> animadvanced - animadvanced -> { gameik; physicsbasedanimation; rtcameras} - gameik -> rtcameras [style=invis] - - phybegin -> physicsforgameprogrammers - phybegin -> physicsforgamedevelopers2 - physicsforgameprogrammers -> physicsforgamedevelopers2 -> phyadvanced - physicsforgameprogrammers -> physicsmodeling -> phyadvanced - - { animbegin; phybegin } -> natureofcode - - phyadvanced -> gamephysicspearls - gamephysicspearls -> collisiondetection3denv -> rtcollisiondetection - gamephysicspearls -> gamephysicsenginedev2 -> gamephysics2 - - { animadvanced; phyadvanced } -> fluid -> taofluidanimation -> fluidsimulationforcg2 - - phytop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - phybottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - phytop -> { animbegin; phybegin } [style=invis] - fluidsimulationforcg2 -> phybottom [style=invis] - } - - subgraph cluster_ai { - fillcolor="#f9ecf9" - label=<
10. 游戏人工智能(AI)
> - - { - node [shape="box", style="rounded,filled" color="#edc5ed"] - aibegin [label="游戏AI初阶"] - aiintermediate [label="中级游戏AI"] - aimisc [label="游戏AI文选"] - } - - aiforgames2 [label=<
Artificial Intelligence
for Games 2nd Ed (2009)
> URL="https://www.amazon.com/dp/0123747317/"] - aiforgd [label=<
游戏开发中的人工智能
(2006)
> URL="https://book.douban.com/subject/1899340/"] - proggameaibyexample [label=<
游戏人工智能编程
案例精粹
(2012)
> URL="https://book.douban.com/subject/19930152/"] - unityaigp2 [label=<
Unity人工智能游戏开发(第2版) 
(2016)
> URL="https://book.douban.com/subject/26911454/"] - - aima3 [label=<
人工智能
(2004)
> URL="https://book.douban.com/subject/1230487/"] - behavioralmathforgameai [label=<
Behavioral Mathematics
for Game AI (2009)
> URL="https://www.amazon.com/dp/1584506849/"] - - { - rank=same - aigpwisdom [label=<
AI Game Programming
Wisdom (2002)
> URL="https://www.amazon.com/dp//"] - aigpwisdom2 [label=<
AI Game Programming
Wisdom 2 (2003)
> URL="https://www.amazon.com/dp//"] - aigpwisdom3 [label=<
AI Game Programming
Wisdom 3 (2006)
> URL="https://www.amazon.com/dp//"] - aigpwisdom4 [label=<
AI Game Programming
Wisdom 4 (2008)
> URL="https://www.amazon.com/dp//"] - } - { - rank=same - gameaipro [label=<
Game AI Pro (2013)
> URL="https://www.amazon.com/dp//"] - gameaipro2 [label=<
Game AI Pro 2 (2015)
> URL="https://www.amazon.com/dp//"] - } - - aibegin -> aiforgames2 -> aiintermediate -> aima3 [arrowhead=normal, style=solid] - aibegin -> { aiforgd; proggameaibyexample; unityaigp2 } -> aiintermediate - aiintermediate -> behavioralmathforgameai -> aimisc - aima3 -> aimisc - aimisc -> aigpwisdom - aigpwisdom -> aigpwisdom2 -> aigpwisdom3 -> aigpwisdom4 - aigpwisdom4 -> gameaipro -> gameaipro2 - - aitop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - aibottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - aitop -> aibegin [style=invis] - gameaipro2 -> aibottom [style=invis] - } - - subgraph cluster_multiplayer { - fillcolor="#f9ebf2" - label=<
11. 多人游戏编程
> - - { - node [shape="box", style="rounded,filled" color="#edc5d7"] - multiplayerbegin [label="多人游戏编程初阶"] - multiplayermisc [label="多人游戏编程文选"] - serverprog [label="服务器编程"] - networkprotocol [label="网络协议"] - networkprog [label="网络编程"] - } - - multiplayergp [label=<
Multiplayer Game
Programming (2015)
> URL="https://www.amazon.com/dp/0134034309/"] - massivelymultiplayergd [label=<
大型多人在线游戏开发
(2006)
> URL="https://book.douban.com/subject/1940567/"] - massivelymultiplayergd2 [label=<
Massively Multiplayer
Game Development 2
(2005)
> URL="https://www.amazon.com/dp/1584503904/"] - - progposixthreads [label=<
POSIX多线程程序设计
(2003)
> URL="https://book.douban.com/subject/1236825/"] - advancedprogunixenv3 [label=<
UNIX环境高级编程(第3版)
(2014)
> URL="https://book.douban.com/subject/25900403/"] - linuxsystemprog2 [label=<
Linux 系统编程(第二版)
(2014)
> URL="https://book.douban.com/subject/25828773/"] - - tcpipillustratedv1_2 [label=<
TCP/IP详解
卷1:协议
(2016)
> URL="https://book.douban.com/subject/26825411/"] - tcpipillustratedv2 [label=<
TCP/IP详解
卷2:实现
(2004)
> URL="https://book.douban.com/subject/1087767/"] - tcpipillustratedv3 [label=<
TCP/IP详解
卷3:TCP事务协议、
HTTP、NNTP
和UNIX域协议
(2000)
> URL="https://book.douban.com/subject/1058634/"] - - unixnetworkprogv1_3 [label=<
UNIX网络编程
卷1:套接字联网API(第3版)
(2014)
> URL="https://book.douban.com/subject/26434583/"] - unixnetworkprogv2_2 [label=<
UNIX网络编程
卷2:进程间通信(第2版)
(2015)
> URL="https://book.douban.com/subject/26434599/"] - linuxnetworkinternals [label=<
深入理解
LINUX网络技术内幕
(2009)
> URL="https://book.douban.com/subject/4015134/"] - - multiplayerbegin -> multiplayergp [arrowhead=normal, style=solid] - multiplayergp -> serverprog - multiplayergp -> networkprotocol - multiplayergp -> networkprog - multiplayergp -> multiplayermisc - - serverprog -> progposixthreads -> advancedprogunixenv3 -> linuxsystemprog2 - networkprotocol -> tcpipillustratedv1_2 -> tcpipillustratedv2 -> tcpipillustratedv3 - networkprog -> unixnetworkprogv1_3 -> unixnetworkprogv2_2 -> linuxnetworkinternals - - multiplayermisc -> massivelymultiplayergd -> massivelymultiplayergd2 - - multiplayertop [fixedsize=true,width=8,height=0.01,style=invis,label=""] - multiplayerbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] - multiplayertop -> multiplayerbegin [style=invis] - { linuxsystemprog2; tcpipillustratedv3; linuxnetworkinternals } -> multiplayerbottom [style=invis] - } - - ccsa [fontcolor=white,fontsize=8,label=< - - -
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
> - URL = "https://creativecommons.org/licenses/by-sa/4.0/"] - - { - edge [style=invis] - tocbottom -> legendtop - legendbottom -> kidtop - kidbottom -> cstop - csbottom -> progtop - progbottom -> setop - sebottom -> mathtop - mathbottom -> gametop - gamebottom -> getop - gebottom -> cgtop - cgbottom -> audiotop - audiobottom -> phytop - phybottom -> aitop - aibottom -> multiplayertop - multiplayerbottom -> ccsa - } -} +digraph { + compound=true + fontname="Futura" + fontsize=20 + margin="0,0" + ranksep=0.25 + nodesep=0.15 + penwidth=0.5 + labeljust="left" + bgcolor="#666666" + + style="rounded,filled" + color="none" + fillcolor="" + node [fontname="Helvetica-Light", fontsize=10, shape=none, penwidth=0.5] + edge [fontname="Helvetica-Light", fontsize=10, arrowhead=vee, arrowsize=0.75] + + subgraph cluster_toc { + style=invis; + + edge [color="#cccccc"] + + { + node [fontcolor=white] + + toctop [fixedsize=true,width=8, height=3, shape=plaintext,label=< + + + +
游戏程序员的
学习之路
Milo Yip
2017/8/7
https://github.com/miloyip/game-programmer
+ > URL="https://github.com/miloyip/game-programmer"] + tocbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + } + + { + node [shape="box", style="rounded,filled", fixedsize=true, width=3, height=0.5, fontname="Futura", fontsize=10] + + kid [color="#edc5ce", label=< 0. 编程学前班>] + cs [color="#edc5c5", label=" 1. 计算机科学"] + proglang [color="#eddac5", label=" 2. 编程语言"] + softwaredev [color="#ebebc6", label=" 3. 软件开发"] + math [color="#d9ebc6", label=< 4. 游戏程序员的数学课>] + gameprog [color="#c5edc5", label=" 5. 游戏编程"] + gameengine [color="#c5ede1", label=< 6. 游戏引擎开发>] + cg [color="#c5e1ed", label=" 7. 计算机图形学(CG)"] + audio [color="#c5cbed", label=" 8. 游戏音效"] + phyanim [color="#d7c5ed", label=< 9. 游戏物理和动画>] + ai [color="#edc5ed", label=< 10. 游戏人工智能(AI)>] + multiplayer [color="#edc5d7", label=< 11. 多人游戏编程>] + } + kid -> cs -> proglang -> softwaredev -> math -> gameprog -> gameengine + gameengine -> cg -> audio -> phyanim -> ai -> multiplayer[style=invis] + gameengine -> { cg; phyanim; ai; audio; multiplayer} [tailport=e, headport=e, constraint=false] + + toctop -> kid [style=invis] + multiplayer -> tocbottom [style=invis] + } + + edge [style=dotted] + + subgraph cluster_legend { + fillcolor="#dddddd" + label=<
Legends
> + node [shape=none, fixedsize=true, width=2, height=0.25] + + legendA1 [label="推荐路线"] + legendB1 [label="可选路线"] + legendA2 [label="", height=0.01] + legendB2 [label="", height=0.01] + legendA1 -> legendA2 [minlen=2,arrowhead=normal, style=solid] + legendB1 -> legendB2 [minlen=2] + + legendtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + legendbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + legendtop -> { legendA1; legendB1 } [style=invis] + { legendA2; legendB2 } -> legendbottom [style=invis] + } + + subgraph cluster_kid { + fillcolor="#f9ecef" + label=<
0. 编程学前班
> + + { + node [shape="box", style="rounded,filled" color="#edc5ce"] + { + rank=same + age5 [label="从5岁开始"] + age8 [label="从8岁开始"] + } + kidintermediate [label="中级孩童游戏编程"] + } + + scratchjr [label=<
动手玩转ScratchJr编程 (2016)
> URL="https://book.douban.com/subject/26906848/"] + + codinggamesinscratch [label=<
Coding Games
in Scratch
(2015)
> URL="https://www.amazon.com/dp/1465439358/"] + superscratchprogadv [label=<
Scratch超人漫游记 (2017)
> URL="https://book.douban.com/subject/27072003/"] + learntoprogramwithscratch [label=<
动手玩转Scratch2.0编程 (2015)
> URL="https://book.douban.com/subject/26658602/"] + helpyoukidswithcomputercoding [label=<
Help Your Kids
with Computer Coding
(2015)
> URL="https://www.amazon.com/dp/146541956X/"] + + inventgamepython4 [label=<
Invent Your Own
Computer Games with
Python 4th Ed (2016)
> URL="https://www.amazon.com/dp/1593277954/"] + makinggamespython [label=<
Making Games with
Python & Pygame (2012)
> URL="https://www.amazon.com/dp/1469901730/"] + learntoprogramwithminecraft [label=<
Learn to Program
with Minecraft (2015)
> URL="https://www.amazon.com/dp/1593276702/"] + adventuresinminecraft [label=<
零基础学Minecraft编程
(2015)
> URL="https://book.douban.com/subject/26613247/"] + "3dgpforkids" [label=<
3D Game Programming
for Kids (2013)
> URL="https://www.amazon.com/dp/1937785440/"] + + age5 -> scratchjr -> age8 + age8 -> codinggamesinscratch -> helpyoukidswithcomputercoding -> kidintermediate [arrowhead=normal, style=solid] + age8 -> superscratchprogadv -> learntoprogramwithscratch -> kidintermediate + + kidintermediate -> inventgamepython4 -> makinggamespython + kidintermediate -> learntoprogramwithminecraft -> adventuresinminecraft + kidintermediate -> "3dgpforkids" + + kidtop [fixedsize=true,width=8,height=0.01,style=invis, label=""] + kidbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + kidtop -> {age5; age8} [style=invis] + adventuresinminecraft -> kidbottom [style=invis] + } + + subgraph cluster_cs { + fillcolor="#f9ecec" + label=<
1. 计算机科学
> + + { + node [shape="box", style="rounded,filled" color="#edc5c5"] + rank=same + foundation [label="计算机基础"] + algorithm [label="算法"] + csmath [label="计算机数学"] + } + + sicp2 [label=<
计算机程序的构造和解释
(2004)
> URL="https://book.douban.com/subject/1148282/"] + csapp3 [label=<
深入理解计算机系统
(原书第3版)
(2016)
> URL="https://book.douban.com/subject/26912767/"] + caaqa5 [label=<
计算机体系结构
(2012)
> URL="https://book.douban.com/subject/20452387/"] + mos4 [label=<
现代操作系统(第3版)
(2009)
> URL="https://book.douban.com/subject/3852290/"] + + clrs3 [label=<
算法导论(原书第3版)
(2012)
> URL="https://book.douban.com/subject/20432061/"] + algorithms4 [label=<
算法(第4版)
(2012)
> URL="https://book.douban.com/subject/19952400/"] + + concretemaths2 [label=<
具体数学
(2013)
> URL="https://book.douban.com/subject/21323941/"] + computationalscieng [label=<
Computational Science
and Engineering (2007)
> URL="https://www.amazon.com/dp/0961408812/"] + + foundation -> { sicp2; csapp3 } -> { caaqa5; mos4 } [arrowhead=normal, style=solid] + algorithm -> clrs3 [arrowhead=normal, style=solid] + algorithm -> algorithms4 -> clrs3 + csmath -> concretemaths2 -> computationalscieng + + cstop [fixedsize=true,width=8,height=0.01,style=invis, label=""] + csbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + cstop -> { foundation; csmath; algorithm } [style=invis] + caaqa5 -> csbottom [style=invis] + } + + subgraph cluster_proglang { + fillcolor="#f9f3ec" + label=<
2. 编程语言
> + + { + node [shape="box", style="rounded,filled" color="#eddac5"] + + { + rank=same + cbegin [label="C"] + lua [label="Lua"] + csharp [label="C#"] + } + + cppbegin [label="C++ 新手"] + cpppractice [label="C++ 实践"] + cpplibrary [label="C++ 标准库"] + cppadvance [label="C++ 进阶"] + } + + tcpl2 [label=<
C程序设计语言
(2004)
> URL="https://book.douban.com/subject/1139336/"] + + cppprimer5 [label=<
C++ Primer 中文版
(第 5 版)
(2013)
> URL="https://book.douban.com/subject/25708312/"] + tcpppl4 [label=<
C++ 程序设计语言(原书第 4 版)
(2016)
> URL="https://book.douban.com/subject/26857943/"] + cppstandardlibrary2 [label=<
C++标准库(第2版)
(2015)
> URL="https://book.douban.com/subject/26419721/"] + boostcpplibraries2 [label=<
The Boost C++
Libraries 2nd Ed (2014)
> URL="https://www.amazon.com/dp/1937434362/"] + cppconcurrencyinaction [label=<
C++并发编程实战
(2015)
> URL="https://book.douban.com/subject/26386925/"] + + effectivestl [label=<
Effective STL中文版
(2013)
> URL="https://book.douban.com/subject/24534868/"] + + exceptionalcpp [label=<
Exceptional C++(中文版)
(2012)
> URL="https://book.douban.com/subject/10785602/"] + moreexceptionalcpp [label=<
More Exceptional C++
中文版
(2002)
> URL="https://book.douban.com/subject/1244943/"] + exceptionalcppstyle [label=<
Exceptional C++ Style
中文版
(2006)
> URL="https://book.douban.com/subject/1470842/"] + cppcodingstandard [label=<
C++编程规范
(2010)
> URL="https://book.douban.com/subject/5348095/"] + + effectivecpp3 [label=<
Effective C++
(2006)
> URL="https://book.douban.com/subject/1842426/"] + moreeffectivecpp3 [label=<
More Effective C++
(中文版)
(2011)
> URL="https://book.douban.com/subject/5908727/"] + effectivemoderncpp [label=<
Effective Modern
C++ (2014)
> URL="https://www.amazon.com/dp/1491903996/"] + optimizedcpp [label=<
Optimized C++
(2016)
> URL="https://www.amazon.com/dp/1491922060/"] + + insidecppobjectmodel [label=<
深度探索C++对象模型
(2012)
> URL="https://book.douban.com/subject/10427315/"] + imperfectcpp [label=<
Imperfect C++中文版
(2006)
> URL="https://book.douban.com/subject/1470838/"] + cpptemplates [label=<
C++ Templates中文版
(2013)
> URL="https://book.douban.com/subject/23780707/"] + elementsofprogramming [label=<
编程原本
(2012)
> URL="https://book.douban.com/subject/7564093/"] + frommathtogeneric [label=<
From Mathematics
to Generic Programming
(2014)
> URL="https://www.amazon.com/dp/0321942043/"] + moderncppdesign [label=<
C++设计新思维
(2003)
> URL="https://book.douban.com/subject/1103566/"] + + programminginlua4 [label=<
LUA程序设计(第2版)
(2008)
> URL="https://book.douban.com/subject/3076942/"] + luaprogramminggems [label=<
Lua Programming
Gems (2008)
> URL="https://www.amazon.com/dp/8590379841/"] + + mvcsharpstepbystep8 [label=<
Visual C#从入门到精通(第8版) 
(2016)
> URL="https://book.douban.com/subject/26937762/"] + csharpindepth3 [label=<
深入理解C#(第3版)
(2014)
> URL="https://book.douban.com/subject/25843328/"] + clrviacsharp4 [label=<
CLR via C#(第4版)
(2015)
> URL="https://book.douban.com/subject/26285940/"] + + cbegin -> tcpl2 -> cppbegin [arrowhead=normal, style=solid] + + cppbegin -> cppprimer5 -> cpppractice [arrowhead=normal, style=solid] + + cppbegin -> tcpppl4 + cppprimer5 -> cpplibrary [arrowhead=normal, style=solid] + tcpppl4 -> cpplibrary + + cpplibrary -> cppstandardlibrary2 [arrowhead=normal, style=solid] + cppstandardlibrary2 -> effectivestl + cppstandardlibrary2 -> cppconcurrencyinaction -> boostcpplibraries2 + + cpppractice -> effectivecpp3 -> effectivemoderncpp -> cppcodingstandard [arrowhead=normal, style=solid] + effectivecpp3 -> moreeffectivecpp3 -> effectivemoderncpp + effectivemoderncpp -> optimizedcpp -> cppadvance + cpppractice -> exceptionalcpp -> moreexceptionalcpp -> exceptionalcppstyle -> cppcodingstandard -> cppadvance + cppadvance -> elementsofprogramming -> frommathtogeneric + cppadvance -> { insidecppobjectmodel; cpptemplates } + insidecppobjectmodel -> imperfectcpp + cpptemplates -> moderncppdesign + + lua -> programminginlua4 -> luaprogramminggems + + csharp -> mvcsharpstepbystep8 -> csharpindepth3 -> clrviacsharp4 + + progtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + progbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + progtop -> { cbegin; csharp; lua } [style=invis] + moderncppdesign -> progbottom [style=invis] + } + + subgraph cluster_se { + fillcolor="#f8f8ec" + label=<
3. 软件开发
> + + { + node [shape="box", style="rounded,filled", color="#ebebc6"] + sebegin [label="软件开发新手"] + sepractice [label="实践"] + dp [label="设计模式"] + uml [label="UML"] + } + + mythicalmanmonth2 [label=<
人月神话
(2007)
> URL="https://book.douban.com/subject/2230248/"] + + codecomplete2 [label=<
代码大全
(2007)
> URL="https://book.douban.com/subject/2208626/"] + apidesignforcpp [label=<
C++ API设计
(2013)
> URL="https://book.douban.com/subject/24869855/"] + + agilesoftwaredev [label=<
敏捷软件开发
(2008)
> URL="https://book.douban.com/subject/2347790/"] + designpatterns [label=<
设计模式
(2007)
> URL="https://book.douban.com/subject/2111801/"] + headfirstdesignpatterns [label=<
Head First 设计模式(中文版)
(2007)
> URL="https://book.douban.com/subject/2243615/"] + practiceofprogramming [label=<
程序设计实践
(2011)
> URL="https://book.douban.com/subject/6524000/"] + cleancode [label=<
编码整洁之道
(2012)
> URL="https://book.douban.com/subject/11602008/"] + refactoring [label=<
重构
(2010)
> URL="https://book.douban.com/subject/4262627/"] + workingeffectivelylegacycode [label=<
修改代码的艺术
(2014)
> URL="https://book.douban.com/subject/25904007/"] + + umldistilled3 [label=<
UML精粹
(2012)
> URL="https://book.douban.com/subject/10798193/"] + umluserguide2 [label=<
UML用户指南
(2006)
> URL="https://book.douban.com/subject/1837454/"] + ooadwa3 [label=<
面向对象分析与设计
(2012)
> URL="https://book.douban.com/subject/11509672/"] + + sebegin -> mythicalmanmonth2 -> { sepractice; dp } [arrowhead=normal, style=solid] + mythicalmanmonth2 -> uml + + sepractice -> practiceofprogramming -> refactoring -> codecomplete2 -> { cleancode; workingeffectivelylegacycode } [arrowhead=normal, style=solid] + codecomplete2 -> apidesignforcpp + + dp -> agilesoftwaredev -> designpatterns [arrowhead=normal, style=solid] + dp -> headfirstdesignpatterns -> agilesoftwaredev + + uml -> umldistilled3 -> umluserguide2 -> ooadwa3 + + setop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + sebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + setop -> sebegin [style=invis] + workingeffectivelylegacycode -> sebottom [style=invis] + } + + subgraph cluster_math { + fillcolor="#f2f8ec" + label=<
4. 游戏程序员的数学课
> + + { + node [shape="box", style="rounded,filled", color="#d9ebc6"] + mathbegin [label="游戏编程数学初阶"] + mathadvanced [label="游戏编程数学进阶"] + } + + foundationsgedmath [label=<
Foundations of Game
Engine Development,
Vol 1: Mathematics
(2016)
> URL="https://www.amazon.com/dp/0985811749/"] + math3dcpcg3 [label=<
3D游戏与计算机图形学
中的数学方法(第3版)
(2016)
> URL="https://book.douban.com/subject/26864861/"] + "3dmathprimer2" [label=<
3D Math Primer for
Graphics and Game
Development 2nd Ed (2011)
> URL="https://www.amazon.com/dp/1568817231/"] + essentialmaths3 [label=<
Essential Mathematics
for Games and
Interactive Applications
3rd Ed (2011)
> URL="https://www.amazon.com/dp/1482250926/"] + + geometricalgebra [label=<
Geometric Algebra for
Computer Science (2007)
> URL="https://www.amazon.com/dp/0123749425/"] + geometrictools [label=<
计算机图形学
几何工具算法详解
(2005)
> URL="https://book.douban.com/subject/1224798/"] + computationalgeometry [label=<
计算几何
(2009)
> URL="https://book.douban.com/subject/3893574/"] + visualizingquaternions [label=<
Visualizing Quaternions
(2006)
> URL="https://www.amazon.com/dp/0120884003/"] + divgradcurl4 [label=<
散度、旋度、梯度释义
(2015)
> URL="https://book.douban.com/subject/26688502/"] + + mathbegin -> foundationsgedmath + mathbegin -> math3dcpcg3 -> mathadvanced [arrowhead=normal, style=solid] + mathbegin -> "3dmathprimer2" + mathbegin -> essentialmaths3 + + { foundationsgedmath; "3dmathprimer2"; essentialmaths3 } -> mathadvanced + + mathadvanced -> geometrictools -> computationalgeometry [arrowhead=normal, style=solid] + mathadvanced -> geometricalgebra + mathadvanced -> visualizingquaternions + mathadvanced -> divgradcurl4 + + mathtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + mathbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + mathtop -> mathbegin [style=invis] + computationalgeometry -> mathbottom [style=invis] + } + + subgraph cluster_gameprog { + fillcolor="#ecf9ec" + label=<
5. 游戏编程
> + + { + node [shape="box", style="rounded,filled", color="#c5edc5"] + gpbegin [label="开始游戏编程"] + scratch [label="使用Windows/DirectX"] + unity [label="使用Unity"] + unreal [label="使用Unreal"] + cocos2dx [label="使用Cocos2d-X"] + gpintermediate [label="中级游戏编程"] + gpmisc [label="游戏编程文选"] + } + + windowsgp2 [label=<
Windows游戏编程大师技巧
(2012)
> URL="https://book.douban.com/subject/20282993/"] + gamecodingcomplete4 [label=<
游戏编程权威指南
(2016)
> URL="https://book.douban.com/subject/26787109/"] + + introtogdprodev [label=<
Introduction to Game
Design, Prototyping,
and Development (2014)
> URL="https://www.amazon.com/dp/0321933168/"] + unityinaction [label=<
Unity5实战
(2016)
> URL="https://book.douban.com/subject/26877872/"] + + learninguegd [label=<
Learning Unreal Engine
Game Development
(2015)
> URL="https://www.amazon.com/dp/1784398152/"] + blueprintsvisualscripting [label=<
Blueprints Visual Scripting
for Unreal Engine (2015)
> URL="https://www.amazon.com/dp/1785286013/"] + + cocos2dxbyexample2 [label=<
Cocos2d-X
by Example (2015)
> URL="https://www.amazon.com/dp/1785288857/"] + + gpalgorithmstechniques [label=<
游戏编程算法与技巧
(2016)
> URL="https://book.douban.com/subject/26906838/"] + gameprogrammingpatterns [label=<
游戏编程模式
(2016)
> URL="https://book.douban.com/subject/26880704/"] + gpgoldenrules [label=<
Game Programming
Golden Rules (2004)
> URL="https://www.amazon.com/dp/1584503068/"] + crossplatformgp [label=<
Cross-Platform Game
Programming (2005)
> URL="https://www.amazon.com/dp/1584503793/"] + androidndkgdcookbook [label=<
Android NDK Game
Development Cookbook
(2013)
> URL="https://www.amazon.com/dp/1782167781/"] + buildingfpsgameunity [label=<
Building an FPS
Game with Unity (2015)
> URL="https://www.amazon.com/dp/178217480X/"] + unityvrprojects [label=<
Unity Virtual
Reality Projects (2015)
> URL="https://www.amazon.com/dp/178398855X/"] + agumentedreality [label=<
Augmented Reality
(2016)
> URL="https://www.amazon.com/dp/0321883578/"] + practicalaugmentedreality [label=<
Practical Augmented
Reality (2016)
> URL="https://www.amazon.com/dp/0134094239/"] + + { + rank=same + gpgemsbest [label=<
Best of Game
Programming
Gems (2008)
> URL="https://www.amazon.com/dp/1584505710/"] + beginninggp [label=<
Beginning Game
Programming (2009)
> URL="https://www.amazon.com/dp/159863805X/"] + advancedgp [label=<
Advanced Game
Programming (2009)
> URL="https://www.amazon.com/dp/1598638068/"] + } + + { + rank=same + gpgems [label=<
游戏编程精粹 1
(2004)
> URL="https://book.douban.com/subject/1231195/"] + gpgems2 [label=<
游戏编程精粹2
(2003)
> URL="https://book.douban.com/subject/1146281/"] + gpgems3 [label=<
游戏编程精粹3
(2003)
> URL="https://book.douban.com/subject/1125738/"] + gpgems4 [label=<
游戏编程精粹4
(2005)
> URL="https://book.douban.com/subject/1435923/"] + } + { + rank=same + gpgems5 [label=<
游戏编程精粹5
(2007)
> URL="https://book.douban.com/subject/2248414/"] + gpgems6 [label=<
游戏编程精粹6
(2007)
> URL="https://book.douban.com/subject/2305250/"] + gpgems7 [label=<
游戏编程精粹7
(2010)
> URL="https://book.douban.com/subject/4903976/"] + gpgems8 [label=<
Game Programming
Gems (2010)
> URL="https://www.amazon.com/dp/1584507020/"] + } + + gpbegin -> { scratch; unity; unreal; cocos2dx } + scratch -> gamecodingcomplete4 [arrowhead=normal, style=solid, tailport=se] + gamecodingcomplete4 -> gpintermediate [arrowhead=normal, style=solid] + scratch -> windowsgp2 + + windowsgp2 -> gamecodingcomplete4[style=invis] + + unity -> introtogdprodev -> unityinaction -> gpintermediate + + unreal -> learninguegd -> blueprintsvisualscripting -> gpintermediate + + cocos2dx -> cocos2dxbyexample2 -> gpintermediate + + gpintermediate -> gpalgorithmstechniques -> gameprogrammingpatterns [arrowhead=normal, style=solid] + gameprogrammingpatterns -> gpgoldenrules -> gpmisc + gpintermediate -> crossplatformgp -> androidndkgdcookbook + gpintermediate -> buildingfpsgameunity -> unityvrprojects + gpintermediate -> agumentedreality -> practicalaugmentedreality + + { + rank=same; gpgoldenrules; gpmisc + } + gpmisc -> gpgemsbest + gpgemsbest -> gpgems + gpmisc -> beginninggp -> advancedgp + gpgems -> gpgems2 -> gpgems3 -> gpgems4 + gpgems4 -> gpgems5 + gpgems5 -> gpgems6 -> gpgems7 -> gpgems8 + + gametop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + gamebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + gametop -> { gpbegin; unity } [style=invis] + gpgems7 -> gamebottom [style=invis] + } + + subgraph cluster_engine { + fillcolor="#ecf9f5" + label=<
6. 游戏引擎开发
> + + { + node [shape="box", style="rounded,filled", color="#c5ede1"] + gebegin [label="游戏引擎开发新手"] + gearticles [label="游戏引擎文选"] + gescript [label="脚本引擎"] + geoptimization [label="优化"] + getool [label="工具开发"] + } + + { + rank=same + gameenginearchitecture2 [label=<
游戏引擎架构
(2014)
> URL="https://book.douban.com/subject/25815142/"] + "3dgameenginearchitecture" [label=<
3D Game Engine
Architecture
(2004)
> URL="https://www.amazon.com/dp/012229064X/"] + gameenginedesign2 [label=<
3D Game Engine
Design
2nd Ed (2006)
> URL="https://www.amazon.com/dp/0122290631/"] + } + + gameenginegems1 [label=<
Game Engine
Gems 1 (2010)
> URL="https://www.amazon.com/dp/0763778885/"] + gameenginegems2 [label=<
Game Engine
Gems 2 (2011)
> URL="https://www.amazon.com/dp/1568814372/"] + gameenginegems3 [label=<
Game Engine
Gems 3 (2016)
> URL="https://www.amazon.com/dp/1498755658/"] + + gamescriptingmastery [label=<
游戏脚本高级编程
(2006)
> URL="https://book.douban.com/subject/1927405/"] + languageimplpatterns [label=<
编程语言实现模式
(2012)
> URL="https://book.douban.com/subject/10482195/"] + garbagecollectionhandbook [label=<
垃圾回收算法手册:
自动内存管理的艺术
(2016)
> URL="https://book.douban.com/subject/26740958/"] + + unity5gameoptimization [label=<
Unity 5 Game
Optimization (2015)
> URL="https://www.amazon.com/dp/1785884581/"] + videogameoptimization [label=<
Video Game
Optimization (2010)
> URL="https://www.amazon.com/dp/1598634356/"] + hackersdelight2 [label=<
算法心得:高效算法的奥秘(原书第2版)
(2014)
> URL="https://book.douban.com/subject/25837031/"] + modernx86assembly [label=<
Modern X86
Assembly Language
Programming (2014)
> URL="https://www.amazon.com/dp/1484200659/"] + gpgpu [label=<
GPGPU Programming
for Games and Science
(2014)
> URL="https://www.amazon.com/dp/1466595353/"] + vectorgamemathprocessors [label=<
Vector Games
Math Processors
(2002)
> URL="https://www.amazon.com/dp/1556229216/"] + + gamedevtools [label=<
Game Development
Tools (2011)
> URL="https://www.amazon.com/dp/1568814321/"] + designinguxgamedevtools [label=<
Designing the User
Experience of Game
Development Tools (2015)
> URL="https://www.amazon.com/dp/148224019X/"] + + gebegin -> gameenginearchitecture2 [arrowhead=normal, style=solid] + gameenginearchitecture2 -> { gearticles; gescript; geoptimization; getool } + + gameenginearchitecture2 -> "3dgameenginearchitecture" -> gameenginedesign2 + gearticles -> gameenginegems1 -> gameenginegems2 -> gameenginegems3 + gescript -> gamescriptingmastery -> languageimplpatterns -> garbagecollectionhandbook + geoptimization -> videogameoptimization -> unity5gameoptimization -> hackersdelight2 -> { modernx86assembly; gpgpu; vectorgamemathprocessors} + getool -> gamedevtools -> designinguxgamedevtools + + getop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + gebottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + getop -> gebegin [style=invis] + gpgpu -> gebottom [style=invis] + } + + subgraph cluster_cg { + fillcolor="#ecf5f9" + label=<
7. 计算机图形学(CG)
> + + { + node [shape="box", style="rounded,filled", color="#c5e1ed"] + cgbegin [label="游戏图形学初级"] + cgtheory [label="图形学理论初级"] + cgadvanced [label="图形学进阶"] + realtimerendering [label="实时渲染"] + offlinerendering [label="离线渲染"] + d3d [label="Direct3D"] + ogl [label="OpenGL"] + cgtech [label="图形学技术"] + cgmisc [label="图形学文选"] + } + + rt3drendering [label=<
Real-Time 3D
Rendering with DirectX
and HLSL (2014)
> URL="https://www.amazon.com/dp/0321962729/"] + "3dgpdx12" [label=<
DirectX 9.0 3D游戏开发编程基础
(2007)
> URL="https://book.douban.com/subject/2111771/"] + oglguide9 [label=<
OpenGL编程指南(原书第8版)
(2014)
> URL="https://book.douban.com/subject/26220248/"] + + fundamentalscg4 [label=<
计算机图形学
(2007)
> URL="https://book.douban.com/subject/2116178/"] + cgpp3 [label=<
计算机图形学原理及实践:
C语言描述(原书第2版)
(2004)
> URL="https://book.douban.com/subject/1230412/"] + pdis [label=<
Principles of Digital
Image Synthesis
(PODIS) (1995)
> URL="https://www.amazon.com/dp/1558602763/"] + digitalimageprocessing3 [label=<
数字图像处理
(2010)
> URL="https://book.douban.com/subject/4285832/"] + + graphicsshaders2 [label=<
图形着色器
(2013)
> URL="https://book.douban.com/subject/23858154/"] + glsl3 [label=<
OpenGL着色语言
(2006)
> URL="https://book.douban.com/subject/1911849/"] + oglsuper7 [label=<
OpenGL Super Bible
7th Ed (2015)
> URL="https://www.amazon.com/dp/0672337479/"] + ogles3guide2 [label=<
OpenGL ES 3.0编程指南
(2015)
> URL="https://book.douban.com/subject/26414014/"] + oglinsights [label=<
OpenGL Insights (2012)
> URL="https://www.amazon.com/dp/1439893764/"] + vulkanguide [label=<
Vulkan Programming
Guide (2016)
> URL="https://www.amazon.com/dp/0134464540/"] + + practiald3d11 [label=<
Practical Rendering
and Computation
with Direct3D 11 (2011)
> URL="https://www.amazon.com/dp/1568817207/"] + + rtr3 [label=<
实时计算机图形学
(2004)
> URL="https://book.douban.com/subject/1231141/"] + tricks3dgpgurus [label=<
3D游戏编程大师技巧
(2005)
> URL="https://book.douban.com/subject/1321769/"] + realtimeshadows [label=<
实时阴影技术
(2013)
> URL="https://book.douban.com/subject/25908680/"] + rtvolumegraphics [label=<
Real-Time Volume
Graphics (2006)
> URL="https://www.amazon.com/dp/1568812663/"] + graphicsprogrammingmethods [label=<
Graphics Programming
Methods (2003)
> URL="https://www.amazon.com/dp/1584502991/"] + + shaderx [label=<
ShaderX (1996)
> URL="https://www.amazon.com/dp/1556220413/"] + shaderx2 [label=<
ShaderX2 (2003)
> URL="https://www.amazon.com/dp/1556229887/"] + shaderx3 [label=<
ShaderX3 (2004)
> URL="https://www.amazon.com/dp/1584503572/"] + shaderx4 [label=<
ShaderX4 (2006)
> URL="https://www.amazon.com/dp/1584504250/"] + shaderx5 [label=<
ShaderX5 (2006)
> URL="https://www.amazon.com/dp/1584504994/"] + shaderx6 [label=<
ShaderX6 (2008)
> URL="https://www.amazon.com/dp/1584505443/"] + shaderx7 [label=<
ShaderX7 (2009)
> URL="https://www.amazon.com/dp/1584505982/"] + + gpugems [label=<
GPU精粹
(2006)
> URL="https://book.douban.com/subject/1480239/"] + gpugems2 [label=<
GPU精粹2
(2007)
> URL="https://book.douban.com/subject/2144796/"] + gpugems3 [label=<
GPU精粹3
(2010)
> URL="https://book.douban.com/subject/4851196/"] + + gpupro [label=<
GPU Pro (2010)
> URL="https://www.amazon.com/dp/1568814720/"] + gpupro2 [label=<
GPU Pro 2 (2011)
> URL="https://www.amazon.com/dp/1568817185/"] + gpupro3 [label=<
GPU Pro 3 (2012)
> URL="https://www.amazon.com/dp/1439887829/"] + gpupro4 [label=<
GPU Pro 4 (2013)
> URL="https://www.amazon.com/dp/1466567430/"] + gpupro5 [label=<
GPU Pro 5 (2014)
> URL="https://www.amazon.com/dp/1482208636/"] + gpupro6 [label=<
GPU Pro 6 (2015)
> URL="https://www.amazon.com/dp/1482264617/"] + gpupro7 [label=<
GPU Pro 7 (2016)
> URL="https://www.amazon.com/dp/149874253X/"] + + gpuzen [label=<
GPU Zen (2017)
> URL="https://www.amazon.com/dp/0998822892/"] + + pbrt3 [label=<
Physically Based
Rendering (PBRT)
3rd Ed (2016)
> URL="https://www.amazon.com/dp/0128006455/"] + raytracingfromgroundup [label=<
光线跟踪算法技术
(2011)
> URL="https://book.douban.com/subject/6028258/"] + advancedgi2 [label=<
Advanced
Global Illumination
2nd Ed (2006)
> URL="https://www.amazon.com/dp/1568813074/"] + productionvolumerendering [label=<
Production Volume
Rendering (2012)
> URL="https://www.amazon.com/dp/156881724X/"] + + texturingmodeling3 [label=<
Texturing and Modeling
(2002)
> URL="https://www.amazon.com/dp/1558608486/"] + lod [label=<
Level of Detail
for 3D Graphics (2002)
> URL="https://www.amazon.com/dp/0123991811/"] + "3denginedesignvirtualglobes" [label=<
3D Engine Design
for Virtual Globes (2011)
> URL="https://www.amazon.com/dp/1568817118/"] + polygonmeshprocessing [label=<
Polygon Mesh
Processing (2010)
> URL="https://www.amazon.com/dp/1568814267/"] + isosurfaces [label=<
Isosurfaces (2013)
> URL="https://www.amazon.com/dp/1466570970/"] + npr [label=<
Non-Photorealistic
Rendering (2001)
> URL="https://www.amazon.com/dp/1568811330/"] + npcg [label=<
Non-Photorealistic
Computer Graphics
(2002)
> URL="https://www.amazon.com/dp/1558607870/"] + + graphicsgems [label=<
Graphics Gems (1990)
> URL="https://www.amazon.com/dp/0122861655/"] + graphicsgems2 [label=<
Graphics Gems II (1991)
> URL="https://www.amazon.com/dp/0120644819/"] + graphicsgems3 [label=<
Graphics Gems III (1994)
> URL="https://www.amazon.com/dp/0124096735/"] + graphicsgems4 [label=<
Graphics Gems IV (1994)
> URL="https://www.amazon.com/dp/0123361559/"] + graphicsgems5 [label=<
Graphics Gems V (1995)
> URL="https://www.amazon.com/dp/0125434553/"] + + blinn1 [label=<
Jim Blinn's Corner:
A Trip Down
the Graphics Pipeline (1997)
> URL="https://www.amazon.com/dp/1558603875/"] + blinn2 [label=<
Jim Blinn's Corner:
Dirty Pixels (1998)
> URL="https://www.amazon.com/dp/1558604553/"] + blinn3 [label=<
Jim Blinn's Corner:
Notation, Notation,
Notation (2002)
> URL="https://www.amazon.com/dp/B01FGPKA62/"] + + glassenernotebook1 [label=<
Andrew Glassner's
Notebook (1999)
> URL="https://www.amazon.com/dp/1558605983/"] + glassenernotebook2 [label=<
Andrew Glassner's
Other Notebook (2002)
> URL="https://www.amazon.com/dp/1568811713/"] + + magiccg [label=<
The Magic of
Computer Graphics (2011)
> URL="https://www.amazon.com/dp/1568815778/"] + + cgbegin -> "3dgpdx12" + cgbegin -> { rt3drendering; oglguide9 } + + { "3dgpdx12"; rt3drendering; oglguide9 } -> cgtheory + + cgtheory -> fundamentalscg4 [arrowhead=normal, style=solid] + cgtheory-> { cgpp3; pdis; digitalimageprocessing3 } + + { fundamentalscg4; cgpp3; pdis; digitalimageprocessing3} -> cgadvanced + + cgadvanced -> { realtimerendering; offlinerendering; cgtech;} + + realtimerendering -> rtr3 [arrowhead=normal, style=solid] + realtimerendering -> tricks3dgpgurus + rtr3 -> graphicsprogrammingmethods -> shaderx -> shaderx2 -> shaderx3 -> shaderx4 -> shaderx5 -> shaderx6 -> shaderx7 -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7 -> gpuzen + { rank=same; rtr3; rtvolumegraphics } + { rank=same; gpupro; gpupro2; gpupro3; gpupro4 } + { rank=same; gpupro5; gpupro6; gpupro7; gpuzen } + rtr3 -> { realtimeshadows; rtvolumegraphics } + realtimeshadows -> graphicsprogrammingmethods [style=invis] + tricks3dgpgurus -> realtimeshadows [style=invis] + + rtr3 -> { d3d; ogl } + d3d -> practiald3d11 + ogl -> oglsuper7 -> { graphicsshaders2; glsl3 } -> ogles3guide2 -> oglinsights -> vulkanguide + + offlinerendering -> pbrt3 [arrowhead=normal, style=solid] + offlinerendering -> raytracingfromgroundup + raytracingfromgroundup -> pbrt3 -> advancedgi2 -> productionvolumerendering + + productionvolumerendering -> cgtech [style=invis] + + cgtech -> { cgmisc; texturingmodeling3; lod; npr; } + lod -> "3denginedesignvirtualglobes" + texturingmodeling3 -> polygonmeshprocessing -> isosurfaces + npr -> npcg + + polygonmeshprocessing -> npr [style=invis] + + { + rank=same; glassenernotebook2; magiccg + } + cgmisc -> graphicsgems -> graphicsgems2 -> graphicsgems3 -> graphicsgems4 -> graphicsgems5 + cgmisc -> blinn1 -> blinn2 -> glassenernotebook1 -> blinn3 -> glassenernotebook2 -> magiccg + + vulkanguide -> cgmisc [style=invis] + + cgtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + cgbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + cgtop -> cgbegin [style=invis] + gpuzen -> cgbottom [style=invis] + } + + subgraph cluster_audio { + fillcolor="#eceef9" + label=<
8. 游戏音效
> + + { + node [shape="box", style="rounded,filled", color="#c5cbed"] + audiobegin [label="游戏音频编程"] + } + + gameaudioprogramming [label=<
Game Audio
Programming (2016)
> URL="https://www.amazon.com/dp/149874673X/"] + gettingstartedcppaudio [label=<
Getting Started
with C++ Audio Programming
for Game Development (2013)
> URL="https://www.amazon.com/dp/1849699097/"] + + audiobegin -> { gameaudioprogramming; gettingstartedcppaudio } + + audiotop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + audiobottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + audiotop -> audiobegin [style=invis] + { gameaudioprogramming; gettingstartedcppaudio } -> audiobottom [style=invis] + } + + subgraph cluster_physics { + fillcolor="#f2ecf9" + label=<
9. 游戏物理和动画
> + + { + node [shape="box", style="rounded,filled",color="#d7c5ed"] + animbegin [label="游戏动画初阶"] + animadvanced [label="游戏动画进阶"] + phybegin [label="游戏物理初阶"] + phyadvanced [label="游戏物理进阶"] + fluid [label="流体动画/模拟"] + } + + natureofcode [label=<
代码本色:用编程模拟自然系统
(2014)
> URL="https://book.douban.com/subject/26264736/"] + characteranimation [label=<
Character Animation
with Direct3D (2011)
> URL="https://www.amazon.com/dp/1584505702/"] + rt3dcharacteranimation [label=<
Real-time 3D
Character Animation
with Visual C++ (2001)
> URL="https://www.amazon.com/dp/0240516648/"] + computeranimation3 [label=<
Computer Animation
3rd Ed (2012)
> URL="https://www.amazon.com/dp/0124158420/"] + gameik [label=<
Game Inverse
Kinematics (2013)
> URL="https://www.amazon.com/dp/1484922328/"] + physicsbasedanimation [label=<
Physics Based
Animation (2005)
> URL="https://www.amazon.com/dp/1584503807/"] + rtcameras [label=<
Real-Time Cameras
(2009)
> URL="https://www.amazon.com/dp/0123116341/"] + + physicsforgameprogrammers [label=<
Physics for Game
Programmers (2003)
> URL="https://www.amazon.com/dp/159059472X/"] + physicsforgamedevelopers2 [label=<
游戏开发物理学 第2版
(2015)
> URL="https://book.douban.com/subject/26394564/"] + physicsmodeling [label=<
Physics Modeling
for Game Programmers (2004)
> URL="https://www.amazon.com/dp/1592000932/"] + + fpbma [label=<
Foundations of Physically
Based Modeling and
Animation (2017)
> URL="https://www.amazon.com/dp/1482234602/"] + gamephysicsenginedev2 [label=<
游戏物理引擎开发
(2013)
> URL="https://book.douban.com/subject/25821830/"] + gamephysics2 [label=<
Game Physics 2nd Ed (2010)
> URL="https://www.amazon.com/dp/0123749034/"] + collisiondetection3denv [label=<
Collision Detection
in Interactive 3D
Environments (2003)
> URL="https://www.amazon.com/dp/155860801X/"] + rtcollisiondetection [label=<
实时碰撞检测算法技术
(2010)
> URL="https://book.douban.com/subject/4861957/"] + gamephysicspearls [label=<
Game Physics Pearls
(2010)
> URL="https://www.amazon.com/dp/1568814747/"] + + fluidenginedev [label=<
Fluid Engine Development (2016)
> URL="https://www.amazon.com/dp/1498719929/"] + taofluidanimation [label=<
The Art of
Fluid Animation (2015)
> URL="https://www.amazon.com/dp/1498700209/"] + fluidsimulationforcg2 [label=<
Fluid Simulation
for Computer Graphics
2nd Ed (2015)
> URL="https://www.amazon.com/dp/1482232839/"] + + animbegin -> { characteranimation; rt3dcharacteranimation } -> computeranimation3 -> animadvanced + animadvanced -> { gameik; physicsbasedanimation; rtcameras} + gameik -> rtcameras [style=invis] + + phybegin -> physicsforgameprogrammers + phybegin -> physicsforgamedevelopers2 + physicsforgameprogrammers -> physicsforgamedevelopers2 -> phyadvanced + physicsforgameprogrammers -> physicsmodeling -> phyadvanced + + { animbegin; phybegin } -> natureofcode + + phyadvanced -> fpbma -> gamephysicspearls + gamephysicspearls -> collisiondetection3denv -> rtcollisiondetection + gamephysicspearls -> gamephysicsenginedev2 -> gamephysics2 + + { animadvanced; phyadvanced } -> fluid -> fluidenginedev -> taofluidanimation -> fluidsimulationforcg2 + + phytop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + phybottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + phytop -> { animbegin; phybegin } [style=invis] + fluidsimulationforcg2 -> phybottom [style=invis] + } + + subgraph cluster_ai { + fillcolor="#f9ecf9" + label=<
10. 游戏人工智能(AI)
> + + { + node [shape="box", style="rounded,filled" color="#edc5ed"] + aibegin [label="游戏AI初阶"] + aiintermediate [label="中级游戏AI"] + aimisc [label="游戏AI文选"] + } + + aiforgames2 [label=<
Artificial Intelligence
for Games 2nd Ed (2009)
> URL="https://www.amazon.com/dp/0123747317/"] + aiforgd [label=<
游戏开发中的人工智能
(2006)
> URL="https://book.douban.com/subject/1899340/"] + proggameaibyexample [label=<
游戏人工智能编程
案例精粹
(2012)
> URL="https://book.douban.com/subject/19930152/"] + unityaigp2 [label=<
Unity人工智能游戏开发(第2版) 
(2016)
> URL="https://book.douban.com/subject/26911454/"] + + aima3 [label=<
人工智能
(2004)
> URL="https://book.douban.com/subject/1230487/"] + behavioralmathforgameai [label=<
Behavioral Mathematics
for Game AI (2009)
> URL="https://www.amazon.com/dp/1584506849/"] + + { + rank=same + aigpwisdom [label=<
AI Game Programming
Wisdom (2002)
> URL="https://www.amazon.com/dp/1584500778/"] + aigpwisdom2 [label=<
AI Game Programming
Wisdom 2 (2003)
> URL="https://www.amazon.com/dp/1584502894/"] + aigpwisdom3 [label=<
AI Game Programming
Wisdom 3 (2006)
> URL="https://www.amazon.com/dp/1584504579/"] + aigpwisdom4 [label=<
AI Game Programming
Wisdom 4 (2008)
> URL="https://www.amazon.com/dp/1584505230/"] + } + { + rank=same + gameaipro [label=<
游戏人工智能(2017)
> URL="https://book.douban.com/subject/27154117/"] + gameaipro2 [label=<
Game AI Pro 2 (2015)
> URL="https://www.amazon.com/dp/1482254794/"] + gameaipro3 [label=<
Game AI Pro 3 (2017)
> URL="https://www.amazon.com/dp/1482254794/"] + } + + aibegin -> aiforgames2 -> aiintermediate -> aima3 [arrowhead=normal, style=solid] + aibegin -> { aiforgd; proggameaibyexample; unityaigp2 } -> aiintermediate + aiintermediate -> behavioralmathforgameai -> aimisc + aima3 -> aimisc + aimisc -> aigpwisdom + aigpwisdom -> aigpwisdom2 -> aigpwisdom3 -> aigpwisdom4 + aigpwisdom4 -> gameaipro -> gameaipro2 -> gameaipro3 + + aitop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + aibottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + aitop -> aibegin [style=invis] + gameaipro3 -> aibottom [style=invis] + } + + subgraph cluster_multiplayer { + fillcolor="#f9ebf2" + label=<
11. 多人游戏编程
> + + { + node [shape="box", style="rounded,filled" color="#edc5d7"] + multiplayerbegin [label="多人游戏编程初阶"] + multiplayermisc [label="多人游戏编程文选"] + serverprog [label="服务器编程"] + networkprotocol [label="网络协议"] + networkprog [label="网络编程"] + } + + multiplayergp [label=<
网络多人游戏架构与编程
(2017)
> URL="https://book.douban.com/subject/27135506/"] + massivelymultiplayergd [label=<
大型多人在线游戏开发
(2006)
> URL="https://book.douban.com/subject/1940567/"] + massivelymultiplayergd2 [label=<
Massively Multiplayer
Game Development 2
(2005)
> URL="https://www.amazon.com/dp/1584503904/"] + + progposixthreads [label=<
POSIX多线程程序设计
(2003)
> URL="https://book.douban.com/subject/1236825/"] + advancedprogunixenv3 [label=<
UNIX环境高级编程(第3版)
(2014)
> URL="https://book.douban.com/subject/25900403/"] + linuxsystemprog2 [label=<
Linux 系统编程(第二版)
(2014)
> URL="https://book.douban.com/subject/25828773/"] + + tcpipillustratedv1_2 [label=<
TCP/IP详解
卷1:协议
(2016)
> URL="https://book.douban.com/subject/26825411/"] + tcpipillustratedv2 [label=<
TCP/IP详解
卷2:实现
(2004)
> URL="https://book.douban.com/subject/1087767/"] + tcpipillustratedv3 [label=<
TCP/IP详解
卷3:TCP事务协议、
HTTP、NNTP
和UNIX域协议
(2000)
> URL="https://book.douban.com/subject/1058634/"] + + unixnetworkprogv1_3 [label=<
UNIX网络编程
卷1:套接字联网API(第3版)
(2014)
> URL="https://book.douban.com/subject/26434583/"] + unixnetworkprogv2_2 [label=<
UNIX网络编程
卷2:进程间通信(第2版)
(2015)
> URL="https://book.douban.com/subject/26434599/"] + linuxnetworkinternals [label=<
深入理解
LINUX网络技术内幕
(2009)
> URL="https://book.douban.com/subject/4015134/"] + + multiplayerbegin -> multiplayergp [arrowhead=normal, style=solid] + multiplayergp -> serverprog + multiplayergp -> networkprotocol + multiplayergp -> networkprog + multiplayergp -> multiplayermisc + + serverprog -> progposixthreads -> advancedprogunixenv3 -> linuxsystemprog2 + networkprotocol -> tcpipillustratedv1_2 -> tcpipillustratedv2 -> tcpipillustratedv3 + networkprog -> unixnetworkprogv1_3 -> unixnetworkprogv2_2 -> linuxnetworkinternals + + multiplayermisc -> massivelymultiplayergd -> massivelymultiplayergd2 + + multiplayertop [fixedsize=true,width=8,height=0.01,style=invis,label=""] + multiplayerbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] + multiplayertop -> multiplayerbegin [style=invis] + { linuxsystemprog2; tcpipillustratedv3; linuxnetworkinternals } -> multiplayerbottom [style=invis] + } + + ccsa [fontcolor=white,fontsize=8,label=< + + +
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
> + URL = "https://creativecommons.org/licenses/by-sa/4.0/"] + + { + edge [style=invis] + tocbottom -> legendtop + legendbottom -> kidtop + kidbottom -> cstop + csbottom -> progtop + progbottom -> setop + sebottom -> mathtop + mathbottom -> gametop + gamebottom -> getop + gebottom -> cgtop + cgbottom -> audiotop + audiobottom -> phytop + phybottom -> aitop + aibottom -> multiplayertop + multiplayerbottom -> ccsa + } +} diff --git a/game-programmer-zh-cn.jpg b/game-programmer-zh-cn.jpg index e681818..30af5a7 100644 Binary files a/game-programmer-zh-cn.jpg and b/game-programmer-zh-cn.jpg differ diff --git a/game-programmer-zh-cn.pdf b/game-programmer-zh-cn.pdf index c25bd2b..e5685c9 100644 Binary files a/game-programmer-zh-cn.pdf and b/game-programmer-zh-cn.pdf differ diff --git a/game-programmer-zh-cn.png b/game-programmer-zh-cn.png index 6881881..c1c158a 100644 Binary files a/game-programmer-zh-cn.png and b/game-programmer-zh-cn.png differ diff --git a/game-programmer-zh-cn.svg b/game-programmer-zh-cn.svg index 6a52fae..c6f6dc6 100644 --- a/game-programmer-zh-cn.svg +++ b/game-programmer-zh-cn.svg @@ -1,198 +1,236 @@ - - - + + %3 - -cluster_toc - -cluster_legend - -Legends - -cluster_kid - -0. 编程学前班 - -cluster_cs - -1. 计算机科学 - -cluster_proglang - -2. 编程语言 - -cluster_se - -3. 软件开发 - -cluster_math - -4. 游戏程序员的数学课 - -cluster_gameprog - -5. 游戏编程 - -cluster_engine - -6. 游戏引擎开发 - -cluster_cg - -7. 计算机图形学(CG) - -cluster_audio - -8. 游戏音效 - -cluster_physics - -9. 游戏物理和动画 - -cluster_ai - -10. 游戏人工智能(AI) - -cluster_multiplayer - -11. 多人游戏编程 + + +cluster_toc + + +cluster_legend + +Legends + + +cluster_kid + +0. 编程学前班 + + +cluster_cs + +1. 计算机科学 + + +cluster_proglang + +2. 编程语言 + + +cluster_se + +3. 软件开发 + + +cluster_math + +4. 游戏程序员的数学课 + + +cluster_gameprog + +5. 游戏编程 + + +cluster_engine + +6. 游戏引擎开发 + + +cluster_cg + +7. 计算机图形学(CG) + + +cluster_audio + +8. 游戏音效 + + +cluster_physics + +9. 游戏物理和动画 + + +cluster_ai + +10. 游戏人工智能(AI) + + +cluster_multiplayer + +11. 多人游戏编程 -toctop + +toctop -游戏程序员的 -学习之路 -Milo Yip -2016/12/20 -https://github.com/miloyip/game-programmer +游戏程序员的 +学习之路 +Milo Yip +2017/8/7 +https://github.com/miloyip/game-programmer -kid - - 0. 编程学前班 + +kid + + 0. 编程学前班 -cs - - 1. 计算机科学 + +cs + + 1. 计算机科学 -kid->cs - - + +kid->cs + + -proglang - - 2. 编程语言 + +proglang + + 2. 编程语言 -cs->proglang - - + +cs->proglang + + -softwaredev - - 3. 软件开发 + +softwaredev + + 3. 软件开发 -proglang->softwaredev - - + +proglang->softwaredev + + -math - - 4. 游戏程序员的数学课 + +math + + 4. 游戏程序员的数学课 -softwaredev->math - - + +softwaredev->math + + -gameprog - - 5. 游戏编程 + +gameprog + + 5. 游戏编程 -math->gameprog - - + +math->gameprog + + -gameengine - - 6. 游戏引擎开发 + +gameengine + + 6. 游戏引擎开发 -gameprog->gameengine - - + +gameprog->gameengine + + -cg - - 7. 计算机图形学(CG) + +cg + + 7. 计算机图形学(CG) -gameengine:e->cg:e - - + +gameengine:e->cg:e + + -audio - - 8. 游戏音效 + +audio + + 8. 游戏音效 -gameengine:e->audio:e - - + +gameengine:e->audio:e + + -phyanim - - 9. 游戏物理和动画 + +phyanim + + 9. 游戏物理和动画 -gameengine:e->phyanim:e - - + +gameengine:e->phyanim:e + + -ai - - 10. 游戏人工智能(AI) + +ai + + 10. 游戏人工智能(AI) -gameengine:e->ai:e - - + +gameengine:e->ai:e + + -multiplayer - - 11. 多人游戏编程 + +multiplayer + + 11. 多人游戏编程 -gameengine:e->multiplayer:e - - + +gameengine:e->multiplayer:e + + @@ -200,28 +238,34 @@ -legendA1 -推荐路线 + +legendA1 +推荐路线 -legendA2 + +legendA2 -legendA1->legendA2 - - + +legendA1->legendA2 + + -legendB1 -可选路线 + +legendB1 +可选路线 -legendB2 + +legendB2 -legendB1->legendB2 - - + +legendB1->legendB2 + + @@ -231,179 +275,200 @@ -age5 - -从5岁开始 + +age5 + +从5岁开始 -scratchjr - - -The Official -ScratchJr Book (2015) + +scratchjr + + +动手玩转ScratchJr编程 (2016) -age5->scratchjr - - + +age5->scratchjr + + -age8 - -从8岁开始 + +age8 + +从8岁开始 -codinggamesinscratch + +codinggamesinscratch - -Coding Games -in Scratch -(2015) + +Coding Games +in Scratch +(2015) -age8->codinggamesinscratch - - + +age8->codinggamesinscratch + + -superscratchprogadv - - -Super Scratch -Programming Adventure! -(2013) + +superscratchprogadv + + +Scratch超人漫游记 (2017) -age8->superscratchprogadv - - + +age8->superscratchprogadv + + -kidintermediate - -中级孩童游戏编程 + +kidintermediate + +中级孩童游戏编程 -inventgamepython3 + +inventgamepython3 - -Invent Your Own -Computer Games with -Python 3rd Ed (2015) + +Invent Your Own +Computer Games with +Python 3rd Ed (2015) -kidintermediate->inventgamepython3 - - + +kidintermediate->inventgamepython3 + + -learntoprogramwithminecraft + +learntoprogramwithminecraft - -Learn to Program -with Minecraft (2015) + +Learn to Program +with Minecraft (2015) -kidintermediate->learntoprogramwithminecraft - - + +kidintermediate->learntoprogramwithminecraft + + -3dgpforkids + +3dgpforkids - -3D Game Programming -for Kids (2013) + +3D Game Programming +for Kids (2013) -kidintermediate->3dgpforkids - - + +kidintermediate->3dgpforkids + + -scratchjr->age8 - - + +scratchjr->age8 + + -helpyoukidswithcomputercoding + +helpyoukidswithcomputercoding - -Help Your Kids -with Computer Coding -(2015) + +Help Your Kids +with Computer Coding +(2015) -codinggamesinscratch->helpyoukidswithcomputercoding - - + +codinggamesinscratch->helpyoukidswithcomputercoding + + -learntoprogramwithscratch - - -Learn to Program - with Scratch -(2014) + +learntoprogramwithscratch + + +动手玩转Scratch2.0编程 (2015) -superscratchprogadv->learntoprogramwithscratch - - + +superscratchprogadv->learntoprogramwithscratch + + -learntoprogramwithscratch->kidintermediate - - + +learntoprogramwithscratch->kidintermediate + + -helpyoukidswithcomputercoding->kidintermediate - - + +helpyoukidswithcomputercoding->kidintermediate + + -makinggamespython + +makinggamespython - -Making Games with -Python & Pygame (2012) + +Making Games with +Python & Pygame (2012) -inventgamepython3->makinggamespython - - + +inventgamepython3->makinggamespython + + -adventuresinminecraft + +adventuresinminecraft - -零基础学Minecraft编程 -(2015) + +零基础学Minecraft编程 +(2015) -learntoprogramwithminecraft->adventuresinminecraft - - + +learntoprogramwithminecraft->adventuresinminecraft + + @@ -412,149 +477,171 @@ -foundation - -计算机基础 + +foundation + +计算机基础 -sicp2 + +sicp2 - -计算机程序的构造和解释 -(2004) + +计算机程序的构造和解释 +(2004) -foundation->sicp2 - - + +foundation->sicp2 + + -csapp3 + +csapp3 - -深入理解计算机系统 -(原书第3版) -(2016) + +深入理解计算机系统 +(原书第3版) +(2016) -foundation->csapp3 - - + +foundation->csapp3 + + -algorithm - -算法 + +algorithm + +算法 -clrs3 + +clrs3 - -算法导论(原书第3版) -(2012) + +算法导论(原书第3版) +(2012) -algorithm->clrs3 - - + +algorithm->clrs3 + + -algorithms4 + +algorithms4 - -算法(第4版) -(2012) + +算法(第4版) +(2012) -algorithm->algorithms4 - - + +algorithm->algorithms4 + + -csmath - -计算机数学 + +csmath + +计算机数学 -concretemaths2 + +concretemaths2 - -具体数学 -(2013) + +具体数学 +(2013) -csmath->concretemaths2 - - + +csmath->concretemaths2 + + -caaqa5 + +caaqa5 - -计算机体系结构 -(2012) + +计算机体系结构 +(2012) -sicp2->caaqa5 - - + +sicp2->caaqa5 + + -mos4 + +mos4 - -现代操作系统(第3版) -(2009) + +现代操作系统(第3版) +(2009) -sicp2->mos4 - - + +sicp2->mos4 + + -csapp3->caaqa5 - - + +csapp3->caaqa5 + + -csapp3->mos4 - - + +csapp3->mos4 + + -algorithms4->clrs3 - - + +algorithms4->clrs3 + + -computationalscieng + +computationalscieng - -Computational Science -and Engineering (2007) + +Computational Science +and Engineering (2007) -concretemaths2->computationalscieng - - + +concretemaths2->computationalscieng + + @@ -562,450 +649,517 @@ -cbegin - -C + +cbegin + +C -tcpl2 + +tcpl2 - -C程序设计语言 -(2004) + +C程序设计语言 +(2004) -cbegin->tcpl2 - - + +cbegin->tcpl2 + + -lua - -Lua + +lua + +Lua -programminginlua4 + +programminginlua4 - -LUA程序设计(第2版) -(2008) + +LUA程序设计(第2版) +(2008) -lua->programminginlua4 - - + +lua->programminginlua4 + + -csharp - -C# + +csharp + +C# -mvcsharpstepbystep8 + +mvcsharpstepbystep8 - -Visual C#从入门到精通(第8版)  -(2016) + +Visual C#从入门到精通(第8版)  +(2016) -csharp->mvcsharpstepbystep8 - - + +csharp->mvcsharpstepbystep8 + + -cppbegin - -C++ 新手 + +cppbegin + +C++ 新手 -cppprimer5 + +cppprimer5 - -C++ Primer 中文版 -(第 5 版) -(2013) + +C++ Primer 中文版 +(第 5 版) +(2013) -cppbegin->cppprimer5 - - + +cppbegin->cppprimer5 + + -tcpppl4 + +tcpppl4 - -C++ 程序设计语言(原书第 4 版) -(2016) + +C++ 程序设计语言(原书第 4 版) +(2016) -cppbegin->tcpppl4 - - + +cppbegin->tcpppl4 + + -cpppractice - -C++ 实践 + +cpppractice + +C++ 实践 -exceptionalcpp + +exceptionalcpp - -Exceptional C++(中文版) -(2012) + +Exceptional C++(中文版) +(2012) -cpppractice->exceptionalcpp - - + +cpppractice->exceptionalcpp + + -effectivecpp3 + +effectivecpp3 - -Effective C++ -(2006) + +Effective C++ +(2006) -cpppractice->effectivecpp3 - - + +cpppractice->effectivecpp3 + + -cpplibrary - -C++ 标准库 + +cpplibrary + +C++ 标准库 -cppstandardlibrary2 + +cppstandardlibrary2 - -C++标准库(第2版) -(2015) + +C++标准库(第2版) +(2015) -cpplibrary->cppstandardlibrary2 - - + +cpplibrary->cppstandardlibrary2 + + -cppadvance - -C++ 进阶 + +cppadvance + +C++ 进阶 -insidecppobjectmodel + +insidecppobjectmodel - -深度探索C++对象模型 -(2012) + +深度探索C++对象模型 +(2012) -cppadvance->insidecppobjectmodel - - + +cppadvance->insidecppobjectmodel + + -cpptemplates + +cpptemplates - -C++ Templates中文版 -(2013) + +C++ Templates中文版 +(2013) -cppadvance->cpptemplates - - + +cppadvance->cpptemplates + + -elementsofprogramming + +elementsofprogramming - -编程原本 -(2012) + +编程原本 +(2012) -cppadvance->elementsofprogramming - - + +cppadvance->elementsofprogramming + + -tcpl2->cppbegin - - + +tcpl2->cppbegin + + -cppprimer5->cpppractice - - + +cppprimer5->cpppractice + + -cppprimer5->cpplibrary - - + +cppprimer5->cpplibrary + + -tcpppl4->cpplibrary - - + +tcpppl4->cpplibrary + + -cppconcurrencyinaction + +cppconcurrencyinaction - -C++并发编程实战 -(2015) + +C++并发编程实战 +(2015) -cppstandardlibrary2->cppconcurrencyinaction - - + +cppstandardlibrary2->cppconcurrencyinaction + + -effectivestl + +effectivestl - -Effective STL中文版 -(2013) + +Effective STL中文版 +(2013) -cppstandardlibrary2->effectivestl - - + +cppstandardlibrary2->effectivestl + + -boostcpplibraries2 + +boostcpplibraries2 - -The Boost C++ -Libraries 2nd Ed (2014) + +The Boost C++ +Libraries 2nd Ed (2014) -cppconcurrencyinaction->boostcpplibraries2 - - + +cppconcurrencyinaction->boostcpplibraries2 + + -moreexceptionalcpp + +moreexceptionalcpp - -More Exceptional C++ -中文版 -(2002) + +More Exceptional C++ +中文版 +(2002) -exceptionalcpp->moreexceptionalcpp - - + +exceptionalcpp->moreexceptionalcpp + + -exceptionalcppstyle + +exceptionalcppstyle - -Exceptional C++ Style -中文版 -(2006) + +Exceptional C++ Style +中文版 +(2006) -moreexceptionalcpp->exceptionalcppstyle - - + +moreexceptionalcpp->exceptionalcppstyle + + -cppcodingstandard + +cppcodingstandard - -C++编程规范 -(2010) + +C++编程规范 +(2010) -exceptionalcppstyle->cppcodingstandard - - + +exceptionalcppstyle->cppcodingstandard + + -cppcodingstandard->cppadvance - - + +cppcodingstandard->cppadvance + + -moreeffectivecpp3 + +moreeffectivecpp3 - -More Effective C++ -(中文版) -(2011) + +More Effective C++ +(中文版) +(2011) -effectivecpp3->moreeffectivecpp3 - - + +effectivecpp3->moreeffectivecpp3 + + -effectivemoderncpp + +effectivemoderncpp - -Effective Modern -C++ (2014) + +Effective Modern +C++ (2014) -effectivecpp3->effectivemoderncpp - - + +effectivecpp3->effectivemoderncpp + + -moreeffectivecpp3->effectivemoderncpp - - + +moreeffectivecpp3->effectivemoderncpp + + -effectivemoderncpp->cppcodingstandard - - + +effectivemoderncpp->cppcodingstandard + + -optimizedcpp + +optimizedcpp - -Optimized C++ -(2016) + +Optimized C++ +(2016) -effectivemoderncpp->optimizedcpp - - + +effectivemoderncpp->optimizedcpp + + -optimizedcpp->cppadvance - - + +optimizedcpp->cppadvance + + -imperfectcpp + +imperfectcpp - -Imperfect C++中文版 -(2006) + +Imperfect C++中文版 +(2006) -insidecppobjectmodel->imperfectcpp - - + +insidecppobjectmodel->imperfectcpp + + -moderncppdesign + +moderncppdesign - -C++设计新思维 -(2003) + +C++设计新思维 +(2003) -cpptemplates->moderncppdesign - - + +cpptemplates->moderncppdesign + + -frommathtogeneric + +frommathtogeneric - -From Mathematics -to Generic Programming -(2014) + +From Mathematics +to Generic Programming +(2014) -elementsofprogramming->frommathtogeneric - - + +elementsofprogramming->frommathtogeneric + + -luaprogramminggems + +luaprogramminggems - -Lua Programming -Gems (2008) + +Lua Programming +Gems (2008) -programminginlua4->luaprogramminggems - - + +programminginlua4->luaprogramminggems + + -csharpindepth3 + +csharpindepth3 - -深入理解C#(第3版) -(2014) + +深入理解C#(第3版) +(2014) -mvcsharpstepbystep8->csharpindepth3 - - + +mvcsharpstepbystep8->csharpindepth3 + + -clrviacsharp4 + +clrviacsharp4 - -CLR via C#(第4版) -(2015) + +CLR via C#(第4版) +(2015) -csharpindepth3->clrviacsharp4 - - + +csharpindepth3->clrviacsharp4 + + @@ -1013,394 +1167,452 @@ -sebegin - -软件开发新手 + +sebegin + +软件开发新手 -mythicalmanmonth2 + +mythicalmanmonth2 - -人月神话 -(2007) + +人月神话 +(2007) -sebegin->mythicalmanmonth2 - - + +sebegin->mythicalmanmonth2 + + -sepractice - -实践 + +sepractice + +实践 -practiceofprogramming + +practiceofprogramming - -程序设计实践 -(2011) + +程序设计实践 +(2011) -sepractice->practiceofprogramming - - + +sepractice->practiceofprogramming + + -dp - -设计模式 + +dp + +设计模式 -agilesoftwaredev + +agilesoftwaredev - -敏捷软件开发 -(2008) + +敏捷软件开发 +(2008) -dp->agilesoftwaredev - - + +dp->agilesoftwaredev + + -headfirstdesignpatterns + +headfirstdesignpatterns - -Head First 设计模式(中文版) -(2007) + +Head First 设计模式(中文版) +(2007) -dp->headfirstdesignpatterns - - + +dp->headfirstdesignpatterns + + -uml - -UML + +uml + +UML -umldistilled3 + +umldistilled3 - -UML精粹 -(2012) + +UML精粹 +(2012) -uml->umldistilled3 - - + +uml->umldistilled3 + + -mythicalmanmonth2->sepractice - - + +mythicalmanmonth2->sepractice + + -mythicalmanmonth2->dp - - + +mythicalmanmonth2->dp + + -mythicalmanmonth2->uml - - + +mythicalmanmonth2->uml + + -codecomplete2 + +codecomplete2 - -代码大全 -(2007) + +代码大全 +(2007) -apidesignforcpp + +apidesignforcpp - -C++ API设计 -(2013) + +C++ API设计 +(2013) -codecomplete2->apidesignforcpp - - + +codecomplete2->apidesignforcpp + + -cleancode + +cleancode - -编码整洁之道 -(2012) + +编码整洁之道 +(2012) -codecomplete2->cleancode - - + +codecomplete2->cleancode + + -workingeffectivelylegacycode + +workingeffectivelylegacycode - -修改代码的艺术 -(2014) + +修改代码的艺术 +(2014) -codecomplete2->workingeffectivelylegacycode - - + +codecomplete2->workingeffectivelylegacycode + + -designpatterns + +designpatterns - -设计模式 -(2007) + +设计模式 +(2007) -agilesoftwaredev->designpatterns - - + +agilesoftwaredev->designpatterns + + -headfirstdesignpatterns->agilesoftwaredev - - + +headfirstdesignpatterns->agilesoftwaredev + + -refactoring + +refactoring - -重构 -(2010) + +重构 +(2010) -practiceofprogramming->refactoring - - + +practiceofprogramming->refactoring + + -refactoring->codecomplete2 - - + +refactoring->codecomplete2 + + -umluserguide2 + +umluserguide2 - -UML用户指南 -(2006) + +UML用户指南 +(2006) -umldistilled3->umluserguide2 - - + +umldistilled3->umluserguide2 + + -ooadwa3 + +ooadwa3 - -面向对象分析与设计 -(2012) + +面向对象分析与设计 +(2012) -umluserguide2->ooadwa3 - - + +umluserguide2->ooadwa3 + + -mathbegin - -游戏编程数学初阶 + +mathbegin + +游戏编程数学初阶 -foundationsgedmath + +foundationsgedmath - -Foundations of Game -Engine Development, -Vol 1: Mathematics -(2016) + +Foundations of Game +Engine Development, +Vol 1: Mathematics +(2016) -mathbegin->foundationsgedmath - - + +mathbegin->foundationsgedmath + + -math3dcpcg3 + +math3dcpcg3 - -3D游戏与计算机图形学 -中的数学方法(第3版) -(2016) + +3D游戏与计算机图形学 +中的数学方法(第3版) +(2016) -mathbegin->math3dcpcg3 - - + +mathbegin->math3dcpcg3 + + -3dmathprimer2 + +3dmathprimer2 - -3D Math Primer for -Graphics and Game -Development 2nd Ed (2011) + +3D Math Primer for +Graphics and Game +Development 2nd Ed (2011) -mathbegin->3dmathprimer2 - - + +mathbegin->3dmathprimer2 + + -essentialmaths3 + +essentialmaths3 - -Essential Mathematics -for Games and -Interactive Applications -3rd Ed (2011) + +Essential Mathematics +for Games and +Interactive Applications +3rd Ed (2011) -mathbegin->essentialmaths3 - - + +mathbegin->essentialmaths3 + + -mathadvanced - -游戏编程数学进阶 + +mathadvanced + +游戏编程数学进阶 -geometricalgebra + +geometricalgebra - -Geometric Algebra for -Computer Science (2007) + +Geometric Algebra for +Computer Science (2007) -mathadvanced->geometricalgebra - - + +mathadvanced->geometricalgebra + + -geometrictools + +geometrictools - -计算机图形学 -几何工具算法详解 -(2005) + +计算机图形学 +几何工具算法详解 +(2005) -mathadvanced->geometrictools - - + +mathadvanced->geometrictools + + -visualizingquaternions + +visualizingquaternions - -Visualizing Quaternions -(2006) + +Visualizing Quaternions +(2006) -mathadvanced->visualizingquaternions - - + +mathadvanced->visualizingquaternions + + -divgradcurl4 + +divgradcurl4 - -散度、旋度、梯度释义 -(2015) + +散度、旋度、梯度释义 +(2015) -mathadvanced->divgradcurl4 - - + +mathadvanced->divgradcurl4 + + -foundationsgedmath->mathadvanced - - + +foundationsgedmath->mathadvanced + + -math3dcpcg3->mathadvanced - - + +math3dcpcg3->mathadvanced + + -3dmathprimer2->mathadvanced - - + +3dmathprimer2->mathadvanced + + -essentialmaths3->mathadvanced - - + +essentialmaths3->mathadvanced + + -computationalgeometry + +computationalgeometry - -计算几何 -(2009) + +计算几何 +(2009) -geometrictools->computationalgeometry - - + +geometrictools->computationalgeometry + + @@ -1408,468 +1620,537 @@ -gpbegin - -开始游戏编程 + +gpbegin + +开始游戏编程 -scratch - -使用Windows/DirectX + +scratch + +使用Windows/DirectX -gpbegin->scratch - - + +gpbegin->scratch + + -unity - -使用Unity + +unity + +使用Unity -gpbegin->unity - - + +gpbegin->unity + + -unreal - -使用Unreal + +unreal + +使用Unreal -gpbegin->unreal - - + +gpbegin->unreal + + -cocos2dx - -使用Cocos2d-X + +cocos2dx + +使用Cocos2d-X -gpbegin->cocos2dx - - + +gpbegin->cocos2dx + + -windowsgp2 + +windowsgp2 - -Windows游戏编程大师技巧 -(2012) + +Windows游戏编程大师技巧 +(2012) -scratch->windowsgp2 - - + +scratch->windowsgp2 + + -gamecodingcomplete4 + +gamecodingcomplete4 - -游戏编程权威指南 -(2016) + +游戏编程权威指南 +(2016) -scratch:se->gamecodingcomplete4 - - + +scratch:se->gamecodingcomplete4 + + -introtogdprodev + +introtogdprodev - -Introduction to Game -Design, Prototyping, -and Development (2014) + +Introduction to Game +Design, Prototyping, +and Development (2014) -unity->introtogdprodev - - + +unity->introtogdprodev + + -learninguegd + +learninguegd - -Learning Unreal Engine -Game Development -(2015) + +Learning Unreal Engine +Game Development +(2015) -unreal->learninguegd - - + +unreal->learninguegd + + -cocos2dxbyexample2 + +cocos2dxbyexample2 - -Cocos2d-X -by Example (2015) + +Cocos2d-X +by Example (2015) -cocos2dx->cocos2dxbyexample2 - - + +cocos2dx->cocos2dxbyexample2 + + -gpintermediate - -中级游戏编程 + +gpintermediate + +中级游戏编程 -gpalgorithmstechniques - - -Game Programming -Algorithms and -Techniques (2013) + +gpalgorithmstechniques + + +游戏编程算法与技巧 +(2016) -gpintermediate->gpalgorithmstechniques - - + +gpintermediate->gpalgorithmstechniques + + -crossplatformgp + +crossplatformgp - -Cross-Platform Game -Programming (2005) + +Cross-Platform Game +Programming (2005) -gpintermediate->crossplatformgp - - + +gpintermediate->crossplatformgp + + -buildingfpsgameunity + +buildingfpsgameunity - -Building an FPS -Game with Unity (2015) + +Building an FPS +Game with Unity (2015) -gpintermediate->buildingfpsgameunity - - + +gpintermediate->buildingfpsgameunity + + -agumentedreality + +agumentedreality - -Augmented Reality -(2016) + +Augmented Reality +(2016) -gpintermediate->agumentedreality - - + +gpintermediate->agumentedreality + + -gpmisc - -游戏编程文选 + +gpmisc + +游戏编程文选 -gpgemsbest + +gpgemsbest - -Best of Game -Programming -Gems (2008) + +Best of Game +Programming +Gems (2008) -gpmisc->gpgemsbest - - + +gpmisc->gpgemsbest + + -beginninggp + +beginninggp - -Beginning Game -Programming (2009) + +Beginning Game +Programming (2009) -gpmisc->beginninggp - - + +gpmisc->beginninggp + + -gamecodingcomplete4->gpintermediate - - + +gamecodingcomplete4->gpintermediate + + -unityinaction + +unityinaction - -Unity5实战 -(2016) + +Unity5实战 +(2016) -introtogdprodev->unityinaction - - + +introtogdprodev->unityinaction + + -unityinaction->gpintermediate - - + +unityinaction->gpintermediate + + -blueprintsvisualscripting + +blueprintsvisualscripting - -Blueprints Visual Scripting -for Unreal Engine (2015) + +Blueprints Visual Scripting +for Unreal Engine (2015) -learninguegd->blueprintsvisualscripting - - + +learninguegd->blueprintsvisualscripting + + -blueprintsvisualscripting->gpintermediate - - + +blueprintsvisualscripting->gpintermediate + + -cocos2dxbyexample2->gpintermediate - - + +cocos2dxbyexample2->gpintermediate + + -gameprogrammingpatterns + +gameprogrammingpatterns - -游戏编程模式 -(2016) + +游戏编程模式 +(2016) -gpalgorithmstechniques->gameprogrammingpatterns - - + +gpalgorithmstechniques->gameprogrammingpatterns + + -gpgoldenrules + +gpgoldenrules - -Game Programming -Golden Rules (2004) + +Game Programming +Golden Rules (2004) -gameprogrammingpatterns->gpgoldenrules - - + +gameprogrammingpatterns->gpgoldenrules + + -gpgoldenrules->gpmisc - - + +gpgoldenrules->gpmisc + + -androidndkgdcookbook + +androidndkgdcookbook - -Android NDK Game -Development Cookbook -(2013) + +Android NDK Game +Development Cookbook +(2013) -crossplatformgp->androidndkgdcookbook - - + +crossplatformgp->androidndkgdcookbook + + -unityvrprojects + +unityvrprojects - -Unity Virtual -Reality Projects (2015) + +Unity Virtual +Reality Projects (2015) -buildingfpsgameunity->unityvrprojects - - + +buildingfpsgameunity->unityvrprojects + + -practicalaugmentedreality + +practicalaugmentedreality - -Practical Augmented -Reality (2016) + +Practical Augmented +Reality (2016) -agumentedreality->practicalaugmentedreality - - + +agumentedreality->practicalaugmentedreality + + -gpgems + +gpgems - -游戏编程精粹 1 -(2004) + +游戏编程精粹 1 +(2004) -gpgemsbest->gpgems - - + +gpgemsbest->gpgems + + -advancedgp + +advancedgp - -Advanced Game -Programming (2009) + +Advanced Game +Programming (2009) -beginninggp->advancedgp - - + +beginninggp->advancedgp + + -gpgems2 + +gpgems2 - -游戏编程精粹2 -(2003) + +游戏编程精粹2 +(2003) -gpgems->gpgems2 - - + +gpgems->gpgems2 + + -gpgems3 + +gpgems3 - -游戏编程精粹3 -(2003) + +游戏编程精粹3 +(2003) -gpgems2->gpgems3 - - + +gpgems2->gpgems3 + + -gpgems4 + +gpgems4 - -游戏编程精粹4 -(2005) + +游戏编程精粹4 +(2005) -gpgems3->gpgems4 - - + +gpgems3->gpgems4 + + -gpgems5 + +gpgems5 - -游戏编程精粹5 -(2007) + +游戏编程精粹5 +(2007) -gpgems4->gpgems5 - - + +gpgems4->gpgems5 + + -gpgems6 + +gpgems6 - -游戏编程精粹6 -(2007) + +游戏编程精粹6 +(2007) -gpgems5->gpgems6 - - + +gpgems5->gpgems6 + + -gpgems7 + +gpgems7 - -游戏编程精粹7 -(2010) + +游戏编程精粹7 +(2010) -gpgems6->gpgems7 - - + +gpgems6->gpgems7 + + -gpgems8 + +gpgems8 - -Game Programming -Gems (2010) + +Game Programming +Gems (2010) -gpgems7->gpgems8 - - + +gpgems7->gpgems8 + + @@ -1878,1172 +2159,1466 @@ -gebegin - -游戏引擎开发新手 + +gebegin + +游戏引擎开发新手 -gameenginearchitecture2 + +gameenginearchitecture2 - -游戏引擎架构 -(2014) + +游戏引擎架构 +(2014) -gebegin->gameenginearchitecture2 - - + +gebegin->gameenginearchitecture2 + + -gearticles - -游戏引擎文选 + +gearticles + +游戏引擎文选 -gameenginegems1 + +gameenginegems1 - -Game Engine -Gems 1 (2010) + +Game Engine +Gems 1 (2010) -gearticles->gameenginegems1 - - + +gearticles->gameenginegems1 + + -gescript - -脚本引擎 + +gescript + +脚本引擎 -gamescriptingmastery + +gamescriptingmastery - -游戏脚本高级编程 -(2006) + +游戏脚本高级编程 +(2006) -gescript->gamescriptingmastery - - + +gescript->gamescriptingmastery + + -geoptimization - -优化 + +geoptimization + +优化 -videogameoptimization + +videogameoptimization - -Video Game -Optimization (2010) + +Video Game +Optimization (2010) -geoptimization->videogameoptimization - - + +geoptimization->videogameoptimization + + -getool - -工具开发 + +getool + +工具开发 -gamedevtools + +gamedevtools - -Game Development -Tools (2011) + +Game Development +Tools (2011) -getool->gamedevtools - - + +getool->gamedevtools + + -gameenginearchitecture2->gearticles - - + +gameenginearchitecture2->gearticles + + -gameenginearchitecture2->gescript - - + +gameenginearchitecture2->gescript + + -gameenginearchitecture2->geoptimization - - + +gameenginearchitecture2->geoptimization + + -gameenginearchitecture2->getool - - + +gameenginearchitecture2->getool + + -3dgameenginearchitecture + +3dgameenginearchitecture - -3D Game Engine -Architecture -(2004) + +3D Game Engine +Architecture +(2004) -gameenginearchitecture2->3dgameenginearchitecture - - + +gameenginearchitecture2->3dgameenginearchitecture + + -gameenginedesign2 + +gameenginedesign2 - -3D Game Engine -Design -2nd Ed (2006) + +3D Game Engine +Design +2nd Ed (2006) -3dgameenginearchitecture->gameenginedesign2 - - + +3dgameenginearchitecture->gameenginedesign2 + + -gameenginegems2 + +gameenginegems2 - -Game Engine -Gems 2 (2011) + +Game Engine +Gems 2 (2011) -gameenginegems1->gameenginegems2 - - + +gameenginegems1->gameenginegems2 + + -gameenginegems3 + +gameenginegems3 - -Game Engine -Gems 3 (2016) + +Game Engine +Gems 3 (2016) -gameenginegems2->gameenginegems3 - - + +gameenginegems2->gameenginegems3 + + -languageimplpatterns + +languageimplpatterns - -编程语言实现模式 -(2012) + +编程语言实现模式 +(2012) -gamescriptingmastery->languageimplpatterns - - + +gamescriptingmastery->languageimplpatterns + + -garbagecollectionhandbook + +garbagecollectionhandbook - -垃圾回收算法手册: -自动内存管理的艺术 -(2016) + +垃圾回收算法手册: +自动内存管理的艺术 +(2016) -languageimplpatterns->garbagecollectionhandbook - - + +languageimplpatterns->garbagecollectionhandbook + + -unity5gameoptimization + +unity5gameoptimization - -Unity 5 Game -Optimization (2015) + +Unity 5 Game +Optimization (2015) -hackersdelight2 + +hackersdelight2 - -算法心得:高效算法的奥秘(原书第2版) -(2014) + +算法心得:高效算法的奥秘(原书第2版) +(2014) -unity5gameoptimization->hackersdelight2 - - + +unity5gameoptimization->hackersdelight2 + + -videogameoptimization->unity5gameoptimization - - + +videogameoptimization->unity5gameoptimization + + -modernx86assembly + +modernx86assembly - -Modern X86 -Assembly Language -Programming (2014) + +Modern X86 +Assembly Language +Programming (2014) -hackersdelight2->modernx86assembly - - + +hackersdelight2->modernx86assembly + + -gpgpu + +gpgpu - -GPGPU Programming -for Games and Science -(2014) + +GPGPU Programming +for Games and Science +(2014) -hackersdelight2->gpgpu - - + +hackersdelight2->gpgpu + + -vectorgamemathprocessors + +vectorgamemathprocessors - -Vector Games -Math Processors -(2002) + +Vector Games +Math Processors +(2002) -hackersdelight2->vectorgamemathprocessors - - + +hackersdelight2->vectorgamemathprocessors + + -designinguxgamedevtools + +designinguxgamedevtools - -Designing the User -Experience of Game -Development Tools (2015) + +Designing the User +Experience of Game +Development Tools (2015) -gamedevtools->designinguxgamedevtools - - + +gamedevtools->designinguxgamedevtools + + -cgbegin - -游戏图形学初级 + +cgbegin + +游戏图形学初级 -rt3drendering + +rt3drendering - -Real-Time 3D -Rendering with DirectX -and HLSL (2014) + +Real-Time 3D +Rendering with DirectX +and HLSL (2014) -cgbegin->rt3drendering - - + +cgbegin->rt3drendering + + -3dgpdx12 + +3dgpdx12 - -DirectX 9.0 3D游戏开发编程基础 -(2007) + +DirectX 9.0 3D游戏开发编程基础 +(2007) -cgbegin->3dgpdx12 - - + +cgbegin->3dgpdx12 + + -oglguide9 + +oglguide9 - -OpenGL编程指南(原书第8版) -(2014) + +OpenGL编程指南(原书第8版) +(2014) -cgbegin->oglguide9 - - + +cgbegin->oglguide9 + + -cgtheory - -图形学理论初级 + +cgtheory + +图形学理论初级 -fundamentalscg4 + +fundamentalscg4 - -计算机图形学 -(2007) + +计算机图形学 +(2007) -cgtheory->fundamentalscg4 - - + +cgtheory->fundamentalscg4 + + -cgpp3 + +cgpp3 - -计算机图形学原理及实践: -C语言描述(原书第2版) -(2004) + +计算机图形学原理及实践: +C语言描述(原书第2版) +(2004) -cgtheory->cgpp3 - - + +cgtheory->cgpp3 + + -pdis + +pdis - -Principles of Digital -Image Synthesis -(PODIS) (1995) + +Principles of Digital +Image Synthesis +(PODIS) (1995) -cgtheory->pdis - - + +cgtheory->pdis + + -digitalimageprocessing3 + +digitalimageprocessing3 - -数字图像处理 -(2010) + +数字图像处理 +(2010) -cgtheory->digitalimageprocessing3 - - + +cgtheory->digitalimageprocessing3 + + -cgadvanced - -图形学进阶 + +cgadvanced + +图形学进阶 -realtimerendering - -实时渲染 + +realtimerendering + +实时渲染 -cgadvanced->realtimerendering - - + +cgadvanced->realtimerendering + + -offlinerendering - -离线渲染 + +offlinerendering + +离线渲染 -cgadvanced->offlinerendering - - + +cgadvanced->offlinerendering + + -cgtech - -图形学技术 + +cgtech + +图形学技术 -cgadvanced->cgtech - - + +cgadvanced->cgtech + + -rtr3 + +rtr3 - -实时计算机图形学 -(2004) + +实时计算机图形学 +(2004) -realtimerendering->rtr3 - - + +realtimerendering->rtr3 + + -tricks3dgpgurus + +tricks3dgpgurus - -3D游戏编程大师技巧 -(2005) + +3D游戏编程大师技巧 +(2005) -realtimerendering->tricks3dgpgurus - - + +realtimerendering->tricks3dgpgurus + + -pbrt3 - - -Physically Based -Rendering (PBRT) -3rd Ed (2016) + +pbrt3 + + +Physically Based +Rendering (PBRT) +3rd Ed (2016) -offlinerendering->pbrt3 - - + +offlinerendering->pbrt3 + + -raytracingfromgroundup - - -光线跟踪算法技术 -(2011) + +raytracingfromgroundup + + +光线跟踪算法技术 +(2011) -offlinerendering->raytracingfromgroundup - - + +offlinerendering->raytracingfromgroundup + + -d3d - -Direct3D + +d3d + +Direct3D -practiald3d11 + +practiald3d11 - -Practical Rendering -and Computation -with Direct3D 11 (2011) + +Practical Rendering +and Computation +with Direct3D 11 (2011) -d3d->practiald3d11 - - + +d3d->practiald3d11 + + -ogl - -OpenGL + +ogl + +OpenGL -oglsuper7 + +oglsuper7 - -OpenGL Super Bible -7th Ed (2015) + +OpenGL Super Bible +7th Ed (2015) -ogl->oglsuper7 - - + +ogl->oglsuper7 + + -cgmisc - -图形学文选 + +cgmisc + +图形学文选 -cgtech->cgmisc - - + +cgtech->cgmisc + + -texturingmodeling3 - - -Texturing and Modeling -(2002) + +texturingmodeling3 + + +Texturing and Modeling +(2002) -cgtech->texturingmodeling3 - - + +cgtech->texturingmodeling3 + + -lod - - -Level of Detail -for 3D Graphics (2002) + +lod + + +Level of Detail +for 3D Graphics (2002) -cgtech->lod - - + +cgtech->lod + + -npr - - -Non-Photorealistic -Rendering (2001) + +npr + + +Non-Photorealistic +Rendering (2001) -cgtech->npr - - + +cgtech->npr + + -graphicsgems - - -Graphics Gems (1990) + +graphicsgems + + +Graphics Gems (1990) -cgmisc->graphicsgems - - + +cgmisc->graphicsgems + + -blinn1 - - -Jim Blinn's Corner: -A Trip Down -the Graphics Pipeline (1997) + +blinn1 + + +Jim Blinn's Corner: +A Trip Down +the Graphics Pipeline (1997) -cgmisc->blinn1 - - + +cgmisc->blinn1 + + -rt3drendering->cgtheory - - + +rt3drendering->cgtheory + + -3dgpdx12->cgtheory - - + +3dgpdx12->cgtheory + + -oglguide9->cgtheory - - + +oglguide9->cgtheory + + -fundamentalscg4->cgadvanced - - + +fundamentalscg4->cgadvanced + + -cgpp3->cgadvanced - - + +cgpp3->cgadvanced + + -pdis->cgadvanced - - + +pdis->cgadvanced + + -digitalimageprocessing3->cgadvanced - - + +digitalimageprocessing3->cgadvanced + + -graphicsshaders2 + +graphicsshaders2 - -图形着色器 -(2013) + +图形着色器 +(2013) -ogles3guide2 + +ogles3guide2 - -OpenGL ES 3.0编程指南 -(2015) + +OpenGL ES 3.0编程指南 +(2015) -graphicsshaders2->ogles3guide2 - - + +graphicsshaders2->ogles3guide2 + + -glsl3 + +glsl3 - -OpenGL着色语言 -(2006) + +OpenGL着色语言 +(2006) -glsl3->ogles3guide2 - - + +glsl3->ogles3guide2 + + -oglsuper7->graphicsshaders2 - - + +oglsuper7->graphicsshaders2 + + -oglsuper7->glsl3 - - + +oglsuper7->glsl3 + + -oglinsights + +oglinsights - -OpenGL Insights (2012) + +OpenGL Insights (2012) -ogles3guide2->oglinsights - - + +ogles3guide2->oglinsights + + -vulkanguide + +vulkanguide - -Vulkan Programming -Guide (2016) + +Vulkan Programming +Guide (2016) -oglinsights->vulkanguide - - + +oglinsights->vulkanguide + + -rtr3->d3d - - + +rtr3->d3d + + -rtr3->ogl - - + +rtr3->ogl + + -realtimeshadows + +realtimeshadows - -实时阴影技术 -(2013) + +实时阴影技术 +(2013) -rtr3->realtimeshadows - - + +rtr3->realtimeshadows + + -rtvolumegraphics + +rtvolumegraphics - -Real-Time Volume -Graphics (2006) + +Real-Time Volume +Graphics (2006) -rtr3->rtvolumegraphics - - + +rtr3->rtvolumegraphics + + -graphicsprogrammingmethods + +graphicsprogrammingmethods - -Graphics Programming -Methods (2003) + +Graphics Programming +Methods (2003) -rtr3->graphicsprogrammingmethods - - + +rtr3->graphicsprogrammingmethods + + + + +shaderx + + +ShaderX (1996) + + + + + +graphicsprogrammingmethods->shaderx + + + + + +shaderx2 + + +ShaderX2 (2003) + + + + + +shaderx->shaderx2 + + + + + +shaderx3 + + +ShaderX3 (2004) + + + + + +shaderx2->shaderx3 + + + + + +shaderx4 + + +ShaderX4 (2006) + + + + + +shaderx3->shaderx4 + + + + + +shaderx5 + + +ShaderX5 (2006) + + + + + +shaderx4->shaderx5 + + + + + +shaderx6 + + +ShaderX6 (2008) + + + + + +shaderx5->shaderx6 + + + + + +shaderx7 + + +ShaderX7 (2009) + + + + + +shaderx6->shaderx7 + + + -gpugems - - -GPU精粹 -(2006) + +gpugems + + +GPU精粹 +(2006) - -graphicsprogrammingmethods->gpugems - - + + +shaderx7->gpugems + + -gpugems2 - - -GPU精粹2 -(2007) + +gpugems2 + + +GPU精粹2 +(2007) -gpugems->gpugems2 - - + +gpugems->gpugems2 + + -gpugems3 - - -GPU精粹3 -(2010) + +gpugems3 + + +GPU精粹3 +(2010) -gpugems2->gpugems3 - - + +gpugems2->gpugems3 + + -gpupro - - -GPU Pro (2010) + +gpupro + + +GPU Pro (2010) -gpugems3->gpupro - - + +gpugems3->gpupro + + -gpupro2 - - -GPU Pro 2 (2011) + +gpupro2 + + +GPU Pro 2 (2011) -gpupro->gpupro2 - - + +gpupro->gpupro2 + + -gpupro3 - - -GPU Pro 3 (2012) + +gpupro3 + + +GPU Pro 3 (2012) -gpupro2->gpupro3 - - + +gpupro2->gpupro3 + + -gpupro4 - - -GPU Pro 4 (2013) + +gpupro4 + + +GPU Pro 4 (2013) -gpupro3->gpupro4 - - + +gpupro3->gpupro4 + + -gpupro5 - - -GPU Pro 5 (2014) + +gpupro5 + + +GPU Pro 5 (2014) -gpupro4->gpupro5 - - + +gpupro4->gpupro5 + + -gpupro6 - - -GPU Pro 6 (2015) + +gpupro6 + + +GPU Pro 6 (2015) -gpupro5->gpupro6 - - + +gpupro5->gpupro6 + + -gpupro7 - - -GPU Pro 7 (2016) + +gpupro7 + + +GPU Pro 7 (2016) -gpupro6->gpupro7 - - + +gpupro6->gpupro7 + + + + + +gpuzen + + +GPU Zen (2017) + + + + +gpupro7->gpuzen + + + + + -advancedgi2 - - -Advanced -Global Illumination -2nd Ed (2006) + +advancedgi2 + + +Advanced +Global Illumination +2nd Ed (2006) -pbrt3->advancedgi2 - - + +pbrt3->advancedgi2 + + -raytracingfromgroundup->pbrt3 - - + +raytracingfromgroundup->pbrt3 + + -productionvolumerendering - - -Production Volume -Rendering (2012) + +productionvolumerendering + + +Production Volume +Rendering (2012) -advancedgi2->productionvolumerendering - - + +advancedgi2->productionvolumerendering + + -polygonmeshprocessing - - -Polygon Mesh -Processing (2010) + +polygonmeshprocessing + + +Polygon Mesh +Processing (2010) -texturingmodeling3->polygonmeshprocessing - - + +texturingmodeling3->polygonmeshprocessing + + -3denginedesignvirtualglobes - - -3D Engine Design -for Virtual Globes (2011) + +3denginedesignvirtualglobes + + +3D Engine Design +for Virtual Globes (2011) -lod->3denginedesignvirtualglobes - - + +lod->3denginedesignvirtualglobes + + -isosurfaces - - -Isosurfaces (2013) + +isosurfaces + + +Isosurfaces (2013) -polygonmeshprocessing->isosurfaces - - + +polygonmeshprocessing->isosurfaces + + -npcg - - -Non-Photorealistic -Computer Graphics -(2002) + +npcg + + +Non-Photorealistic +Computer Graphics +(2002) -npr->npcg - - + +npr->npcg + + -graphicsgems2 - - -Graphics Gems II (1991) + +graphicsgems2 + + +Graphics Gems II (1991) -graphicsgems->graphicsgems2 - - + +graphicsgems->graphicsgems2 + + -graphicsgems3 - - -Graphics Gems III (1994) + +graphicsgems3 + + +Graphics Gems III (1994) -graphicsgems2->graphicsgems3 - - + +graphicsgems2->graphicsgems3 + + -graphicsgems4 - - -Graphics Gems IV (1994) + +graphicsgems4 + + +Graphics Gems IV (1994) -graphicsgems3->graphicsgems4 - - + +graphicsgems3->graphicsgems4 + + -graphicsgems5 - - -Graphics Gems V (1995) + +graphicsgems5 + + +Graphics Gems V (1995) -graphicsgems4->graphicsgems5 - - + +graphicsgems4->graphicsgems5 + + -blinn2 - - -Jim Blinn's Corner: -Dirty Pixels (1998) + +blinn2 + + +Jim Blinn's Corner: +Dirty Pixels (1998) -blinn1->blinn2 - - + +blinn1->blinn2 + + -glassenernotebook1 - - -Andrew Glassner's -Notebook (1999) + +glassenernotebook1 + + +Andrew Glassner's +Notebook (1999) -blinn2->glassenernotebook1 - - + +blinn2->glassenernotebook1 + + -blinn3 - - -Jim Blinn's Corner: -Notation, Notation, -Notation (2002) + +blinn3 + + +Jim Blinn's Corner: +Notation, Notation, +Notation (2002) -glassenernotebook2 - - -Andrew Glassner's -Other Notebook (2002) + +glassenernotebook2 + + +Andrew Glassner's +Other Notebook (2002) -blinn3->glassenernotebook2 - - + +blinn3->glassenernotebook2 + + -glassenernotebook1->blinn3 - - + +glassenernotebook1->blinn3 + + -magiccg - - -The Magic of -Computer Graphics (2011) + +magiccg + + +The Magic of +Computer Graphics (2011) -glassenernotebook2->magiccg - - + +glassenernotebook2->magiccg + + - - -audiobegin - -游戏音频编程 + +audiobegin + +游戏音频编程 -gameaudioprogramming - - -Game Audio -Programming (2016) + +gameaudioprogramming + + +Game Audio +Programming (2016) -audiobegin->gameaudioprogramming - - + +audiobegin->gameaudioprogramming + + -gettingstartedcppaudio - - -Getting Started -with C++ Audio Programming -for Game Development (2013) + +gettingstartedcppaudio + + +Getting Started +with C++ Audio Programming +for Game Development (2013) -audiobegin->gettingstartedcppaudio - - + +audiobegin->gettingstartedcppaudio + + @@ -3052,310 +3627,389 @@ -animbegin - -游戏动画初阶 + +animbegin + +游戏动画初阶 -natureofcode - - -代码本色:用编程模拟自然系统 -(2014) + +natureofcode + + +代码本色:用编程模拟自然系统 +(2014) -animbegin->natureofcode - - + +animbegin->natureofcode + + -characteranimation - - -Character Animation -with Direct3D (2011) + +characteranimation + + +Character Animation +with Direct3D (2011) -animbegin->characteranimation - - + +animbegin->characteranimation + + -rt3dcharacteranimation - - -Real-time 3D -Character Animation -with Visual C++ (2001) + +rt3dcharacteranimation + + +Real-time 3D +Character Animation +with Visual C++ (2001) -animbegin->rt3dcharacteranimation - - + +animbegin->rt3dcharacteranimation + + -animadvanced - -游戏动画进阶 + +animadvanced + +游戏动画进阶 -fluid - -流体动画/模拟 + +fluid + +流体动画/模拟 -animadvanced->fluid - - + +animadvanced->fluid + + -gameik - - -Game Inverse -Kinematics (2013) + +gameik + + +Game Inverse +Kinematics (2013) -animadvanced->gameik - - + +animadvanced->gameik + + -physicsbasedanimation - - -Physics Based -Animation (2005) + +physicsbasedanimation + + +Physics Based +Animation (2005) -animadvanced->physicsbasedanimation - - + +animadvanced->physicsbasedanimation + + -rtcameras - - -Real-Time Cameras -(2009) + +rtcameras + + +Real-Time Cameras +(2009) -animadvanced->rtcameras - - + +animadvanced->rtcameras + + -phybegin - -游戏物理初阶 + +phybegin + +游戏物理初阶 -phybegin->natureofcode - - + +phybegin->natureofcode + + -physicsforgameprogrammers - - -Physics for Game -Programmers (2003) + +physicsforgameprogrammers + + +Physics for Game +Programmers (2003) -phybegin->physicsforgameprogrammers - - + +phybegin->physicsforgameprogrammers + + -physicsforgamedevelopers2 - - -游戏开发物理学 第2版 -(2015) + +physicsforgamedevelopers2 + + +游戏开发物理学 第2版 +(2015) -phybegin->physicsforgamedevelopers2 - - + +phybegin->physicsforgamedevelopers2 + + -phyadvanced - -游戏物理进阶 + +phyadvanced + +游戏物理进阶 -phyadvanced->fluid - - + +phyadvanced->fluid + + - -gamephysicspearls - - -Game Physics Pearls -(2010) + + +fpbma + + +Foundations of Physically +Based Modeling and +Animation (2017) - -phyadvanced->gamephysicspearls - - + + +phyadvanced->fpbma + + - -taofluidanimation - - -The Art of -Fluid Animation (2015) + + +fluidenginedev + + +Fluid Engine Development (2016) - -fluid->taofluidanimation - - + + +fluid->fluidenginedev + + -computeranimation3 - - -Computer Animation -3rd Ed (2012) + +computeranimation3 + + +Computer Animation +3rd Ed (2012) -characteranimation->computeranimation3 - - + +characteranimation->computeranimation3 + + -rt3dcharacteranimation->computeranimation3 - - + +rt3dcharacteranimation->computeranimation3 + + -computeranimation3->animadvanced - - + +computeranimation3->animadvanced + + -physicsforgameprogrammers->physicsforgamedevelopers2 - - + +physicsforgameprogrammers->physicsforgamedevelopers2 + + -physicsmodeling - - -Physics Modeling -for Game Programmers (2004) + +physicsmodeling + + +Physics Modeling +for Game Programmers (2004) -physicsforgameprogrammers->physicsmodeling - - + +physicsforgameprogrammers->physicsmodeling + + -physicsforgamedevelopers2->phyadvanced - - + +physicsforgamedevelopers2->phyadvanced + + -physicsmodeling->phyadvanced - - + +physicsmodeling->phyadvanced + + + + + +gamephysicspearls + + +Game Physics Pearls +(2010) + + + + + +fpbma->gamephysicspearls + + -gamephysicsenginedev2 - - -游戏物理引擎开发 -(2013) + +gamephysicsenginedev2 + + +游戏物理引擎开发 +(2013) -gamephysics2 - - -Game Physics 2nd Ed (2010) + +gamephysics2 + + +Game Physics 2nd Ed (2010) -gamephysicsenginedev2->gamephysics2 - - + +gamephysicsenginedev2->gamephysics2 + + -collisiondetection3denv - - -Collision Detection -in Interactive 3D -Environments (2003) + +collisiondetection3denv + + +Collision Detection +in Interactive 3D +Environments (2003) -rtcollisiondetection - - -实时碰撞检测算法技术 -(2010) + +rtcollisiondetection + + +实时碰撞检测算法技术 +(2010) -collisiondetection3denv->rtcollisiondetection - - + +collisiondetection3denv->rtcollisiondetection + + -gamephysicspearls->gamephysicsenginedev2 - - + +gamephysicspearls->gamephysicsenginedev2 + + -gamephysicspearls->collisiondetection3denv - - + +gamephysicspearls->collisiondetection3denv + + + + + +taofluidanimation + + +The Art of +Fluid Animation (2015) + + + + + +fluidenginedev->taofluidanimation + + -fluidsimulationforcg2 - - -Fluid Simulation -for Computer Graphics -2nd Ed (2015) + +fluidsimulationforcg2 + + +Fluid Simulation +for Computer Graphics +2nd Ed (2015) -taofluidanimation->fluidsimulationforcg2 - - + +taofluidanimation->fluidsimulationforcg2 + + @@ -3364,454 +4018,536 @@ -aibegin - -游戏AI初阶 + +aibegin + +游戏AI初阶 -aiforgames2 - - -Artificial Intelligence -for Games 2nd Ed (2009) + +aiforgames2 + + +Artificial Intelligence +for Games 2nd Ed (2009) -aibegin->aiforgames2 - - + +aibegin->aiforgames2 + + -aiforgd - - -游戏开发中的人工智能 -(2006) + +aiforgd + + +游戏开发中的人工智能 +(2006) -aibegin->aiforgd - - + +aibegin->aiforgd + + -proggameaibyexample - - -游戏人工智能编程 -案例精粹 -(2012) + +proggameaibyexample + + +游戏人工智能编程 +案例精粹 +(2012) -aibegin->proggameaibyexample - - + +aibegin->proggameaibyexample + + -unityaigp2 - - -Unity人工智能游戏开发(第2版)  -(2016) + +unityaigp2 + + +Unity人工智能游戏开发(第2版)  +(2016) -aibegin->unityaigp2 - - + +aibegin->unityaigp2 + + -aiintermediate - -中级游戏AI + +aiintermediate + +中级游戏AI -aima3 - - -人工智能 -(2004) + +aima3 + + +人工智能 +(2004) -aiintermediate->aima3 - - + +aiintermediate->aima3 + + -behavioralmathforgameai - - -Behavioral Mathematics -for Game AI (2009) + +behavioralmathforgameai + + +Behavioral Mathematics +for Game AI (2009) -aiintermediate->behavioralmathforgameai - - + +aiintermediate->behavioralmathforgameai + + -aimisc - -游戏AI文选 + +aimisc + +游戏AI文选 -aigpwisdom - - -AI Game Programming -Wisdom (2002) + +aigpwisdom + + +AI Game Programming +Wisdom (2002) -aimisc->aigpwisdom - - + +aimisc->aigpwisdom + + -aiforgames2->aiintermediate - - + +aiforgames2->aiintermediate + + -aiforgd->aiintermediate - - + +aiforgd->aiintermediate + + -proggameaibyexample->aiintermediate - - + +proggameaibyexample->aiintermediate + + -unityaigp2->aiintermediate - - + +unityaigp2->aiintermediate + + -aima3->aimisc - - + +aima3->aimisc + + -behavioralmathforgameai->aimisc - - + +behavioralmathforgameai->aimisc + + -aigpwisdom2 - - -AI Game Programming -Wisdom 2 (2003) + +aigpwisdom2 + + +AI Game Programming +Wisdom 2 (2003) -aigpwisdom->aigpwisdom2 - - + +aigpwisdom->aigpwisdom2 + + -aigpwisdom3 - - -AI Game Programming -Wisdom 3 (2006) + +aigpwisdom3 + + +AI Game Programming +Wisdom 3 (2006) -aigpwisdom2->aigpwisdom3 - - + +aigpwisdom2->aigpwisdom3 + + -aigpwisdom4 - - -AI Game Programming -Wisdom 4 (2008) + +aigpwisdom4 + + +AI Game Programming +Wisdom 4 (2008) -aigpwisdom3->aigpwisdom4 - - + +aigpwisdom3->aigpwisdom4 + + -gameaipro - - -Game AI Pro (2013) + +gameaipro + + +Game AI Pro (2013) -aigpwisdom4->gameaipro - - + +aigpwisdom4->gameaipro + + -gameaipro2 - - -Game AI Pro 2 (2015) + +gameaipro2 + + +Game AI Pro 2 (2015) -gameaipro->gameaipro2 - - + +gameaipro->gameaipro2 + + + + + +gameaipro3 + + +Game AI Pro 3 (2017) + + + + + +gameaipro2->gameaipro3 + + - + -multiplayerbegin - -多人游戏编程初阶 + +multiplayerbegin + +多人游戏编程初阶 -multiplayergp - - -Multiplayer Game -Programming (2015) + +multiplayergp + + +Multiplayer Game +Programming (2015) -multiplayerbegin->multiplayergp - - + +multiplayerbegin->multiplayergp + + -multiplayermisc - -多人游戏编程文选 + +multiplayermisc + +多人游戏编程文选 -massivelymultiplayergd - - -大型多人在线游戏开发 -(2006) + +massivelymultiplayergd + + +大型多人在线游戏开发 +(2006) -multiplayermisc->massivelymultiplayergd - - + +multiplayermisc->massivelymultiplayergd + + -serverprog - -服务器编程 + +serverprog + +服务器编程 -progposixthreads - - -POSIX多线程程序设计 -(2003) + +progposixthreads + + +POSIX多线程程序设计 +(2003) -serverprog->progposixthreads - - + +serverprog->progposixthreads + + -networkprotocol - -网络协议 + +networkprotocol + +网络协议 -tcpipillustratedv1_2 - - -TCP/IP详解 - 卷1:协议 -(2016) + +tcpipillustratedv1_2 + + +TCP/IP详解 + 卷1:协议 +(2016) -networkprotocol->tcpipillustratedv1_2 - - + +networkprotocol->tcpipillustratedv1_2 + + -networkprog - -网络编程 + +networkprog + +网络编程 -unixnetworkprogv1_3 - - -UNIX网络编程 - 卷1:套接字联网API(第3版) -(2014) + +unixnetworkprogv1_3 + + +UNIX网络编程 + 卷1:套接字联网API(第3版) +(2014) -networkprog->unixnetworkprogv1_3 - - + +networkprog->unixnetworkprogv1_3 + + -multiplayergp->multiplayermisc - - + +multiplayergp->multiplayermisc + + -multiplayergp->serverprog - - + +multiplayergp->serverprog + + -multiplayergp->networkprotocol - - + +multiplayergp->networkprotocol + + -multiplayergp->networkprog - - + +multiplayergp->networkprog + + -massivelymultiplayergd2 - - -Massively Multiplayer -Game Development 2 -(2005) + +massivelymultiplayergd2 + + +Massively Multiplayer +Game Development 2 +(2005) -massivelymultiplayergd->massivelymultiplayergd2 - - + +massivelymultiplayergd->massivelymultiplayergd2 + + -advancedprogunixenv3 - - -UNIX环境高级编程(第3版) -(2014) + +advancedprogunixenv3 + + +UNIX环境高级编程(第3版) +(2014) -progposixthreads->advancedprogunixenv3 - - + +progposixthreads->advancedprogunixenv3 + + -linuxsystemprog2 - - -Linux 系统编程(第二版) -(2014) + +linuxsystemprog2 + + +Linux 系统编程(第二版) +(2014) -advancedprogunixenv3->linuxsystemprog2 - - + +advancedprogunixenv3->linuxsystemprog2 + + -tcpipillustratedv2 - - -TCP/IP详解 - 卷2:实现 -(2004) + +tcpipillustratedv2 + + +TCP/IP详解 + 卷2:实现 +(2004) -tcpipillustratedv1_2->tcpipillustratedv2 - - + +tcpipillustratedv1_2->tcpipillustratedv2 + + -tcpipillustratedv3 - - -TCP/IP详解 - 卷3:TCP事务协议、 -HTTP、NNTP -和UNIX域协议 -(2000) + +tcpipillustratedv3 + + +TCP/IP详解 + 卷3:TCP事务协议、 +HTTP、NNTP +和UNIX域协议 +(2000) -tcpipillustratedv2->tcpipillustratedv3 - - + +tcpipillustratedv2->tcpipillustratedv3 + + -unixnetworkprogv2_2 - - -UNIX网络编程 - 卷2:进程间通信(第2版) -(2015) + +unixnetworkprogv2_2 + + +UNIX网络编程 + 卷2:进程间通信(第2版) +(2015) -unixnetworkprogv1_3->unixnetworkprogv2_2 - - + +unixnetworkprogv1_3->unixnetworkprogv2_2 + + -linuxnetworkinternals - - -深入理解 -LINUX网络技术内幕 -(2009) + +linuxnetworkinternals + + +深入理解 +LINUX网络技术内幕 +(2009) -unixnetworkprogv2_2->linuxnetworkinternals - - + +unixnetworkprogv2_2->linuxnetworkinternals + + -ccsa - - -This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. + +ccsa + + +This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. diff --git a/game-programmer.dot b/game-programmer.dot index 096fbbf..6fdcbea 100644 --- a/game-programmer.dot +++ b/game-programmer.dot @@ -27,7 +27,7 @@ digraph { - +
A STUDY PATH FOR
GAME PROGRAMMER
Milo Yip
2016/12/20
Milo Yip
2017/8/7
https://github.com/miloyip/game-programmer
> URL="https://github.com/miloyip/game-programmer"] @@ -99,7 +99,7 @@ digraph { learntoprogramwithscratch [label=<
Learn to Program
with Scratch
(2014)
> URL="https://www.amazon.com/dp/1593275439/"] helpyoukidswithcomputercoding [label=<
Help Your Kids
with Computer Coding
(2015)
> URL="https://www.amazon.com/dp/146541956X/"] - inventgamepython3 [label=<
Invent Your Own
Computer Games with
Python 3rd Ed (2015)
> URL="https://www.amazon.com/dp/1503212300/"] + inventgamepython4 [label=<
Invent Your Own
Computer Games with
Python 4th Ed (2016)
> URL="https://www.amazon.com/dp/1593277954/"] makinggamespython [label=<
Making Games with
Python & Pygame (2012)
> URL="https://www.amazon.com/dp/1469901730/"] learntoprogramwithminecraft [label=<
Learn to Program
with Minecraft (2015)
> URL="https://www.amazon.com/dp/1593276702/"] adventuresinminecraft [label=<
Adventures in
Minecraft (2014)
> URL="https://www.amazon.com/dp/111894691X/"] @@ -109,7 +109,7 @@ digraph { age8 -> codinggamesinscratch -> helpyoukidswithcomputercoding -> kidintermediate [arrowhead=normal, style=solid] age8 -> superscratchprogadv -> learntoprogramwithscratch -> kidintermediate - kidintermediate -> inventgamepython3 -> makinggamespython + kidintermediate -> inventgamepython4 -> makinggamespython kidintermediate -> learntoprogramwithminecraft -> adventuresinminecraft kidintermediate -> "3dgpforkids" @@ -131,9 +131,9 @@ digraph { csmath [label="Mathematics for CS"] } - sicp2 [label=<
Structure and Interpretation
of Computer Programs
(SICP) 2nd Ed (1996)
> URL="https://www.amazon.com/dp/0133001482/"] - csapp3 [label=<
Computer Systems
(CSAPP) 3rd Ed (2015)
> URL="https://www.amazon.com/dp/0133001482/"] - caaqa5 [label=<
Computer Architecture
(CAAQA) 5th Ed (2011)
> URL="https://www.amazon.com/dp/0123838738/"] + sicp2 [label=<
Structure and Interpretation
of Computer Programs
(SICP) 2nd Ed (1996)
> URL="https://www.amazon.com/dp/0262510871/"] + csapp3 [label=<
Computer Systems
(CSAPP) 3rd Ed (2015)
> URL="https://www.amazon.com/dp/013409266X/"] + caaqa5 [label=<
Computer Architecture
(CAAQA) 5th Ed (2011)
> URL="https://www.amazon.com/dp/012383872X/"] mos4 [label=<
Modern Operating
System (MOS)
4th Ed (2014)
> URL="https://www.amazon.com/dp/013359162X/"] clrs3 [label=<
Introduction to
Algorithms (CLRS)
3rd Ed (2009)
> URL="https://www.amazon.com/dp/0262033844/"] @@ -195,8 +195,8 @@ digraph { insidecppobjectmodel [label=<
Inside the C++
Object Model (1996)
> URL="https://www.amazon.com/dp/0201834545/"] imperfectcpp [label=<
Imperfect C++ (2004)
> URL="https://www.amazon.com/dp/0321228774/"] - cpptemplates [label=<
C++ Templates (2002)
> URL="https://www.amazon.com/dp/0201734842/"] - elementsofprogramming [label=<
Elements of
Programming (2009)
> URL="https://www.amazon.com/dp//"] + cpptemplates2 [label=<
C++ Templates 2nd Ed (2017)
> URL="https://www.amazon.com/dp/0321714121/"] + elementsofprogramming [label=<
Elements of
Programming (2009)
> URL="https://www.amazon.com/dp/032163537X/"] frommathtogeneric [label=<
From Mathematics
to Generic Programming
(2014)
> URL="https://www.amazon.com/dp/0321942043/"] moderncppdesign [label=<
Modern C++ Design (2001)
> URL="https://www.amazon.com/dp/0201704315/"] @@ -224,9 +224,9 @@ digraph { effectivemoderncpp -> optimizedcpp -> cppadvance cpppractice -> exceptionalcpp -> moreexceptionalcpp -> exceptionalcppstyle -> cppcodingstandard -> cppadvance cppadvance -> elementsofprogramming -> frommathtogeneric - cppadvance -> { insidecppobjectmodel; cpptemplates } + cppadvance -> { insidecppobjectmodel; cpptemplates2 } insidecppobjectmodel -> imperfectcpp - cpptemplates -> moderncppdesign + cpptemplates2 -> moderncppdesign lua -> programminginlua4 -> luaprogramminggems @@ -256,7 +256,7 @@ digraph { apidesignforcpp [label=<
API Design for C++
(2011)
> URL="https://www.amazon.com/dp/0123850037/"] agilesoftwaredev [label=<
Agile Software
Development (2002)
> URL="https://www.amazon.com/dp/0135974445/"] - designpatterns [label=<
Design Patterns (1994)
> URL="https://www.amazon.com/dp//"] + designpatterns [label=<
Design Patterns (1994)
> URL="https://www.amazon.com/dp/0201633612/"] headfirstdesignpatterns [label=<
Head First
Design Patterns (2004)
> URL="https://www.amazon.com/dp/0596007124/"] practiceofprogramming [label=<
The Practice of
Programming (1999)
> URL="https://www.amazon.com/dp/020161586X/"] cleancode [label=<
Clean Code (2008)
> URL="https://www.amazon.com/dp/0132350882/"] @@ -505,13 +505,23 @@ digraph { practiald3d11 [label=<
Practical Rendering
and Computation
with Direct3D 11 (2011)
> URL="https://www.amazon.com/dp/1568817207/"] rtr3 [label=<
Real-Time Rendering
(RTR) 3rd Ed (2008)
> URL="https://www.amazon.com/dp/1568814240/"] - tricks3dgpgurus [label=<
Tricks of the 3D
Game Programming
Gurus (2003)
> URL="https://www.amazon.com/dp//"] + tricks3dgpgurus [label=<
Tricks of the 3D
Game Programming
Gurus (2003)
> URL="https://www.amazon.com/dp/0672318350/"] realtimeshadows [label=<
Real-Time
Shadows (2011)
> URL="https://www.amazon.com/dp/1568814380/"] rtvolumegraphics [label=<
Real-Time Volume
Graphics (2006)
> URL="https://www.amazon.com/dp/1568812663/"] graphicsprogrammingmethods [label=<
Graphics Programming
Methods (2003)
> URL="https://www.amazon.com/dp/1584502991/"] + + shaderx [label=<
ShaderX (1996)
> URL="https://www.amazon.com/dp/1556220413/"] + shaderx2 [label=<
ShaderX2 (2003)
> URL="https://www.amazon.com/dp/1556229887/"] + shaderx3 [label=<
ShaderX3 (2004)
> URL="https://www.amazon.com/dp/1584503572/"] + shaderx4 [label=<
ShaderX4 (2006)
> URL="https://www.amazon.com/dp/1584504250/"] + shaderx5 [label=<
ShaderX5 (2006)
> URL="https://www.amazon.com/dp/1584504994/"] + shaderx6 [label=<
ShaderX6 (2008)
> URL="https://www.amazon.com/dp/1584505443/"] + shaderx7 [label=<
ShaderX7 (2009)
> URL="https://www.amazon.com/dp/1584505982/"] + gpugems [label=<
GPU Gems (2004)
> URL="https://www.amazon.com/dp/0321228324/"] gpugems2 [label=<
GPU Gems 2 (2005)
> URL="https://www.amazon.com/dp/0321335597/"] gpugems3 [label=<
GPU Gems 3 (2007)
> URL="https://www.amazon.com/dp/0321515269/"] + gpupro [label=<
GPU Pro (2010)
> URL="https://www.amazon.com/dp/1568814720/"] gpupro2 [label=<
GPU Pro 2 (2011)
> URL="https://www.amazon.com/dp/1568817185/"] gpupro3 [label=<
GPU Pro 3 (2012)
> URL="https://www.amazon.com/dp/1439887829/"] @@ -519,6 +529,8 @@ digraph { gpupro5 [label=<
GPU Pro 5 (2014)
> URL="https://www.amazon.com/dp/1482208636/"] gpupro6 [label=<
GPU Pro 6 (2015)
> URL="https://www.amazon.com/dp/1482264617/"] gpupro7 [label=<
GPU Pro 7 (2016)
> URL="https://www.amazon.com/dp/149874253X/"] + + gpuzen [label=<
GPU Zen (2017)
> URL="https://www.amazon.com/dp/0998822892/"] pbrt3 [label=<
Physically Based
Rendering (PBRT)
3rd Ed (2016)
> URL="https://www.amazon.com/dp/0128006455/"] raytracingfromgroundup [label=<
Ray Tracing from
the Ground Up
(2007)
> URL="https://www.amazon.com/dp/1568812728/"] @@ -562,8 +574,10 @@ digraph { realtimerendering -> rtr3 [arrowhead=normal, style=solid] realtimerendering -> tricks3dgpgurus - rtr3 -> graphicsprogrammingmethods -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7 - { rank=same;rtr3; rtvolumegraphics } + rtr3 -> graphicsprogrammingmethods -> shaderx -> shaderx2 -> shaderx3 -> shaderx4 -> shaderx5 -> shaderx6 -> shaderx7 -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7 -> gpuzen + { rank=same; rtr3; rtvolumegraphics } + { rank=same; gpupro; gpupro2; gpupro3; gpupro4 } + { rank=same; gpupro5; gpupro6; gpupro7; gpuzen } rtr3 -> { realtimeshadows; rtvolumegraphics } realtimeshadows -> graphicsprogrammingmethods [style=invis] tricks3dgpgurus -> realtimeshadows [style=invis] @@ -596,7 +610,7 @@ digraph { cgtop [fixedsize=true,width=8,height=0.01,style=invis,label=""] cgbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] cgtop -> cgbegin [style=invis] - glassenernotebook2 -> cgbottom [style=invis] + gpuzen -> cgbottom [style=invis] } subgraph cluster_audio { @@ -644,12 +658,14 @@ digraph { physicsforgamedevelopers2 [label=<
Physics for Game
Developers 2nd Ed (2013)
> URL="https://www.amazon.com/dp/1449392512/"] physicsmodeling [label=<
Physics Modeling
for Game Programmers (2004)
> URL="https://www.amazon.com/dp/1592000932/"] + fpbma [label=<
Foundations of Physically
Based Modeling and
Animation (2017)
> URL="https://www.amazon.com/dp/1482234602/"] gamephysicsenginedev2 [label=<
Game Physics Engine
Development 2nd Ed (2010)
> URL="https://www.amazon.com/dp/0123819768/"] gamephysics2 [label=<
Game Physics 2nd Ed (2010)
> URL="https://www.amazon.com/dp/0123749034/"] collisiondetection3denv [label=<
Collision Detection
in Interactive 3D
Environments (2003)
> URL="https://www.amazon.com/dp/155860801X/"] rtcollisiondetection [label=<
Real-Time Collision
Detection (2004)
> URL="https://www.amazon.com/dp/1558607323/"] gamephysicspearls [label=<
Game Physics Pearls
(2010)
> URL="https://www.amazon.com/dp/1568814747/"] + fluidenginedev [label=<
Fluid Engine Development (2016)
> URL="https://www.amazon.com/dp/1498719929/"] taofluidanimation [label=<
The Art of
Fluid Animation (2015)
> URL="https://www.amazon.com/dp/1498700209/"] fluidsimulationforcg2 [label=<
Fluid Simulation
for Computer Graphics
2nd Ed (2015)
> URL="https://www.amazon.com/dp/1482232839/"] @@ -664,11 +680,11 @@ digraph { { animbegin; phybegin } -> natureofcode - phyadvanced -> gamephysicspearls + phyadvanced -> fpbma -> gamephysicspearls gamephysicspearls -> collisiondetection3denv -> rtcollisiondetection gamephysicspearls -> gamephysicsenginedev2 -> gamephysics2 - { animadvanced; phyadvanced } -> fluid -> taofluidanimation -> fluidsimulationforcg2 + { animadvanced; phyadvanced } -> fluid -> fluidenginedev -> taofluidanimation -> fluidsimulationforcg2 phytop [fixedsize=true,width=8,height=0.01,style=invis,label=""] phybottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] @@ -697,15 +713,16 @@ digraph { { rank=same - aigpwisdom [label=<
AI Game Programming
Wisdom (2002)
> URL="https://www.amazon.com/dp//"] - aigpwisdom2 [label=<
AI Game Programming
Wisdom 2 (2003)
> URL="https://www.amazon.com/dp//"] - aigpwisdom3 [label=<
AI Game Programming
Wisdom 3 (2006)
> URL="https://www.amazon.com/dp//"] - aigpwisdom4 [label=<
AI Game Programming
Wisdom 4 (2008)
> URL="https://www.amazon.com/dp//"] + aigpwisdom [label=<
AI Game Programming
Wisdom (2002)
> URL="https://www.amazon.com/dp/1584500778/"] + aigpwisdom2 [label=<
AI Game Programming
Wisdom 2 (2003)
> URL="https://www.amazon.com/dp/1584502894/"] + aigpwisdom3 [label=<
AI Game Programming
Wisdom 3 (2006)
> URL="https://www.amazon.com/dp/1584504579/"] + aigpwisdom4 [label=<
AI Game Programming
Wisdom 4 (2008)
> URL="https://www.amazon.com/dp/1584505230/"] } { rank=same - gameaipro [label=<
Game AI Pro (2013)
> URL="https://www.amazon.com/dp//"] - gameaipro2 [label=<
Game AI Pro 2 (2015)
> URL="https://www.amazon.com/dp//"] + gameaipro [label=<
Game AI Pro (2013)
> URL="https://www.amazon.com/dp/1466565969/"] + gameaipro2 [label=<
Game AI Pro 2 (2015)
> URL="https://www.amazon.com/dp/1482254794/"] + gameaipro3 [label=<
Game AI Pro 3 (2017)
> URL="https://www.amazon.com/dp/1482254794/"] } aibegin -> aiforgames2 -> aiintermediate -> aima3 [arrowhead=normal, style=solid] @@ -714,12 +731,12 @@ digraph { aima3 -> aimisc aimisc -> aigpwisdom aigpwisdom -> aigpwisdom2 -> aigpwisdom3 -> aigpwisdom4 - aigpwisdom4 -> gameaipro -> gameaipro2 + aigpwisdom4 -> gameaipro -> gameaipro2 -> gameaipro3 aitop [fixedsize=true,width=8,height=0.01,style=invis,label=""] aibottom [fixedsize=true,width=8,height=0.01,style=invis,label=""] aitop -> aibegin [style=invis] - gameaipro2 -> aibottom [style=invis] + gameaipro3 -> aibottom [style=invis] } subgraph cluster_multiplayer { diff --git a/game-programmer.jpg b/game-programmer.jpg index 83797f6..b71f5d3 100644 Binary files a/game-programmer.jpg and b/game-programmer.jpg differ diff --git a/game-programmer.pdf b/game-programmer.pdf index 1f614f4..ebb6b09 100644 Binary files a/game-programmer.pdf and b/game-programmer.pdf differ diff --git a/game-programmer.png b/game-programmer.png index c12ab45..16691ca 100644 Binary files a/game-programmer.png and b/game-programmer.png differ diff --git a/game-programmer.svg b/game-programmer.svg index 0f9bb5d..689637c 100644 --- a/game-programmer.svg +++ b/game-programmer.svg @@ -1,198 +1,236 @@ - - - + + %3 - -cluster_toc - -cluster_legend - -Legends - -cluster_kid - -0. Game Programming for Kids - -cluster_cs - -1. Computer Science - -cluster_proglang - -2. Programming Languages - -cluster_se - -3. Software Development - -cluster_math - -4. Mathematics for Game Programming - -cluster_gameprog - -5. Game Programming - -cluster_engine - -6. Game Engine Development - -cluster_cg - -7. Computer Graphics (CG) - -cluster_audio - -8. Game Audio - -cluster_physics - -9. Game Physics and Animation - -cluster_ai - -10. Game Artificial Intelligence (AI) - -cluster_multiplayer - -11. Multiplayer Game Programming + + +cluster_gameprog + +5. Game Programming + + +cluster_cg + +7. Computer Graphics (CG) + + +cluster_audio + +8. Game Audio + + +cluster_ai + +10. Game Artificial Intelligence (AI) + + +cluster_multiplayer + +11. Multiplayer Game Programming + + +cluster_se + +3. Software Development + + +cluster_engine + +6. Game Engine Development + + +cluster_math + +4. Mathematics for Game Programming + + +cluster_toc + + +cluster_legend + +Legends + + +cluster_kid + +0. Game Programming for Kids + + +cluster_cs + +1. Computer Science + + +cluster_proglang + +2. Programming Languages + + +cluster_physics + +9. Game Physics and Animation -toctop + +toctop -A STUDY PATH FOR -GAME PROGRAMMER -Milo Yip -2016/12/20 -https://github.com/miloyip/game-programmer +A STUDY PATH FOR +GAME PROGRAMMER +Milo Yip +2017/7/26 +https://github.com/miloyip/game-programmer -kid - -0. Game Programming for Kids + +kid + +0. Game Programming for Kids -cs - -1. Computer Science + +cs + +1. Computer Science -kid->cs - - + +kid->cs + + -proglang - -2. Programming Languages + +proglang + +2. Programming Languages -cs->proglang - - + +cs->proglang + + -softwaredev - -3. Software Development + +softwaredev + +3. Software Development -proglang->softwaredev - - + +proglang->softwaredev + + -math - -4. Mathematics for Game Programming + +math + +4. Mathematics for Game Programming -softwaredev->math - - + +softwaredev->math + + -gameprog - -5. Game Programming + +gameprog + +5. Game Programming -math->gameprog - - + +math->gameprog + + -gameengine - -6. Game Engine Development + +gameengine + +6. Game Engine Development -gameprog->gameengine - - + +gameprog->gameengine + + -cg - -7. Computer Graphics + +cg + +7. Computer Graphics -gameengine:e->cg:e - - + +gameengine:e->cg:e + + -audio - -8. Game Audio + +audio + +8. Game Audio -gameengine:e->audio:e - - + +gameengine:e->audio:e + + -phyanim - -9. Game Physics and Animation + +phyanim + +9. Game Physics and Animation -gameengine:e->phyanim:e - - + +gameengine:e->phyanim:e + + -ai - -10. Game Artificial Intelligence + +ai + +10. Game Artificial Intelligence -gameengine:e->ai:e - - + +gameengine:e->ai:e + + -multiplayer - -11. Multiplayer Game Programming + +multiplayer + +11. Multiplayer Game Programming -gameengine:e->multiplayer:e - - + +gameengine:e->multiplayer:e + + @@ -200,28 +238,34 @@ -legendA1 -Recommended Path + +legendA1 +Recommended Path -legendA2 + +legendA2 -legendA1->legendA2 - - + +legendA1->legendA2 + + -legendB1 -Optional Path + +legendB1 +Optional Path -legendB2 + +legendB2 -legendB1->legendB2 - - + +legendB1->legendB2 + + @@ -231,179 +275,205 @@ -age5 - -Beginning from Age of 5 + +age5 + +Beginning from Age of 5 -scratchjr + +scratchjr - -The Official -ScratchJr Book (2015) + +The Official +ScratchJr Book (2015) -age5->scratchjr - - + +age5->scratchjr + + -age8 - -Beginning from Age of 8 + +age8 + +Beginning from Age of 8 -codinggamesinscratch + +codinggamesinscratch - -Coding Games -in Scratch -(2015) + +Coding Games +in Scratch +(2015) -age8->codinggamesinscratch - - + +age8->codinggamesinscratch + + -superscratchprogadv + +superscratchprogadv - -Super Scratch -Programming Adventure! -(2013) + +Super Scratch +Programming Adventure! +(2013) -age8->superscratchprogadv - - + +age8->superscratchprogadv + + -kidintermediate - -Intermediate Game Programming for Kids + +kidintermediate + +Intermediate Game Programming for Kids -inventgamepython3 + +inventgamepython3 - -Invent Your Own -Computer Games with -Python 3rd Ed (2015) + +Invent Your Own +Computer Games with +Python 3rd Ed (2015) -kidintermediate->inventgamepython3 - - + +kidintermediate->inventgamepython3 + + -learntoprogramwithminecraft + +learntoprogramwithminecraft - -Learn to Program -with Minecraft (2015) + +Learn to Program +with Minecraft (2015) -kidintermediate->learntoprogramwithminecraft - - + +kidintermediate->learntoprogramwithminecraft + + -3dgpforkids + +3dgpforkids - -3D Game Programming -for Kids (2013) + +3D Game Programming +for Kids (2013) -kidintermediate->3dgpforkids - - + +kidintermediate->3dgpforkids + + -scratchjr->age8 - - + +scratchjr->age8 + + -helpyoukidswithcomputercoding + +helpyoukidswithcomputercoding - -Help Your Kids -with Computer Coding -(2015) + +Help Your Kids +with Computer Coding +(2015) -codinggamesinscratch->helpyoukidswithcomputercoding - - + +codinggamesinscratch->helpyoukidswithcomputercoding + + -learntoprogramwithscratch + +learntoprogramwithscratch - -Learn to Program - with Scratch -(2014) + +Learn to Program + with Scratch +(2014) -superscratchprogadv->learntoprogramwithscratch - - + +superscratchprogadv->learntoprogramwithscratch + + -learntoprogramwithscratch->kidintermediate - - + +learntoprogramwithscratch->kidintermediate + + -helpyoukidswithcomputercoding->kidintermediate - - + +helpyoukidswithcomputercoding->kidintermediate + + -makinggamespython + +makinggamespython - -Making Games with -Python & Pygame (2012) + +Making Games with +Python & Pygame (2012) -inventgamepython3->makinggamespython - - + +inventgamepython3->makinggamespython + + -adventuresinminecraft + +adventuresinminecraft - -Adventures in -Minecraft (2014) + +Adventures in +Minecraft (2014) -learntoprogramwithminecraft->adventuresinminecraft - - + +learntoprogramwithminecraft->adventuresinminecraft + + @@ -412,151 +482,173 @@ -foundation - -CS Foundation + +foundation + +CS Foundation -sicp2 + +sicp2 - -Structure and Interpretation -of Computer Programs -(SICP) 2nd Ed (1996) + +Structure and Interpretation +of Computer Programs +(SICP) 2nd Ed (1996) -foundation->sicp2 - - + +foundation->sicp2 + + -csapp3 + +csapp3 - -Computer Systems -(CSAPP) 3rd Ed (2015) + +Computer Systems +(CSAPP) 3rd Ed (2015) -foundation->csapp3 - - + +foundation->csapp3 + + -algorithm - -Algorithm + +algorithm + +Algorithm -clrs3 + +clrs3 - -Introduction to -Algorithms (CLRS) -3rd Ed (2009) + +Introduction to +Algorithms (CLRS) +3rd Ed (2009) -algorithm->clrs3 - - + +algorithm->clrs3 + + -algorithms4 + +algorithms4 - -Algorithms -4th Ed (2011) + +Algorithms +4th Ed (2011) -algorithm->algorithms4 - - + +algorithm->algorithms4 + + -csmath - -Mathematics for CS + +csmath + +Mathematics for CS -concretemaths2 + +concretemaths2 - -Concrete Mathematics -2nd Ed (1994) + +Concrete Mathematics +2nd Ed (1994) -csmath->concretemaths2 - - + +csmath->concretemaths2 + + -caaqa5 + +caaqa5 - -Computer Architecture -(CAAQA) 5th Ed (2011) + +Computer Architecture +(CAAQA) 5th Ed (2011) -sicp2->caaqa5 - - + +sicp2->caaqa5 + + -mos4 + +mos4 - -Modern Operating -System (MOS) -4th Ed (2014) + +Modern Operating +System (MOS) +4th Ed (2014) -sicp2->mos4 - - + +sicp2->mos4 + + -csapp3->caaqa5 - - + +csapp3->caaqa5 + + -csapp3->mos4 - - + +csapp3->mos4 + + -algorithms4->clrs3 - - + +algorithms4->clrs3 + + -computationalscieng + +computationalscieng - -Computational Science -and Engineering (2007) + +Computational Science +and Engineering (2007) -concretemaths2->computationalscieng - - + +concretemaths2->computationalscieng + + @@ -564,445 +656,512 @@ -cbegin - -C + +cbegin + +C -tcpl2 + +tcpl2 - -The C Programming -Language (TCPL) -2nd Ed (1988) + +The C Programming +Language (TCPL) +2nd Ed (1988) -cbegin->tcpl2 - - + +cbegin->tcpl2 + + -lua - -Lua + +lua + +Lua -programminginlua4 + +programminginlua4 - -Programming in Lua -4th Ed (2016) + +Programming in Lua +4th Ed (2016) -lua->programminginlua4 - - + +lua->programminginlua4 + + -csharp - -C# + +csharp + +C# -mvcsharpstepbystep8 + +mvcsharpstepbystep8 - -Microsoft Visual C# -Step by Step -8th Ed (2015) + +Microsoft Visual C# +Step by Step +8th Ed (2015) -csharp->mvcsharpstepbystep8 - - + +csharp->mvcsharpstepbystep8 + + -cppbegin - -Beginning C++ + +cppbegin + +Beginning C++ -cppprimer5 + +cppprimer5 - -C++ Primer -(CPPP) 5th Ed (2012) + +C++ Primer +(CPPP) 5th Ed (2012) -cppbegin->cppprimer5 - - + +cppbegin->cppprimer5 + + -tcpppl4 + +tcpppl4 - -The C++ Programming -Language (TCPPPL) -4th Ed (2014) + +The C++ Programming +Language (TCPPPL) +4th Ed (2014) -cppbegin->tcpppl4 - - + +cppbegin->tcpppl4 + + -cpppractice - -C++ Practice + +cpppractice + +C++ Practice -exceptionalcpp + +exceptionalcpp - -Exceptional C++ -(1999) + +Exceptional C++ +(1999) -cpppractice->exceptionalcpp - - + +cpppractice->exceptionalcpp + + -effectivecpp3 + +effectivecpp3 - -Effective C++ -3rd Ed (2005) + +Effective C++ +3rd Ed (2005) -cpppractice->effectivecpp3 - - + +cpppractice->effectivecpp3 + + -cpplibrary - -C++ Standard Library + +cpplibrary + +C++ Standard Library -cppstandardlibrary2 + +cppstandardlibrary2 - -The C++ Standard -Library 2nd Ed (2012) + +The C++ Standard +Library 2nd Ed (2012) -cpplibrary->cppstandardlibrary2 - - + +cpplibrary->cppstandardlibrary2 + + -cppadvance - -Advanced C++ + +cppadvance + +Advanced C++ -insidecppobjectmodel + +insidecppobjectmodel - -Inside the C++ -Object Model (1996) + +Inside the C++ +Object Model (1996) -cppadvance->insidecppobjectmodel - - + +cppadvance->insidecppobjectmodel + + -cpptemplates + +cpptemplates - -C++ Templates (2002) + +C++ Templates (2002) -cppadvance->cpptemplates - - + +cppadvance->cpptemplates + + -elementsofprogramming - - -Elements of -Programming (2009) + +elementsofprogramming + + +Elements of +Programming (2009) -cppadvance->elementsofprogramming - - + +cppadvance->elementsofprogramming + + -tcpl2->cppbegin - - + +tcpl2->cppbegin + + -cppprimer5->cpppractice - - + +cppprimer5->cpppractice + + -cppprimer5->cpplibrary - - + +cppprimer5->cpplibrary + + -tcpppl4->cpplibrary - - + +tcpppl4->cpplibrary + + -cppconcurrencyinaction + +cppconcurrencyinaction - -C++ Concurrency -in Action (2012) + +C++ Concurrency +in Action (2012) -cppstandardlibrary2->cppconcurrencyinaction - - + +cppstandardlibrary2->cppconcurrencyinaction + + -effectivestl + +effectivestl - -Effective STL (2001) + +Effective STL (2001) -cppstandardlibrary2->effectivestl - - + +cppstandardlibrary2->effectivestl + + -boostcpplibraries2 + +boostcpplibraries2 - -The Boost C++ -Libraries 2nd Ed (2014) + +The Boost C++ +Libraries 2nd Ed (2014) -cppconcurrencyinaction->boostcpplibraries2 - - + +cppconcurrencyinaction->boostcpplibraries2 + + -moreexceptionalcpp + +moreexceptionalcpp - -More Exceptional -C++ (2001) + +More Exceptional +C++ (2001) -exceptionalcpp->moreexceptionalcpp - - + +exceptionalcpp->moreexceptionalcpp + + -exceptionalcppstyle + +exceptionalcppstyle - -Exceptional C++ -Style (2004) + +Exceptional C++ +Style (2004) -moreexceptionalcpp->exceptionalcppstyle - - + +moreexceptionalcpp->exceptionalcppstyle + + -cppcodingstandard + +cppcodingstandard - -C++ Coding -Standards (2004) + +C++ Coding +Standards (2004) -exceptionalcppstyle->cppcodingstandard - - + +exceptionalcppstyle->cppcodingstandard + + -cppcodingstandard->cppadvance - - + +cppcodingstandard->cppadvance + + -moreeffectivecpp3 + +moreeffectivecpp3 - -More Effective -C++ (1996) + +More Effective +C++ (1996) -effectivecpp3->moreeffectivecpp3 - - + +effectivecpp3->moreeffectivecpp3 + + -effectivemoderncpp + +effectivemoderncpp - -Effective Modern -C++ (2014) + +Effective Modern +C++ (2014) -effectivecpp3->effectivemoderncpp - - + +effectivecpp3->effectivemoderncpp + + -moreeffectivecpp3->effectivemoderncpp - - + +moreeffectivecpp3->effectivemoderncpp + + -effectivemoderncpp->cppcodingstandard - - + +effectivemoderncpp->cppcodingstandard + + -optimizedcpp + +optimizedcpp - -Optimized C++ -(2016) + +Optimized C++ +(2016) -effectivemoderncpp->optimizedcpp - - + +effectivemoderncpp->optimizedcpp + + -optimizedcpp->cppadvance - - + +optimizedcpp->cppadvance + + -imperfectcpp + +imperfectcpp - -Imperfect C++ (2004) + +Imperfect C++ (2004) -insidecppobjectmodel->imperfectcpp - - + +insidecppobjectmodel->imperfectcpp + + -moderncppdesign + +moderncppdesign - -Modern C++ Design (2001) + +Modern C++ Design (2001) -cpptemplates->moderncppdesign - - + +cpptemplates->moderncppdesign + + -frommathtogeneric + +frommathtogeneric - -From Mathematics -to Generic Programming -(2014) + +From Mathematics +to Generic Programming +(2014) -elementsofprogramming->frommathtogeneric - - + +elementsofprogramming->frommathtogeneric + + -luaprogramminggems + +luaprogramminggems - -Lua Programming -Gems (2008) + +Lua Programming +Gems (2008) -programminginlua4->luaprogramminggems - - + +programminginlua4->luaprogramminggems + + -csharpindepth3 + +csharpindepth3 - -C# in Depth -3rd Ed (2013) + +C# in Depth +3rd Ed (2013) -mvcsharpstepbystep8->csharpindepth3 - - + +mvcsharpstepbystep8->csharpindepth3 + + -clrviacsharp4 + +clrviacsharp4 - -CLR via C# -4th Ed (2012) + +CLR via C# +4th Ed (2012) -csharpindepth3->clrviacsharp4 - - + +csharpindepth3->clrviacsharp4 + + @@ -1010,395 +1169,453 @@ -sebegin - -Beginning Software Development + +sebegin + +Beginning Software Development -mythicalmanmonth2 + +mythicalmanmonth2 - -The Mythical Man-Month -2nd Ed (1995) + +The Mythical Man-Month +2nd Ed (1995) -sebegin->mythicalmanmonth2 - - + +sebegin->mythicalmanmonth2 + + -sepractice - -Practice + +sepractice + +Practice -practiceofprogramming + +practiceofprogramming - -The Practice of -Programming (1999) + +The Practice of +Programming (1999) -sepractice->practiceofprogramming - - + +sepractice->practiceofprogramming + + -dp - -Design Pattern + +dp + +Design Pattern -agilesoftwaredev + +agilesoftwaredev - -Agile Software -Development (2002) + +Agile Software +Development (2002) -dp->agilesoftwaredev - - + +dp->agilesoftwaredev + + -headfirstdesignpatterns + +headfirstdesignpatterns - -Head First -Design Patterns (2004) + +Head First +Design Patterns (2004) -dp->headfirstdesignpatterns - - + +dp->headfirstdesignpatterns + + -uml - -UML + +uml + +UML -umldistilled3 + +umldistilled3 - -UML Distilled -3rd Ed (2003) + +UML Distilled +3rd Ed (2003) -uml->umldistilled3 - - + +uml->umldistilled3 + + -mythicalmanmonth2->sepractice - - + +mythicalmanmonth2->sepractice + + -mythicalmanmonth2->dp - - + +mythicalmanmonth2->dp + + -mythicalmanmonth2->uml - - + +mythicalmanmonth2->uml + + -codecomplete2 + +codecomplete2 - -Code Complete 2 (2004) + +Code Complete 2 (2004) -apidesignforcpp + +apidesignforcpp - -API Design for C++ -(2011) + +API Design for C++ +(2011) -codecomplete2->apidesignforcpp - - + +codecomplete2->apidesignforcpp + + -cleancode + +cleancode - -Clean Code (2008) + +Clean Code (2008) -codecomplete2->cleancode - - + +codecomplete2->cleancode + + -workingeffectivelylegacycode + +workingeffectivelylegacycode - -Working Effectively -with Legacy Code -(2004) + +Working Effectively +with Legacy Code +(2004) -codecomplete2->workingeffectivelylegacycode - - + +codecomplete2->workingeffectivelylegacycode + + -designpatterns - - -Design Patterns (1994) + +designpatterns + + +Design Patterns (1994) -agilesoftwaredev->designpatterns - - + +agilesoftwaredev->designpatterns + + -headfirstdesignpatterns->agilesoftwaredev - - + +headfirstdesignpatterns->agilesoftwaredev + + -refactoring + +refactoring - -Refactoring (1999) + +Refactoring (1999) -practiceofprogramming->refactoring - - + +practiceofprogramming->refactoring + + -refactoring->codecomplete2 - - + +refactoring->codecomplete2 + + -umluserguide2 + +umluserguide2 - -The Unified Modeling -Language User Guide -2nd Ed (2005) + +The Unified Modeling +Language User Guide +2nd Ed (2005) -umldistilled3->umluserguide2 - - + +umldistilled3->umluserguide2 + + -ooadwa3 + +ooadwa3 - -Object-Oriented Analysis -and Design with Applications -3rd Ed (2007) + +Object-Oriented Analysis +and Design with Applications +3rd Ed (2007) -umluserguide2->ooadwa3 - - + +umluserguide2->ooadwa3 + + -mathbegin - -Beginning Mathematics for Game Programming + +mathbegin + +Beginning Mathematics for Game Programming -foundationsgedmath + +foundationsgedmath - -Foundations of Game -Engine Development, -Vol 1: Mathematics -(2016) + +Foundations of Game +Engine Development, +Vol 1: Mathematics +(2016) -mathbegin->foundationsgedmath - - + +mathbegin->foundationsgedmath + + -math3dcpcg3 + +math3dcpcg3 - -Mathematics for 3D -Game Programming and -Computer Graphics -3rd Ed (2011) + +Mathematics for 3D +Game Programming and +Computer Graphics +3rd Ed (2011) -mathbegin->math3dcpcg3 - - + +mathbegin->math3dcpcg3 + + -3dmathprimer2 + +3dmathprimer2 - -3D Math Primer for -Graphics and Game -Development 2nd Ed (2011) + +3D Math Primer for +Graphics and Game +Development 2nd Ed (2011) -mathbegin->3dmathprimer2 - - + +mathbegin->3dmathprimer2 + + -essentialmaths3 + +essentialmaths3 - -Essential Mathematics -for Games and -Interactive Applications -3rd Ed (2011) + +Essential Mathematics +for Games and +Interactive Applications +3rd Ed (2011) -mathbegin->essentialmaths3 - - + +mathbegin->essentialmaths3 + + -mathadvanced - -Advanced Mathematics for Game Programming + +mathadvanced + +Advanced Mathematics for Game Programming -geometricalgebra + +geometricalgebra - -Geometric Algebra for -Computer Science (2007) + +Geometric Algebra for +Computer Science (2007) -mathadvanced->geometricalgebra - - + +mathadvanced->geometricalgebra + + -geometrictools + +geometrictools - -Geometric Tools for -Computer Graphics -(2002) + +Geometric Tools for +Computer Graphics +(2002) -mathadvanced->geometrictools - - + +mathadvanced->geometrictools + + -visualizingquaternions + +visualizingquaternions - -Visualizing Quaternions -(2006) + +Visualizing Quaternions +(2006) -mathadvanced->visualizingquaternions - - + +mathadvanced->visualizingquaternions + + -divgradcurl4 + +divgradcurl4 - -Div, Grad, Curl -and all That -4th Ed (2004) + +Div, Grad, Curl +and all That +4th Ed (2004) -mathadvanced->divgradcurl4 - - + +mathadvanced->divgradcurl4 + + -foundationsgedmath->mathadvanced - - + +foundationsgedmath->mathadvanced + + -math3dcpcg3->mathadvanced - - + +math3dcpcg3->mathadvanced + + -3dmathprimer2->mathadvanced - - + +3dmathprimer2->mathadvanced + + -essentialmaths3->mathadvanced - - + +essentialmaths3->mathadvanced + + -computationalgeometry + +computationalgeometry - -Computational Geometry - 3rd Ed (2008) + +Computational Geometry + 3rd Ed (2008) -geometrictools->computationalgeometry - - + +geometrictools->computationalgeometry + + @@ -1406,469 +1623,539 @@ -gpbegin - -Beginning Game Programming + +gpbegin + +Beginning Game Programming -scratch - -From Windows/DirectX + +scratch + +From Windows/DirectX -gpbegin->scratch - - + +gpbegin->scratch + + -unity - -From Unity + +unity + +From Unity -gpbegin->unity - - + +gpbegin->unity + + -unreal - -From Unreal + +unreal + +From Unreal -gpbegin->unreal - - + +gpbegin->unreal + + -cocos2dx - -From Cocos2d-X + +cocos2dx + +From Cocos2d-X -gpbegin->cocos2dx - - + +gpbegin->cocos2dx + + -windowsgp2 + +windowsgp2 - -Tricks of the Windows -Game Programming -Gurus 2nd Ed (2002) + +Tricks of the Windows +Game Programming +Gurus 2nd Ed (2002) -scratch->windowsgp2 - - + +scratch->windowsgp2 + + -gamecodingcomplete4 + +gamecodingcomplete4 - -Game Coding -Complete -4th Ed (2012) + +Game Coding +Complete +4th Ed (2012) -scratch:se->gamecodingcomplete4 - - + +scratch:se->gamecodingcomplete4 + + -introtogdprodev + +introtogdprodev - -Introduction to Game -Design, Prototyping, -and Development (2014) + +Introduction to Game +Design, Prototyping, +and Development (2014) -unity->introtogdprodev - - + +unity->introtogdprodev + + -learninguegd + +learninguegd - -Learning Unreal Engine -Game Development -(2015) + +Learning Unreal Engine +Game Development +(2015) -unreal->learninguegd - - + +unreal->learninguegd + + -cocos2dxbyexample2 + +cocos2dxbyexample2 - -Cocos2d-X -by Example (2015) + +Cocos2d-X +by Example (2015) -cocos2dx->cocos2dxbyexample2 - - + +cocos2dx->cocos2dxbyexample2 + + -gpintermediate - -Intermediate Game Programming + +gpintermediate + +Intermediate Game Programming -gpalgorithmstechniques + +gpalgorithmstechniques - -Game Programming -Algorithms and -Techniques (2013) + +Game Programming +Algorithms and +Techniques (2013) -gpintermediate->gpalgorithmstechniques - - + +gpintermediate->gpalgorithmstechniques + + -crossplatformgp + +crossplatformgp - -Cross-Platform Game -Programming (2005) + +Cross-Platform Game +Programming (2005) -gpintermediate->crossplatformgp - - + +gpintermediate->crossplatformgp + + -buildingfpsgameunity + +buildingfpsgameunity - -Building an FPS -Game with Unity (2015) + +Building an FPS +Game with Unity (2015) -gpintermediate->buildingfpsgameunity - - + +gpintermediate->buildingfpsgameunity + + -agumentedreality + +agumentedreality - -Augmented Reality -(2016) + +Augmented Reality +(2016) -gpintermediate->agumentedreality - - + +gpintermediate->agumentedreality + + -gpmisc - -Game Programming Articles + +gpmisc + +Game Programming Articles -gpgemsbest + +gpgemsbest - -Best of Game -Programming -Gems (2008) + +Best of Game +Programming +Gems (2008) -gpmisc->gpgemsbest - - + +gpmisc->gpgemsbest + + -beginninggp + +beginninggp - -Beginning Game -Programming (2009) + +Beginning Game +Programming (2009) -gpmisc->beginninggp - - + +gpmisc->beginninggp + + -gamecodingcomplete4->gpintermediate - - + +gamecodingcomplete4->gpintermediate + + -unityinaction + +unityinaction - -Unity in Action (2015) + +Unity in Action (2015) -introtogdprodev->unityinaction - - + +introtogdprodev->unityinaction + + -unityinaction->gpintermediate - - + +unityinaction->gpintermediate + + -blueprintsvisualscripting + +blueprintsvisualscripting - -Blueprints Visual Scripting -for Unreal Engine (2015) + +Blueprints Visual Scripting +for Unreal Engine (2015) -learninguegd->blueprintsvisualscripting - - + +learninguegd->blueprintsvisualscripting + + -blueprintsvisualscripting->gpintermediate - - + +blueprintsvisualscripting->gpintermediate + + -cocos2dxbyexample2->gpintermediate - - + +cocos2dxbyexample2->gpintermediate + + -gameprogrammingpatterns + +gameprogrammingpatterns - -Game Programming -Patterns (2014) + +Game Programming +Patterns (2014) -gpalgorithmstechniques->gameprogrammingpatterns - - + +gpalgorithmstechniques->gameprogrammingpatterns + + -gpgoldenrules + +gpgoldenrules - -Game Programming -Golden Rules (2004) + +Game Programming +Golden Rules (2004) -gameprogrammingpatterns->gpgoldenrules - - + +gameprogrammingpatterns->gpgoldenrules + + -gpgoldenrules->gpmisc - - + +gpgoldenrules->gpmisc + + -androidndkgdcookbook + +androidndkgdcookbook - -Android NDK Game -Development Cookbook -(2013) + +Android NDK Game +Development Cookbook +(2013) -crossplatformgp->androidndkgdcookbook - - + +crossplatformgp->androidndkgdcookbook + + -unityvrprojects + +unityvrprojects - -Unity Virtual -Reality Projects (2015) + +Unity Virtual +Reality Projects (2015) -buildingfpsgameunity->unityvrprojects - - + +buildingfpsgameunity->unityvrprojects + + -practicalaugmentedreality + +practicalaugmentedreality - -Practical Augmented -Reality (2016) + +Practical Augmented +Reality (2016) -agumentedreality->practicalaugmentedreality - - + +agumentedreality->practicalaugmentedreality + + -gpgems + +gpgems - -Game Programming -Gems (2000) + +Game Programming +Gems (2000) -gpgemsbest->gpgems - - + +gpgemsbest->gpgems + + -advancedgp + +advancedgp - -Advanced Game -Programming (2009) + +Advanced Game +Programming (2009) -beginninggp->advancedgp - - + +beginninggp->advancedgp + + -gpgems2 + +gpgems2 - -Game Programming -Gems (2001) + +Game Programming +Gems (2001) -gpgems->gpgems2 - - + +gpgems->gpgems2 + + -gpgems3 + +gpgems3 - -Game Programming -Gems (2002) + +Game Programming +Gems (2002) -gpgems2->gpgems3 - - + +gpgems2->gpgems3 + + -gpgems4 + +gpgems4 - -Game Programming -Gems (2004) + +Game Programming +Gems (2004) -gpgems3->gpgems4 - - + +gpgems3->gpgems4 + + -gpgems5 + +gpgems5 - -Game Programming -Gems (2005) + +Game Programming +Gems (2005) -gpgems4->gpgems5 - - + +gpgems4->gpgems5 + + -gpgems6 + +gpgems6 - -Game Programming -Gems (2006) + +Game Programming +Gems (2006) -gpgems5->gpgems6 - - + +gpgems5->gpgems6 + + -gpgems7 + +gpgems7 - -Game Programming -Gems (2008) + +Game Programming +Gems (2008) -gpgems6->gpgems7 - - + +gpgems6->gpgems7 + + -gpgems8 + +gpgems8 - -Game Programming -Gems (2010) + +Game Programming +Gems (2010) -gpgems7->gpgems8 - - + +gpgems7->gpgems8 + + @@ -1877,1175 +2164,1469 @@ -gebegin - -Beginning Game Engine Development + +gebegin + +Beginning Game Engine Development -gameenginearchitecture2 + +gameenginearchitecture2 - -Game Engine -Architecture (GEA) -2nd Ed (2014) + +Game Engine +Architecture (GEA) +2nd Ed (2014) -gebegin->gameenginearchitecture2 - - + +gebegin->gameenginearchitecture2 + + -gearticles - -Game Engine Articles + +gearticles + +Game Engine Articles -gameenginegems1 + +gameenginegems1 - -Game Engine -Gems 1 (2010) + +Game Engine +Gems 1 (2010) -gearticles->gameenginegems1 - - + +gearticles->gameenginegems1 + + -gescript - -Script Engine + +gescript + +Script Engine -gamescriptingmastery + +gamescriptingmastery - -Game Scripting -Mastery (2002) + +Game Scripting +Mastery (2002) -gescript->gamescriptingmastery - - + +gescript->gamescriptingmastery + + -geoptimization - -Optimization + +geoptimization + +Optimization -videogameoptimization + +videogameoptimization - -Video Game -Optimization (2010) + +Video Game +Optimization (2010) -geoptimization->videogameoptimization - - + +geoptimization->videogameoptimization + + -getool - -Tool Development + +getool + +Tool Development -gamedevtools + +gamedevtools - -Game Development -Tools (2011) + +Game Development +Tools (2011) -getool->gamedevtools - - + +getool->gamedevtools + + -gameenginearchitecture2->gearticles - - + +gameenginearchitecture2->gearticles + + -gameenginearchitecture2->gescript - - + +gameenginearchitecture2->gescript + + -gameenginearchitecture2->geoptimization - - + +gameenginearchitecture2->geoptimization + + -gameenginearchitecture2->getool - - + +gameenginearchitecture2->getool + + -3dgameenginearchitecture + +3dgameenginearchitecture - -3D Game Engine -Architecture -(2004) + +3D Game Engine +Architecture +(2004) -gameenginearchitecture2->3dgameenginearchitecture - - + +gameenginearchitecture2->3dgameenginearchitecture + + -gameenginedesign2 + +gameenginedesign2 - -3D Game Engine -Design -2nd Ed (2006) + +3D Game Engine +Design +2nd Ed (2006) -3dgameenginearchitecture->gameenginedesign2 - - + +3dgameenginearchitecture->gameenginedesign2 + + -gameenginegems2 + +gameenginegems2 - -Game Engine -Gems 2 (2011) + +Game Engine +Gems 2 (2011) -gameenginegems1->gameenginegems2 - - + +gameenginegems1->gameenginegems2 + + -gameenginegems3 + +gameenginegems3 - -Game Engine -Gems 3 (2016) + +Game Engine +Gems 3 (2016) -gameenginegems2->gameenginegems3 - - + +gameenginegems2->gameenginegems3 + + -languageimplpatterns + +languageimplpatterns - -Language Implementation -Patterns (2010) + +Language Implementation +Patterns (2010) -gamescriptingmastery->languageimplpatterns - - + +gamescriptingmastery->languageimplpatterns + + -garbagecollectionhandbook + +garbagecollectionhandbook - -The Garbage Collection -Handbook (2011) + +The Garbage Collection +Handbook (2011) -languageimplpatterns->garbagecollectionhandbook - - + +languageimplpatterns->garbagecollectionhandbook + + -unity5gameoptimization + +unity5gameoptimization - -Unity 5 Game -Optimization (2015) + +Unity 5 Game +Optimization (2015) -hackersdelight2 + +hackersdelight2 - -Hacker's Delight -2nd Ed (2012) + +Hacker's Delight +2nd Ed (2012) -unity5gameoptimization->hackersdelight2 - - + +unity5gameoptimization->hackersdelight2 + + -videogameoptimization->unity5gameoptimization - - + +videogameoptimization->unity5gameoptimization + + -modernx86assembly + +modernx86assembly - -Modern X86 -Assembly Language -Programming (2014) + +Modern X86 +Assembly Language +Programming (2014) -hackersdelight2->modernx86assembly - - + +hackersdelight2->modernx86assembly + + -gpgpu + +gpgpu - -GPGPU Programming -for Games and Science -(2014) + +GPGPU Programming +for Games and Science +(2014) -hackersdelight2->gpgpu - - + +hackersdelight2->gpgpu + + -vectorgamemathprocessors + +vectorgamemathprocessors - -Vector Games -Math Processors -(2002) + +Vector Games +Math Processors +(2002) -hackersdelight2->vectorgamemathprocessors - - + +hackersdelight2->vectorgamemathprocessors + + -designinguxgamedevtools + +designinguxgamedevtools - -Designing the User -Experience of Game -Development Tools (2015) + +Designing the User +Experience of Game +Development Tools (2015) -gamedevtools->designinguxgamedevtools - - + +gamedevtools->designinguxgamedevtools + + -cgbegin - -Beginning CG Programming + +cgbegin + +Beginning CG Programming -rt3drendering + +rt3drendering - -Real-Time 3D -Rendering with DirectX -and HLSL (2014) + +Real-Time 3D +Rendering with DirectX +and HLSL (2014) -cgbegin->rt3drendering - - + +cgbegin->rt3drendering + + -3dgpdx12 + +3dgpdx12 - -Introduction to -3D Game Programming - with DirectX 12 (2016) + +Introduction to +3D Game Programming + with DirectX 12 (2016) -cgbegin->3dgpdx12 - - + +cgbegin->3dgpdx12 + + -oglguide9 + +oglguide9 - -OpenGL Programming -Guide 9th Ed (2016) + +OpenGL Programming +Guide 9th Ed (2016) -cgbegin->oglguide9 - - + +cgbegin->oglguide9 + + -cgtheory - -Beginning CG theory + +cgtheory + +Beginning CG theory -fundamentalscg4 + +fundamentalscg4 - -Fundamentals of -Computer Graphics -4th Ed (2015) + +Fundamentals of +Computer Graphics +4th Ed (2015) -cgtheory->fundamentalscg4 - - + +cgtheory->fundamentalscg4 + + -cgpp3 + +cgpp3 - -Computer Graphics -Principles and Practice -(CGP&P) 3rd Ed (2013) + +Computer Graphics +Principles and Practice +(CGP&P) 3rd Ed (2013) -cgtheory->cgpp3 - - + +cgtheory->cgpp3 + + -pdis + +pdis - -Principles of Digital -Image Synthesis -(PODIS) (1995) + +Principles of Digital +Image Synthesis +(PODIS) (1995) -cgtheory->pdis - - + +cgtheory->pdis + + -digitalimageprocessing3 + +digitalimageprocessing3 - -Digital Image -Processing -(DIP) 3rd Ed (2007) + +Digital Image +Processing +(DIP) 3rd Ed (2007) -cgtheory->digitalimageprocessing3 - - + +cgtheory->digitalimageprocessing3 + + -cgadvanced - -Advanced CG + +cgadvanced + +Advanced CG -realtimerendering - -Real-Time Rendering + +realtimerendering + +Real-Time Rendering -cgadvanced->realtimerendering - - + +cgadvanced->realtimerendering + + -offlinerendering - -Offline Rendering + +offlinerendering + +Offline Rendering -cgadvanced->offlinerendering - - + +cgadvanced->offlinerendering + + -cgtech - -CG Technologies + +cgtech + +CG Technologies -cgadvanced->cgtech - - + +cgadvanced->cgtech + + -rtr3 + +rtr3 - -Real-Time Rendering - (RTR) 3rd Ed (2008) + +Real-Time Rendering + (RTR) 3rd Ed (2008) -realtimerendering->rtr3 - - + +realtimerendering->rtr3 + + -tricks3dgpgurus - - -Tricks of the 3D -Game Programming -Gurus (2003) + +tricks3dgpgurus + + +Tricks of the 3D +Game Programming +Gurus (2003) -realtimerendering->tricks3dgpgurus - - + +realtimerendering->tricks3dgpgurus + + -pbrt3 - - -Physically Based -Rendering (PBRT) -3rd Ed (2016) + +pbrt3 + + +Physically Based +Rendering (PBRT) +3rd Ed (2016) -offlinerendering->pbrt3 - - + +offlinerendering->pbrt3 + + -raytracingfromgroundup - - -Ray Tracing from -the Ground Up -(2007) + +raytracingfromgroundup + + +Ray Tracing from +the Ground Up +(2007) -offlinerendering->raytracingfromgroundup - - + +offlinerendering->raytracingfromgroundup + + -d3d - -Direct3D + +d3d + +Direct3D -practiald3d11 + +practiald3d11 - -Practical Rendering -and Computation -with Direct3D 11 (2011) + +Practical Rendering +and Computation +with Direct3D 11 (2011) -d3d->practiald3d11 - - + +d3d->practiald3d11 + + -ogl - -OpenGL + +ogl + +OpenGL -oglsuper7 + +oglsuper7 - -OpenGL Super Bible -7th Ed (2015) + +OpenGL Super Bible +7th Ed (2015) -ogl->oglsuper7 - - + +ogl->oglsuper7 + + -cgmisc - -CG Articles + +cgmisc + +CG Articles -cgtech->cgmisc - - + +cgtech->cgmisc + + -texturingmodeling3 - - -Texturing and Modeling -(2002) + +texturingmodeling3 + + +Texturing and Modeling +(2002) -cgtech->texturingmodeling3 - - + +cgtech->texturingmodeling3 + + -lod - - -Level of Detail -for 3D Graphics (2002) + +lod + + +Level of Detail +for 3D Graphics (2002) -cgtech->lod - - + +cgtech->lod + + -npr - - -Non-Photorealistic -Rendering (2001) + +npr + + +Non-Photorealistic +Rendering (2001) -cgtech->npr - - + +cgtech->npr + + -graphicsgems - - -Graphics Gems (1990) + +graphicsgems + + +Graphics Gems (1990) -cgmisc->graphicsgems - - + +cgmisc->graphicsgems + + -blinn1 - - -Jim Blinn's Corner: -A Trip Down -the Graphics Pipeline (1997) + +blinn1 + + +Jim Blinn's Corner: +A Trip Down +the Graphics Pipeline (1997) -cgmisc->blinn1 - - + +cgmisc->blinn1 + + -rt3drendering->cgtheory - - + +rt3drendering->cgtheory + + -3dgpdx12->cgtheory - - + +3dgpdx12->cgtheory + + -oglguide9->cgtheory - - + +oglguide9->cgtheory + + -fundamentalscg4->cgadvanced - - + +fundamentalscg4->cgadvanced + + -cgpp3->cgadvanced - - + +cgpp3->cgadvanced + + -pdis->cgadvanced - - + +pdis->cgadvanced + + -digitalimageprocessing3->cgadvanced - - + +digitalimageprocessing3->cgadvanced + + -graphicsshaders2 + +graphicsshaders2 - -Graphics Shaders -2nd Ed (2011) + +Graphics Shaders +2nd Ed (2011) -ogles3guide2 + +ogles3guide2 - -OpenGL ES 3.0 -Programming Guide -2nd Ed (2014) + +OpenGL ES 3.0 +Programming Guide +2nd Ed (2014) -graphicsshaders2->ogles3guide2 - - + +graphicsshaders2->ogles3guide2 + + -glsl3 + +glsl3 - -OpenGL Shading -Language 3rd Ed (2009) + +OpenGL Shading +Language 3rd Ed (2009) -glsl3->ogles3guide2 - - + +glsl3->ogles3guide2 + + -oglsuper7->graphicsshaders2 - - + +oglsuper7->graphicsshaders2 + + -oglsuper7->glsl3 - - + +oglsuper7->glsl3 + + -oglinsights + +oglinsights - -OpenGL Insights (2012) + +OpenGL Insights (2012) -ogles3guide2->oglinsights - - + +ogles3guide2->oglinsights + + -vulkanguide + +vulkanguide - -Vulkan Programming -Guide (2016) + +Vulkan Programming +Guide (2016) -oglinsights->vulkanguide - - + +oglinsights->vulkanguide + + -rtr3->d3d - - + +rtr3->d3d + + -rtr3->ogl - - + +rtr3->ogl + + -realtimeshadows + +realtimeshadows - -Real-Time -Shadows (2011) + +Real-Time +Shadows (2011) -rtr3->realtimeshadows - - + +rtr3->realtimeshadows + + -rtvolumegraphics + +rtvolumegraphics - -Real-Time Volume -Graphics (2006) + +Real-Time Volume +Graphics (2006) -rtr3->rtvolumegraphics - - + +rtr3->rtvolumegraphics + + -graphicsprogrammingmethods + +graphicsprogrammingmethods - -Graphics Programming -Methods (2003) + +Graphics Programming +Methods (2003) -rtr3->graphicsprogrammingmethods - - + +rtr3->graphicsprogrammingmethods + + + + +shaderx + + +ShaderX (1996) + + + + + +graphicsprogrammingmethods->shaderx + + + + + +shaderx2 + + +ShaderX2 (2003) + + + + + +shaderx->shaderx2 + + + + + +shaderx3 + + +ShaderX3 (2004) + + + + + +shaderx2->shaderx3 + + + + + +shaderx4 + + +ShaderX4 (2006) + + + + + +shaderx3->shaderx4 + + + + + +shaderx5 + + +ShaderX5 (2006) + + + + + +shaderx4->shaderx5 + + + + + +shaderx6 + + +ShaderX6 (2008) + + + + + +shaderx5->shaderx6 + + + + + +shaderx7 + + +ShaderX7 (2009) + + + + + +shaderx6->shaderx7 + + + -gpugems - - -GPU Gems (2004) + +gpugems + + +GPU Gems (2004) - -graphicsprogrammingmethods->gpugems - - + + +shaderx7->gpugems + + -gpugems2 - - -GPU Gems 2 (2005) + +gpugems2 + + +GPU Gems 2 (2005) -gpugems->gpugems2 - - + +gpugems->gpugems2 + + -gpugems3 - - -GPU Gems 3 (2007) + +gpugems3 + + +GPU Gems 3 (2007) -gpugems2->gpugems3 - - + +gpugems2->gpugems3 + + -gpupro - - -GPU Pro (2010) + +gpupro + + +GPU Pro (2010) -gpugems3->gpupro - - + +gpugems3->gpupro + + -gpupro2 - - -GPU Pro 2 (2011) + +gpupro2 + + +GPU Pro 2 (2011) -gpupro->gpupro2 - - + +gpupro->gpupro2 + + -gpupro3 - - -GPU Pro 3 (2012) + +gpupro3 + + +GPU Pro 3 (2012) -gpupro2->gpupro3 - - + +gpupro2->gpupro3 + + -gpupro4 - - -GPU Pro 4 (2013) + +gpupro4 + + +GPU Pro 4 (2013) -gpupro3->gpupro4 - - + +gpupro3->gpupro4 + + -gpupro5 - - -GPU Pro 5 (2014) + +gpupro5 + + +GPU Pro 5 (2014) -gpupro4->gpupro5 - - + +gpupro4->gpupro5 + + -gpupro6 - - -GPU Pro 6 (2015) + +gpupro6 + + +GPU Pro 6 (2015) -gpupro5->gpupro6 - - + +gpupro5->gpupro6 + + -gpupro7 - - -GPU Pro 7 (2016) + +gpupro7 + + +GPU Pro 7 (2016) -gpupro6->gpupro7 - - + +gpupro6->gpupro7 + + + + + +gpuzen + + +GPU Zen (2017) + + + + +gpupro7->gpuzen + + + + + -advancedgi2 - - -Advanced -Global Illumination -2nd Ed (2006) + +advancedgi2 + + +Advanced +Global Illumination +2nd Ed (2006) -pbrt3->advancedgi2 - - + +pbrt3->advancedgi2 + + -raytracingfromgroundup->pbrt3 - - + +raytracingfromgroundup->pbrt3 + + -productionvolumerendering - - -Production Volume -Rendering (2012) + +productionvolumerendering + + +Production Volume +Rendering (2012) -advancedgi2->productionvolumerendering - - + +advancedgi2->productionvolumerendering + + -polygonmeshprocessing - - -Polygon Mesh -Processing (2010) + +polygonmeshprocessing + + +Polygon Mesh +Processing (2010) -texturingmodeling3->polygonmeshprocessing - - + +texturingmodeling3->polygonmeshprocessing + + -3denginedesignvirtualglobes - - -3D Engine Design -for Virtual Globes (2011) + +3denginedesignvirtualglobes + + +3D Engine Design +for Virtual Globes (2011) -lod->3denginedesignvirtualglobes - - + +lod->3denginedesignvirtualglobes + + -isosurfaces - - -Isosurfaces (2013) + +isosurfaces + + +Isosurfaces (2013) -polygonmeshprocessing->isosurfaces - - + +polygonmeshprocessing->isosurfaces + + -npcg - - -Non-Photorealistic -Computer Graphics -(2002) + +npcg + + +Non-Photorealistic +Computer Graphics +(2002) -npr->npcg - - + +npr->npcg + + -graphicsgems2 - - -Graphics Gems II (1991) + +graphicsgems2 + + +Graphics Gems II (1991) -graphicsgems->graphicsgems2 - - + +graphicsgems->graphicsgems2 + + -graphicsgems3 - - -Graphics Gems III (1994) + +graphicsgems3 + + +Graphics Gems III (1994) -graphicsgems2->graphicsgems3 - - + +graphicsgems2->graphicsgems3 + + -graphicsgems4 - - -Graphics Gems IV (1994) + +graphicsgems4 + + +Graphics Gems IV (1994) -graphicsgems3->graphicsgems4 - - + +graphicsgems3->graphicsgems4 + + -graphicsgems5 - - -Graphics Gems V (1995) + +graphicsgems5 + + +Graphics Gems V (1995) -graphicsgems4->graphicsgems5 - - + +graphicsgems4->graphicsgems5 + + -blinn2 - - -Jim Blinn's Corner: -Dirty Pixels (1998) + +blinn2 + + +Jim Blinn's Corner: +Dirty Pixels (1998) -blinn1->blinn2 - - + +blinn1->blinn2 + + -glassenernotebook1 - - -Andrew Glassner's -Notebook (1999) + +glassenernotebook1 + + +Andrew Glassner's +Notebook (1999) -blinn2->glassenernotebook1 - - + +blinn2->glassenernotebook1 + + -blinn3 - - -Jim Blinn's Corner: -Notation, Notation, -Notation (2002) + +blinn3 + + +Jim Blinn's Corner: +Notation, Notation, +Notation (2002) -glassenernotebook2 - - -Andrew Glassner's -Other Notebook (2002) + +glassenernotebook2 + + +Andrew Glassner's +Other Notebook (2002) -blinn3->glassenernotebook2 - - + +blinn3->glassenernotebook2 + + -glassenernotebook1->blinn3 - - + +glassenernotebook1->blinn3 + + -magiccg - - -The Magic of -Computer Graphics (2011) + +magiccg + + +The Magic of +Computer Graphics (2011) -glassenernotebook2->magiccg - - + +glassenernotebook2->magiccg + + - - -audiobegin - -Game Audio Programming + +audiobegin + +Game Audio Programming -gameaudioprogramming - - -Game Audio -Programming (2016) + +gameaudioprogramming + + +Game Audio +Programming (2016) -audiobegin->gameaudioprogramming - - + +audiobegin->gameaudioprogramming + + -gettingstartedcppaudio - - -Getting Started -with C++ Audio Programming -for Game Development (2013) + +gettingstartedcppaudio + + +Getting Started +with C++ Audio Programming +for Game Development (2013) -audiobegin->gettingstartedcppaudio - - + +audiobegin->gettingstartedcppaudio + + @@ -3054,310 +3635,389 @@ -animbegin - -Beginning Game Animation Programming + +animbegin + +Beginning Game Animation Programming -natureofcode - - -The Nature of Code -(2012) + +natureofcode + + +The Nature of Code +(2012) -animbegin->natureofcode - - + +animbegin->natureofcode + + -characteranimation - - -Character Animation -with Direct3D (2011) + +characteranimation + + +Character Animation +with Direct3D (2011) -animbegin->characteranimation - - + +animbegin->characteranimation + + -rt3dcharacteranimation - - -Real-time 3D -Character Animation -with Visual C++ (2001) + +rt3dcharacteranimation + + +Real-time 3D +Character Animation +with Visual C++ (2001) -animbegin->rt3dcharacteranimation - - + +animbegin->rt3dcharacteranimation + + -animadvanced - -Advanced Game Animation Programming + +animadvanced + +Advanced Game Animation Programming -fluid - -Fluid Animation/Simulation + +fluid + +Fluid Animation/Simulation -animadvanced->fluid - - + +animadvanced->fluid + + -gameik - - -Game Inverse -Kinematics (2013) + +gameik + + +Game Inverse +Kinematics (2013) -animadvanced->gameik - - + +animadvanced->gameik + + -physicsbasedanimation - - -Physics Based -Animation (2005) + +physicsbasedanimation + + +Physics Based +Animation (2005) -animadvanced->physicsbasedanimation - - + +animadvanced->physicsbasedanimation + + -rtcameras - - -Real-Time Cameras -(2009) + +rtcameras + + +Real-Time Cameras +(2009) -animadvanced->rtcameras - - + +animadvanced->rtcameras + + -phybegin - -Beginning Game Physics Programming + +phybegin + +Beginning Game Physics Programming -phybegin->natureofcode - - + +phybegin->natureofcode + + -physicsforgameprogrammers - - -Physics for Game -Programmers (2003) + +physicsforgameprogrammers + + +Physics for Game +Programmers (2003) -phybegin->physicsforgameprogrammers - - + +phybegin->physicsforgameprogrammers + + -physicsforgamedevelopers2 - - -Physics for Game -Developers 2nd Ed (2013) + +physicsforgamedevelopers2 + + +Physics for Game +Developers 2nd Ed (2013) -phybegin->physicsforgamedevelopers2 - - + +phybegin->physicsforgamedevelopers2 + + -phyadvanced - -Advanced Game Physics Programming + +phyadvanced + +Advanced Game Physics Programming -phyadvanced->fluid - - + +phyadvanced->fluid + + - -gamephysicspearls - - -Game Physics Pearls -(2010) + + +fpbma + + +Foundations of Physically +Based Modeling and +Animation (2017) - -phyadvanced->gamephysicspearls - - + + +phyadvanced->fpbma + + - -taofluidanimation - - -The Art of -Fluid Animation (2015) + + +fluidenginedev + + +Fluid Engine Development (2016) - -fluid->taofluidanimation - - + + +fluid->fluidenginedev + + -computeranimation3 - - -Computer Animation -3rd Ed (2012) + +computeranimation3 + + +Computer Animation +3rd Ed (2012) -characteranimation->computeranimation3 - - + +characteranimation->computeranimation3 + + -rt3dcharacteranimation->computeranimation3 - - + +rt3dcharacteranimation->computeranimation3 + + -computeranimation3->animadvanced - - + +computeranimation3->animadvanced + + -physicsforgameprogrammers->physicsforgamedevelopers2 - - + +physicsforgameprogrammers->physicsforgamedevelopers2 + + -physicsmodeling - - -Physics Modeling -for Game Programmers (2004) + +physicsmodeling + + +Physics Modeling +for Game Programmers (2004) -physicsforgameprogrammers->physicsmodeling - - + +physicsforgameprogrammers->physicsmodeling + + -physicsforgamedevelopers2->phyadvanced - - + +physicsforgamedevelopers2->phyadvanced + + -physicsmodeling->phyadvanced - - + +physicsmodeling->phyadvanced + + + + + +gamephysicspearls + + +Game Physics Pearls +(2010) + + + + + +fpbma->gamephysicspearls + + -gamephysicsenginedev2 - - -Game Physics Engine -Development 2nd Ed (2010) + +gamephysicsenginedev2 + + +Game Physics Engine +Development 2nd Ed (2010) -gamephysics2 - - -Game Physics 2nd Ed (2010) + +gamephysics2 + + +Game Physics 2nd Ed (2010) -gamephysicsenginedev2->gamephysics2 - - + +gamephysicsenginedev2->gamephysics2 + + -collisiondetection3denv - - -Collision Detection -in Interactive 3D -Environments (2003) + +collisiondetection3denv + + +Collision Detection +in Interactive 3D +Environments (2003) -rtcollisiondetection - - -Real-Time Collision -Detection (2004) + +rtcollisiondetection + + +Real-Time Collision +Detection (2004) -collisiondetection3denv->rtcollisiondetection - - + +collisiondetection3denv->rtcollisiondetection + + -gamephysicspearls->gamephysicsenginedev2 - - + +gamephysicspearls->gamephysicsenginedev2 + + -gamephysicspearls->collisiondetection3denv - - + +gamephysicspearls->collisiondetection3denv + + + + + +taofluidanimation + + +The Art of +Fluid Animation (2015) + + + + + +fluidenginedev->taofluidanimation + + -fluidsimulationforcg2 - - -Fluid Simulation -for Computer Graphics -2nd Ed (2015) + +fluidsimulationforcg2 + + +Fluid Simulation +for Computer Graphics +2nd Ed (2015) -taofluidanimation->fluidsimulationforcg2 - - + +taofluidanimation->fluidsimulationforcg2 + + @@ -3366,452 +4026,534 @@ -aibegin - -Beginning Game AI + +aibegin + +Beginning Game AI -aiforgames2 - - -Artificial Intelligence -for Games 2nd Ed (2009) + +aiforgames2 + + +Artificial Intelligence +for Games 2nd Ed (2009) -aibegin->aiforgames2 - - + +aibegin->aiforgames2 + + -aiforgd - - -AI for Game -Developers (2004) + +aiforgd + + +AI for Game +Developers (2004) -aibegin->aiforgd - - + +aibegin->aiforgd + + -proggameaibyexample - - -Programming Game -AI By Example (2004) + +proggameaibyexample + + +Programming Game +AI By Example (2004) -aibegin->proggameaibyexample - - + +aibegin->proggameaibyexample + + -unityaigp2 - - -Unity AI Game -Programming 2nd Ed (2015) + +unityaigp2 + + +Unity AI Game +Programming 2nd Ed (2015) -aibegin->unityaigp2 - - + +aibegin->unityaigp2 + + -aiintermediate - -Intermediate Game AI + +aiintermediate + +Intermediate Game AI -aima3 - - -Artificial Intelligence -Modern Approach -(AIMA) 3rd Ed (2009) + +aima3 + + +Artificial Intelligence +Modern Approach +(AIMA) 3rd Ed (2009) -aiintermediate->aima3 - - + +aiintermediate->aima3 + + -behavioralmathforgameai - - -Behavioral Mathematics -for Game AI (2009) + +behavioralmathforgameai + + +Behavioral Mathematics +for Game AI (2009) -aiintermediate->behavioralmathforgameai - - + +aiintermediate->behavioralmathforgameai + + -aimisc - -Game AI Articles + +aimisc + +Game AI Articles -aigpwisdom - - -AI Game Programming -Wisdom (2002) + +aigpwisdom + + +AI Game Programming +Wisdom (2002) -aimisc->aigpwisdom - - + +aimisc->aigpwisdom + + -aiforgames2->aiintermediate - - + +aiforgames2->aiintermediate + + -aiforgd->aiintermediate - - + +aiforgd->aiintermediate + + -proggameaibyexample->aiintermediate - - + +proggameaibyexample->aiintermediate + + -unityaigp2->aiintermediate - - + +unityaigp2->aiintermediate + + -aima3->aimisc - - + +aima3->aimisc + + -behavioralmathforgameai->aimisc - - + +behavioralmathforgameai->aimisc + + -aigpwisdom2 - - -AI Game Programming -Wisdom 2 (2003) + +aigpwisdom2 + + +AI Game Programming +Wisdom 2 (2003) -aigpwisdom->aigpwisdom2 - - + +aigpwisdom->aigpwisdom2 + + -aigpwisdom3 - - -AI Game Programming -Wisdom 3 (2006) + +aigpwisdom3 + + +AI Game Programming +Wisdom 3 (2006) -aigpwisdom2->aigpwisdom3 - - + +aigpwisdom2->aigpwisdom3 + + -aigpwisdom4 - - -AI Game Programming -Wisdom 4 (2008) + +aigpwisdom4 + + +AI Game Programming +Wisdom 4 (2008) -aigpwisdom3->aigpwisdom4 - - + +aigpwisdom3->aigpwisdom4 + + -gameaipro - - -Game AI Pro (2013) + +gameaipro + + +Game AI Pro (2013) -aigpwisdom4->gameaipro - - + +aigpwisdom4->gameaipro + + -gameaipro2 - - -Game AI Pro 2 (2015) + +gameaipro2 + + +Game AI Pro 2 (2015) -gameaipro->gameaipro2 - - + +gameaipro->gameaipro2 + + + + + +gameaipro3 + + +Game AI Pro 3 (2017) + + + + + +gameaipro2->gameaipro3 + + - + -multiplayerbegin - -Beginning Multiplayer Game Programming + +multiplayerbegin + +Beginning Multiplayer Game Programming -multiplayergp - - -Multiplayer Game -Programming (2015) + +multiplayergp + + +Multiplayer Game +Programming (2015) -multiplayerbegin->multiplayergp - - + +multiplayerbegin->multiplayergp + + -multiplayermisc - -Multiplayer Game Articles + +multiplayermisc + +Multiplayer Game Articles -massivelymultiplayergd - - -Massively Multiplayer -Game Development -(2003) + +massivelymultiplayergd + + +Massively Multiplayer +Game Development +(2003) -multiplayermisc->massivelymultiplayergd - - + +multiplayermisc->massivelymultiplayergd + + -serverprog - -Server Programming + +serverprog + +Server Programming -progposixthreads - - -Programming with -POSIX Threads (1997) + +progposixthreads + + +Programming with +POSIX Threads (1997) -serverprog->progposixthreads - - + +serverprog->progposixthreads + + -networkprotocol - -Network Protocol + +networkprotocol + +Network Protocol -tcpipillustratedv1_2 - - -TCP/IP Illustrated -Vol 1 2nd Ed (2011) + +tcpipillustratedv1_2 + + +TCP/IP Illustrated +Vol 1 2nd Ed (2011) -networkprotocol->tcpipillustratedv1_2 - - + +networkprotocol->tcpipillustratedv1_2 + + -networkprog - -Network Programming + +networkprog + +Network Programming -unixnetworkprogv1_3 - - -Unix Network -Programming -Vol 1 3rd Ed (2003) + +unixnetworkprogv1_3 + + +Unix Network +Programming +Vol 1 3rd Ed (2003) -networkprog->unixnetworkprogv1_3 - - + +networkprog->unixnetworkprogv1_3 + + -multiplayergp->multiplayermisc - - + +multiplayergp->multiplayermisc + + -multiplayergp->serverprog - - + +multiplayergp->serverprog + + -multiplayergp->networkprotocol - - + +multiplayergp->networkprotocol + + -multiplayergp->networkprog - - + +multiplayergp->networkprog + + -massivelymultiplayergd2 - - -Massively Multiplayer -Game Development 2 -(2005) + +massivelymultiplayergd2 + + +Massively Multiplayer +Game Development 2 +(2005) -massivelymultiplayergd->massivelymultiplayergd2 - - + +massivelymultiplayergd->massivelymultiplayergd2 + + -advancedprogunixenv3 - - -Advanced Programming -in the UNIX Environment -3rd Ed (2013) + +advancedprogunixenv3 + + +Advanced Programming +in the UNIX Environment +3rd Ed (2013) -progposixthreads->advancedprogunixenv3 - - + +progposixthreads->advancedprogunixenv3 + + -linuxsystemprog2 - - -Linux System -Programming -2nd Ed (2013) + +linuxsystemprog2 + + +Linux System +Programming +2nd Ed (2013) -advancedprogunixenv3->linuxsystemprog2 - - + +advancedprogunixenv3->linuxsystemprog2 + + -tcpipillustratedv2 - - -TCP/IP Illustrated -Vol 2 (1995) + +tcpipillustratedv2 + + +TCP/IP Illustrated +Vol 2 (1995) -tcpipillustratedv1_2->tcpipillustratedv2 - - + +tcpipillustratedv1_2->tcpipillustratedv2 + + -tcpipillustratedv3 - - -TCP/IP Illustrated -Vol 3 (1996) + +tcpipillustratedv3 + + +TCP/IP Illustrated +Vol 3 (1996) -tcpipillustratedv2->tcpipillustratedv3 - - + +tcpipillustratedv2->tcpipillustratedv3 + + -unixnetworkprogv2_2 - - -Unix Network -Programming -Vol 2 2nd Ed (1998) + +unixnetworkprogv2_2 + + +Unix Network +Programming +Vol 2 2nd Ed (1998) -unixnetworkprogv1_3->unixnetworkprogv2_2 - - + +unixnetworkprogv1_3->unixnetworkprogv2_2 + + -linuxnetworkinternals - - -Understanding Linux -Network Internals -(2006) + +linuxnetworkinternals + + +Understanding Linux +Network Internals +(2006) -unixnetworkprogv2_2->linuxnetworkinternals - - + +unixnetworkprogv2_2->linuxnetworkinternals + + -ccsa - - -This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. + +ccsa + + +This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. diff --git a/images-zh-cn/gameaipro.jpg b/images-zh-cn/gameaipro.jpg index b23e32d..cc99529 100644 Binary files a/images-zh-cn/gameaipro.jpg and b/images-zh-cn/gameaipro.jpg differ diff --git a/images-zh-cn/gpalgorithmstechniques.jpg b/images-zh-cn/gpalgorithmstechniques.jpg index f616235..2af5d3b 100644 Binary files a/images-zh-cn/gpalgorithmstechniques.jpg and b/images-zh-cn/gpalgorithmstechniques.jpg differ diff --git a/images-zh-cn/learntoprogramwithscratch.jpg b/images-zh-cn/learntoprogramwithscratch.jpg index 3830215..4a1513d 100644 Binary files a/images-zh-cn/learntoprogramwithscratch.jpg and b/images-zh-cn/learntoprogramwithscratch.jpg differ diff --git a/images-zh-cn/multiplayergp.jpg b/images-zh-cn/multiplayergp.jpg index c00b73b..1645869 100644 Binary files a/images-zh-cn/multiplayergp.jpg and b/images-zh-cn/multiplayergp.jpg differ diff --git a/images-zh-cn/scratchjr.jpg b/images-zh-cn/scratchjr.jpg index 2f194a5..5bbe5b5 100644 Binary files a/images-zh-cn/scratchjr.jpg and b/images-zh-cn/scratchjr.jpg differ diff --git a/images-zh-cn/superscratchprogadv.jpg b/images-zh-cn/superscratchprogadv.jpg index 20a7a44..ac2497a 100644 Binary files a/images-zh-cn/superscratchprogadv.jpg and b/images-zh-cn/superscratchprogadv.jpg differ diff --git a/images/cpptemplates.jpg b/images/cpptemplates.jpg deleted file mode 100644 index caa4731..0000000 Binary files a/images/cpptemplates.jpg and /dev/null differ diff --git a/images/cpptemplates2.jpg b/images/cpptemplates2.jpg new file mode 100644 index 0000000..af64386 Binary files /dev/null and b/images/cpptemplates2.jpg differ diff --git a/images/fluidenginedev.jpg b/images/fluidenginedev.jpg new file mode 100644 index 0000000..fb67b1f Binary files /dev/null and b/images/fluidenginedev.jpg differ diff --git a/images/fpbma.jpg b/images/fpbma.jpg new file mode 100644 index 0000000..7567b7c Binary files /dev/null and b/images/fpbma.jpg differ diff --git a/images/gameaipro3.jpg b/images/gameaipro3.jpg new file mode 100644 index 0000000..e91c9ff Binary files /dev/null and b/images/gameaipro3.jpg differ diff --git a/images/gpuzen.jpg b/images/gpuzen.jpg new file mode 100644 index 0000000..6f3fa42 Binary files /dev/null and b/images/gpuzen.jpg differ diff --git a/images/inventgamepython3.jpg b/images/inventgamepython3.jpg deleted file mode 100644 index 19c395b..0000000 Binary files a/images/inventgamepython3.jpg and /dev/null differ diff --git a/images/inventgamepython4.jpg b/images/inventgamepython4.jpg new file mode 100644 index 0000000..2f68f4a Binary files /dev/null and b/images/inventgamepython4.jpg differ diff --git a/images/shaderx.jpg b/images/shaderx.jpg new file mode 100644 index 0000000..c6e94bf Binary files /dev/null and b/images/shaderx.jpg differ diff --git a/images/shaderx2.jpg b/images/shaderx2.jpg new file mode 100644 index 0000000..cd6e56f Binary files /dev/null and b/images/shaderx2.jpg differ diff --git a/images/shaderx3.jpg b/images/shaderx3.jpg new file mode 100644 index 0000000..a121a9c Binary files /dev/null and b/images/shaderx3.jpg differ diff --git a/images/shaderx4.jpg b/images/shaderx4.jpg new file mode 100644 index 0000000..4fac4f1 Binary files /dev/null and b/images/shaderx4.jpg differ diff --git a/images/shaderx5.jpg b/images/shaderx5.jpg new file mode 100644 index 0000000..ef5d1e7 Binary files /dev/null and b/images/shaderx5.jpg differ diff --git a/images/shaderx6.jpg b/images/shaderx6.jpg new file mode 100644 index 0000000..966c588 Binary files /dev/null and b/images/shaderx6.jpg differ diff --git a/images/shaderx7.jpg b/images/shaderx7.jpg new file mode 100644 index 0000000..ab00502 Binary files /dev/null and b/images/shaderx7.jpg differ diff --git a/isbn.csv b/isbn.csv index be6dcc7..7389b9c 100644 --- a/isbn.csv +++ b/isbn.csv @@ -1,7 +1,7 @@ -scratchjr,9781593276713, 未找到中文, None +scratchjr,9781593276713, 动手玩转ScratchJr编程, 9787121298219 codinggamesinscratch,1465439358, 未找到中文, None -superscratchprogadv,9781593275310, 未找到中文, None -learntoprogramwithscratch,9781593275433, 未找到中文, None +superscratchprogadv,9781593275310, Scratch超人漫游记, 9787121307553 +learntoprogramwithscratch,9781593275433, 动手玩转Scratch2.0编程,9787121272516 helpyoukidswithcomputercoding,9781465419569, 未找到中文, None inventgamepython3,9781503212305, 未找到中文, None makinggamespython,9781469901732, 未找到中文, None @@ -71,7 +71,7 @@ unityinaction,9781617292323,Unity5实战,9787302436744 learninguegd,1784398152, 未找到中文, None blueprintsvisualscripting,1785286013, 未找到中文, None cocos2dxbyexample2,9781785288852, 未找到中文, None -gpalgorithmstechniques,9780321940155, 未找到中文, None +gpalgorithmstechniques,9780321940155,游戏编程算法与技巧,9787121276453 gameprogrammingpatterns,9780990582908,游戏编程模式,9787115426888 gpgoldenrules,9781584503064, 未找到中文, None crossplatformgp,9781584503798, 未找到中文, None @@ -190,7 +190,7 @@ aigpwisdom3,9781584504573, 未找到中文, None aigpwisdom4,9781584505235, 未找到中文, None gameaipro,9781466565968, 未找到中文, None gameaipro2,9781482254792, 未找到中文, None -multiplayergp,9780134034300, 未找到中文, None +multiplayergp,9780134034300, 网络多人游戏架构与编程,9787115457790 massivelymultiplayergd,9781584502432, 大型多人在线游戏开发,9787115152671 massivelymultiplayergd2,9781584503903, 未找到中文, None progposixthreads,9780201633924, POSIX多线程程序设计,9787508313955 diff --git a/makefile b/makefile index 840ab1f..06d77db 100644 --- a/makefile +++ b/makefile @@ -22,4 +22,5 @@ all: \ cpdf -stamp-on link.pdf main.pdf -o $@ rm main.pdf main.ps2 link.ps2 link.pdf -clean: rm *.jpg *.svg +clean: + rm -f *.jpg *.svg *.pdf *.png diff --git a/zh-cn.py b/zh-cn.py index 33f7230..214c651 100644 --- a/zh-cn.py +++ b/zh-cn.py @@ -1,12 +1,18 @@ +#!/usr/bin/env python # -*- coding:utf8 -*- """ 读取game-programmer.dot将其转换为中文版的game-programmer-zh-cn.dot """ -import json -import re -import urllib2 +from __future__ import print_function import csv +import json import os +import re +try: + from urllib.request import urlopen # Python 3 +except ImportError: + from urllib2 import urlopen # Python 2 + IMAGE_PATH = './images-zh-cn/{book_index}.jpg' @@ -16,12 +22,12 @@ def get_image(isbn, image_filename): :rtype: str """ print("get_image(" + isbn + "," + isbn + ")") - response = urllib2.urlopen(book_url) + response = urlopen(book_url) html = response.read() re_image_url = r"https://img/d/.doubanio/.com/lpic/s/d*/.jpg" image_url = re.search(re_image_url, html).group() with open(image_filename, 'w') as ft: - response = urllib2.urlopen(image_url) + response = urlopen(image_url) image = response.read() ft.write(image) @@ -30,12 +36,12 @@ def get_book_url_year(isbn): url = "https://api.douban.com/v2/book/isbn/" + isbn result = "https://book.douban.com/", "" try: - response = urllib2.urlopen(url) + response = urlopen(url) detail = response.read() return json.loads(detail)["alt"], json.loads(detail)["pubdate"][:4] except Exception as e: - print isbn - print e + print(isbn) + print(e) return result def get_book_info(book_index): @@ -161,25 +167,25 @@ def get_book_info(book_index): label_line_match = RE_LABEL_LINE.match(line_without_space) content_line_match = RE_CONTENT_LINE.match(line_without_space) - if book_line_match != None: + if book_line_match is not None: book_index = line_without_space.split(" ")[0] book_title, book_url, book_year = get_book_info(book_index.strip('"')) - if book_title == None: + if book_title is None: zh_f.write(line) else: image_path = IMAGE_PATH.format(book_index=book_index.strip('"')) writeline = space_front+ BOOK_LINE.format(book_index=book_index, image_path=image_path, book_title=book_title, book_year=book_year, url=book_url) zh_f.write(writeline) - elif section_line_match != None: + elif section_line_match is not None: sectionID = re.search(r'\d+\.', line_without_space).group() writeline = space_front + SECTION_LINE.format(section_title=SECTION_TITLE_DICT[sectionID]) zh_f.write(writeline) - elif label_line_match != None: + elif label_line_match is not None: label_index = label_line_match.group().split(' ')[0] en_label_content = re.search(r'label="[\w -=\./\\]*"', line_without_space).group()[7:-1] writeline = space_front + LABEL_LINE.format(label_index=label_index, label=LABEL_DICT[en_label_content]) zh_f.write(writeline) - elif content_line_match != None: + elif content_line_match is not None: sectionID = line_without_space.split('.')[0][37:] + '.' section_title =SECTION_TITLE_DICT[sectionID] if '<' in line_without_space: