舉報

會員
C++ Game Development By Example
Althoughnumerouslanguagesarecurrentlybeingusedtodevelopgames,C++remainsthestandardforfabricatingexpertlibrariesandtoolchainsforgamedevelopment.ThisbookintroducesyoutotheworldofgamedevelopmentwithC++.C++GameDevelopmentByExamplestartsbytouchinguponthebasicconceptsofmath,programming,andcomputergraphicsandcreatingasimpleside-scrollingaction2Dgame.You'llbuildasolidfoundationbystudyingbasicgameconceptssuchascreatinggameloops,rendering2DgamescenesusingSFML,2Dspritecreationandanimation,andcollisiondetection.Thebookwillhelpyouadvancetocreatinga3DphysicspuzzlegameusingmodernOpenGLandtheBulletphysicsengine.You'llunderstandthegraphicspipeline,whichentailscreating3Dobjectsusingvertexandindexbuffersandrenderingthemtothesceneusingvertexandfragmentshaders.Finally,you'llcreateabasicprojectusingtheVulkanlibrarythat'llhelpyougettogripswithcreatingswapchains,imageviews,renderpasses,andframebuffersforbuildinghigh-performancegraphicsinyourgames.Bytheendofthisbook,you’llbereadywith3compellingprojectscreatedwithSFML,theVulkanAPI,andOpenGL,andyou'llbeabletakeyourgameandgraphicsprogrammingskillstothenextlevel.
目錄(170章)
倒序
- coverpage
- Title Page
- Copyright and Credits
- C++ Game Development By Example
- Dedication
- About Packt
- Why subscribe?
- Packt.com
- Contributors
- About the author
- About the reviewers
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Section 1: Basic Concepts
- C++ Concepts
- Program basics
- Variables
- Strings
- Operators
- Statements
- Iteration
- Jump statements
- Switch statement
- Functions
- Scope of variables
- Arrays
- Pointers
- Structs
- Enums
- Classes
- Inheritance
- Summary
- Mathematics and Graphics Concepts
- 3D coordinate system
- Points
- Vectors
- Vector operations
- Vector magnitude
- Unit vector
- Dot product
- Cross product
- Matrices
- Matrix Addition and Subtraction
- Matrix multiplication
- Identity matrix
- Matrix transpose
- Matrix inverse
- GLM OpenGL mathematics
- OpenGL data types
- Space transformations
- Local/object space
- World space
- View space
- Projection space
- Screen space
- Render pipeline
- Vertex specification
- Vertex shader
- Vertex post-processing
- Primitive assembly
- Rasterization
- Fragment shader
- Per-sample operation
- Framebuffer
- Summary
- Section 2: SFML 2D Game Development
- Setting Up Your Game
- An overview of SFML
- Downloading SFML and configuring Visual Studio
- Creating a window
- Drawing shapes
- Adding sprites
- Keyboard input
- Handing player movement
- Summary
- Creating Your Game
- Starting afresh
- Creating the hero class
- Creating the enemy class
- Adding enemies
- Creating a rocket class
- Adding rockets
- Collision detection
- Summary
- Finalizing Your Game
- Finishing the Gameloop and adding scoring
- Adding text
- Adding audio
- Adding player animations
- Summary
- Section 3: Modern OpenGL 3D Game Development
- Getting Started with OpenGL
- What is OpenGL?
- Creating our first OpenGL project
- Creating a window and ClearScreen
- Creating a Mesh class
- Creating a Camera class
- The ShaderLoader class
- The Light Renderer class
- Drawing the object
- Summary
- Building on the Game Objects
- Creating a MeshRenderer class
- Creating the TextureLoader class
- Adding Bullet Physics
- Adding rigid bodies
- Summary
- Enhancing Your Game with Collision Loop and Lighting
- Adding a RigidBody name
- Adding an enemy
- Moving the enemy
- Checking collision
- Adding keyboard controls
- Game loop and scoring
- Text rendering
- Adding lighting
- Summary
- Section 4: Rendering 3D Objects with Vulkan
- Getting Started with Vulkan
- About Vulkan
- Configuring Visual Studio
- Vulkan validation layers and extensions
- Vulkan instances
- The Vulkan Context class
- Creating the window surface
- Picking a physical device and creating a logical device
- Summary
- Preparing the Clear Screen
- Creating the SwapChain
- Creating the Renderpass
- Using render targets and Framebuffers
- Creating CommandBuffer
- Begining and ending Renderpass
- Creating the clear screen
- Summary
- Creating Object Resources
- Updating the Mesh class for Vulkan
- Creating the ObjectBuffers class
- Creating the Descriptor class
- Creating the SPIR-V shader binary
- Summary
- Drawing Vulkan Objects
- Preparing the graphics pipeline class
- Shader stage create info
- Vertex input state create info
- Input assembly create info
- Rasterization state create info
- MultiSample state create info
- Depth and stencil create info
- Color blend state create info
- Dynamic state info
- Viewport state create info
- Graphics pipeline create info
- Object renderer class
- Changes to the VulkanContext class
- Camera class
- Drawing the object
- Synchronizing the object
- References
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 14:26:39
推薦閱讀
- 深入理解Spring Cloud與實戰(zhàn)
- 計算機組裝與系統(tǒng)配置
- Creating Dynamic UI with Android Fragments
- 從零開始學(xué)51單片機C語言
- 單片機開發(fā)與典型工程項目實例詳解
- 基于Proteus仿真的51單片機應(yīng)用
- VMware Workstation:No Experience Necessary
- 單片微機原理及應(yīng)用
- The Artificial Intelligence Infrastructure Workshop
- 單片機原理與技能訓(xùn)練
- 單片機項目設(shè)計教程
- 微控制器的應(yīng)用
- Drupal Rules How-to
- Corona SDK Mobile Game Development:Beginner's Guide
- 多媒體應(yīng)用技術(shù)(第2版)
- FPGA進階開發(fā)與實踐
- Applied Deep Learning with Keras
- 電腦軟硬件維修寶典
- Learn Qt 5
- Unreal Engine 4 AI Programming Essentials
- Mastering JavaServer Faces 2.2
- Learn Human:Computer Interaction
- Hands-On Python Deep Learning for the Web
- GLSL Essentials
- GateIn Cookbook
- Xilinx FPGA高速串行傳輸技術(shù)與應(yīng)用
- Liferay Beginner’s Guide
- Blender 3D Printing Essentials
- PySide GUI Application Development
- Building Forms with Vue.js