31,19 €
The Rust programming language has held the most-loved technology ranking on Stack Overflow for 6 years running, while JavaScript has been the most-used programming language for 9 years straight as it runs on every web browser. Now, thanks to WebAssembly (or Wasm), you can use the language you love on the platform that's everywhere.
This book is an easy-to-follow reference to help you develop your own games, teaching you all about game development and how to create an endless runner from scratch. You'll begin by drawing simple graphics in the browser window, and then learn how to move the main character across the screen. You'll also create a game loop, a renderer, and more, all written entirely in Rust. After getting simple shapes onto the screen, you'll scale the challenge by adding sprites, sounds, and user input. As you advance, you'll discover how to implement a procedurally generated world. Finally, you'll learn how to keep your Rust code clean and organized so you can continue to implement new features and deploy your app on the web.
By the end of this Rust programming book, you'll build a 2D game in Rust, deploy it to the web, and be confident enough to start building your own games.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 537
Veröffentlichungsjahr: 2022
Learn how to run Rust on the web while building a game
Eric Smith
BIRMINGHAM—MUMBAI
Copyright © 2022 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Publishing Product Manager: Rohit Rajkumar
Senior Editor: Aamir Ahmed
Content Development Editor: Feza Shaikh
Technical Editor: Simran Udasi
Copy Editor: Safis Editing
Project Coordinator: Manthan Patel
Proofreader: Safis Editing
Indexer: Manju Arasan
Production Designer: Prashant Ghare
Marketing Coordinators: Elizabeth Varghese and Teny Thomas
First published: April 2022
Production reference: 1310322
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80107-097-3
www.packt.com
To my wife, Crystina, who believes in me even when I don't, and our kids, Anthony, Niko, Sebastain, Leilani, and Quinn.
— Eric Smith
Eric Smith is a software crafter with over 20 years of software development experience. Since 2005, he's worked at 8th Light, where he consults for companies big and small by delivering software, mentoring developers, and coaching teams. He's a frequent speaker at conferences speaking on topics such as educating developers and test-driven development, and holds a master's degree in video game development from DePaul University. Eric wrote much of the code for this book live on his Twitch stream at www.twitch.tv/paytonrules. When he's not at the computer, you can find Eric running obstacle races and traveling with his family.
I want to thank my employer, 8th Light, for allowing me a little time at the end of this process to wrap up this book. I also want to thank my friends in the #rust Slack channel for their help on thornier problems, and the Rustaceans team on Twitch for supporting me and this book.
Brooks Patton has over 19 years of experience in the IT world, including teaching and game development. He has been programming using Rust for about four of those years as of the time of writing.
His experience with Rust includes game development using the GGEZ (Good Game Easy) framework, web servers using Actix Web and Rocket, and WebAssembly for non-game web applications.
Brooks has authored a free course on YouTube on creating an ECS (Entity Component System) – an alternate way of organizing state and functions to mutate that state to the one shown in this book – in Rust using a TDD system.
Joseph McCormick is a software consultant with 8th Light with a background in both e-commerce and internal platform services. He currently specializes in frontend web application architecture and interface development, has an enthusiastic fondness for Rust, and is excited about the promise of a Rust-filled future.
In this part, you'll build the skeleton for the application you'll be using for the rest of this book. You'll create your first WebAssembly app using Rust, and interact with JavaScript using wasm-bindgen. You'll also get started drawing to the Canvas, first with crude shapes and then with Sprites (image files) and even sprite sheets.
In this part, we cover the following chapters:
Chapter 1, Hello WebAssemblyChapter 2, Drawing Sprites