diff --git a/game-programmer-zh-cn.dot b/game-programmer-zh-cn.dot
index 2c1c725..d4c623e 100644
--- a/game-programmer-zh-cn.dot
+++ b/game-programmer-zh-cn.dot
@@ -1,793 +1,793 @@
-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=<>
- 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=< |
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=<>
-
- {
- 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=< |
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=<>
-
- {
- 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/"]
- 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=<>
-
- {
- 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/"]
-
- 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=<>
-
- {
- 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=<>
-
- {
- 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 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=<>
+ 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=< |
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=<>
+
+ {
+ 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=< |
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=<>
+
+ {
+ 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/"]
+ 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=<>
+
+ {
+ 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/"]
+
+ 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=<>
+
+ {
+ 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=< |
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/"]
+ }
+
+ 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=<>
+
+ {
+ 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
+ }
+}