Learn 2D Game Development with C#

  • 3h 20m
  • Jack Keng-Wei Chang, Jebediah Pavleas, Kelvin Sung, Robert Zhu
  • Apress
  • 2013

2D games are hugely popular across a wide range of platforms and the ideal place to start if you’re new to game development. With Learn 2D Game Development with C#, you'll learn your way around the universal building blocks of game development, and how to put them together to create a real working game.

C# is increasingly becoming the language of choice for new game developers. Productive and easier to learn than C++, C# lets you get your games working quickly and safely without worrying about tricky low-level details like memory management. This book uses MonoGame, an open source framework that's powerful, free to use and easy to handle, to further reduce low-level details, meaning you can concentrate on the most interesting and universal aspects of a game development: frame, camera, objects and particles, sprites, and the logic and simple physics that determines how they interact.

In each chapter, you'll explore one of these key elements of game development in the context of a working game, learn how to implement the example for yourself, and integrate it into your own game library. At the end of the book, you’ll put everything you’ve learned together to build your first full working game! And what’s more, MonoGame is designed for maximum cross-platform support, so once you’ve mastered the fundamentals in this book, you’ll be ready to explore and publish games on a wide range of platforms including Windows 8, MAC OSX, Windows Phone, iOS, Android, and Playstation Mobile. Whether you're starting a new hobby or considering a career in game development, Learn 2D Game Development with C# is the ideal place to start.

What you’ll learn

  • Know your way around the world of game design and the process of designing a game from scratch.
  • Understand the basic architecture of a 2D game engine and develop your own game library.
  • Work with the MonoGame framework and use it to build your own 2D interactive games.
  • Learn and implement simple in-game pseudo autonomous behaviors.
  • Understand and implement the math and physics underlying realistic game interactions.
  • Give your game impact with graphic effects, and audio and special effects.

Who this book is for

This book is perfect for game enthusiasts, hobbyists, and anyone who is interested in building interactive games but is unsure of how to begin. It assumes no background in computer graphics or game development, but readers should be familiar with C# or another object-oriented language.

About the Authors

Jebediah Pavleas is a graduate student in the Computer Science and Software Engineering program at the University of Washington Bothell (UWB). He received a Bachelor of Science in 2012 and was the recipient of the Chancellor's Medal for his class. During his time as an undergraduate he took a 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 website 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 towards his graduate degree, he enjoys designing, building, and playing games of all kinds as well as adapting technology for improved accessibility. A university student in computer science, he is interested in working as a game programmer, focusing on accessibility.

Jack Keng-Wei Chang is working on an MS in computer science and software engineering. He builds Kinect software for teaching math.

Kelvin Sung is a Professor with the Computing and Software Systems 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.

Robert Zhu is a Principal Development Lead at Microsoft for Windows Operating System Group, is an expert in OS leading-edge development, research, design in computer engineering such as kernel, device driver, and board support packages. He leads the technical partnership with mobile carriers and OEM partners. Robert also gives training classes to OEMs on driver development and Windows OS research. Before working for Microsoft, he was with Digital Equipment Corporation (DEC), U.S.A. as senior software engineer on the 64-bit DEC Alpha platform for workstation server optimization and performance tuning for Windows, and a Software Lead with Motorola Wireless Division, Canada. He obtained Master of Computer Science at University of Washington; Master of Computing and Electrical Engineering, Simon Fraser University, Canada; B. Engineering, Tsinghua University; and was in the Ph.D. program with the SFU School of Engineering Science, Canada. Robert has published the book Windows Phone 7 Programming for Android and iOS Developers. He has also coauthored the book Windows Phone Programming Essential.

In this Book

  • Introducing 2D Game Development in C#
  • Getting to Know the MonoGame Framework
  • 2D Graphics, Coordinates, and Game State
  • Getting Things Moving
  • Pixel-accurate Collisions
  • Game Object States and Semiautonomous Behaviors
  • Sprites, Camera, Action!
  • Particle Systems
  • Building Your First 2D Game