Build your own 2D Game Engine and Create Great Web Games: Using HTML5, JavaScript, and WebGL

  • 7h 42m
  • Fernando Arnez, Jason Pace, Jebediah Pavleas, Kelvin Sung
  • Apress
  • 2015

Build Your Own 2D Game Engine and Create Great Web Games teaches you how to develop your own web-based game engine step-by-step, allowing you to create a wide variety of online videogames that can be played in common web browsers. Chapters include examples and projects that gradually increase in complexity while introducing a ground-up design framework, providing you with the foundational concepts needed to build fun and engaging 2D games. By the end of this book you will have created a complete prototype level for a side scrolling action platform game and will be prepared to begin designing additional levels and games of your own.

This book isolates and presents relevant knowledge from software engineering, computer graphics, mathematics, physics, game development, game mechanics, and level design in the context of building a 2D game engine from scratch. The book then derives and analyzes the source code needed to implement these concepts based on HTML5, JavaScript, and WebGL.

After completing the projects you will understand the core-concepts and implementation details of a typical 2D game engine and you will be familiar with a design and prototyping methodology you can use to create game levels and mechanics that are fun and engaging for players. You will gain insights into the many ways software design and creative design must work together to deliver the best game experiences, and you will have access to a versatile 2D game engine that you can expand upon or utilize directly to build your own 2D games that can be played online from anywhere.

  • Assists the reader in understanding the core-concepts behind a 2D game engine
  • Guides the reader in building a functional game engine based on these concepts
  • Leads the reader in exploring the interplay between technical design and game experience design
  • Teaches the reader how to build their own 2D games that can be played across internet via popular browsers

About the Authors

Kelvin Sung is a professor with the Computing and Software Systems Division and the principal investigator of the Game-Themed Research Group at University of Washington Bothell (UWB). He received his Ph.D. in computer science from the University of Illinois at Urbana-Champaign in 1992. His background is in computer graphics, hardware, and machine architecture. He came to UWB from Alias|Wavefront (now part of Autodesk) in Toronto, where he played a key role in designing and implementing the Maya renderer, an Academy Award-winning image generation system. Before joining Alias|Wavefront, Kelvin was an assistant professor with the School of Computing, National University of Singapore. Kelvin's research interests are in studying the role of technology in supporting human communication. Funded by Microsoft Research and the National Science Foundation, Kelvin's recent work focused on the intersection of video game mechanics, real-world problems, and mobile technologies. Kelvin teaches both undergraduate and graduate classes in computer graphics, game development, and mobile computing.

Jebediah Pavleas is a graduate student in the Computer Science and Software Engineering program at the University of Washington Bothell (UWB) as well as an intern on the NExT Enable team at Microsoft Research. He is also the coauthor of the book Learn 2D Game Development with C#. He received a bachelor's of science degree in 2012 and was the recipient of the Chancellor's Medal for his class. During his time as an undergraduate, he took great interest in both computer graphics and games. His projects included an interactive math application that utilizes Microsoft's Kinect sensor to teach algebra, a 2D role-playing game designed to teach students introductory programming concepts, and a web site where students can compete in various mini-games to control checkpoints around campus. Relating to these projects, he coauthored publications in IEEE Computers and The Journal of Computing Sciences in Colleges (CCSC). When not working toward his graduate degree, he enjoys designing, building, and playing games of all kinds as well as adapting technology for improved accessibility.

Fernando Arnez is an undergraduate student in the Computing and Software Systems Division at the University of Washington Bothell (UWB) working toward his bachelor's degree in computer science and software engineering. He is a member of the Game-Themed Research Group and has participated in projects that built casual games for teaching introductory programming concepts. He coauthored an article in IEEE Computers discussing his work and the results from those projects.

Jason Pace directs the University of Washington Bothell's Digital Future Lab, an interactive media research and development studio modeling startup culture for a diverse group of student developers, designers, artists, musicians, and producers. He started the lab after spending 16 years at Microsoft leading user experience and product development teams on a number of Microsoft's key consumer products, including serving as a creative director and lead producer on the Halo team at 343 Industries and Design Manager for the Microsoft Casual Games group. His work in the lab focuses on exploring how radically diverse teams that seek to maximize differences among contributors can lead to unexpected insights and new directions in design and development. The lab brings undergraduate students together from across majors and schools to create high-performance creative teams engaged in both commercial game development and design research.

In this Book

  • Introducing 2D Game Engine Development with JavaScript
  • Working with HTML5 and WebGL
  • Drawing Objects in the World
  • Implementing Common Components of Video Games
  • Working with Textures, Sprites, and Fonts
  • Defining Behaviors and Detecting Collisions
  • Manipulating the Camera
  • Implementing Illumination and Shadow
  • Integrating Physics and Particles
  • Supporting Camera Background
  • Building a Sample Game: From Design to Completion