Hello Scratch!
Learn to program by making arcade games
Gabriel Ford, Sadie Ford, Melissa Ford
  • October 2017
  • ISBN 9781617294259
  • 384 pages
  • printed in color
pBook available Nov 30, 2017

Brilliant writing on the art and science of game making using Scratch! Applicable to anyone new to game development...solid examples throughout the book.

Peter Lawrence, SAS

Hello, Scratch! is a how-to book that helps parents and kids work together to learn programming skills by creating new versions of old retro-style arcade games with Scratch.

Table of Contents detailed table of contents

Welcome to Making Games in Scratch

1.1. 0.1 What Is Scratch?

1.2. 0.2 And What Are Retro Games?

1.3. 0.3 What Type of Games Will You Learn How to Make?

1.4. 0.4 How to Use This Book

1.5. 0.5 The Offline Editor

1.6. 0.6 Words You Need to Know

1.7. 0.7 About the Authors

1.8. 0.8 Dedication

1.9. 0.9 Are You Ready to Start Programming?

Part 1

1. Getting to Know Your Way Around Scratch

1.1. Building Your First Program

1.1.1. Getting Started

1.1.2. Moving the Cat

1.1.3. Changing a Block

1.1.4. Continuing a Step

1.1.5. Adding a New Sprite

1.1.6. Trying Unknown Blocks

1.2. Navigating Your Way Around the Screen

1.2.1. Meeting the Grey Toolbar

1.2.2. Meeting the Block Menu

1.2.3. Meeting the Sprite Zone

1.3. Wrapping Up the Tour

1.3.1. Play in the Workspace

1.3.2. What Did You Learn?

2. Becoming Familiar with the Art Editor

2.1. Making Your First Drawing

2.1.1. Learning About Pixels

2.1.2. Using Art Tools to Make a Sprite

2.1.3. Making Your Own Cat, Pixel by Pixel

2.2. Making Your First Backdrop

2.2.1. Navigating to the Backdrop Art Editor

2.2.2. Making Your First Backdrop

2.3. Wrapping Up the Tour

2.3.1. Play in the Workspace

2.3.2. What Did You Learn?

3. Meeting Scratch's Key Blocks Through Important Coding Concepts

3.1. Starting a Program with the When Flag Clicked block

3.1.1. Finding Your Program's ON Switch

3.1.2. Scripting with the When Flag Clicked block

3.2. Setting Location with X and Y Coordinates

3.2.1. Finding the Sprite's Location with X and Y Coordinates

3.2.2. Scripting with the Change X by 10 block

3.3. Using a Conditional Statement

3.3.1. Finding Conditions to Set in Your Game

3.3.2. Scripting with the If/Then block

3.4. Making Loops

3.4.1. Finding Places to Use Loops

3.4.2. Scripting with the Forever Block

3.5. Using Variables

3.5.1. Finding Uses for Variables

3.5.2. Scripting with the Variable Block

3.6. Using Booleans

3.6.1. Finding Uses for Booleans

3.6.2. Scripting with Touching Blocks and Booleans

3.7. Cloning Sprites

3.7.1. Finding Sprites to Clone Mid—Game

3.7.2. Scripting with Cloning Blocks

3.8. Broadcasting Messages

3.8.1. Finding a Message to Broadcast

3.8.2. Scripting with the Broadcasting Block

3.9. Learning in Action

Part 2

4. Designing a Two—Player Ball—and—Paddle Game

4.1. Prepping the Background While Meeting the Color Wheel

4.1.1. Making the Breakfast Room Background

4.1.2. Meeting the Color Wheel

4.2. Prepping the Main Sprites

4.2.1. Making the Complementary Egg Sprite

4.2.2. Making the Retro—Style Egg Sprite

4.2.3. Making the Greyscale Pan Sprite

4.3. Prepping the Odds and Ends

4.3.1. Making the Wall Sprites

4.4. Preparing to Code

4.4.1. Play in the Workspace

4.4.2. What Did You Learn?

5. Using Conditionals to Build a Two—Player Ball—and—Paddle Game

5.1. Preparing to Program

5.1.1. Missing Sprites

5.1.2. Deleting a Sprite

5.1.3. Preparing the Stage

5.2. Programming the Cast Iron Pans

5.2.1. Making a Paddle Movement Script

5.2.2. Duplicating the Paddle Movement Script

5.3. Programming the Egg

5.3.1. Making a Starter Script

5.3.2. Making an Egg Movement Script

5.3.3. Making a Bounce Script

5.3.4. Making a Right—Side Boundary Detection Script

5.3.5. Duplicating the Boundary Detection Script for the Left Side

5.3.6. Making a Game Ending Script

5.3.7. Making a Reflection Script

5.4. Programming Odds and Ends

5.5. Troubleshooting Your Game

5.5.1. Fixing Layering Issues

5.5.2. Fixing a Glitching Egg

5.6. Learning in Action

5.6.1. Play With the Code

5.6.2. What Did You Learn?

Part 3

6. Designing a Fixed Shooter

6.1. Prepping the Background and Learning About Proportion, Scale, and the Rule of Thirds

6.1.1. Making the Nighttime Backdrop

6.1.2. Figuring Out Scale and Proportion

6.1.3. Learning the Rule of Thirds

6.2. Prepping the Main Sprites

6.2.1. Making the Wizard

6.2.2. The Golden Ratio and the Focal Point

6.2.3. Making the Ghost

6.2.4. Making the Wand Sparks

6.3. Prepping the Odds and Ends

6.3.1. Making the Barrier Line

6.4. Preparing to Code

6.4.1. Play With the Game

6.4.2. What Did You Learn?

7. Using Conditionals to Build Your Fixed Shooter

7.1. Preparing to Program

7.1.1. Missing Sprites

7.1.2. Preparing the Stage

7.2. Programming the Wizard

7.2.1. Making a Movement Script

7.2.2. Making a Life Deducting Script

7.2.3. Making a Game Ending Script

7.3. Programming the Ghosts

7.3.1. Making a Positioning Script

7.3.2. Making a Cloning Script

7.3.3. Making a Movement Script

7.4. Programming the Sparks

7.4.1. Making a Positioning Script

7.4.2. Making a Cloning Script

7.4.3. Making a Movement Script

7.4.4. Making a Clone Deletion Script

7.5. Programming the Odds and Ends

7.5.1. Making a Positioning Script for the Line

7.5.2. Making a Scoring Script for the Background

7.6. Troubleshooting Your Game

7.6.1. Checking Your Scripts

7.6.2. Sprites Not Centered

7.6.3. Eliminating Blocks

7.7. Learning in Action

7.7.1. Play With the Code

7.7.2. What Did You Learn?

8. Designing a One Player Ball—and—Paddle

8.1. Prepping the Background and Learning About Texture

8.1.1. Making the Grass Backdrop

8.1.2. Examining Texture

8.2. Prepping the Main Sprites

8.2.1. Making the Shoe

8.2.2. Making the Ball

8.2.3. Making the Net

8.3. Prepping the Odds and Ends

8.3.1. Making the Scoreboard

8.3.2. Making the Barrier Line

8.4. Preparing to Code

8.4.1. Play With the Game

8.4.2. What Did You Learn?

9. Using Variables to Build Your One Player Ball—and—Paddle

9.1. Preparing to Program

9.1.1. Missing Sprites

9.1.2. Preparing the Stage

9.2. Programming the Shoe

9.2.1. Making a Movement Script

9.3. Programming the Ball

9.3.1. Making a Set—up Script

9.3.2. Making a Cloning Script

9.3.3. Making a Movement Script

9.3.4. Making a Shoe Detection Script

9.3.5. Making a Net Detection Script

9.3.6. Making a Ball Deduction Script

9.4. Programming the Net

9.4.1. Making the Cloning Script

9.4.2. Making a Ball Detection Script

9.5. Programming the Odds and Ends

9.5.1. Making a Scoreboard Hiding Script

9.5.2. Making a Scoreboard Showing Script

9.5.3. Making a Line Positioning Script

9.5.4. Making a Line Deduction Script

9.5.5. Making a Line Game Ending Script

9.6. Troubleshooting Your Game

9.6.1. Center Your Sprites

9.6.2. Tweak the Code

9.7. Learning in Action

9.7.1. Play With the Code

9.7.2. What Did You Learn?

10. Designing a Simple Platformer

10.1. Prepping the Backgrounds

10.1.1. Making the Open Sand Backdrop

10.1.2. Making the Hole in the Sand Backdrop

10.1.3. Making the Water Ditch Backdrop

10.2. Prepping the Main Sprites

10.2.1. Making Beachy Buffy

10.2.2. Making the Sandcastle

10.2.3. Making the Crab

10.2.4. Making the Vine

10.3. Prepping the Odds and Ends

10.3.1. Making the Side Barrier Lines

10.4. Preparing to Code

10.4.1. Play With the Game

10.4.2. What Did You Learn

11. Using X and Y Coordinates to Make a Simple Platformer

11.1. Preparing to Program

11.1.1. Missing Sprites

11.1.2. Preparing the Stage

11.2. Programming Beachy Buffy

11.2.1. Making a Movement Script

11.2.2. Making a Falling Velocity Script

11.2.3. Making a Falling Script

11.2.4. Making a Jumping Script

11.2.5. Making a Positioning Script

11.2.6. Making a Life Deduction Script

11.2.7. Making the Background Changing Script

11.2.8. Making the Zipline Dismount Script

11.2.9. Making the Two-Part Vine Grabbing Script

11.3. Programming the Sandcastle

11.3.1. Making a Show or Hide Script

11.3.2. Duplicating the Show or Hide Script

11.4. Programming the Crabs

11.4.1. Tweaking the Show or Hide Script

11.4.2. Making a Movement Script

11.5. Programming the Vine

11.5.1. Making a Starter Script

11.5.2. Making a Positioning Script

11.5.3. Making a Movement Script

11.6. Programming the Odds and Ends

11.6.1. Making a Line Positioning Script

11.6.2. Making a Previous Backdrop Script

11.6.3. Making a Next Backdrop Script

11.7. Troubleshooting Your Game

11.8. Learning in Action

11.8.1. Play With the Code

11.8.2. What Did You Learn?

12. Making a Single-Screen Platformer

12.1. Prepping the Backgrounds

12.1.1. Making the School Backdrop

12.2. Prepping the Main Sprites

12.2.1. Making the Clock

12.2.2. Making the Door

12.2.3. Making the Desk

12.2.4. Making the Teacher

12.2.5. Making the Kindergarteners

12.3. Preparing the Code

12.3.1. Play With the Game

12.3.2. What Did You Learn

13. Using arrays and simulating gravity in a single-screen platformer

13.1. Preparing to Program

13.1.1. Missing Sprites

13.1.2. Combining the Kindergarteners

13.1.3. Preparing the Stage

13.1.4. Download the List

13.2. Programming Ms. Finebean

13.2.1. Making a Movement Script

13.2.2. Making the Jumping Script

13.2.3. Making a Falling Velocity Script

13.2.4. Making a Falling Script

13.2.5. Making a Desk Detection Script

13.3. Programming the Kindergarteners

13.3.1. Making a List Adding Script

13.3.2. Making a Cloning Script

13.3.3. Making a Movement Script

13.3.4. Making a Game Stopping Script

13.3.5. Making a Pause Movement Script

13.4. Programming the Desks

13.4.1. Making a List Adding Script

13.4.2. Making a Cloning Script

13.4.3. Making a Movement Script

13.5. Programming the Clocks

13.5.1. Making a Cloning Script

13.5.2. Making a Timer Script

13.5.3. Creating a Movement Script

13.5.4. Making a Pause Movement Script

13.6. Programming the Door

13.6.1. Making a Cloning Script

13.6.2. Creating a Game Stopping Script

13.7. Troubleshooting the Game

13.8. Learning in Action

13.8.1. Play With the Code

13.8.2. What Did You Learn?

14. Becoming a Game Maker

14.1. Sharing Your Work

14.1.1. How to Share Your Projects

14.1.2. How to Become a Scratcher

14.1.3. How to Follow Scratchers

14.1.4. How to Write Comments

14.2. Remixing Projects

14.2.1. How to Remix Someone Else's Project

14.2.2. How to Use Your Remix Tree

14.3. Using the Forums

14.3.1. How to Read the Forums

14.3.2. How to Post on the Forums

14.4. Jumping to Other Languages

14.5. Diving into Game Making

Appendix A: Cheat sheet

About the Technology

Can 8-year-olds write computer programs? You bet they can! In Scratch, young coders use colorful blocks and a rich graphical environment to create programs. They can easily explore ideas like input and output, looping, branching, and conditionals. Scratch is a kid-friendly language created by MIT that is a safe and fun way to begin thinking like a programmer, without the complexity of a traditional programming language.

About the book

Hello Scratch! guides young readers through five exciting games to help them take their first steps in programming. They'll experiment with key ideas about how a computer program works and enjoy the satisfaction of immediate success. These carefully designed projects give readers plenty of room to explore by imagining, tinkering, and personalizing as they learn.

What's inside

  • Learn by experimentation
  • Learn to think like a programmer
  • Build five exciting, retro-style games
  • Visualize the organization of a program

About the reader

Written for kids 8-14. Perfect for independent learning or working with a parent or teacher.

About the authors

Kids know how kids learn. Sadie and Gabriel Ford, 12-year-old twins and a formidable art and coding team, wrote this book with editing help from their mother, author Melissa Ford!

combo $34.99 pBook + eBook + liveBook
eBook $27.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks

Very well written. There were so many things to learn, I wished there had been more chapters in the book!

Khaled Tannir, dataXper

A great book for learning how to program your own games while enjoying quality family time with your kids.

Gonzalo Huerta-Canepa, Universidad Adolfo Ibanez

An excellent guide through the world of Scratch.

Karim Alkama, student