0% found this document useful (0 votes)
12 views

Introduction to Game Programming using Processing For Designers Artists Players Non Tech People and Everybody Else 1st Edition Daniel Cermak-Sassenrath 2025 Scribd Download

The document promotes the book 'Introduction to Game Programming using Processing' by Daniel Cermak-Sassenrath, aimed at non-tech individuals interested in game programming. It provides an accessible introduction to programming concepts through game creation, using the Processing language, and includes various topics such as graphics, audio, and basic AI. The book is designed to empower readers to engage in programming and interactive applications without prior knowledge.

Uploaded by

deleoflittjs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Introduction to Game Programming using Processing For Designers Artists Players Non Tech People and Everybody Else 1st Edition Daniel Cermak-Sassenrath 2025 Scribd Download

The document promotes the book 'Introduction to Game Programming using Processing' by Daniel Cermak-Sassenrath, aimed at non-tech individuals interested in game programming. It provides an accessible introduction to programming concepts through game creation, using the Processing language, and includes various topics such as graphics, audio, and basic AI. The book is designed to empower readers to engage in programming and interactive applications without prior knowledge.

Uploaded by

deleoflittjs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

Visit https://ebookfinal.

com to download the full version and


explore more ebooks

Introduction to Game Programming using


Processing For Designers Artists Players Non
Tech People and Everybody Else 1st Edition
Daniel Cermak-Sassenrath

_____ Click the link below to download _____


https://ebookfinal.com/download/introduction-to-game-
programming-using-processing-for-designers-artists-
players-non-tech-people-and-everybody-else-1st-edition-
daniel-cermak-sassenrath/

Explore and download more ebooks at ebookfinal.com


Here are some suggested products you might be interested in.
Click the link to download

Processing a Programming Handbook for Visual Designers and


Artists Second Edition Casey Reas

https://ebookfinal.com/download/processing-a-programming-handbook-for-
visual-designers-and-artists-second-edition-casey-reas/

C Game Programming For Serious Game Creation 1st Edition


Daniel Schuller

https://ebookfinal.com/download/c-game-programming-for-serious-game-
creation-1st-edition-daniel-schuller/

C Game Programming For Serious Game Creation 1st Edition


Daniel Schuller

https://ebookfinal.com/download/c-game-programming-for-serious-game-
creation-1st-edition-daniel-schuller-2/

OpenGL Game Programming Prima Tech s Game Development 1st


Edition Kevin Hawkins

https://ebookfinal.com/download/opengl-game-programming-prima-tech-s-
game-development-1st-edition-kevin-hawkins/
Ray Davies Not Like Everybody Else 2007 1st Edition Thomas
Kitts

https://ebookfinal.com/download/ray-davies-not-like-everybody-
else-2007-1st-edition-thomas-kitts/

The Artist s Guide to GIMP 2nd Edition Creative Techniques


for Photographers Artists and Designers Michael Hammel

https://ebookfinal.com/download/the-artist-s-guide-to-gimp-2nd-
edition-creative-techniques-for-photographers-artists-and-designers-
michael-hammel/

Introduction to Scientific Programming and Simulation


Using R 2nd Edition Owen Jones

https://ebookfinal.com/download/introduction-to-scientific-
programming-and-simulation-using-r-2nd-edition-owen-jones/

Introduction to 3D game programming with DirectX 10 1st


Edition Frank D. Luna

https://ebookfinal.com/download/introduction-to-3d-game-programming-
with-directx-10-1st-edition-frank-d-luna/

Introduction to Computation and Programming Using Python


with Application to Understanding Data 2nd edition Edition
Guttag
https://ebookfinal.com/download/introduction-to-computation-and-
programming-using-python-with-application-to-understanding-data-2nd-
edition-edition-guttag/
Introduction to Game Programming using Processing For
Designers Artists Players Non Tech People and
Everybody Else 1st Edition Daniel Cermak-Sassenrath
Digital Instant Download
Author(s): Daniel Cermak-Sassenrath
ISBN(s): 9781032386133, 1032386223
Edition: 1
File Details: PDF, 11.31 MB
Year: 2024
Language: english
Introduction to Game Programming
using Processing

This is an introductory textbook focusing on games (specifically interaction and graphics) as a pathway
into programming. It empowers readers to do basic programming, prototyping, game creation, and other
highly interactive applications, all from scratch and without any prior programming knowledge.

Using the popular programming language Processing, this book describes, explains, and demonstrates the
basic and general programming principles and mechanisms used in typical game algorithms and concrete
game projects. Chapters cover basic graphics, text output, loops, data types and variables, movement,
time, audio and sound, debugging, classes and objects, event-based programming, real-time input con-
trols, computer speed compensation, animation, tiling, scrolling, collision detection, basic AI, and much
more. Additional support materials such as code examples and demo programs are available to download
from this book’s webpage.

This book is a great resource for students and aspiring professionals looking for an approachable entry
into game programming.

Daniel Cermak-Sassenrath is former Associate Professor at the IT University, Copenhagen, member


of the Center for Digital Play, and co-head of the Games Group. He teaches in the Game Design track
programme. Daniel has taught university courses since 2002 and introductory courses to programming
for design students since 2010.
Introduction to Game
Programming using Processing
For Designers, Artists, Players,
Non-Tech People and Everybody Else

Daniel Cermak-Sassenrath
First edition published 2024
by CRC Press
2385 NW Executive Center Drive, Suite 320, Boca Raton FL 33431

and by CRC Press


4 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN

CRC Press is an imprint of Taylor & Francis Group, LLC

© 2024 Daniel Cermak-Sassenrath

Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume
responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted
to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission
to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us
know so we may rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or uti-
lized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopy-
ing, microfilming, and recording, or in any information storage or retrieval system, without written permission from the
publishers.

For permission to photocopy or use material electronically from this work, access www.copyright.com or contact the
Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. For works that are not
available on CCC please contact [email protected]

Trademark Notice: Product or corporate names may be trademarks or registered trademarks and are used only for iden-
tification and explanation without intent to infringe.

ISBN: 978-1-032-38622-5 (hbk)


ISBN: 978-1-032-38613-3 (pbk)
ISBN: 978-1-003-34591-6 (ebk)

DOI: 10.1201/9781003345916

Typeset in Times LT Std


by KnowledgeWorks Global Ltd.

Access the Support Material: www.Routledge.com/9781032386225


Contents

Foreword................................................................................................................................................... vii
Preface....................................................................................................................................................... ix
Acknowledgements.................................................................................................................................... xi
Introduction..............................................................................................................................................xiii

1. The Process of Programming.......................................................................................................... 1

2. Hello Game World!........................................................................................................................... 6

3. Console Output and Comments..................................................................................................... 23

4. Variables and Data Types............................................................................................................... 27

5. Iteration with the while Loop......................................................................................................... 35

6. Conditionals (if, if/else, if/else if).................................................................................................... 43

7. Relational Expressions (e.g. <, >) and Logical Operators (e.g. &&, ||)...................................... 53

8. Math and Arithmetic.......................................................................................................................61

9. Short Cuts........................................................................................................................................ 67

10. Type Conversions (Casting and Rounding).................................................................................. 69

11. Formatting Code............................................................................................................................. 72

12. Iteration with the for Loop............................................................................................................. 74

13. Arrays............................................................................................................................................... 84

14. Functions.......................................................................................................................................... 94

15. Movement....................................................................................................................................... 106

16. Basic Collision Detection...............................................................................................................117

17. Drawing Modes and Drawing Lines............................................................................................ 126

18. Polygons and Vertex Functions.................................................................................................... 129

19. Colour and Transparency............................................................................................................ 136

20. Text and Fonts, and Loading and Saving Data...........................................................................142

v
vi Contents

21. Real Time........................................................................................................................................149

22. Images..............................................................................................................................................151

23. The Processing IDE, Technical Documentation, Debugging and Common Errors............... 156

24. Programming Rules of Thumb.....................................................................................................175

25. Classes and Objects........................................................................................................................179

26. Event-Driven Programming and Game Controls...................................................................... 200

27. Hardware Speed Independence for Movement.......................................................................... 223

28. Sprites, Frame-Based Animation and Timed Events................................................................ 232

29. Tiling.............................................................................................................................................. 242

30. Scrolling and Split-Screen Displays............................................................................................ 256

31. Movement in Curves..................................................................................................................... 264

32. Pixel-Perfect Collision Detection................................................................................................. 273

33. Vectors............................................................................................................................................ 277

34. ArrayLists...................................................................................................................................... 282

35. Recursion....................................................................................................................................... 287

36. Basic Game AI and Enemy Behaviour........................................................................................ 293

37. Programming Libraries, and Using an Audio Library............................................................. 305

Glossary..................................................................................................................................................311

References...............................................................................................................................................313

Code Index..............................................................................................................................................317

Subject Index..........................................................................................................................................321
Foreword

There are a few reasons why I am excited about this book.


First of all, it is the distillate of the material for Daniel’s course Programming for Designers. About
ten years ago, before I started my career at IO Interactive, I was the TA on that course – and as such,
exposed to some of the earliest iterations of this book’s contents. Back then, it came in the format of
weekly booklets, each featuring a short story centred on programming superhero Commander Hex
C0d1ng. While Hex himself did not make it into the text you now hold, his – and Daniel’s – enthusiastic,
can-do attitude certainly did.
Second, speaking as a technical, and former lead, level designer, I can attest to the value of computa-
tional thinking in game design; if not as a foundation for readable, scalable scripting or communication
with programmers, then as a universally applicable toolbox – a structural, logical mindset for clarity,
brevity and exactness in design, production and everything.
Third, learning code can be hard; programming languages, computer science and mathematics are, by
their very nature, abstract and often obtusely formal fields. By focusing on creative, interactive applica-
tions with fun or artistic expression at their centre, programming becomes tangible and goal-oriented –
and, even if you are not a game designer, creation can be a strong motivator.
That brings me to Daniel himself. The last time I saw him, he was hunched over some obscure contrap-
tion set up in a corridor of the IT University of Copenhagen, meant to demonstrate an academic point. On
most other occasions, I will find him in his office, covered in half-disassembled electronics, 3D-printed
doodads and musical instruments. If you picture an inventor’s workshop, that is it.
And this is exactly what makes this book special: Its fiercely pragmatic, creative and solution-oriented
author who understands the value of motivating learning with concrete applications. After ten years in
the making, this book is the manifestation of that mindset, a repertoire of creative and technical nuggets
on programming for everyone.
With that said, I will take no more of your time; please go right ahead, try things out, take them apart,
learn code and make something fun!

Toke Krainert
Senior Technical Level Designer, IO Interactive,
Copenhagen, October 2023

vii
Preface

This is the book I wish I had when I started out to learn programming, in the mid-1980s. It would have
changed my life. Back then it was tricky to learn such an obscure skill. There was no Internet, of course,
and the few resources that were available to me were pretty inaccessible. For instance, I had the techni-
cal documentation for BASIC which listed and explained all commands of the language in alphabetical
order. Over time I acquired some programming books, but all of them were pretty stiff, and I didn’t even
know how to start. None of them worked for me. The magazines of the day were glorious; some focused
on hardware and many on games. In my recollection, at least, the magazines that focused on program-
ming, mostly featured long listings of program code; but typing-in many pages of, at the time, incompre-
hensible gibberish, did not appeal to me. Some of my friends had computers and were also interested, but
they knew even less than me, and I had no idea. Having a computer was seen, in the best case, a weird
hobby, and otherwise as a social stigma (not as a career move, as happened a decade or two later, and not
as an ubiquitous part of modern life, as today).
Today, computers have won – many people carry one (or several of them) on them at all times, many
attend to it day and night, and a myriad of productive and unproductive applications exist, and it is almost
unthinkable to live without it. Access to education about digital media is abundant; school courses, books
and online resources cater to many various and specialised interests.
Games have been a great attraction of home computers in the 1980s, and for many non-tech people,
they were the first point of contact with the novel medium. A considerable number of these people
were, in fact, children. For many of them, games became a pathway into programming. Collins (2022)
comments that ‘children in the 1980s might have become interested in computers because of games,
but the nature of computers at the time meant that many of them got into programming almost by
accident’. Digital games are still, and probably more than ever, a popular path into competent com-
puter use.
In the last 20 years, there has been an unbelievable cultural and economic boost to the field of digital
media. Where only a handful of geeks were interacting with computers before, ignored by a worried
(in the case of gamers) and scared society (in the case of hackers), there are now billions of ordinary
people and members of the general public using and playing with computers. But it appears, after several
decades of strong innovation, exponential growth, upward mobility and several spectacular and unusual
careers (for instance, of early IT entrepreneurs whose names are well-known today), that a gap is widen-
ing between the increasing professionalism of the producers with specialisations of sophisticated skills,
and the end users and consumers of digital media. Digital media becomes more mainstream, and at the
same time, the distance increases between the producers and the increasingly numerous, diverse and
likely less tech-savvy users. This division between the pros and the amateurs has happened with other
technologies before, for instance, with the motor car.
Tech is becoming increasingly like rocket science – far removed from and closed to the general
public. It is even dangerous; sharing self-written programs is almost made impossible in some recent
operating systems. The operating system informs the user: This software was downloaded from the
Internet and is not signed by an official developer registered with the computer manufacturer – so, no,
sorry, you can’t run this. Let’s delete it (Figure 0.1)!2 In today’s digital media, users better leave their
hands off the machine and buy and use software that is made for them. The early days, when digital
culture was fuelled and propelled forward and inspired by ideas (and illusions) of societal progress,
individual freedom, participation, and a better future for all through the digital computer, of everybody
making and sharing software collectively and for free, seem to be over for most people. But competent
computer use needs programming. The medium of the computer can arguably only be understood,
appreciated and fully utilised when users have at least basic knowledge about what computers can do
and how they work.

ix
x Preface

FIGURE 0.1 The OS protects the users from themselves: Downloaded programs which are not officially signed by devel-
opers registered with the manufacturer cannot be run (the OS (wrongly) claims that the file was corrupt, and offers to delete
it; macOS 12.6)

This book is an attempt to support non-tech people such as designers, artists, players, other non-tech
people and the interested public, to start programming, hopefully, in a fun and accessible way: Games
as a pathway into programming. It empowers readers to do basic programming, prototyping, creat-
ing games and other highly interactive applications, and to talk competently with tech people. This is
also an entry-level introduction to programming with examples in the popular language Processing.
Basic and general programming principles and mechanisms are described, explained, demonstrated and
applied in typical game algorithms and concrete game projects.
Acknowledgements

The book is based on my course Introduction to Programming for (Game) Designers that I have been
teaching for more than ten years, first at the Creative Technologies programme at Auckland University
of Technology (AUT) in New Zealand, and then at the Games’ Programme at the ITU in Copenhagen,
Denmark. I got the idea to turn the course materials into a book when I heard that students were passing
around the course materials to their friends who were not taking the course but were keen on learning
programming.
I’d like to thank the many students who have been taking the course, from within and without the ITU,
for their enthusiasm and energy that have kept the course (and me) going. Also, my co-teachers along the
way, for their invaluable contributions and company, the many TAs for their essential work, and every-
body else who supported this project over the years. Finally, Will Bateman at Routledge/CRC Press for
believing in the book and his friendly and professional support to make it happen.

xi
Introduction

Outline
• Motivation
• A Very Brief History of Programming
• Programming Needs Diversity
• How this Book Works

Here we discuss what


this is all about

Motivation
The computer has entered all areas of people’s lives, media and culture – with digital games and their
popularity being one of the very visible expressions of this trend. Because of their lack of technical
expertise, non-tech people regularly have limited possibilities to participate in and contribute to the
creation of the digital world, and their innovative ideas might never be known or realised. To know
something about programming is arguably the only way to use a computer to the full extent and a key
skill to substantially participate in and contribute to the brave new digital world.1 This book aims to offer
an accessible pathway into fun, meaningful, skilful and competent computer use. It offers a potentially
disruptive change of perspective, and participants will experience the world of digital media in a differ-
ent way, and be able to participate and contribute in ways they could not before.
Learning to program appears desirable for multiple reasons. It is an inspiring and powerful way of cre-
ative and artistic expression. It is clearly much in-demand in today’s and tomorrow’s job markets. Basic
programming knowledge is an asset in communication: Project work benefits from non-tech people
being able to understand and effectively negotiate with all team members, including the tech people, and
to appreciate their roles and contributions.
This book approaches and presents programming from a hands-on, non-tech, application-centred per-
spective. It is all about the application of programming in practical, genuine design challenges; not
about gathering abstract knowledge, to be used in the future in some other context; but hands-on skills,
to be used here and now. The book aims to facilitate the making of projects people want to have. And
this does not imply little learning or learning on a low level. But learning that centres on motivation and
builds on curiosity.
Arguably, the most interesting things to program are interactive systems for people to use produc-
tively, express themselves and play with each other.2 The computer has been used and it is still often used
as a tool to model other media, e.g. to paint pictures and to cut movies. But increasingly, the computer is
coming into its own, and people start to question its uses and experiment with it, and interact with it in
novel, provocant, and playful ways that were unimaginable before, and which have no precedent.
The book integrates the endeavour to learn programming with a focus on (digital) games. The audi-
ence this book addresses is people interested in games who have no previous experience in coding:
Students of Game Design and other (design) students, DIY indie game designers, freelance design pro-
fessionals, game enthusiasts, but also ordinary people just wanting to learn to program.
Learning to program is not just learning another program or tool; it is a meta-skill similar to learning
the principles of a universal language; people will be able to read one another’s programs and create their
own, share, discuss and collaborate.

xiii
xiv Introduction

Readers of this book:

• Gain an understanding of general programming principles, paradigms and practices, with an


emphasis on graphics and interaction;
• Acquire hands-on programming skills in Processing, a modern, popular, well-supported,
C-based language;
• Build up their own collection of game-related routines (such as real-time input, collision detec-
tion, hardware-speed independence, tiled graphics, scrolling, frame-based animation and basic
game AI); and
• Create their own, custom game-making tools (such as a pixel art drawing program, and a tiled
2D level editor).

Programming as a Design Skill


Programming is a very useful design skill; for me, it is very similar to how I design and build (other)
stuff. I trust readers are able to transfer their (previous, various) knowledge and approaches to this field.
Programming as a design skill is:

• Similar to other skills, e.g. sketching, writing, using Photoshop, Illustrator, Director, dancing,
singing, sports and foreign languages;
• A way of expression that goes beyond (or is simply different from) static representations and
(human, live) performances;
• Required in some exciting areas of design such as interaction design and parametric design;
and
• As useful as reading, writing and math; for instance, for animation, scripting and websites –
and for creating games!

Programming is a unique way to test and communicate ideas about interaction. A player can then do it
himself or herself, and experience it first-hand, directly and immediately, and not just imagine doing it.
It is a difference like hearing about the scene in Pulp Fiction where the guy in the car gets accidentally
shot and watching it oneself. One can’t quite compare one experience with the other.

What Programming Can Do


With programming, people can actually create functional artefacts. The created software might neither
be a finished, sellable product nor reach professional standards, but it works and can be demo’ed, tested,
and given away.3
One can simply sit down with any computer (and probably a network connection) and start coding.
One does not need anybody’s permission, expensive hard- or software, machines, tools, literature, or
to be at a specific location. Many languages, development tools, libraries and assets such as graphics
are available for free. One can do it alone, if necessary; after a few hours or a night one has created
something that was not there before, and it (hopefully) does something novel, different, useful, dubious,
exciting, beautiful or fun!
What programming can do:

• To have the first shot at an idea, one can use interactive programs to communicate one’s vision
• Quickly prototype, test and find out if an idea is any good
• Competently communicate with and understand programmers, e.g. as part of a project team
• To use game engines (such as Unity), game makers and tools (such as graphics programs) effec-
tively through scripting
Introduction xv

• Everybody likes people who can program


• It will get one a better and a better-paying job if one can program (for which this book might
be a starting point)

But most of all, it is tremendously fun!4 It is a kind of magic, but a kind that everybody can command.
It is a tricky challenge, it allows, invites and is based on exploring and discovering what can be done (not
reading the manual), it is uncharted territory. When I program, I can make a digital artefact that was not
there before. I can try out, have control over what happens, test it, see (i.e. experience) what it is and what
it is doing, how it can be used and misused.

Programming and the Physical World


Programming is not watching dots on screens, and try to make them do something else. I can totally
understand if someone feels that this is pointless and far from exciting. Arduino boards (introduced
in the early 2000s) make it fairly easy to mess with the physical world (Figures 0.2 and 0.3)! Buttons,
potentiometers, LEDs, motors, sound, GPS location, acceleration, weight, temperature, humidity,
light, colour, pressure, distance, flex, vibration, tilt sensors, etc., can be used or controlled.5 The
Arduino interface uses (almost6) the same programming language we use for screen-based stuff,
Processing. The programming of artefacts in the digital world and in the material world will turn out
to be quite similar.

FIGURE 0.2 Various Arduino projects: A sensorised boxing bag, a multi-legged walking robot, and a self-driving slot
car (photos by the author)
xvi Introduction

FIGURE 0.3 More Arduino projects: A mobile phone theremin, a wave measuring device, and an air quality sensor (photos
by the author)

A Very Brief History of Programming


Computer use changed its character remarkably during the (short) history of the medium. It transformed
from a task for technicians to operators to users to consumers. The necessary levels of individual and
collective expertise and the costs of hardware went down, the number of people and the range of applica-
tions up.
The idea that machines can be anything else than ‘on’ or ‘off’ has only been around since the 1950s.
The new academic discipline of Cybernetics (which later turned into Computer Science), which was
started and essentially defined by Norbert Wiener, introduced the concept of (automatic) feedback loops.
Feedback loops are the basis for what we know as human-computer interaction (HCI) or interaction
design; an ongoing, real-time, open-ended process, an exchange between a person and a machine.
First, programming was an expert’s job effectively done by swapping out, etc. electric parts; today, the
pervasive availability of the hardware invites programming by the end user. In retrospect, it might seem
amazing or astonishing, how many things were not there and needed to be invented and made and refined
in a long iterative process, and how rough the conditions for people using computers were for a consider-
able stretch of time (e.g. access to a computer, assembler, batch processing, data storage, availability of
software). Compared to today, very few people were working with computers or developing them, all of
them are total experts and specialists.
Many advances described here happened in academic, commercial or even military labs. New ideas
and techniques were not immediately communicated, and moreover, it was often not immanent what
was an advancement and what was not. Developments happened in parallel and overlapped each other
Introduction xvii

by several years (e.g. use of tubes), and inventions were occasionally made almost simultaneously in
different places. Immense gaps separated abstract concepts of computing from technical research,
experiments and inventions from military, commercial and (much later) private use. The moment in
time, when an innovative development became commercially available and successful, rarely corre-
sponded to the order of invention (e.g. the local network was developed in parallel with the mouse and
a windowed interface, but it took more than a decade for it to make its way to a widespread application
by the end user). Magic was not involved in the emergence of the modern computer. It was all mundane,
iterative advances and progress, sometimes in brilliant and surprising leaps, but often painstakingly
slow and basic.
In the last 100 years or so, the development of the computer has exploded. But not only from a techni-
cal perspective but also, and more relevant here, from a user perspective. Using a computer meant for a
long time, programming. And programming could mean changing gears, plugs, punching cardboard, or
entering number codes, commands and more sophisticated structures. The computer user was an opera-
tor. Individuals only own (personal) computers since the 1980s, and commercial off-the-shelf applica-
tion software has only around for a bit longer. Early on, there was no gap between tinkerer, inventor,
developer and user, because everybody who ever came near a computer was a highly-trained expert (the
experts never went away, and are still around; they just became very few compared to the vast number
of (novice) users). Soon, a new class of knowledge workers emerged, computer programmers, specialis-
ing in creating software. The gap started to widen when professional (i.e. non-technical) experts (e.g.
business people) started to use computers in the late 1950s, and attempts to spread the wisdom (BASIC,
LOGO) did not meet with large-scale success. The gap reached its widest point probably by the end of the
1990s, after the massive booms that the video gaming (in the late 1970s), the personal computer (in the
early 1980s) and the popularisation of the Internet (from 1995) triggered. The gap is still immense, and
unlikely to disappear completely, but it is getting smaller: Ordinary people are learning to move beyond
using the computer by clicking (or tapping) on pretty icons; they script, fab, mod, code and hack. This
happens because it is easy and fun, and people have (easy access to) the technical equipment and the
competencies, and are probably also disillusioned with commercial offers and being spied upon. Now
end users and even school children code – programming for all.
Programming has become quite a general skill7; this was proposed since at least the 1970s (e.g. by
Alan Kay), and there have been a number of programming languages aimed at novices, and intended as
introductory paths into programming, such as BASIC, LOGO, Pascal and Java. Processing is a language
made from a similar perspective and proves to be quite popular. Now, arguably, as before, the time has
finally come.
First, the development of programming faced fundamental and hard technical challenges, but begin-
ning from the 1980s the challenge was no longer about raw computing power, speed and resource man-
agement, but the ease of use came into focus. First professionals started to use the computer, e.g. in
engineering and business, followed then increasingly by ordinary people. And these ordinary, non-tech
people are precisely the target group that limited, reduced, simplified languages such as Processing and
scripting addresses. Programming is today on the verge to become a ubiquitous skill, taught, learned
and used as part of a general curriculum, an additional way of expression, and learning, of engagement,
experimentation, similar to math and writing.
What is already clear is that it is now possible to do things with computers that were only fantasies
before. And we are still finding out what this new medium is.

Programming Needs Diversity


I speculate that much of the digital world has been created by middle-aged white men; not only specific
hardware or software artefacts such as the Apple computer (Steve Jobs, Steve Wozniak, Ronald Wayne),
the mouse (Doug Engelbart), the Linux operating system (Linus Thorvalds), the C programming lan-
guage (Dennis Ritchie), many games and productivity software, but also the overarching structures and
paradigms of interaction with and application of digital media (such as the modern PC at Xerox Parc, and
xviii Introduction

the Internet by the US military). Generally less recognised, so far, are the contributions of women to the
technological progress in computing and programming8.
While also the area of game design is certainly male-dominated, there are several notable examples of
female game designers; the most high-profile, in my view, could be Roberta Williams, who invented the
graphic adventure and designed many very successful games (for instance, the King’s Quest franchise, with
her husband Ken) and Brenda Laurel and her company Purple Moon9; other female designers of famous
games include Mabel Addis (The Sumerian Game), Danielle Bunten Berry (M.U.L.E.), Dona Bailey
(Centipede), Rebecca Heineman (Bard’s Tale series), Sheri Graner Ray (Ultima franchise), Ellen Beeman
(Wing Commander games), Kellee Santiago (Journey), and Kim Swift (Portal, Left 4 Dead)10.
The existing conventions of the digital world are just that, conventions, which people have agreed upon
for various reasons and in various circumstances, and not invariable laws of nature. The people who
made (and make) the decisions might not be representative of (or aware of or interested in) the people
who are affected by them. The digital world could have developed very differently than it has, and it can
certainly develop in any direction in the future.
Diversity and inclusion with regard to, for instance, people’s age, gender, sexual orientation, religion,
ethnicity, nationality, professional experiences, academic education, knowledge, skills and (dis-) abili-
ties can arguably benefit both the processes and the results of collaborative activities. Phillips [2014]
notes that ‘[d]ecades of research by organizational scientists, psychologists, sociologists, economists and
demographers show that socially diverse groups […] are more innovative than homogeneous groups’ and
‘better [prepared] than a homogeneous group at solving complex, nonroutine problems’.
For instance, in an economic context, it is regularly reported ‘that businesses with more diverse work-
forces perform better on a whole range of measures’ (Blackman 2017). In a two-year study on 180 pub-
licly traded companies in four large Western countries, Barta et al. (2012) observe that ‘[c]ompanies with
diverse executive boards [with regard to gender and nationality] enjoy significantly higher earnings and
returns on equity’. A 2014 Gallup poll ‘of more than 800 business units from two companies represent-
ing two different industries – retail and hospitality – finds that gender-diverse business units have better
financial outcomes than those dominated by one gender’ (Badal 2014): A ‘14% higher average compa-
rable revenue’ in the retail sector, and a ‘19% higher average quarterly net profit’ in the hospitality sector
(ibid.). A McKinsey study ‘of 1000 companies in 12 countries [finds] that organisations in the top 25%
when it comes to gender diversity among executive leadership teams were more likely to outperform on
profitability (21%) and value creation (27%)’ [Catalyst 2018].
Ashcraft and Breitzman’s (2012) ‘30-year study of US patents in the IT industry’ observes that mixed-
gender teams ‘produce patents that get cited by other researchers 30–40% more often than average’
(Blackman 2017). On a board of directors, ‘deep-level diversity’, that is, ‘differences in background,
personality, and values’ […] contributed to a higher degree of creativity’ (Catalyst 2018). Other observed
benefits for businesses include retaining talent (ibid.), maximising productivity (ibid.), as well as reduc-
ing groupthink and enhancing decision-making (ibid.). Cognitively diverse teams ‘solve problems faster’
(ibid.). Mixed-gender corporate boards are reported to ‘[h]ave [f]ewer [i]nstances of [f]raud’ and […] are
associated with more effective risk-management practices’ (ibid.).
There might be various problems and trade-offs associated with creating and maintaining diversity
at the workplace. For instance, ‘individual employees may prefer less diverse settings’ (Dizikes 2014)
because ‘more homogeneous offices have higher levels of social capital’ (Sara Ellison qtd. in ibid.).
But MIT economist Ellison (qtd. in ibid.) also points out that the ‘higher levels of social capital are not
important enough to cause those offices to perform better’. While ‘[t]he employees might be happier,
they might be more comfortable, and these might be cooperative places, but they seem to perform less
well’. Progress towards diverse work settings might be slow. In 2019, ‘Google’s [t]ech [s]taff is [o]nly
4.8% African American […] [and] only 1.1% […] is Hispanic, and only 33.1% are women’ (Wholley
2019). Diversity programs in business might be ‘designed to preempt lawsuits by policing managers’
thoughts and actions’ (Dobbin, Kalev 2016) rather than actually to prompt a change in corporate
culture.
If digital technology, which is already used in many or most areas of life in First World societies, is
to be inclusive and to speak to various groups of users, the participation of a mix of diverse players in
the creation of it might become increasingly urgent. We arguably need more non-tech people coming
Introduction xix

into digital media to help us out. With mostly geeky (male) nerds developing everything, one can only
get so far –

The important bit is that you yourself actually


start programming something today.
Everything is possible to those who try

How this Book Works


This book can be read in sequence, front to back; the topics build on each other. It can also be read
s­ electively; references to relevant topics in other parts of the book (e.g. pointers to previous chapters, that
one may not have read) are given.
It is attempted to connect the topics with each other as much as possible, to make clear how the ideas
interface with each other and how they are used in concert and in context. Every concept is introduced
together with concrete, typical or exemplary applications. Explanations are kept short and are immedi-
ately connected to code. Almost all code snippets in the book are complete programs, not only parts of
larger programs that readers would need to puzzle together to see a result.
Part of learning to program is also to learn to talk about it, using the correct terminology, for instance,
when communicating with team members who are tech experts such as programmers. Thus, while at the
start of book, a somewhat loose language is used, to pick up the reader who might be unfamiliar with
geek lingo and who might be put off by it; during the book, the language becomes more precise and cor-
rect with regard to terminology. Precise terms are usually used throughout, but given the choice between
absolute correctness and high readability, readability is regularly prioritised.
Topics (structures, concepts) are introduced bottom up: First, they are demonstrated in concrete typi-
cal or exemplary applications, and only then are they discussed and explained. An understanding of the
principles and concepts and possibilities of programming emerges for readers but is not presented to
them up front in the form of a lecture.

Bonus Features and Online Resources


In addition to the explanations in textual form, the book contains a fair number of (mostly short) code
snippets. All Code Examples from the book are accessible online and available for download. Ideally,
readers have a (networked) computer handy and immediately try things out while consulting the book;
but it is also possible to go to the beach and read the book offline and by itself.
In the text, two kinds of exercises are offered: In-Text Exercises directly pick up aspects discussed
in a particular section; solutions are given at the end of the chapter. The in-text exercises should inspire
readers to program something on their own.
At the end of the chapters, more extensive Chapter End Exercises are given; these exercises relate
chapter content to exemplary uses, allow readers to check their understanding, and challenge the readers
to become active to modify and extend the given material.
On the book’s website, Demo Programs are available as an additional, online-only resource. The
programs provide entry points for readers who are motivated by concrete applications. They are tightly
related to the book content (and are usually based on it), but connect and integrate content from different
book chapters and demonstrate its meaningful application in concrete contexts.
For instance, demo programs show the use of real-time controls in a simple two-player action game
such as Space Invaders, classes for bricks and a paddle for a BreakOut-style game, and the program
structure of a basic Frogger-style game. The programs can serve as starting points for readers to modify
and experiment with code and also as starting points for readers’ own projects.
Also online is Buggy Code, that is, programs that need fixing; the code contains bugs that readers can
find and correct. The code that needs fixing speaks to readers who prefer (designed, quiz-like) challenges
to free-form experimentation.
xx Introduction

The bugs are based on my own programming experience and observations during many years of
teaching programming courses. For concrete info on finding and fixing programming errors, see the
sections ‘The Process of Debugging’ and ‘Common Errors’ in Chapter 23.
Multiple Links are given on the book’s website that connects to learning resources outside of this
book (e.g. Processing’s own video tutorials, OpenProcessing, Arduino Projects at Instructables, math
for collision detection, an audio library, game programming patterns, and graphics resources). There are
various styles of learning and teaching; readers should pick and use the resources that they prefer and
which work best for them.

Where are the Games?


This book explains programming for and with games. It may appear as if the book was quite generally
programming focused, and that it takes rather long to give concrete examples of real game features.
Certainly, the examples feature games as early and quickly as possible. But some basics need to be estab-
lished before games can be meaningfully made.
This book is not a tutorial, for instance, where one concrete game is made, and outside of this spe-
cific case the reader is lost. The book explains how programming works, with the example of games
and with a view towards making games. The learning happens systematically, from the ground up. The
material is appropriately and carefully structured and organized, building on the experience of teaching
introductory programming courses to designers for more than ten years. Readers learn and understand
everything they do. First the basics of programming, and then we make games (or other cool stuff), as
soon as possible!

If in Doubt, Do It
This book is intended as an introduction and as an inspiring first point of contact with programming for
non-tech people11 with a specific focus on game programming. The book explains the raw basics of (any)
programming for readers who have not done a line of programming ever before, and the functions, tools
and concepts popularly used in game programming.
Programming needs to be done by oneself; yes, one can work with friends, and this can be a lot of fun, and
I welcome and recommend that later, but learning programming is like learning to ride a bicycle: One has
to do it oneself! Not watch somebody – none of one’s mates and not me. Readers should program something
they want to have now, really anything. Don’t wait; look things up, try things out, and start today!
The book shows stuff and explains it, but readers need to do it, themselves – see it run, toy around with
it, break it, fix it, feel the magic –

The best way to get it done


is to do it now

Notes
1. ‘There is a need for learning how to code, if we are not going to be programmed ourselves.’ (Marckmann
2019:69)
2. Warren Sack (2019) maintains that interaction had initially been an integral and even central part of com-
puter science, and was only de-emphasized when computer science developed a strong if not exclusive
focus on algorithms, promoted, for instance, by Donald Knuth.
3. If the software proves to have, e.g., commercial potential, it can then be re-implemented from scratch (e.g.
by professional programmers). Probably a fair bit of commercial software starts that way.
4. ‘I sometimes forget one of the main reasons I like programming, and that’s that programming is fun.
People can talk all they want about problem solving and helping others to accomplish tasks, but for me it’s
all about realizing that I can do it, and that’s always been a fun thing. Granted, there’s some code to write
Introduction xxi

because some user (somewhere) needs a new feature, or there’s a bug to be tracked down and squished,
but the main reason I like programming is that it’s, well, fun.’ [Paul Barry, October 24 (2011, presumably),
qtd. in blogs.oreilly.com/headfirst/2011/10/programming-is-fun-again.html (December 8, 2015)].
5. Make: magazine (www.makezine.com) and AUTODESK Instructables (www.instructables.com/Arduino-
Projects) are great starting points.
6. See the section ‘The Choice of Programming Language’ in Chapter 1.
7. This observation appears to apply, very roughly, to the US, Europe, South East Asia and Australia.
8. See, for instance, www.hackerearth.com/blog/developers/top-women-programmers-history, www.­
computerscience.org/resources/most-influential-women-computer-science, mashable.com/article/unsung-
women-in-tech or www.fullstackacademy.com/blog/remarkable-women-programmers (all September 2,
2023).
9. For info on some female game designers connected to Atari, including Brenda Laurel, see the AtariWomen
project (www.atariwomen.org/stories).
10. Read more: Jason W. Bay. 17 Most influential women game developers. Blog post, www.gameindustry
careerguide.com/influential-women-game-developers (December 11, 2021).
11. For a well-written and comprehensive book on Processing from an art and design perspective see the
books by Reas and Fry (e.g. 2014); and for tech people there are many excellent computer science books
on all kinds of programming languages.
1
The Process of Programming

Outline
• What is Programming?
• The Choice of Programming Language
• Programming First Aid

What Is Programming?
By itself, the computer does nothing. To control this technical medium and to elicit some interesting
behaviour from it, humans have to give it explicit instructions. For practical purposes, instructions are
written down, in multiple programs, in languages that the computer can read. The practice to create such
programs is called programming.
Programming tries hard to be accessible. Programming languages are made for humans, not for
machines. High-level languages are specifically made to be suited to what humans want to do with
computers1. They are tools designed by people for people to use, and they have come a long way already
towards the user. Specifically, programmers do not need to learn to talk, write or think like machines, to
instruct or use computers. Modern languages do what they can to make it easy for humans to use them.
They aim to be close to how humans act and think and not to emulate or reproduce how machines func-
tion. The translation between such programming languages and the actual machine code (which is, in
fact, pretty incomprehensible) is then done automatically under the hood.
There are only a handful of programming structures; mainly these are: Loops to repeat operations,
checks to make decisions based on particular conditions and variables to store data. For people to inter-
act with programs, there is often some form of output (e.g. text, graphics, sound) and input (e.g. key-
board, mouse, joystick, sensors). Only what is formulated in its programs happens, the computer does not
suddenly start to do weird (or wonderful) things by itself. Programming is quite mundane:

• It is all written down


• It is not magic
• Computers are dumb2

Multiple Aspects of Programming


Just as making music is not playing notes, and math is not calculation, programming is not making a list
of commands and letting it run. Programming involves typing-in commands but also regularly includes
many other aspects that are as essential:

• Selecting a language3
• Creating reasonably elegant code
• Reading (other people’s) code

DOI: 10.1201/9781003345916-1 1
2 Introduction to Game Programming Using Processing

• Scoping and structuring programs


• Choosing data structures
• Selecting and competently using tools (such as language functions and additional libraries)
• Making of custom functions and tools for specific purposes
• Organising the handling and moving of data in the program (such as level layouts, enemy posi-
tions and user data)
• Optimising programs for specific applications and contexts (e.g. speed, network bandwidth and
robustness)
• Communicating with team members (e.g. designers, programmers, business people, clients)

To emphasise one aspect, that might be specifically similar to other design practices: Programming
means to create the tools along with the artefacts, in one seamless process. Programming is not only or
even primarily concerned with picking and using pre-made functions (except for the most trivial tasks)
but mainly with the construction of systems. Programs are developed in iterative processes which oscil-
late between creating code and using it to make artefacts. Programming is a multi-faceted process of
making and adapting and testing and fixing and re-using.

How Programming Concretely Works


The general public might only have a vague idea of how programming works, and representations of
programming in popular media might not be specifically accurate. For instance, it might be assumed that
programming happens fast, code is written top-to-bottom in one go, and software works immediately
and reliably. All of these assumptions are dubious. Readers should not assume they do something wrong
if the actual process of programming they experience is different.
The creation of code is usually a goal-directed process, but this process is also often chaotic, piece-
meal, spontaneous, opportunistic and partial. Often, the person programming knows how to imple-
ment some things the software should do but not others. Some parts of a program are more complex
than others. Development of some parts of a program might progress faster than other parts; that might
mean that one particular feature of a program works really well but nothing else. The ideas or need for
some functions or features might only emerge during the development phase and are then integrated
into the existing framework, one part or function at a time. Often, the addition of more features neces-
sitates the re-implementation of (other) parts of the program, because the incorporation of the various
programme parts with each other is non-trivial.4
Programmes usually do not run (at first, anyway). Even short programmes can contain and often do
contain an astonishing number of bugs. Programming is, to a considerable degree, fixing bugs. It takes
much effort to find some or most of the bugs, and then some more effort to fix them. Fixing them usually
introduces new bugs, too. Debugging is part of the process and the challenge, and much effort regularly
is spent on it (see the section ‘Programming First Aid’ and the section ‘The Process of Debugging’ in
Chapter 23). This applies to novice as well as to seasoned programmers. I usually find numerous bugs in
my code and am then regularly surprised that my programs did anything at all, with all those bugs in them.
In most cases, new software is built based on existing software. The program structure of a new project
is often new, but people still have their favourite code such as sets of classes and functions they have
developed over time, and like to bring them to new projects. That code is a great asset because it makes
little sense to develop everything from scratch every time. However, it is of course also a limitation, that
might hinder truly innovative approaches, if the same code is taken from project to project and (similar)
structures are reproduced.
Programming is, in many cases, a team effort. Either code is collaboratively developed by a team of
people, or code is passed on from one person to the next, e.g. in a company. Or, the person who developed
a program gets back to it after some time (weeks, months or years), and needs to make sense of it, again5.
Much software gets re-developed (or re-implemented) eventually, at some point. That usually happens
when the program structure is no longer fit for the purpose, and effectively prevents future development.
The reason is that at the point in time when a program structure is usually decided on, that is, at the
The Process of Programming 3

start of a new project, it is often pretty unclear what the precise requirements for the programme are and
which issues will emerge over time. Also, then, over time, many features are often added to a program,
and the structure gets overloaded, and an increasing level of effort has to be made to integrate new
features and to maintain the old ones, and to keep everything working together. Thus, at some point, it
is less trouble to re-implement a project with the experience and benefit of hindsight. Sometimes the re-
development of a program includes the port to another (for instance, more modern) language.
Particularly when starting out, even trivial programs take a considerable amount of time to be devel-
oped; and even the professional development of software often takes longer than anticipated.
Arguably, programs remain unfinished; there is always more to do, add, include or test. There is no
obvious endpoint when a game or application is done. Usually, software gets released at some point, and
then, later, more advanced incarnations of it are iteratively released as well (e.g. as bugfixes, updates or
as new program versions, occasionally over many years). For games, there are often new features and
contents released over time (such as levels or characters).

The Choice of Programming Language


This book is an introduction to programming. The Processing programming language is used, but under-
standing general programming is the focus. The book empowers participants with an understanding of
the basic and general concepts while it avoids both a follow-me-blindly tutorial approach and language-
specific functions and features. Participants are thus able to transfer and apply the insight they gain to the
programming language or scripting tool used in their next project, design team or job.
As a first programming language for a non-tech audience, Processing (Figure 1.1) is well-suited:

• Processing is free, platform-independent, stable, regularly updated and available for many
computer systems. It can be downloaded (from processing.org) or might be already installed;
• It can do graphics and interaction out of the box, and no setup of libraries is required;
• It can be used with Arduino boards for easy hardware access (e.g. buttons, sensors, LEDs,
motors)6;
• It has a vibrant online community, especially for beginner-oriented, introductory stuff and
• It is based on Java and very similar to widely-used and industry-relevant languages such as C#,
so skills can readily be transferred7.

FIGURE 1.1 The Processing language is used as a vehicle to learn (general) programming (pictured: Version 4.2, Linux)
4 Introduction to Game Programming Using Processing

It is to be expected that for many years, Processing will continue to play a role in learning program-
ming and as a preferred language for artists and designers.8
Many of my colleagues support the use of Processing for an introductory course and book on game
programming, but several have questioned it. Thus, some reasoning is given here. Many people who
code have their favourite programming language and occasionally are quite opinionated on the topic, and
some have kindly shared their views and recommendations about the best programming language to use
in this endeavour. There has not been a consensus, not even close. All the currently popular languages
(as well as several scripting languages and game engines) have been proposed and argued for, with the
vote roughly evenly split.
Various other languages are used in teaching (such as JavaScript, Python, C#). Processing is popu-
larly used in artistic and design projects and rarely in game design. Certainly, it is not a language used in
the game industry. Professional game development happens in C++ or C#. Python is the new hot thing
but not made for highly interactive applications (there is a game library, of course, and it does work),
and syntactically quite different from C-style languages. C and Python are also typically employed in
Computer Science programmes. Java and JavaScript are also available, possibly with decreasing popu-
larity. And there are new (e.g. browser-based) scripting languages every few years.
Also popular are versatile game engines such as Unity, Unreal and Godot, and they can only be used
to full (or any) effect with coding. Arguably, one can teach and learn programming within an engine. The
question is, is this representative of general programming, and can it be transferred to other (scripting)
tools and ‘proper’ languages? And the answer is, yes. And there is no shortage of resources (courses,
books, online videos and fora) of various qualities.
It might be a matter of preference to favour one or the other approach: Programming within engines
might have impressive initial results (e.g. engines usually have physics engines, and with very little cod-
ing anybody can make something that moves and can be shot). Programming outside of engines, on the
other side, affords more freedom and requires the programmer to take control because very little (if any)
structure is given. In my (own, rough) assessment, programming in engines is reading documentation
and finding out what one can do with elaborate pre-made engine structures and functions; while pro-
gramming outside of engines is laborious fiddling with tiny snippets of code (and reading some docu-
mentation) and trying to make meaningful things happen.
A reason to favour learning (and teaching) programming without engines is, that it is more universal:
Learning programming in an engine creates a substantial reliance (technically and psychologically) on
that engine. Take away the engine, and the learner hits a wall; he or she can do nothing. Somebody who
learned programming without an engine can (almost) start from scratch with a blank screen; and also use
an engine with very little preparation.
Probably the essential challenge of programming is to get the machine to do exciting and complex
things while instructing the machine with rather basic and clunky commands. I remember how disap-
pointed I was when I started to programme and was only given those relatively low-level and open com-
mands. I was expecting words but was given letters. Instead of using sophisticated future tech, I had to
build things up myself. For novel, original work, skills are needed, and this may apply to programming
to the same degree it applies to other areas of design. The trade-off between convenience and control
is well-known. Of course, there are programming techniques and tools that require less practice and
skill to produce desirable results than textual programming. There are many digital tools for prototyp-
ing and communicating ideas for interaction, that require very little programming knowledge. One can
use tools such as Director, game makers and website editors such as FrontPage, or subvert tools such as
PowerPoint. But of course, without programming, one is left to follow and accept what these programs
offer. Tools often focus on a specific kind of interaction (such as a genre, e.g. Adventure Game Studio9
and the online Retro Arcade Creator10 game maker), and have in-built behaviour that cannot be changed.
In other words, a platform game maker makes the same game every time. The reliance and dependence
on pre-made work not only channels, scopes and limits a tool’s expressive power but also one’s own ide-
ation and creativity. Using a text-based programming language such as Processing requires some effort
and practice to build up interesting behaviour but offers a very high level of control11.
Of course, at different points in the creative process and for different situations, different methods and
tools are useful. Programming certainly adds a tool to the box that significantly empowers designers.
The Process of Programming 5

Programming First Aid


The practice of programming regularly includes problems and bugs and things going wrong, and dealing
with these issues is part of it. What can be done, if things don’t work?12

• Take a break, do something else for a minute, talk to a human (about something else);
• Check what is going on in the program and make things visible: Use println() or text()
to output variable contents13 or graphics, to confirm the internal (e.g. collision detection) logic
corresponds to what one assumes or observes;
• Explain the code to somebody else14;
• Assume it will work eventually, comment it out for now, and come back to this issue later;
• See if anybody with coding skills is around who can help or
• Search the Internet, or more specifically, online fora15 for an answer to the question or problem.
Likely, other people have encountered it before. If nothing helpful can be found, post a question
to the forum.

Notes
1. There are certainly languages that are fairly removed from applications such as assembler, and old code
(e.g. Fortran) is and will be around for decades, but today much is done in languages that humans can
read – chances are, as a designer living in the 21st century, all code one will ever see, is fairly user-friendly
(e.g. C-based).
2. Computers are not capable of any complex operations; what they are tremendously good at, is to repeat
simple things rapidly and very often. Specifically, computers can store and retrieve data, and a lot of pre-
sumably ‘intelligent’ behaviour of the computer is actually searching and retrieving data. Google search
results and (some) poker-playing programmes are examples.
3. Section, The Choice of Programming Language is a discussion of why Processing was selected for this
project, and the most prominent features of Processing are listed.
4. The typical process of iteratively developing programmes is demonstrated in the section ‘Grids’ in Chapter 12
and in the section ‘Eye and Math Examples’ in Chapter 14.
5. Thus, if one works in a team, but also if a person works alone on a project, it is useful to avoid overly
wonky or idiosyncratic ways of coding.
6. Arduino uses (a subset of) C++ actually, but for basic applications, the differences between Processing
and C++ are marginal (class use is different, e.g.).
7. For instance, the Unity engine uses C# for scripting.
8. Theoretically, one can program anything in Processing; practically, it is a bit limited (which is not a bad
thing for learning) and for serious stuff (such as 3D graphics) too slow.
9. www.adventuregamestudio.co.uk (Jan 24, 2017)
10. www.sploder.com/free-arcade-game-maker.php (Jan 24, 2017)
11. In computer science lingo Processing is called an imperative programming language, because it states
how the computer should do things; opposed to declarative languages which state what the computer
should do.
12. For more info on debugging, see the section ‘The Process of Debugging’ in Chapter 23.
13. On console output, see Chapter 3.
14. The important part is the explaining; the other person does not need to be an expert, or even to say any-
thing at all.
15. Such as the forum on discourse.processing.org (May 21, 2023).
2
Hello Game World!

Outline
• Hello World
• First Interactivity
• Pixel Graphics
• A Brief Look at Colours

Now we see what parts a program


is made of and get some graphics
on the screen fast

Hello World
Programming code is a piece of text, similar to a shopping list or cooking recipe. The computer reads
and executes each item (i.e. command) when (and if) it reaches it, starting at the top. The machine looks
at one spot at a time, line by line, command by command, does exactly what the code says, at best
remembers what happened before, but has no idea where things are going and what is coming next.
Often, texts on programming start with a program that prints ‘Hello World’ on the screen, so the user
can try it out and see that something is happening. Because Processing is all about graphics, this text
starts with graphical output, a line:

line(20, 70, 80, 20);

Start Processing on the computer and type or copy this command1 into Processing’s window.2 Then
press the Play button (showing a circle with a triangle, it looks like a play button on a cassette recorder)
or press Ctrl-R or Apple-R, and a little window with a black line on a grey background should appear:

The line is drawn between two points: (20, 70) and (80, 20). The coordinate system origin (0, 0)
is located in the top-left corner of the window.
Modify the two pairs of coordinates and the line will be drawn somewhere else.3 Add more line()
commands (with different coordinates) and several lines will be drawn.

6 DOI: 10.1201/9781003345916-2
Hello Game World! 7

With just a few commands similar to the line() command, it is possible to draw some simple graphics
on the screen; such as a large eyeball (Code 1).

Code 1
size(480, 240);
strokeWeight(4);
background(255, 255, 255);
fill(60, 120, 190);
ellipse(230, 90, 400, 400);
fill(0, 0, 0);
ellipse(229, 88, 250, 250);
fill(255, 255, 255);
ellipse(180, 40, 70, 70);

There are many things one can already draw like this; and for the moment it is fine to understand code
as a kind of list or recipe (and it is, actually, for instance, in the examples Code 1–Code 15). But, as will
become obvious soon, the code is different. Lists and recipes are usually read from top to bottom and
each line or item in-between is attended to. But code can include decisions (i.e. which code to execute
depending on e.g. user action), repetition (e.g. keep repeating part of the code a number of times), vari-
ables (to store data) and structures (such as functions and classes). While it happens that code is executed
line by line and every command once, and from top to bottom, it is a rather rare exception.
Here are more examples to try out, such as a rainbow (Code 2).

Code 2
size(480, 240);
noStroke();
background(0, 0, 0);
fill(255, 0, 0);
ellipse(240, 240, 480, 480);
fill(255, 128, 0);
ellipse(240, 240, 400, 400);
fill(255, 255, 0);
ellipse(240, 240, 320, 320);
fill(0, 255, 0);
ellipse(240, 240, 240, 240);
fill(0, 0, 255);
ellipse(240, 240, 160, 160);
fill(255, 0, 255);
ellipse(240, 240, 80, 80);
8 Introduction to Game Programming Using Processing

If one wants something more artsy-looking, that is possible, too (Code 3 and Code 4).

Code 3
size(640, 200);
noStroke();
background(235, 230, 230);
fill(245, 215, 0);
triangle(110, 20, 20, 180, 200, 180);
fill(90, 130, 210);
ellipse(310, 100, 160, 160);
fill(230, 70, 70);
rect(440, 20, 160, 160);

Code 4
size(400, 400);
noStroke();
fill(137, 67, 221);
rect(0, 0, 200, 200);
fill(178, 64, 233);
rect(200, 0, 200, 200);
fill(240, 71, 28);
rect(0, 200, 200, 200);
fill(2, 168, 88);
rect(200, 200, 200, 200);
fill(232, 175, 20);
rect(50, 50, 100, 100);
rect(250, 50, 100, 100);
rect(50, 250, 100, 100);
rect(250, 250, 100, 100);

Some things can now already be observed: There are different graphical output functions such as
line(), rect(), triangle() and ellipse(), maybe more; they are somehow controlled by num-
bers (called arguments) in parenthesis; and there are other functions such as fill(), noStroke() and
strokeWeight() that change the way the (following) objects are drawn (equivalent to picking up a
Hello Game World! 9

drawing tool such as a coloured pen). The order in which functions are called is important, that is, later
ones draw over earlier ones on the screen; colours are written in RGB values, red being, for instance,
(255, 0, 0). Things can be drawn within and without the window.

Functions
Functions carry out actions, e.g.:

• Draw shapes
• Set colours
• Calculate pixel coordinates

Functions are either language-specific (such as size() and background()), provided by libraries
(e.g. sound or network) or programmer-made. We’ll be making lots of functions here in the book4 – some
specific to a project, others that are used in many projects. Often, programmers have a bunch of functions
they have made over time, and which they re-use often.
A function has a name, which can be anything; it only needs to be unique.5 Often (i.e. by convention)
the name is spelled in lowercase letters or in a mix of (mostly) lowercase letters and some uppercase
ones, as in noStroke(). Functions can take arguments, which follow after the function name in paren-
thesis and are separated by commas. Many functions require arguments, but some do not.
Now let us revisit some of the code from the examples above. The first function that is called in
Code 1 is

size(480, 240);

size() takes two arguments to set the window size. The first argument defines the dimension of the
window in pixels in the x-direction, the second argument in the y-direction.
The function

strokeWeight(4);

takes only one argument to set the width of the contour lines of graphic objects (e.g. rectangles and
ellipses).
And the function (called in Code 2)

noStroke();

does not take any arguments; it just sets the contour line width to zero.
Functions can have any number of parameters. These parameters can also be (almost) anything, e.g.
numbers or words. For the most common functions (such as line()) one probably remembers the param-
eters, but often one simply looks them up in the documentation or uses an IDE feature similar to auto-
completion to be reminded (see the section ‘The Processing IDE’ in Chapter 23).
In Processing (as in many similar languages6), each statement (such as a function call or a variable
assignment) is ended with a semicolon (not e.g. with a line break). In the following example, the com-
puter reads two function calls, each of them terminated by a semicolon:

size(200, 200); strokeWeight(3);

This would work fine, but is hard to read for humans. As a general rule, always place statements in
separate lines:

size(200, 200);
strokeWeight(3);
10 Introduction to Game Programming Using Processing

Case Sensitivity and Whitespace


For the computer to read and execute code, commands and everything else need to be spelled correctly,
and typos are a popular source of bugs (luckily, these are usually straightforward to spot and to fix).
But Processing is also case sensitive. It makes a difference if one writes

size(200, 200);

which is correct (if one wants to invoke the function for setting the window size), or

Size(200, 200);

which is not.
However, whitespace can be inserted or omitted in some places:

size(200,200);
strokeWeight ( 3 ) ;
x += 50;

These examples compile, but the code might be hard to read (and look unconventional); not everything
that is possible is advisable to do.
Whitespace is not permitted within function names and operator symbols:

stroke Weight(3);
x+ =50;

What is meant is

strokeWeight(3);
x += 50;

First Interactivity
The examples above demonstrate that the computer can do some stuff when instructed to do so, such as
drawing graphical shapes. But so far, the programs are not interactive. We will come back to the topic
soon, but already now programs can be fitted with basic interactivity. Code 5 shows how a rectangle can
be moved about the screen with the mouse.

Code 5
void setup() //runs once at program start
{ }
void draw() //runs repeatedly after that
{
rect(mouseX, mouseY, 20, 10);
}
Hello Game World! 11

The structure works like this: The code in the first function, which is called setup(), is run once on
program starts, and the second function draw() is run repeatedly after that until the program stops.7 In
Code 5, nothing is done at program start (because setup() is empty; although we might add something
like setting the window size or colouring the background), but then (in draw()) the mouse pointer coor-
dinates are used to draw a rectangle at the current position. When the mouse pointer is moved, rectangles
are drawn at various places (as in the example’s screenshot).
In Code 6, the setup() function sets the window size (once, at program start) to 320 by 240 pixels. In
draw(), first, the background is (re-) drawn all the time, so the graphical output looks much cleaner than
in Code 5; then the mouseX and mouseY variables are used to draw a line and a circle: The variables are
used as an endpoint for the line (which starts at (160, 0), which is the top-middle of the window) and as
a centre point for the ellipse (which is round, so it is a circle).

Code 6
void setup()
{
size(320, 240);
}
void draw()
{
background(220, 110, 0);
line(160, 0, mouseX, mouseY);
ellipse(mouseX, mouseY, 60, 60);
}

While most of the code snippets in this first part of the book omit the setup() and draw() structure,
do experiment with it, and with interactivity! The mouse pointer coordinates are readily available in the
variables mouseX and mouseY and can be used to control not only the position where something is drawn
but also, e.g. its size, colour or line thickness.

The first rule of programming:


To get the job done

Pixel Graphics
Today’s popular computer screens are made up of grids of little, rectangular elements called pixels
(Figure 2.1). All the pixels on the screen or in the display window are controlled by the program.
The function call

size(100, 50);

sets the window size to 100 by 50 pixels (Figure 2.2).8


Each of the pixels in the display can be accessed by the program. While the above examples drew
rectangles and ellipses, it is also possible to draw a single pixel9:

point(x, y);
12 Introduction to Game Programming Using Processing

FIGURE 2.1 A 1987–8 Ms. Pac-Man arcade machine (branded as Super Pac Gal; left); and a screen detail showing
individual pixels on the scratched and misaligned CRT (right; photo by the author)

FIGURE 2.2 100x50 pixels window

FIGURE 2.3 How it really looks: Close-up of a 100x100 pixel window with some graphics

Computer people tend to re-invent the world. For historical reasons,10 on computers, coordinates
always start in the upper-left corner of the window/screen (Figure 2.3). Note that everything in comput-
ers is numbered starting from 0, and thus the pixels are numbered from 0 to 99 in the x-direction, and
from 0 to 49 in the y-direction.

Exercise: Which kind of output do the following programs (Code 7) produce?11


Hello Game World! 13

Code 7
size(100, 100);
point(10, 10);
point(50, 10);
point(90, 10);
point(10, 50);
point(90, 50);
point(10, 90);
point(50, 90);
point(90, 90);

Code 8
size(100, 100);
point(50, 10);
point(30, 30);
point(70, 30);
point(10, 50);
point(90, 50);
point(30, 70);
point(70, 70);
point(50, 90);

Code 9
size(100, 100);
line(20, 20, 80, 20);
line(80, 20, 80, 80);
line(80, 80, 20, 80);
line(20, 80, 20, 20);
line(20, 20, 80, 80);
line(20, 80, 80, 20);

Code 10
size(100, 100);
line(25, 25, 25, 35);
line(75, 25, 75, 35);
line(25, 75, 75, 75);
line(25, 60, 25, 75);
line(75, 60, 75, 75);

Code 11
size(100, 100);
line(10, 50, 30, -10);
line(30, -10, 90, 10);
line(90, 10, 70, 70);
line(70, 70, 10, 50);

Code 12
size(100, 100);
ellipse(50, 50, 100, 100);
line(-100, 50, 200, 50);
rect(-10, -10, 120, 120);
point(-20, 50);
point(100, 100);
14 Introduction to Game Programming Using Processing

Code 13
size(100, 100);
line(10, 10, 90, 90);
line(10, 10, 10, 90);
line(10, 90, 90, 90);
point(50, 50);
point(10, 90);
ellipse(90, 10, 0, 0);

Here are the parameters of the graphical functions that were used in the above examples, plus two
others: The quad and the Bézier curve.12

        

The ellipse, for instance, mixes as parameters: Coordinates and the size of it in pixels; it could even
include a colour or a name – anything can be given as a parameter, there is no law against that (of course,
one would need to write one’s own function for that to work).13
Bézier curves are much used in drawing programs such as Illustrator and Corel Draw (Figure 2.4).
Bézier curves are defined by anchor points and control points. Each anchor point has one (if it is an start/
end point) or two control points associated with it. The curve goes through (or starts/ends at) the anchor
points and curves towards the control points.
Hello Game World! 15

FIGURE 2.4 Bézier curve with control points in a typical (vector-based) drawing program

Processing’s function draws a curve between two anchor points. It takes eight parameters:

bezier(x1, y1, control x1, control y1, control x2, control y2, x2, y2);

The two anchor points are given first and last, with two control points in-between (Code 14–Code 15).

Code 14
bezier(40, 20, 20, 45, 20, 80, 70, 60);
stroke(160, 160, 160);
line(40, 20, 20, 45);
line(70, 60, 20, 80);

Code 15
bezier(80, 20, 20, 25, 80, 90, 20, 80);
stroke(160, 160, 160);
line(80, 20, 20, 25);
line(20, 80, 80, 90);
16 Introduction to Game Programming Using Processing

Use a (vector) drawing program to get a feel for Bézier curves – many popular, commercial programs
use the same thing as Processing; also, try this interactive example (Code 16):

Code 16
void setup()
{
size(200, 200);
}
void draw()
{
background(12, 244, 22);
bezier(40, 20, mouseX, mouseY, 10, 110, 160, 140);
line(40, 20, mouseX, mouseY);
}

Drawing Order
Computers execute one command after the other, and this also applies to graphical output. As is visible
in some of the examples above (for instance, in Code 1), on pixel displays, a shape that is drawn later
occludes shapes drawn earlier. This is often very useful (e.g. it makes drawing a rainbow quite simple
using circles, Code 2), but it can also be problematic (for instance, the last flower petal to be drawn
occludes the first, so they do not look all the same (Figure 2.3).
When a graphical object is not visible, and one expects it to be, it may be because it is drawn outside
the display window, it is obscured by another object or is too small (or big) or is drawn in an unexpected
colour (for instance, it might have the same colour as the background or might be transparent).
Try it out:

Code 17
ellipse(50, 50, 40, 50);
rect(25, 55, 50, 25);

Code 18
ellipse(25, 50, 10, 10);
ellipse(75, 50, 10, 10);
rect(25, 40, 50, 20);

A Brief Look at Colours


If two things are certain, they are that the world is made up of pixels and nature defines colours as red/
green/blue (RGB) values. Both observations are incorrect, of course and were not widely shared before
everybody got a computer in the 1990s (and after).
Hello Game World! 17

FIGURE 2.5 RGB colour codes

RGB is but one way to represent colour. It is not the only way, and also not the way to achieve the ideal
alignment with the colours humans can see. But it is technically convenient and became the default model
in screen-based computer graphics (as opposed to print). Processing uses by default the RGB model to
define colours (alternatively, it can be switched to the HSB model14). A colour is given as a triplet of whole
numbers, with each number going from 0 to 255; for example, maximum red is (255, 0, 0) – the red
component of RGB is set to 255, green to 0, and blue to 0. For some other popular colours, see Figure 2.5.15
In the RGB colour model, black is (0, 0, 0), white is (255, 255, 255) and middle grey is (128, 128,
128). Processing offers a shortcut for grey values, and that is, to only use one value to describe a shade
of grey (Code 19).

Code 19
noStroke();
fill(0);
rect(0, 0, 100, 20);
fill(64);
rect(20, 20, 80, 20);
fill(128);
rect(40, 40, 60, 20);
fill(192);
rect(60, 60, 40, 20);
fill(255);
rect(80, 80, 20, 20);

The stroke() function sets the colour for the contour lines, and the fill() function for the fill of the
following shapes. The settings remain valid until a new setting occurs. The default values are white fill
and black lines (Code 20).
Exploring the Variety of Random
Documents with Different Content
CHAPTER IX.
THEIR AMUSEMENTS AND ACCOMPLISHMENTS.

Of amusements for women in the first century of colonial life, we


can almost say there were none. There was in New England no
card-playing, no theatre-going, no dancing. The solemn Thursday
lecture was the sole mid-week gathering. Occasionally there was the
excitement of Training Day. In the South the distances were too
great from plantation to plantation for frequent friendly meetings. As
time went on, coöperation in gathering and storing the various food-
harvests afforded opportunities for social intercourse. Apple-parings
and corn-huskings were autumnal delights, but when these were
over, the chafing youth found no recreations through the long, snowy
months in country homes, and but scant opportunity for amusement
in town. No wonder that they turned eagerly to the singing-school,
and found in that innocent gathering a safety-valve for the pent-up
longing for diversion which burned in young souls then as now. We
can but wonder how, ere the singing-school became a force, young
New Englanders became acquainted enough with each other to think
of marriage; and we can almost regard the establishment of the
study of fugue and psalm singing as the preservation of the
commonwealth.
In Virginia the different elements of life developed characteristic
pastimes, and by the first quarter of the eighteenth century there
were opportunities of diversion offered for women.
We have preserved to us an exact account of the sports which
were enjoyed by both Virginian men and women. It may be found in
the Virginia Gazette for October, 1737:—
We have advices from Hanover County that on St Andrews
Day there are to be Horse Races and several other
Diversions for the entertainment of the Gentlemen and
Ladies, at the Old Field, near Captain John Bickertons, in that
County if permitted by the Hon Wm Byrd Esq Proprietor of
said land, the substance of which is as follows viz:
It is proposed that 20 Horses or Mares do run around a
three mile course for a prize of five pounds.
That a Hat of the value of 20s be cudgelled for, and that
after the first challenge made the Drums are to beat every
Quarter of an hour for three challenges round the Ring and
none to play with their Left hand.
That a violin be played for by 20 Fiddlers; no person to
have the liberty of playing unless he bring a fiddle with him.
After the prize is won they are all to play together and each a
different tune, and to be treated by the company.
That 12 Boys of 12 years of age do run 112 yards for a hat
of the cost of 12 shillings.
That a Flag be flying on said Day 30 feet high.
That a handsome entertainment be provided for the
subscribers and their wives; and such of them as are not so
happy as to have wives may treat any other lady.
That Drums Trumpets Hautboys &c be provided to play at
said entertainment.
That after Dinner the Royal Health His Honor the
Governor’s &c are to be drunk.
That a Quire of Ballads be sung for by a number of
Songsters, all of them to have liquor sufficient to clear their
Wind Pipes.
That a pair of Silver Buckles be wrestled for by a number of
brisk young men.
That a pair of handsome Shoes be danced for.
That a pair of handsome Silk Stockings of one Pistole value
be given to the handsomest young country maid that appears
in the field.
With many other whimsical and Comical Diversions too
numerous to mention.
And as this mirth is designed to be purely innocent and void
of offence, all persons resorting there are desired to behave
themselves with decency and sobriety; the subscribers being
resolved to discountenance all immorality with the utmost
rigor.
There is a certain rough and noisy heartiness in this rollicking
Racing Day in old Virginia that speaks of boisterous cheer akin to the
days of “merrie England,” and which seems far from disagreeable
when contrasted with the dull yearly round of sober days in New
England. Virginia and Maryland men had many social clubs “to
promote innocent mirth and ingenious humour,” but of course within
these clubs their consorts and daughters were not guests. A ball or a
country dance were the chief amusements of Southern women, and
very smart functions some of these balls were, though they did begin
in broad daylight.
An early account was given by a travelling Virginian, William
Black, of a Government Ball in the Council Room at Annapolis in
1744.
The Ladies of Note made a Splendant Appearance. In a
Room Back from where they Danc’d was Several Sorts of
Wines, Punch and Sweetmeats. In this Room those that was
not engaged in any Dancing Match might better employ
themselves at Cards, Dice, Backgammon, or with a cheerful
Glass. The Ladies were so very agreeable and seem’d so
intent on Dancing that one might have Imagin’d they had
some Design on the Virginians, either Designing to make
Tryal of their Strength and Vigour, or to convince them of their
Activity and Sprightliness. After several smart engagements in
which no advantage on either side was Observable, with a
mutual Consent about 1 of the Clock in the Morning it was
agreed to break up, every Gentleman waiting on his Partner
home.
The method in which a ball was conducted somewhat more than a
century ago in Louisville was thus told by Maj. Samuel S. Forman,
who visited that town as a young man.
After the managers had organized the Company by drawing
numbers and appointing the opening with a Minuet, Uncle
was called on and introduc’d to a Lady for the opening scene.
The Managers who distributed the numbers called Gentⁿ No.
1, he takes his stand—Lady No. 1, she rises from her seat,
the Manager leads her to the floor and introduces Gentⁿ No.
1, & so on till the floor is full. After all the Company have been
thus call’d out then the Gentⁿ are free to seek his Partner but
no monopoly. Lady at the head chooses the figure, but it is
considered out of order for one Lady to head a figure twice
unless all have been at the head. If there happen to be some
ladies to whom from mistake or otherwise have been passed
the Managers duty is to see to it. And another Custom was for
a Gentⁿ to call on a Lady & inform her of an intended ball &
ask permission to see her to the place & see her safe home
again. If the Gentⁿ does not draw such Lady for the first
Contra Dance he generally engages her for the first Volunteer.
At the Refreshments the Gentⁿ will by instinct without
Chesterfieldian monition see that his betterhalf (for the time
being) has a quantum sufficit and that without cramming his
jaws full until he has reconducted her to the ball-room, then
he is at liberty to absent himself for a while. There were two
young gentlemen there from New York who were much
attached to each other. They promised to let each other know
when a ball was on foot. At one time one came to the other
and told him to prepare his pumps against such an evening.
The answer was—Pumps out of order, must decline. No Sir
that will not do. Then Sir you have been buying Several pair
of handsome Mocassons for New York Ladies. If you will lend
me one pair & you will put on one pair (it wont hurt them) I will
go. Snaps his fingers—the very thing. The next ball after this
Moccasons became very fashionable. So many fashions have
their origins from Necessity.
A traveller named Bennet gives us an account of the amusements
of Boston women in the middle of the century, when dancing was
slowly becoming fashionable.
For their domestic amusements every afternoon after
drinking tea, the gentlemen and ladies walk the Mall, and from
there adjourn to one anothers house to spend the evening,
those that are not disposed to attend the evening lecture
which they may do if they please six nights in the seven the
year round. What they call the Mall is a walk on a fine green
Common adjoining to the south east side of the town. The
Government being in the hands of dissenters they dont admit
of plays or music houses; but of late they have sent up an
assembly to which some of the ladies resort. But they are
looked upon to be none of the nicest, in regard to their
reputation, and it is thought it will be soon suppressed for it is
much taken notice of and exploded by the religious and sober
part of the people. But notwithstanding plays and such like
diversions do not obtain here, they dont be dispirited or
moped for the want of them; for both the ladies and
gentlemen dress and appear as gay in common as courtiers
in England on a coronation or birthday. And the ladies visit
here, drink tea, indulge in every little piece of gentility to the
height of the mode, and neglect the affairs of the family with
as good a grace as the finest ladies in London.
The Marquis de Chastellux writes of the Philadelphia assembly in
1780:—
The assembly or subscription ball, of which I must give an
account may here be introduced. At Philadelphia, there are
places appropriated for the young people to dance in and
where those whom that amusement does not suit may play at
different games of cards, but at Philadelphia games of
commerce are alone allowed. A manager or Master of
Ceremonies presides at the methodical amusements; he
presents to the gentlemen and lady dancers, billets folded up
containing each a number; thus fate decides the male or
female partner for the whole evening. All the dances are
previously arranged and the dancers are called in their turns.
These dances, like the toasts we drink at table, have some
relation to politics; one is called The Successful Campaign,
another Bourgoynes Defeat, a third Clintons Retreat. The
managers are generally chosen from among the most
distinguished officers of the army. Colonel Mitchell, a little fat
squat man, was formerly the manager, but when I saw him he
had descended from the magistracy and danced like a
common citizen. He is said to have exercised his office with
great severity, and it is told of him, that a young lady who was
figuring in a country dance, having forgot her turn through
conversing with a friend, he came up to her and called out
aloud, “Give over, Miss, take care what you are about. Do you
think you come here for your pleasure?”
The dance, A Successful Campaign, was the one selected by
diplomatic Miss Peggy Champlin to open the ball, when she danced
in Newport with General Washington, to the piping of De
Rochambeau and his fellow officers. This was “the figure” of A
Successful Campaign. “Lead down two couples on the outside and
up the middle; second couple do the same, turn contrary partners,
cast off, right hand and left.” It was simple, was it not—but I doubt
not it was dignified and of sedate importance when Washington
footed it.
Stony Point was another favorite of Revolutionary days—for did
not General Wayne successfully storm the place? This dance was
more difficult; the directions were somewhat bewildering. “First
couple three hands round with the second lady—allemand. Three
hands round with the second gentleman—allemand again. Lead
down two couples, up again, cast off one couple, hands round with
the third, right and left.” I scarcely know what the figure “allemand”
was. The German allemande was then an old style of waltz, slower
than the modern waltz, but I can scarcely think that Washington or
any of those serious, dignified officers waltzed, even to slow time.
Another obsolete term is “foot it.”
Come and foot it as you go
On the light fantastic toe,

seems to refer to some definite step in dancing. Sheridan in The


Rivals thus uses the term in regard to dances:—
I’d foot it with e’er a captain in the county, but these
outlandish heathen allemandes and cotillions are quite
beyond me.
But “footing it” and “outlandish heathen allemandes” are not so
misty as another term, “to haze.” In the Innocent Maid they “hazed.”
“First three couples haze, then lead down the middle and back
again, close with the right hand and left.” In dancing the Corsino they
figured thus: “Three couples foot it and change sides; foot it again
and once more change sides; three couples allemand, and the first
fall in the middle then right hand and left.”
Dancing-masters’ advertisements of those days often give us the
list of modish dances: “Allemandes Vally’s, De la Cours, Devonshire
Minuets and Jiggs.”
Burnaby in 1759 wrote of a special pleasure of the Quaker maids
of Philadelphia: of fishing-parties.
The women are exceedingly handsome and polite. They
are naturally sprightly and fond of pleasure and upon the
whole are much more agreeable and accomplished than the
men. Since their intercourse with the English officers they are
greatly improved, and without flattery, many of them would not
make bad figures even in the first assemblies in Europe. Their
amusements are chiefly dancing in the winter, and in the
summer forming parties of pleasure upon the Schuilkill, and in
the country. There is a society of sixteen ladies and as many
gentlemen called The fishing company, who meet once a
fortnight upon the Schuilkill. They have a very pleasant room
erected in a romantic situation upon the banks of that river
where they generally dine and drink tea. There are several
pretty walks about it, and some wild and rugged rocks which
together with the water and fine groves that adorn the banks,
form a most beautiful and picturesque scene. There are boats
and fishing tackle of all sorts, and the company divert
themselves with walking, fishing, going up the water, dancing,
singing, conversing, or just as they please. The ladies wear
an uniform and appear with great ease and advantage from
the neatness and simplicity of it. The first and most
distinguished people of the colony are of this society; and it is
very advantageous to a stranger to be introduced to it, as he
hereby gets acquainted with the best and most respectable
company in Philadelphia. In the winter when there is snow
upon the ground it is usual to make what they call sleighing
parties.
He says of New York society:—
The women are handsome and agreeable though rather
more reserved than the Philadelphian ladies. Their
amusements are much the same as in Pensylvania; viz balls
and sleighing expeditions in the winter, and in the summer
going in parties upon the water and fishing; or making
excursions into the country. There are several houses
pleasantly situated upon East River near New York where it is
common to have turtle feasts; these happen once or twice in
a week. Thirty or forty gentlemen and ladies meet and dine
together, drink tea in the afternoon, fish and amuse
themselves till evening and then return home in Italian
chaises, a gentleman and lady in each chaise. In the way
there is a bridge, about three miles distant from New York
which you always pass over as you return, called the Kissing
Bridge where it is a part of the etiquette to salute the lady who
has put herself under your protection.
It is evident from these quotations and from the testimony of other
contemporary authors that one of the chief winter amusements in
New York and Philadelphia and neighboring towns was through
sleighing-parties. Madam Knights, of Boston, writing in 1704 of her
visit to New York, said:—
Their diversion in winter is riding sleighs about three or four
miles out of town where they have houses of entertainment at
a place called the Bowery, and some go to friends houses,
who handsomely treat them. Mr. Burroughs carried his
spouse and daughter and myself out to one Madam Dowes a
gentlewoman that lived at a farmhouse who gave us a
handsome entertainment of five or six dishes and choice beer
and metheglin, etc, all which she said was the produce of her
farm. I believe we met fifty or sixty sleighs that day; they fly
with great swiftness and some are so furious that they will
turn out of the path for none except a loaded cart.
There were few sleighs at that date in Boston.
Sixty-four years later, in 1768, a young English officer, Alexander
Macraby, wrote thus to his brother of the pleasures of sleighing:—
You can never have had a party in a sleigh or sledge I had
a very clever one a few days ago. Seven sleighs with two
ladies and two men in each proceeded by fiddlers on
horseback set out together upon a snow of about a foot deep
on the roads to a public house, a few miles from town where
we danced, sung, romped and eat and drank and kicked
away care from morning till night, and finished our frolic in two
or three side-boxes at the play. You can have no idea of the
state of the pulse seated with pretty women mid-deep in
straw, your body armed with furs and flannels, clear air, bright
sunshine, spotless sky, horses galloping, every feeling turned
to joy and jollity.
That older members of society then, as now, did not find sleighing
parties altogether alluring, we learn from this sentence in a letter of
Hannah Thompson written to John Mifflin in 1786:—
This Slaying match Mr Houston of Houston St gave his
Daughters, Dear Papa, Dear Papa, do give us a slaying—he
at last consented, told them to get ready and dress
themselves warm, which they accordingly did and came
running. We are ready papa. He ordered the Servants to have
some burnt wine against they came back. He desir’d them to
step upstairs with him before they went. As soon as they got
in an Attick chamber, he threw up all the windows and seated
them in two old Arm Chairs and began to whip and Chirrup
with all the Spirit of a Slaying party. And after he kept them
long enough to be sufficiently cold he took them down and
call’d for the Mulled Wine and they were very glad to set close
to the Fire and leave Slaying for those who were too warm.
This I quote to execrate the memory of Mr. Houston and express
my sympathy for his daughters.
There were no entertainments more popular, from the middle of
the past century to the early years of this one, than “turtle frolics,”
what Burnaby called turtle-feasts. Every sea-captain who sailed to
the West Indies intended and was expected to bring home a turtle on
the return voyage; and if he were only to touch at the West Indies
and thence pass on to more distant shores, he still tried, if possible,
to secure a turtle and send it home by some returning vessel. In no
seaport town did the turtle frolic come to a higher state of perfection
than in Newport. Scores of turtles were borne to that welcoming
shore. In 1752 George Bresett, a Newport gentleman, sailed to the
West Indies, and promptly did a neighborly and civic duty by sending
home to his friend Samuel Freebody, a gallant turtle and a generous
keg of limes. Lime juice was the fashionable and favorite “souring” of
the day, to combine with arrack and Barbadoes rum into a glorious
punch. The turtle arrived in prime condition, and Freebody handed
the prize over to a slave-body named Cuffy Cockroach. He was a
Guinea Coast negro, of a race who were (as I have noted before) the
most intelligent of all the Africans brought as slaves to these shores.
Any negro who acquired a position of dignity or trust or skill in this
country, in colonial days, was sure to be a Guinea-boy. Cuffy
Cockroach followed the rule, by filling a position of much dignity and
trust and skill—as turtle-cook. He was a slave of Jaheel Brenton, but
he cooked turtle for the entire town. The frolic was held at Fort
George, on Goat Island, on December 23. The guests, fifty ladies
and gentlemen, sailed over in a sloop, and were welcomed with
hoisted flag and salute of cannon. The dinner was served at two, tea
at five, and then dancing begun. Pea Straw, Faithful Shepherd,
Arcadian Nuptials, were allemanded and footed, and the keg of limes
and its fellow-ingredients kept pace with the turtle. The moon was at
the full when the party landed at the Newport wharf at eleven, but the
frolic was not ended. For instead of the jolly crowd separating, they
went the rounds, leaving one member of the party at a time at his
own door, and then serenading him or her, till the whole company
had been honored in succession. When Sammy wrote to Mr. Bresett
he said:—
Upon the whole the entertainment had the preference over
all turtle frolics before it, and Mr George Bresetts health with
“Honest George” was freely drank in a cheerful glass by every
person; and at the request of the company I return you their
compliments for the foundation of so agreeable an
entertainment.
We find even so staid and dignified a minister and legislator as
Manasseh Cutler writing thus in Providence in 1787:—
This morning I received a polite invitation from Govenor
Bowen in the name of a large company to join them in a Turtle
Frolic about six miles out of town. Mr Hitchcock and other
clergymen of the town were of the party but much against my
inclination I was obliged to excuse myself.
The traveller who drives through the by-roads of New England to-
day is almost ready to assert that there is no dwelling too poor or too
lonely to contain a piano, or at the very least a melodeon or parlor
organ. The sounds of Czerny’s exercises issue from every
farmhouse. There may be no new farm implements, no sewing-
machine, but there will surely be a piano. This love of music has ever
existed on those rock-bound shores, though in early days it found a
stunted and sad expression in hymn tunes only, and the
performance of music could scarce be called a colonial
accomplishment. The first musical instruments were martial, drums
and fifes and hautboys. I have never seen, in any personal inventory,
the notice of a “gitterne” as in similar Virginian lists.
But in the early years of the eighteenth century a few spinets must
have been exported to Boston and Philadelphia, and perhaps to
Virginia. In 1712 an advertisement was placed in the Boston News-
Letter that the Spinet would be taught, and on April 23, 1716,
appeared in the same paper:—
Note that any Persons may have all Instruments of Music
mended or Virginalls or Spinnets Strung & Tun’d, at a
Reasonable Rate & likewise may be taught to play on any of
the Instruments above mentioned.
In August, 1740, a “Good Spinnet” was offered for sale, and soon
after a second-hand “Spinnet,” and in January, 1750, “Spinnet wire.”
On September 18, 1769, this notice appeared in the Boston
Gazette and Country Journal:—
It is with pleasure that we inform the Public that a few days
since was ship’d for Newport a very Curious Spinnet being
the first ever made in America, the performance of the
ingenious Mr. John Harris of Boston (son of the late Mr. Jos.
Harris of London, Harpsichord and Spinnet Maker deceased)
and in every respect does honor to that Artist who now carries
on the Business at his house a few doors Northward of Dr.
Clarkes, North End of Boston.
This first American spinet is said to be still in existence in a house
in Newport on the corner of Thames and Gidley streets. It has one
set of jacks and strings. The hammers have crow-quills which press
on brass strings. It has ancient neighbors. In Bristol, R. I., is a
triangular spinet four feet long, which is more than a century older
than the town which is now its home. It bears this maker’s mark,
—“Johann Hitchcock fecit London 1520.” If this date is correct, it is
the oldest spinet known, the one of Italian manufacture in the British
Museum being dated 1521.
At the rooms of the Essex Institute in Salem, Mass., is an old
spinet made by Dr. Samuel Blyth in that town. Henry M. Brooks,
Esq., author of Olden Time Music, has in his possession a bill for
one of these American spinets that shows that the price in 1786 was
£18. In the Memorial Hall at Deerfield, Mass., may be seen another
dilapidated one, made by Stephanus & Keene. This belonged once
to Mrs. Sukey Barker, of Hingham.
In the Newport Mercury of May 17, 1773, is advertised, “To be sold
a Spinnet of a proper size for a little miss, and a most agreeable tone
—plays extremely easy on the keys. Inquire of the Printer.”
Advertisement of the sale of spinets and of instruction on the spinet
do not disappear from the newspapers in this country even after
formidable rivals and successors, the harpsichord and forte-piano,
had begun to be imported in comparatively large numbers.
The tone of a spinet has been characterized concisely by Holmes
in his poem, The Opening of the Piano,—the “spinet with its thin
metallic thrills.” I know of nothing more truly the “relic of things that
have passed away,” more completely the voice of the past, than the
tinkling thrill of a spinet. It is like seeing a ghost to touch the keys,
and bring forth once more that obsolete sound. There is no sound
born in the nineteenth century that at all resembles it. Like
“loggerheads” in the coals and “lug-poles” in the chimney, like church
lotteries and tithingmen, the spinet—even its very voice—is extinct.
Since in the News-Letter first quoted in this chapter virginals are
named, I think the musical instrument of Queen Elizabeth must have
been tolerably familiar to Bostonians. Judge Sewall, who “had a
passion for music,” writes in 1690 of fetching his wife’s “virginalls.” I
cannot conceive what tunes Madam Sewall played on her virginals,
no tawdry ballads and roundelays, no minuets and corams; she may
have known half a dozen long-metre psalm tunes such as the Judge
set for so many years in meeting.
“Forte-pianers” were imported to America, as were other musical
instruments. It is said the first one brought to New England was in
1785 by John Brown for his daughter Sarah, afterwards Mrs.
Herreshoff. It is still possessed by Miss Herreshoff, of Bristol, R. I.
The first brought to “the Cape” was a Clementi of the date 1790, and
found for many years a home in Falmouth. It is in perfect
preservation, a dainty little inlaid box lying upon a slender low table,
with tiny shelves for the music books, and a tiny little painted rack to
hold the music sheets, and a pedal fit for the foot of a doll. It is now
owned by Miss Frances Morse, of Worcester, Mass. An old
Broadwood piano, once owned by the venerable Dr. Sweetser, may
be seen at the rooms of the Worcester Society of Antiquity; and still
another, a Clementi, at the Essex Institute in Salem.
By the beginning of this century piano-playing became a more
common accomplishment, especially in the large towns, though
General Oliver said that in 1810, among the six thousand families in
Boston, there were not fifty pianos. Rev. Manasseh Cutler writes in
1801, from Washington, of a young friend:—
She has been educated at the best schools in Baltimore
and Alexandria. She does not converse much, but is very
modest and agreeable. She plays with great skill on the Forte
Piano which she always accompanies with the most delightful
voice, and is frequently joined in the vocal part by her mother.
Mr. King has an excellent Forte-Piano which is connected with
an organ placed under it, which she plays and fills with her
feet, while her fingers are employed upon the Forte-Piano. On
Sunday evenings she constantly plays Psalm music. Miss
Anna plays Denmark remarkably well. But the most of the
psalm tunes our gentlemen prefer are the old ones such as
Old Hundred, Canterbury, which you would be delighted to
hear on the Forte-Piano assisted by the Organ. Miss Anna
gave us some good music this evening, particularly the
Wayworn Traveller, Ma Chere Amie, The Tea, The Twins of
Latma (somewhat similar to Indian Chief) Eliza, Lucy or
Selims Complaint. These are among my favourites.
In February, 1800, Eliza Southgate Bowne wrote thus in Boston:—
In the morning I am going to look at some Instruments;
however we got one picked out that I imagine we shall take,
150 dollars, a charming toned one and not made in this
country.
In June she said enthusiastically of her “Instrument:”—
I am learning my 12th tune Oh Octavia, I almost worship
my Instrument,—it reciprocates my joys and sorrows, and is
my bosom companion. How I long to have you return! I have
hardly attempted to sing since you went away. I am sure I
shall not dare to when you return. I must enjoy my triumph
while you are absent; my musical talents will be dim when
compared with the lustre of yours.
The most universal accomplishment of colonial women was the
making of samplers, if, indeed, anything could be termed an
accomplishment which was so rigidly and prosaically part of their
education. I can well imagine the disgrace it would have been to any
little miss in her teens a century ago not to be able to show a
carefully designed and wrought sampler. On these samplers were
displayed the alphabet, sometimes in various shaped letters—thus
did she learn to mark neatly her household linen; bands of
conventional designs, of flowers, of geometrical patterns—thus was
she taught to embroider muslin caps and kerchiefs; and there were
gorgeous flowers and strange buildings, and domestic scenes, and
pastoral views, birds that perched as large as cows, and roses that
were larger than either; and last and best of all (and often of much
satisfaction to the genealogist), there was her name and her age,
and sometimes her place of birth, and withal a pious verse as a
motto for this housewifely shield. Of all the relics of old-time life
which have come to us, none are more interesting than the
samplers. Happily, many of them have come to us; worked with wiry
enduring crewels and silk on strong linen canvas, they speak down
through the century of the little, useful, willing hands that worked
them; of the tidy sempstresses and housewives of those simple
domestic days. We know little of the daughters of the Pilgrims, but
Lora Standish has sent to us a prim little message of her piety, and a
faded testimony of her skill, that makes her seem dear to us:—

Lora Standish is My Name.


Lord Guide my heart that I may do thy Will
Also fill my hands with such convenient skill
As will conduce to Virtue void of Shame,
And I will give the Glory to Thy Name.
A more ambitious kind of needlework took the form of what were
known as mourning pieces. These were regarded with deepest
affection, for were they not a token of loving remembrance? They
bore stiff presentments of funeral urns, with drooping willows, or a
monument with a bowed and weeping figure. Often the names of
dead members of the family were worked upon the monument. A still
more ambitious sampler bore a design known as The Tree of Life. A
stiffly branched tree was sparingly hung with apples labelled with the
names of the virtues of humanity, such as Love, Honor, Truth,
Modesty, Silence. A white-winged angel on one side of this tree
watered the roots with a very realistic watering-pot, and was
balanced with exactness, as were evenly adjusted all good
embroidery designs of that day, by an inky-black Satan who bore a
pitchfork of colossal proportions and a tail as long as a kite’s, and so
heavy that he could scarce have dragged it along the ground—much
less with it have flown.
For many years a favorite and much praised accomplishment was
the cutting of paper in ornamental designs. This art was ambitiously
called Papyrotamia, and it was of special usefulness in its application
to watch-papers, a favorite lover’s token of the day. The watch
proper at that time was separate and removable from its case, which
was of gold, silver, shagreen, or lacquer. Of course the watch did not
fit closely into the case, and watch-papers were placed within to
serve as a cushion to prevent jar and wear; sometimes the case
would hold several. Artistic and grotesque taste could be used in the
manufacture of these tokens of regard. I have seen them cut in
various open-work designs from gilt and silver paper, embroidered in
hair, painted in water colors. One I have has two turtle-doves billing
over two hearts, and surrounded by a tiny wreath; another,
embroidered on net, has the words “God is Love;” another has a
moss rose and the words “Rejoice and blossom as a rose.” Another
bears a funeral urn, and is evidently in memoriam. Still another, a
heart and arrows, and the sentimental legend “Kill me for I die of
love.” Jefferson, writing as a young man, bitterly deplores his
inadvertent tearing of watch-papers which had been cut for him by
his beloved Belinda. Watch and watch-papers had been accidentally
soaked in water, and when he attempted to remove the papers, he
says, “My cursed fingers gave them such a rent as I fear I shall
never get over. I would have cried bitterly, but that I thought it
beneath the dignity of a man.” And he trusts the fair Becca will give
him another paper of her cutting, which, though but a plain round
one, he will esteem more than the nicest in the world cut by other
hands.
Nothing can be more pathetic than the thoughtful survey of the
crude and often cumbersome and ludicrous attempts at decorative
art, through which the stunted and cramped love of the beautiful
found expression, until our own day, in country homes. The dreary
succession of hair-work, feather-work, wax flowers, shell-work, the
crystallization with various domestic minerals and gums of dried
leaves and grasses, vied with yarn and worsted monstrosities, and
bewildering patchwork. Occasionally some bold feminine spirit, made
inventive through artistic longing, gave birth to a novel, though too
often grotesque form of decoration.
A most interesting symbol of exquisite neatness, unbounded
patience, and blind groping for artistic expression was Rhoda
Baker’s “Leather-Works.” Rhoda Baker lived in a small Rhode Island
village, which was dull at its birth and slow of growth and progress.
She had a nature so timid, so repelling, and so wholly introspective,
that, after nearly fifty years of shy and even unwilling “keeping
company” with a preaching elder of the time,—a saint, almost a
mystic,—she died without ever having given to the quaint, thin,
pleasant-faced, awkward man, one word of encouragement to his
equally timid, his hinting and halting love-making. During those
patient years of warm hopes, but most scanty fruition, he had built a
house on an island which he owned in Narragansett Bay, with a
window where his beloved Rhoda could sit sewing when she
became his wife, and watch him happily rowing across the Bay to
her; but great lilac bushes grew up unchecked, and shaded and
finally hid the window at which Rhoda never sat to welcome her
husband-lover. After her death the Elder so grieved that he had
naught to remind him and speak to him of his beloved, that he boldly
decided to name his boat for her; but as he could not conscientiously
say she had ever encouraged him by word or look in his incipient
love-making, and he must be strictly honest and chivalrously
respectful to her memory, he painted upon the boat in black letters
this truthful yet dimly consoling legend, “Rhoda Wouldnt.” Poor
Elder! Many a time had he ventured a-courting, and slowly entering,
after his unanswered assault upon the door-knocker, had found the
kitchen of this elusive Rhoda vacant,—but her rocking-chair was
slowly rocking,—so he sadly left the deserted room, the
unwelcoming house.
He sacrificed his life to his affection for his dead love. He had all
his days a fear, a premonition, that he should lose his life through a
horse, so he never rode or drove, but walked, rowed, or sailed, and
lived on an island to escape his dreaded doom. When Rhoda’s
brother died in a distant town, the Elder was bidden to the funeral,
and he honored his Rhoda’s memory by his attendance, and he had
to ride there. As he left the house of mourning, a fractious young colt
ran away with him, threw him out of the wagon, and broke his neck.
His sweetheart’s “Leather-Works” still exist, to keep fresh this New
England romance. I saw them last summer in the attic of the Town
Hall. Rhoda left them in her will to her church, and they are now the
property of the village church-guild. The guild is vigorous and young,
so can bear this ancient maiden’s bequest with cheerful carriage and
undaunted spirits. The leather-works are many and ponderous. One
is a vast trellis (which may have been originally two clothes-horses),
hung with elaborately twisted and tendrilled vines, bearing minutely
veined leaves and various counterfeit and imaginary fruits. The
bunches of grapes are made of home-cast leaden bullets, or round
stones, covered dexterously and with unparalleled neatness and
imperceptible stitches with pieces of old kid gloves or thin leather;
and to each a common dress-hook is attached. The stem of the
bunch has corresponding eyes, to each of which a grape is hung. By
this ingenious means the bunches of grapes could be neatly dusted
each week, and kept in repair, as well as easily shaped. On this
trellis hung also Roses of Sharon, a mystic flower which Rhoda’s
sister Eunice invented, and which had a deep spiritual signification,
as well as extraordinary outline and intricate composition. Every leaf,
every grape, every monstrous fruit, every flower of these Leather-
Works, speaks of the æsthetic longing, the vague mysticism, the
stifled repression, of Rhoda Baker’s life; and they speak equally of
the Elder’s love. It was he who moulded the bullets, and searched on
the shore for carefully rounded stones; and he who haunted the
country saddlers and repair-shops for waste strips of leather, which
he often deposited in the silent kitchen by the rocking-chair, sure of
grateful though unspoken thanks. Many a pair of his old boot-tops
figures as glorious vine leaves; and he even tanned and dressed
skins to supply swiftly the artist’s materials when genius burned. It
was he who tenderly unhooked the grapes and pears, the fruits of
Eden and the Roses of Sharon, when the trellis was transported to
the Town Hall, and he reverently placed the trophies of his true love’s
skill and genius in place in their new home. I always rather resent the
fact that Rhoda did not bequeath the Leather-Works to him, when I
think of the vast and almost sacred pleasure he would have had in
them; as well as when I remember the share he had in the
preparations for their manufacture. And the Leather-Works speak
still another lesson, as do many of the household grotesqueries seen
in New England, a lesson of sympathy, almost of beauty, to those
who “read between the lines, the finer grace of unfulfilled designs.”
CHAPTER X.
DAUGHTERS OF LIBERTY.

We are constantly hearing the statement reiterated, that the


Society of the Daughters of the American Revolution was the first
association of women ever formed for patriotic purpose. This
assertion shows a lamentable ignorance of Revolutionary history; for
a century and a quarter ago, before the War of the Revolution,
patriotic societies of women were formed all over the country, and
called Daughters of Liberty. Our modern bands should be
distinguished by being called the first patriotic-hereditary societies of
women.
As we approach Revolutionary days, it is evident that the women
of all the colonies were as deeply stirred as were the men at the
constant injustice and growing tyranny of the British government,
and they were not slow in openly averring their abhorrence and
revolt against this injustice. Their individual action consisted in the
wearing only of garments of homespun manufacture; their concerted
exertions in gathering in patriotic bands to spin, and the signing of
compacts to drink no more of the taxed tea, that significant emblem
of British injustice and American revolt.
The earliest definite notice of any gathering of Daughters of Liberty
was in Providence in 1766, when seventeen young ladies met at the
house of Deacon Ephraim Bowen and spun all day long for the
public benefit, and assumed the name Daughters of Liberty. The
next meeting the little band had so increased in numbers that it had
to meet in the Court House. At about the same time another band of
daughters gathered at Newport, and an old list of the members has
been preserved. It comprised all the beautiful and brilliant young girls
for which Newport was at that time so celebrated. As one result of
this patriotic interest, the President and the first graduating class of
Brown University, then called Rhode Island College, were clothed, at
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like