Chapter 1: Introduction
Sub-Topics
- Introduction to the IDE
- Development environment setup - Guide to use the book
- References
Chapter 2: Working with HTML5 and WebGL2
Sub - Topics
- HTML5 canvas for drawing
- Project organization
- Elementary drawing with WebGL2
- Abstraction with JavaScript objects
- Working with shaders and controlling the color
Chapter 3: Transformation and World Coordinate
Sub-Topics:
- Renderable: encapsulating drawing
- Transforming a renderable object
- Encapsulating the transform operator
- View and projection transform and the viewport
- The camera
Chapter 4: Common Components of a Game Engine
Sub-Topics:
- The game loop
- Keyboard input
- Resource management and asynchronous loading
- Game levels and scene files
- Scene objects
- Audio support
Chapter 5: Working with Texture, Sprites, and Fonts
Sub-Topics:
- Texture mapping and texture coordinates
- Drawing with sprite sheets
- Sprite animations
- Fonts and drawing of text
Chapter 6: Behaviors and Collisions
Sub-Topics:
- Abstraction of game objects
- Elementary behavior: chasing
- Collision between game objects
- Per-pixel accurate collisions
Chapter 7: Camera Manipulations
Sub-Topics:
- Basic camera manipulations
- Manipulation with interpolations
- Camera shake effect
- Working with multiple cameras
- Mouse input through the cameras
Chapter 8: Illumination and Shadow
Sub-Topics:
About the Author: Kelvin Sung is a Professor with the Computing and Software Systems Division at University of Washington Bothell (UWB). He received his Ph.D. in Computer Science from the University of Illinois at Urbana‐Champaign. Kelvin's background is in computer graphics, hardware, and machine architecture. He came to UWB from Alias-Wavefront (now part of Autodesk), where he played a key role in designing and implementing the Maya Renderer, an Academy Award‐winning image generation system. At UWB, funded by Microsoft Research and the National Science Foundation, Kelvin's work focuses on the intersection of video game mechanics, solutions to real‐world problems, and mobile technologies. Together with his students and colleagues, Kelvin has co‐authored five books: one in computer graphics (Essentials of Interactive Computer Graphics: Concepts and Implementations, A.K. Peters, 2008), and the others in 2D game engines (Learn 2D Game Development with C#, APress, 2013; Build Your Own 2D Game Engine; Create Great Web Games, Apress, October 2015; Building a 2D Game Physics Engine, APress, 2016; and Basic Math for Game Development with Unity 3D, Apress 2019).
Matthew Munson is a graduate student in the Computer Science and Software Engineering program at the University of Washington Bothell. He received undergraduate degrees in Computer Science and Software Engineering and Mechanical Engineering at the University of Washington Bothell in 2020. Matthew is interested in operating system development, networking, and embedded systems. As a research assistant Matthew used cloud computing to analyze years of audio data recorded by hydrophones off the Oregon coast. This data was used to study the effects of climate change and shipping noise on marine mammals. Currently, Matthew is working on a networked augmented reality library that focuses on allowing users to view the same virtual scene from different perspectives. Jason Pace has contributed to a wide range of games as a Producer, Designer, and Creative Director over 15 years in the interactive entertainment industry, from ultra-casual puzzlers to Halo. As a Designer Jason builds game mechanics and systems that start from a simple palette of core interactions (known as the core gameplay loop), progressively introducing variety and complexity to create interactive experiences that engage and delight players while maintaining focus on what makes each unique game fun.
Fernando Arnez is working with Facebook as Software Engineer.