舉報(bào)

會員
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 更新時(shí)間:2021-06-24 14:26:39
推薦閱讀
- 24小時(shí)學(xué)會電腦組裝與維護(hù)
- 深入理解Spring Cloud與實(shí)戰(zhàn)
- Windows phone 7.5 application development with F#
- Learning AngularJS Animations
- 計(jì)算機(jī)組裝·維護(hù)與故障排除
- 基于ARM的嵌入式系統(tǒng)和物聯(lián)網(wǎng)開發(fā)
- INSTANT ForgedUI Starter
- SiFive 經(jīng)典RISC-V FE310微控制器原理與實(shí)踐
- Blender Quick Start Guide
- Spring Cloud微服務(wù)和分布式系統(tǒng)實(shí)踐
- 計(jì)算機(jī)組裝與維護(hù)(慕課版)
- Instant Website Touch Integration
- Blender for Video Production Quick Start Guide
- 基于S5PV210處理器的嵌入式開發(fā)完全攻略
- MicroPython Cookbook
- 快·易·通:2天學(xué)會電腦組裝·系統(tǒng)安裝·日常維護(hù)與故障排除
- Hands-On Embedded Programming with C++17
- PLC技術(shù)實(shí)用教程
- Liferay 6.2 User Interface Development
- 數(shù)字噴墨與應(yīng)用
- Fixing Bad UX Designs
- ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)(Cortex-A9版)(微課版)
- 計(jì)算機(jī)組裝與調(diào)試維修
- Pro Tools HD:Advanced Techniques and Workfl ows
- Android Programming with Kotlin for Beginners
- 筆記本電腦維修從入門到精通
- Hands-On Convolutional Neural Networks with TensorFlow
- User Experience Mapping
- Building Forms with Vue.js
- KVM實(shí)戰(zhàn):原理、進(jìn)階與性能調(diào)優(yōu)