diff --git a/game-programmer-zh-cn.dot b/game-programmer-zh-cn.dot
new file mode 100644
index 0000000..b895df5
--- /dev/null
+++ b/game-programmer-zh-cn.dot
@@ -0,0 +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 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=<>
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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=<>
+
+ {
+ 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
new file mode 100644
index 0000000..30af5a7
Binary files /dev/null and b/game-programmer-zh-cn.jpg differ
diff --git a/game-programmer-zh-cn.pdf b/game-programmer-zh-cn.pdf
new file mode 100644
index 0000000..e5685c9
Binary files /dev/null and b/game-programmer-zh-cn.pdf differ
diff --git a/game-programmer-zh-cn.png b/game-programmer-zh-cn.png
new file mode 100644
index 0000000..c1c158a
Binary files /dev/null and b/game-programmer-zh-cn.png differ
diff --git a/game-programmer-zh-cn.svg b/game-programmer-zh-cn.svg
new file mode 100644
index 0000000..c6f6dc6
--- /dev/null
+++ b/game-programmer-zh-cn.svg
@@ -0,0 +1,4556 @@
+
+
+
+
+
diff --git a/game-programmer.dot b/game-programmer.dot
index a8a6f0b..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/8 |
+ 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/"]
@@ -274,16 +274,14 @@ digraph {
codecomplete2 -> apidesignforcpp
dp -> agilesoftwaredev -> designpatterns [arrowhead=normal, style=solid]
- agilesoftwaredev -> headfirstdesignpatterns -> designpatterns
+ dp -> headfirstdesignpatterns -> agilesoftwaredev
uml -> umldistilled3 -> umluserguide2 -> ooadwa3
- sepractice -> { designpatterns; umldistilled3 } [style=invis]
-
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]
- cleancode -> sebottom [style=invis]
+ workingeffectivelylegacycode -> sebottom [style=invis]
}
subgraph cluster_math {
@@ -303,7 +301,7 @@ digraph {
geometricalgebra [label=< |
Geometric Algebra for Computer Science (2007) |
> URL="https://www.amazon.com/dp/0123749425/"]
geometrictools [label=< |
Geometric Tools for Computer Graphics (2002) |
> URL="https://www.amazon.com/dp/1558605940/"]
- computationalgeometry [label=< |
Geometric Tools for Computational Geometry 3rd Ed (2008) |
> URL="https://www.amazon.com/dp/3540779736/"]
+ computationalgeometry [label=< |
Computational Geometry 3rd Ed (2008) |
> URL="https://www.amazon.com/dp/3540779736/"]
visualizingquaternions [label=< |
Visualizing Quaternions (2006) |
> URL="https://www.amazon.com/dp/0120884003/"]
divgradcurl4 [label=< |
Div, Grad, Curl and all That 4th Ed (2004) |
> URL="https://www.amazon.com/dp/0393925161/"]
@@ -507,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/"]
@@ -521,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/"]
@@ -564,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]
@@ -598,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 {
@@ -646,14 +658,16 @@ 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 Animation for Computer Graphics 2nd Ed (2015) |
> URL="https://www.amazon.com/dp/1482232839/"]
+ 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}
@@ -666,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=""]
@@ -699,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]
@@ -716,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 f2914e3..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 44aab35..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 cd5f42c..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 ac05628..689637c 100644
--- a/game-programmer.svg
+++ b/game-programmer.svg
@@ -1,198 +1,236 @@
-
-