Learning Game Physics with Bullet Physics and OpenGL

Learning Game Physics with Bullet Physics and OpenGL
eBook: $17.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $47.98    Print cover: $29.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create your own physics simulations and understand the various design concepts of modern games
  • Build a real-time complete game application, implementing 3D graphics and physics entirely from scratch
  • Learn the fundamental and advanced concepts of game programming using step-by-step instructions and examples

Book Details

Language : English
Paperback : 126 pages [ 235mm x 191mm ]
Release Date : October 2013
ISBN : 1783281871
ISBN 13 : 9781783281879
Author(s) : Chris Dickinson
Topics and Technologies : All Books, Game Development, Open Source

Table of Contents

Chapter 1: Building a Game Application
Chapter 2: Rendering and User Input
Chapter 3: Physics Initialization
Chapter 4: Object Management and Debug Rendering
Chapter 5: Raycasting and Constraints
Chapter 6: Events, Triggers, and Explosions
Chapter 7: Collision Shapes
Chapter 8: Collision Filtering
Chapter 9: Soft Body Dynamics
  • Chapter 1: Building a Game Application
    • Application components
    • Exploring the Bullet and FreeGLUT projects
    • Exploring Bullet's built-in demo applications
    • Starting a new project
    • Building the application layer
      • Configuring FreeGLUT
        • glutKeyboardFunc/glutKeyboardUpFunc
        • glutSpecialFunc/glutSpecialUpFunc
        • glutMouseFunc
        • glutMotionFunc/glutPassiveMotionFunc
        • glutReshapeFunc
        • glutDisplayFunc
        • glutIdleFunc
      • Initializing FreeGLUT
        • glutInit
        • glutInitDisplayMode
        • glutInitWindowPosition/glutInitWindowSize
        • glutCreateWindow
        • glutSetOption
      • Launching FreeGLUT
    • Summary
    • Chapter 2: Rendering and User Input
      • Rendering the scene
        • Introducing double-buffering
        • Understanding the basics of a camera
          • glIdentity
          • glFrustum
          • gluLookAt
          • glViewport
      • Basic rendering and lighting
        • Creating a simple box
      • Let there be light!
        • Normals
        • Creating ambient, diffuse, and specular lighting
        • Understanding depth testing
          • glLightfv
          • glEnable
        • glMaterialfv/glMateriali
          • glShadeModel
          • glDepthFunc
        • Coloring your box
        • Understanding rendering pipelines
      • User input and camera control
        • Implementing camera control
        • Gathering user input
      • Summary
      • Chapter 3: Physics Initialization
        • The core bullet objects
          • The world object
          • The broad phase
          • The collision configuration
          • The collision dispatcher
          • The constraint solver
        • Creating the Bullet components
        • Creating our first physics object
          • The collision shape
          • The motion state
          • The collision object
        • Building a custom motion state
        • Creating a box
        • Rendering from transform data
        • Stepping the simulation
        • Summary
        • Chapter 4: Object Management and Debug Rendering
          • Handling multiple objects
            • Designing our objects
            • Rendering our objects
            • Storing our objects
            • Creating our objects
          • Debug rendering
            • Building the debug drawer
          • Introducing activation states
          • The domino effect
          • Summary
            • Chapter 6: Events, Triggers, and Explosions
              • Building a collision event system
                • Explaining the persistent manifolds
                • Managing the collision event
              • Building trigger volumes
                • Disabling contact response
              • Force, torque, and impulse
                • Understanding the object motion
                • Applying forces
              • Applying impulses
              • Summary

                    Chris Dickinson

                    Chris Dickinson grew up in England with a strong passion for science, mathematics, and, in particular, video games. He received his Master's degree in Physics with Electronics from the University of Leeds in 2005, and then left for California to work in scientific research in the heart of Silicon Valley. Finding that career path unsuitable, he began working in software testing and automation. For years, he attempted to unravel the magic behind video games and 3D worlds through modding and level design, and was mostly self taught in software development and design. But, realizing that he needed proper tutelage and a stronger grasp of the fundamentals, if he ever wanted to build these complex applications himself, he decided to undertake a Bachelor's in Game and Simulation Programming while simultaneously working full time. He earned his second degree in early 2013 and continues his career in software development/test automation while simultaneously developing independent game projects in his spare time.
                    Sorry, we don't have any reviews for this title yet.

                    Code Downloads

                    Download the code and support files for this book.

                    Submit Errata

                    Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                    Sample chapters

                    You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                    Frequently bought together

                    Learning Game Physics with Bullet Physics and OpenGL +    Apache OfBiz Cookbook =
                    50% Off
                    the second eBook
                    Price for both: €26.35

                    Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                    What you will learn from this book

                    • Develop game applications from scratch; create a window, render the scene, and interact with your game through mouse and keyboard input
                    • Write OpenGL code at a low-level; render objects and understand every line of code you write!
                    • Understand how to keep the graphical and physical components of the simulation isolated for ease of understanding and future changes
                    • Learn how to properly handle the rendering and physics processing of multiple objects
                    • Explore the technologies and concepts behind modern game physics simulation through a practical understanding of Bullet Physics and OpenGL
                    • Build crucial features that are essential to all games; collision events, user input, object control, and trigger volumes
                    • Implement advanced physics simulation features like soft body physics, constraints, and collision filtering
                    • Delve into a robust and modern physics engine game; and understand the challenges and solutions the developers of Bullet built into the library

                    In Detail

                    Physics simulation is an integral part of almost all game development projects as it is essential to the rules and feel of the game (gameplay) regardless of the project’s scale. Bullet is a 3D Collision Detection and Rigid Body Dynamics Library for games, and special effects for film and animations. Bullet is integrated into many 3D modelers including Maya, Houdini, Cinema 4D, LightWave, and Blender. It is free for commercial use and open source under the permissive ZLib License.

                    A comprehensive guide to start building games with the Bullet Physics library. Learn how modern physics engines work by implementing key features such as collision event systems, user input handling, and simulation of soft bodies. Then learn to control it all with forces, constraints, and robust object management. This book will reveal what’s going on under the hood of two modern and feature-rich graphics and physics APIs; OpenGL and Bullet Physics.

                    This book begins by teaching you to write your first OpenGL application, and then dives in to exploring the many features of the Bullet library in a straightforward manner. Each new feature expands upon the last, teaching you more about how physics is simulated in a video game, and how Bullet gives you the power to control every aspect of your simulation. You will learn how to render simple and complex shapes, apply some basic lighting, and construct a simple yet robust rendering system. From here, you will pull back the veil to see what’s going on underneath Bullet Physics, and learn to implement key game logic features through this widely-used and extensive physics library. After you finish this book, you’ll be armed with a wealth of knowledge to tackle the more advanced aspects of game graphics and physics going forward.


                    A comprehensive set of straight-forward, easy-to-follow tutorials in OpenGL and Bullet Physics that will teach you how modern game physics and 3D graphics work.

                    Who this book is for

                    If you're a beginner or intermediate programmer with a basic understanding of 3D mathematics, and you want a stronger foundation in 3D graphics and physics, then this book is perfect for you! You'll even learn some of the fundamental concepts in 3D mathematics and software design that lies beneath them both, discovering some techniques and tricks in graphics and physics that you can use in any game development project.

                    Code Download and Errata
                    Packt Anytime, Anywhere
                    Register Books
                    Print Upgrades
                    eBook Downloads
                    Video Support
                    Contact Us
                    Awards Voting Nominations Previous Winners
                    Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                    Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software