1. Course Background
C ++ is the most complex integrated paradigm language in the world. The software development industry of the IT industry and the general consensus of companies are that C ++ is very skilled, it will be easier to switch to other businesses and technologies. People who can master C ++ can solve technical problems completely. Almost all of C ++'s 3D graphics engines, game clients, server programs, image processing software, underlying high-response network architecture, and scientific computing are involved. If you are familiar with C ++, then the C language does not need to be learned again, and you will naturally turn to Java/C #/Vb/Python and other languages, their basic syntax proficiency can be completed in at most two weeks (not including the knowledge of libraries and frameworks of these languages, in fact, most language-based sdks/APIs can be temporarily queried, ).
2. Course objects and objectives
2.1 Basic Requirements: possess basic syntax knowledge of any of the C/C ++/Java/C # languages, with a code larger than 450 lines
2.2 direct effect: A person who has no experience in C ++ or any small project but has a basic syntax will stick to the exercises through this course, you can gradually write out a multiplayer network five-play game (which will experience projects of a number of versions, including the standalone version, lan peer-to-peer version, Internet server version, graphic interface version, multiplayer online version, and artificial intelligence machine ). created ), and some engines, libraries, and 3D games.
2.3 deeper objective: step-by-step improvement of C ++ syntax proficiency, learning and construction of various algorithms, code reuse techniques, business logic analysis ideas, learning to use some design patterns and MVC ideas, project development ideas, socket Networks programming, how to encapsulate public reusable libraries, skilled windows sdks and multithreading, Linux server programs, graphics basics, simple 3D soft Rendering Engine Design
3 course catalog
Phase I: wuziqi in the console
Class C ++ and warm-up
Lesson 1 single-host double play
Lesson 2 Command Line Remote Control Program
Lesson 3 server/client dual wuziqi (Windows)
Lesson 3 server/client dual wuziqi (Linux)
Phase II: graphic world: wuziqi
Lesson 4 graphic GUI wuziqi Based on easyx
Lesson 5 reconstruct the wuziqi framework
Lesson 6 GUI wuziqi Based on Windows SDK
Lesson 7 AI engine: Single-host Man-Machine vs. wuziqi
Lesson 8 RECORDER: recording the playing chess Process
The second reconstruction of the wuziqi framework in Lesson 9
Lesson 10 online multiplayer/personalized robot online wuziqi
Third Advanced Course: 3D graphics world
Lesson 11th principle of 3D Engine
Lesson 12th design 3D network wuziqi with a ready-made 3D Engine
13th use GDI to design your own 3D soft Rendering Engine
Lesson 3 3D soft Renderer: Line Rendering
Lesson 3 3D soft Renderer: triangle Rendering
Lesson 3 3D soft Renderer: spatial transformation and projection
Lesson 3 3D soft Renderer: Alpha hybrid
Lesson 18th 3D soft Renderer: texture ing
Lesson 19th 3D soft Renderer: Ray Tracing
Lesson 20th 3D soft Renderer: Anti-sample Algorithm
21st class engine test: 3D tank war prototype
22nd class engine test: 3D super Mary prototype
Lesson 23rd mmo3d game prototype based on Web2.0
Stage 4 Script Engine: Design of object-oriented Scripting Language and Its Interpreter (sub-outline to be determined)
Phase 5 compilation principles: design new database languages and virtual machines (sub-outline to be determined)
Phase 6 distributed systems and cloud computing: design of the distributed computing and cloud computing infrastructure prototype (sub-outline to be determined)
4. The instructor declares:
All the above content can be independently implemented by the instructors (preparation time is required for Phase 5 and Phase 6), but it is not guaranteed that the serialization course can be implemented to the end, this depends on a variety of factors (such as whether you are interested in the course, the feasibility of the course, the author's daily energy and time, and the author's poor teaching experience ), I can only do my best. After all, writing projects is totally different from teaching projects, but I believe this is also fun, the time interval between each course depends entirely on the idle time of the serialization author.
The above plan may be implemented gradually within six months and some interesting things may be added. If you see the above outline, you can tell me your thoughts or idea.
INSTRUCTOR: zblc (www.cppblog.com/zblc)
Contact: zblcving@hotmail.com
Teaching Platform: Mathematics China (MADIO)
Teaching organization: Nanchang Institute of Technology Information Science Association
Specific start time: to be determined, start the first phase in about 1.5 months (if you need to update the latest course information in real time, you can post and leave an email)
2013-03-23