0 J/ I" e) N5 q' Q- t& G C++是世界上最复杂的综合范式语言,IT业的软件开发行业和公司普遍共识是,C++很熟练的人,转向其它业务和技术都将会相对更容易,能掌握C++的人,解决技术问题的能力也普遍会比较彻底。涉及到C++的3D图形引擎、游戏客户端、服务器端程序、图像处理软件、高响应网络架构的底层、科学计算等,几乎都有它的身影。如果你熟练了C++,那么C语言是不需要再重复学习就自然会的,转向Java/C#/VB/Python等语言,对他们的基础语法熟练度大概最多两星期内可以磨合完毕(不包含这些语言的库和框架的熟悉,事实上大部分语言基于的SDK/APIs都可以临时查询,现查现用)。- f' i s1 u$ c( q0 y
. x! H9 x( _, f' a6 p' Y5 y4 W2 a! V. B$ K3 r+ X C
2 课程对象及目的 # W# K1 Z! v. i1 t8 y% m* ^: ] ' C$ G0 S% h4 i' o3 a! O$ u6 R 2.1 需要基础:具备C/C++/Java/C#几种语言任意一种的基本语法知识,代码量大于450行 " }" O: P1 n. |9 O 2.2 直接效果:一个没C++任何小项目经验但有语法基础的人,通过此课程,坚持练习,可以逐步写出一款多人网络五子棋对战游戏(将会体验单机版、局域网对等对战版、互联网服务器版、图形界面版、多人在线版、人工智能机器等若干个版本的项目建立) }" G" G, R; I# J8 ~' o! Y 2.3 更深层次目的:阶梯式提高C++语法熟练度、各类算法的学习和构造、代码复用技巧、业务逻辑的分析思路、学会运用部分设计模式及MVC思想、项目开发思路、Socket网络编程、如何封装公共复用库、熟练Windows SDK及多线程、Linux服务器端程序、图形学基础、简单3D软渲染引擎设计 ( H, {. {/ T3 [# [: k 6 [/ V2 L0 B3 a! k! K$ w6 Y2 X/ o+ i( o4 x, `9 X0 j7 b
3 课程目录 - S9 C- |; s% x* `( I/ l, }' C+ l
第一期 大道至简:控制台下的五子棋/ D" M4 ^) i) ?0 ~ Q
/ t) F7 K4 ~0 ^$ j0 X8 ~+ Z
第零课 C++基于及热身 / @% V3 r' d( ~, ` ? k% o3 N 第一课 单机双人五子棋# m+ Z4 |& |5 p9 E& q {
第二课 命令行远程控制程序 0 z8 [0 z9 L1 [# r4 p" s 第三课 Server/Client双人五子棋(Windows版) / R7 y) u9 c0 _! T8 g! q 第三课附加 Server/Client双人五子棋(Linux版)$ I: F( h9 E7 J* }) O
! @0 g- R6 ~7 m 第二期 图形世界:图形特效的五子棋$ A" _ ?4 h. t! O! G/ |7 ]
6 H1 {) ?5 w$ b3 d& l
第四课 基于EasyX的图形界面五子棋 g& a7 {! W1 Z. \0 ~' @3 z
第五课 重构五子棋框架+ C+ d: F# j/ l4 ?* ^! {
第六课 基于Windows SDK的图形界面五子棋1 V8 N; |/ Z }2 ?8 a
第七课 AI引擎:单机版人机对战五子棋 + ? u z& o8 y8 @, t( q9 S 第八课 记录器:录制下棋过程版五子棋 9 s/ ~5 h2 v7 X4 Z: i9 f 第九课 第二次重构五子棋框架 . G0 o, ^. d/ {( W+ M. l m 第十课 网络版多人/多个性定制化机器人在线五子棋 ; u" @+ T# X4 w4 H. }' C0 J, M7 b" M& ?( [7 V
第三期 高级课程:3D图形世界 6 D7 w0 ]- ~+ ?3 z% c/ a' M 0 A6 E. R* J! v+ h6 B 第十一课 3D引擎的原理基础 ' p. l. c' t+ P4 B. l7 q 第十二课 使用现成3D引擎设计3D网络五子棋) r' s" O" M4 f) v
第十三课 用GDI设计自己的3D软渲染引擎$ s( ~6 q4 ~5 u
第十四课 3D软渲染器:线渲染 2 h- X1 q1 G/ V$ n 第十五课 3D软渲染器:三角渲染 1 A' A! H$ O2 F; u# L 第十六课 3D软渲染器:空间变换与投影 % \8 w5 U! T2 A4 q# c( o4 Z1 e 第十七课 3D软渲染器:Alpha混合6 @1 @8 K3 u9 X) `, L2 T# t
第十八课 3D软渲染器:纹理映射 : C7 V: }4 B8 H: [, U# p 第十九课 3D软渲染器:Ray Tracing$ T& g6 F6 [! P7 U. C8 H
第二十课 3D软渲染器:防走样算法 - D! F- m7 d. w6 j+ U 第二十一课 引擎测试:3D坦克大战Prototype& u3 g. | W; P2 J- d
第二十二课 引擎测试:3D超级玛丽Prototype, Q7 c# X3 G U
第二十三课 基于web2.0的MMO3D游戏Prototype - U. \ i2 }$ }& V {' ]! i: R) ?- R7 \
第四期 脚本引擎:设计基于面向对象的脚本语言及其解释器(子提纲待定)% a& x4 r: {1 }+ k
7 s! G x: a' q2 E' d 第五期 编译原理:设计新型数据库语言及其虚拟机(子提纲待定)& c) Q2 e9 Z6 U7 U0 {8 w6 }3 r
, \( z) [) q$ W( E+ p% e 第六期 分布式系统及云计算:分布式计算与云计算基础架构设计Prototype(子提纲待定) ) h4 @" c' R% y" W& {& ?& M9 L 7 f0 ]$ I% |5 l& E' B0 e * z* v. b" A# g( o) n; |4 授课作者声明: ( _2 W& F. ^9 _* v+ D / Y. c4 U" k; k& o0 o 以上内容,授课作者均有能力独立实现(5、6期略需要准备时间),但不保证该连载课程能坚持执行到底,这取决于多方面因素(比如大家是否对该课程感兴趣,以及该课程的讲解可行性,作者本人的日常精力时间,作者的少的可怜的授课经验),只能尽力而为,毕竟写项目和教人写项目在投入精力上是完全不同的,但作者本人也相信这也是乐趣所在,每课之间的时间间距完全取决于连载作者的业余时间空闲程度。 - i. \8 A+ G' m6 W+ y) h4 ]. t1 o5 [& H9 r& ]
半年内可能会逐步实施以上计划并可能加入一些有趣的东西,看到以上的提纲,有想法或者idea可以告诉我。 , {# X' X, L+ L6 {* E8 K% L/ R& z: M, H
授课作者:zblc (www.cppblog.com/zblc) 4 J9 S+ O% b0 c8 F8 l- D; R . p' ?! g8 e- p# I* A- I 联系方式:zblcving@hotmail.com * b' K3 t. e7 ^' m6 D) l) F5 ^2 ~ $ x7 T V8 Z1 X7 y$ _# e( H; w3 O 授课平台:数学中国(MADIO) 3 v/ ~2 B2 _5 {4 { " s! \. U0 B, x' c# h# a 具体开始时间:待定,大概1.5个月内进行第一期(有需要实时更新最新课程信息的可以发帖留下邮件)% F' p6 `- k+ X0 p5 N1 I0 z
; l/ K4 o# {* Z; ~8 M) ^ o 2013-03-23; ]: n" D- H. {+ h