Details

Build Your Own 2D Game Engine and Create Great Web Games


Build Your Own 2D Game Engine and Create Great Web Games

Using HTML5, JavaScript, and WebGL2
2nd ed.

von: Kelvin Sung, Jebediah Pavleas, Matthew Munson, Jason Pace

66,99 €

Verlag: Apress
Format: PDF
Veröffentl.: 03.12.2021
ISBN/EAN: 9781484273777
Sprache: englisch
Anzahl Seiten: 741

Dieses eBook enthält ein Wasserzeichen.

Beschreibungen

<p>Develop a 2D game engine that will give you the experience and core understanding of foundational concepts for building complex and fun 2D games that can be played across the Internet via popular web browsers. This book is organized so that the chapters follow logical steps of building a game engine and integrates concepts accordingly.</p>

<p><i>Build Your Own 2D Game Engine and Create Great Web Games</i> isolates and presents relevant concepts from software engineering, computer graphics, mathematics, physics, game development and game design in the context of building a 2D game engine from scratch. In this edition, all the code is based on updated versions of JavaScript with HTML5 and WebGL2: you will analyze the source code needed to create a game engine that is suitable for implementing typical casual 2D videogames. You will also learn about physics and particle system. The discussion of physics component includes rotations and popular physical materials such as wood, mud, and ice. The discussion of particle component has popular presets such as fire, smoke, and dust.&nbsp;</p>

<p>By the end of the book, you will understand the core concepts and implementation details of a typical 2D game engine, learn insights into how these concepts affect game design and game play, and have access to a versatile 2D game engine that they can expand upon or utilize to build their own 2D games from scratch with HTML5, JavaScript, and WebGL2.</p>

<p><b>What You Will Learn</b></p>

<p></p><ul><li>Understand essential concepts for building 2D games</li><li>Grasp the basic architecture of 2D game engines</li><li>Understand illumination models in 2D games</li><li>Learn basic physics used in 2D games</li><li>Find out how these core concepts affect game design and game play</li><li>Learn to design and develop 2D interactive games</li></ul><p></p>











<p>&nbsp;<b>Who Is This Book For</b></p>

<p>Game enthusiasts, hobbyists, and anyone with little to no experience who are interested in building interactive games but are unsure of how to begin. This can also serve as a textbook for a junior- or senior-level "Introduction to Game Engine" course in a Computer Science department.</p>
<p><b>Chapter 1:&nbsp; Introduction </b></p>

<p>Sub-Topics</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Introduction to the IDE</p>

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Development environment setup<p></p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Guide to use the book</p>

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; References<p></p>

<p>&nbsp;</p>

<p><b>Chapter 2:&nbsp; Working with HTML5 and WebGL2</b></p>

<p>Sub - Topics</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML5 canvas for drawing</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Project organization</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elementary drawing with WebGL2</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Abstraction with JavaScript objects</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Working with shaders and controlling the color</p>

<p>&nbsp;</p>

<p><b>Chapter 3: Transformation and World Coordinate</b></p>

<p>Sub-Topics:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Renderable: encapsulating drawing</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transforming a renderable object</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Encapsulating the transform operator</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; View and projection transform and the viewport</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The camera</p>

<p>&nbsp;</p>

<p><b>Chapter 4: Common Components of a Game Engine</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The game loop</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Keyboard input</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resource management and asynchronous loading</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Game levels and scene files</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scene objects</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Audio support</p>

<p>&nbsp;</p>

<p><b>Chapter 5:&nbsp; Working with Texture, Sprites, and Fonts</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Texture mapping and texture coordinates</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Drawing with sprite sheets</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sprite animations</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fonts and drawing of text</p>

<p>&nbsp;</p>

<p><b>Chapter 6:&nbsp; Behaviors and Collisions</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Abstraction of game objects</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elementary behavior: chasing</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collision between game objects</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Per-pixel accurate collisions</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><b>Chapter 7:&nbsp; Camera Manipulations</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Basic camera manipulations</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manipulation with interpolations</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Camera shake effect</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Working with multiple cameras</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mouse input through the cameras</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p>Chapter 8:&nbsp; Illumination and Shadow</p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ambient light</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Point light sources</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Multiple light sources and distance attenuation</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Diffuse reflections and normal mapping</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specular reflections and materials</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directional and spot lights</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Simulation of shadows</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><b>Chapter 9:&nbsp; Physics</b></p>

<p>Sub - Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Physics engine and rigid shapes</p>

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Broad-phase collision detection<p></p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collision information and separation axis theorem</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collision between rectangles and circles</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Movement and symplectic Euler integration</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resolving collisions</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Support for rotations</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Physics engine presets: wood, mud, ice, and dirt</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><b>Chapter 10:&nbsp; Particle Systems and Stenciling</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Particles and effects</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Particle emitters</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Particle system presets: fire, smoke, snow, dust, and explosion</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stencils </p>

<p>&nbsp;</p>

<p><b>Chapter 11:&nbsp; Supporting Camera Background</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tiling of the background</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Motion parallax</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Layer management</p>

<p>&nbsp;</p>

<p><b>Chapter 12:&nbsp; Building a Sample Game: From Design to Completion</b></p>

<p>Sub-Topics: </p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Game concept and design</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integrating a setting: layout and playable space</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Additional elements: interaction model and audio</p><p></p>
<div>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).</div><div><br></div><div>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.&nbsp;<br></div><div><br></div><div>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.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp;&nbsp;</div><div>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.</div><div><br></div>
<p>Develop a 2D game engine that will give you the experience and core understanding of foundational concepts for building complex and fun 2D games that can be played across the Internet via popular web browsers. This book is organized so that the chapters follow logical steps of building a game engine and integrates concepts accordingly.</p><p><i>Build Your Own 2D Game Engine and Create Great Web Games</i>&nbsp;isolates and presents relevant concepts from software engineering, computer graphics, mathematics, physics, game development and game design in the context of building a 2D game engine from scratch. In this edition, all the code is based on updated versions of JavaScript with HTML5 and WebGL2: you will analyze the source code needed to create a game engine that is suitable for implementing typical casual 2D videogames. You will also learn about physics and particle system. The discussion of physics component includes rotations and popular physical materials such as wood, mud, and ice. The discussion of particle component has popular presets such as fire, smoke, and dust.&nbsp;</p><p>By the end of the book, you will understand the core concepts and implementation details of a typical 2D game engine, learn insights into how these concepts affect game design and game play, and have access to a versatile 2D game engine that they can expand upon or utilize to build their own 2D games from scratch with HTML5, JavaScript, and WebGL2.</p><p>You will:</p><p></p><ul><li>Understand essential concepts for building 2D games</li><li>Grasp the basic architecture of 2D game engines</li><li>Understand illumination models in 2D games</li><li>Learn basic physics used in 2D games</li><li>Find out how these core concepts affect game design and game play</li><li>Learn to design and develop 2D interactive games</li></ul>
<p>Includes the details of effects and physics components that are essential to all game engines</p><p>Shows how the presented concepts support and inform game design technique</p><p>Source code can be downloaded from https://github.com/Apress/build-your-own-2d-game-engine-2e</p>

Diese Produkte könnten Sie auch interessieren:

Quantifiers in Action
Quantifiers in Action
von: Antonio Badia
PDF ebook
96,29 €
Managing and Mining Uncertain Data
Managing and Mining Uncertain Data
von: Charu C. Aggarwal
PDF ebook
96,29 €