Download Complete (Ebook) Learning C# by developing games with Unity 2020: An enjoyable and intuitive approach to getting started with C# programming and Unity by Harrison Ferrone ISBN 9781800204447, 1800204442 PDF for All Chapters
Download Complete (Ebook) Learning C# by developing games with Unity 2020: An enjoyable and intuitive approach to getting started with C# programming and Unity by Harrison Ferrone ISBN 9781800204447, 1800204442 PDF for All Chapters
com
DOWLOAD EBOOK
ebooknice.com
ebooknice.com
ebooknice.com
ebooknice.com
Harrison Ferrone
BIRMINGHAM - MUMBAI
Learning C# by Developing Games with
Unity 2020
Fifth Edition
Copyright © 2020 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form
or by any means, without the prior written permission of the publisher, except in the case of brief quotations
embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented.
However, the information contained in this book is sold without warranty, either express or implied. Neither the
author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to
have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products
mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy
of this information.
ISBN 978-1-80020-780-6
www.packt.com
"If people reach perfection they vanish, you know."
Subscribe to our online digital library for full access to over 7,000 books and videos, as well
as industry leading tools to help you plan your personal development and advance your
career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos
from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.packt.com and as a print
book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
customercare@packtpub.com for more details.
At www.packt.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters, and receive exclusive discounts and offers on Packt books and
eBooks.
Contributors
He holds various fancy looking pieces of paper from the University of Colorado at Boulder
and Columbia College, Chicago. Despite being a proud alumnus, most of these are stored
in a basement somewhere.
After a few years as an iOS developer at small start-ups, and one Fortune 500 company, he
fell into a teaching career and never looked back. Throughout all this, he's bought many
books, acquired a few cats, worked abroad, and continually wondered why Neuromancer
isn't on more course syllabi.
Completing this book wouldn't have been possible without the support of Kelsey, my
partner in crime on this journey, and Wilbur, Merlin, Walter, and Evey for their
courageous spirits and gracious hearts.
About the reviewers
Andrew Edmonds is an experienced programmer, game developer, and educator. He has a
Bachelor of Science degree in Computer Science from Washburn University and is a Unity
Certified Programmer and Instructor. After college, he worked as a software engineer for
the Kansas State Legislature for three years before spending the next five years teaching
high school kids how to write code and make video games. As a teacher, he helped many
young aspiring game developers achieve beyond what they ever thought possible,
including winning the SkillsUSA National Championship for video game development in
2019 with a virtual reality game made in Unity. Andrew lives in Washington with his wife,
Jessica, and daughters, Alice and Ada.
Adam Brzozowski is an experienced software engineer who develops games and client
applications. Working with Unity, Unreal Engine, C++, Swift, and Java, he finds the right
solution for each project.
[ ii ]
Table of Contents
Summary 78
Pop quiz – variables and methods 78
Chapter 4: Control Flow and Collection Types 79
Selection statements 80
The if-else statement 80
Basic syntax 80
Time for action – thieving prospects 83
Using the NOT operator 85
Nesting statements 86
Evaluating multiple conditions 87
Time for action – reaching the treasure 88
The switch statement 90
Basic syntax 90
Pattern matching 91
Time for action – choosing an action 91
Fall-through cases 92
Time for action – rolling the dice 92
Pop quiz 1 – if, and, or but 94
Collections at a glance 94
Arrays 94
Basic syntax 95
Indexing and subscripts 96
Range exceptions 96
Lists 97
Basic syntax 97
Time for action – party members 98
Common methods 99
Dictionaries 100
Basic syntax 100
Time for action – setting up an inventory 101
Working with dictionary pairs 102
Pop quiz 2 – all about collections 103
Iteration statements 103
For loops 104
Time for action – finding an element 105
foreach loops 107
Looping through key-value pairs 108
Hero's trial – finding affordable items 109
while loops 109
Time for action – tracking player lives 110
To infinity and beyond 111
Summary 112
Chapter 5: Working with Classes, Structs, and OOP 113
Defining a class 114
Basic syntax 114
Time for action – creating a character class 114
Instantiating class objects 115
[ iii ]
Table of Contents
[ iv ]
Table of Contents
[v]
Table of Contents
[ vi ]
Table of Contents
[ vii ]
Table of Contents
[ viii ]
Preface
Unity is one of the most popular game engines in the world, catering to amateur hobbyists,
professional AAA studios, and cinematic production houses. While mainly considered a 3D
tool, Unity has a host of dedicated features that support everything from 2D games and
virtual reality to post-production and cross-platform publishing.
Developers love its drag-and-drop interface and built-in features, but it's the ability to write
custom C# scripts for behaviors and game mechanics that really take Unity the extra mile.
Learning to write C# code might not be a huge obstacle to a seasoned programmer with
other languages under their belt, but it can be daunting for those of you who have no
programming experience. That's where this book comes in, as I'll be taking you through the
building blocks of programming and the C# language from scratch, all while building a fun
and playable game in Unity.
Chapter 2, The Building Blocks of Programming, begins by laying out the atomic-level
concepts of programming, giving you the opportunity to relate variables, methods, and
classes to situations in everyday life. From there, we move on to simple debugging
techniques, proper formatting and commenting, and a look at how Unity turns C# scripts
into components.
Preface
Chapter 3, Diving into Variables, Types, and Methods, takes a deeper look at variables. This
includes C# data types, naming conventions, access modifiers, and everything else
you'll need for the foundation of a program. We'll also go over how to write methods,
incorporate parameters, and use return types effectively, ending with an overview of
standard Unity methods belonging to the MonoBehavior class.
Chapter 4, Control Flow and Collection Types, introduces the common approaches to making
decisions in code, consisting of the if...else and switch statements. From there, we
move on to working with arrays, lists, and dictionaries, and incorporating iteration
statements for looping through collection types. We end the chapter with a look at
conditional looping statements and a special C# data type called enumerations.
Chapter 5, Working with Classes, Structs, and OOP, details our first contact with constructing
and instantiating classes and structs. We'll go through the basic steps of creating
constructors, adding variables and methods, and the fundamentals of subclassing and
inheritance. The chapter will end with a comprehensive explanation of object-oriented
programming and how it applies to C#.
Chapter 6, Getting Your Hands Dirty with Unity, marks our departure from C# syntax into
the world of game design, level building, and Unity's featured tools. We'll start by going
over the basics of a game design document and then move on to blocking out our level
geometry and adding lighting and a simple particle system.
Chapter 8, Scripting Game Mechanics, introduces the concept of game mechanics and how to
effectively implement them. We'll start by adding a simple jump action, create a shooting
mechanic, and build on the previous chapters' code by adding logic to handle item
collection.
Chapter 9, Basic AI and Enemy Behavior, starts with a brief overview of artificial intelligence
in games and the concepts we will be applying to Hero Born. Topics covered in this chapter
will include navigation in Unity, using the level geometry and a navigation mesh, smart
agents, and automated enemy movement.
Chapter 10, Revisiting Types, Methods, and Classes, takes a more in-depth look at data types,
intermediate method features, and additional behaviors that can be used for more complex
classes. This chapter will give you a deeper understanding of the versatility and breadth of
the C# language.
[2]
Preface
Chapter 11, Introducing Stacks, Queues, and HashSets, dives into intermediate collection
types and their features. Topics covered in this chapter include using Stacks, Queues, and
HashSets and the different development scenarios that each is uniquely suited for.
Chapter 12, Exploring Generics, Delegates, and Beyond, details intermediate features of the C#
language and how to apply them in practical, real-world scenarios. We'll start with an
overview of generic programming and progress to concepts such as delegation, events, and
exception handling. The chapter will end with a brief discussion of common design
patterns and set you up for further study.
Chapter 13, The Journey Continues, reviews the main topics you've learned throughout the
book and leaves you with resources for further study in both C# and Unity. Included in
these resources will be online reading material, certification information, and a host of my
favorite video tutorial channels.
You'll also need a current version of Unity installed on your computer – 2020 or later is
recommended. All code examples have been tested with Unity 2020.1 and should work
with future versions without issues.
Before starting, check that your computer setup meets the Unity system requirements
at https://docs.unity3d.com/2019.1/Documentation/Manual/system-requirements.
html. These are for Unity 2019 but hold true for 2020 and above.
[3]
Preface
Once the file is downloaded, please make sure that you unzip or extract the folder using the
latest version of:
The code bundle for the book is also hosted on GitHub at https://github.com/
PacktPublishing/Learning-C-8-by-Developing-Games-with-Unity-2020. In case there's
an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available
at https://github.com/PacktPublishing/. Check them out!
Conventions used
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in the text, database table names, folder names,
filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here
is an example: "Select the Materials folder."
[4]
Preface
When we wish to draw your attention to a particular part of a code block, the relevant lines
or items are set in bold:
accessModifier returnType UniqueName(parameterType parameterName) {
method body
}
Bold: Indicates a new term, an important word, or words that you see on screen. For
example, words in menus or dialog boxes appear in the text like this. Here is an example:
"Click on Create | 3D Object | Capsule from the Hierarchy panel."
Get in touch
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, mention the book
title in the subject of your message and email us at customercare@packtpub.com.
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes
do happen. If you have found a mistake in this book, we would be grateful if you would
report this to us. Please visit www.packtpub.com/support/errata, selecting your book,
clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the internet, we
would be grateful if you would provide us with the location address or website name.
Please contact us at copyright@packt.com with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in,
and you are interested in either writing or contributing to a book, please visit
authors.packtpub.com.
[5]
Preface
Reviews
Please leave a review. Once you have read and used this book, why not leave a review on
the site that you purchased it from? Potential readers can then see and use your unbiased
opinion to make purchase decisions, we at Packt can understand what you think about our
products, and our authors can see your feedback on their book. Thank you!
[6]
1
Getting to Know Your
Environment
Pop culture has taught us that computer programmers are often outsiders, lone wolves, or
geeky hackers who possess extraordinary mental gifts for algorithmic thought, little social
IQ, and the odd anarchic bent. While this is not the case, there is something to the idea that
learning to code fundamentally changes the way you look at the world. The good news is
that your naturally curious mind will quickly adapt to this new way of thinking and may
even come to enjoy it.
You already use analytical skills in your everyday life that translate to programming –
you're just missing the right language and syntax to map those life skills into code. You
know your age, right? That's a variable. When you cross the street, I presume you look
down the road in both directions before stepping off the curb like the rest of us. That's
evaluating different conditions, or what we call control flow in programming parlance.
When you look at a can of pop, you instinctively identify that it has certain properties such
as shape, weight, and contents. That's a class object! You get the idea.
Getting to Know Your Environment Chapter 1
With all that real-world experience at your fingertips, you're more than ready to cross over
into the realm of programming. You'll need to know how to set up your development
environment, work with the applications involved, and know exactly where to go when
you need help. To that end, we're going to begin our adventure delving into C# by covering
the following topics:
Technical requirements
Sometimes, it's easier to start with what a thing isn't, rather than what it is. The main goal
of this book isn't to learn the vast ins and outs of the Unity game engine or all of game
development. By necessity, we'll cover these topics at a basic level here at the beginning of
our journey, and in more detail in Chapter 6, Getting Your Hands Dirty with
Unity. However, these topics are simply to provide a fun, accessible way for us to learn the
C# programming language from the ground up.
Since this book is aimed at complete beginners to programming, if you have no previous
experience with either C# or Unity, you're in the right place! If you've had some experience
with the Unity Editor but not with programming, guess what? This is still the place to be.
Even if you've dabbled in a bit of C# mixed with Unity, but want to explore some more
intermediate or advanced topics, the later chapters of this book can provide you with what
you're looking for.
[8]
Getting to Know Your Environment Chapter 1
If the Unity home page looks different for you than what you can see in
the preceding screenshot, you can go directly to https://store.unity.
com.
Don't feel overwhelmed by this – you can get Unity completely free!
[9]
Getting to Know Your Environment Chapter 1
3. Click the Individual tab and select the Personal option on the left. The other paid
options offer more advanced functionality and services subscribers, but you can
check these out on your own:
After selecting the personal plan, you'll be asked if you're a first-time or returning user.
[ 10 ]
Getting to Know Your Environment Chapter 1
[ 11 ]
Getting to Know Your Environment Chapter 1
The newest version of Unity Hub has a wizard or getting started path
when you first open the application. If you'd like to follow that, feel free.
The following steps show you how to start a new project without any help
from the application since that's only available on the first launch.
4. With Unity Hub open, switch to the Installs tab from the left-hand menu and
select ADD:
[ 12 ]
Getting to Know Your Environment Chapter 1
At the time of writing, Unity 2020 is still in its Alpha phase, but you should be able to select
a 2020 version from the Latest Official Releases list:
[ 13 ]
Getting to Know Your Environment Chapter 1
You won't need any specific platform modules to follow along with future examples, so go
ahead and leave this as-is. If you do want to add them at any time, you can click the
More button (three-dot icon) at the upper right of any version in the Installs window:
When the installation is complete, you'll see a new version in your Installs panel, as
follows:
[ 14 ]
Exploring the Variety of Random
Documents with Different Content
Fifteen feet from the goal—ten.
With their eyes fixed on the white line, the Ripleys, inspired by that
spirit of determination and aggressiveness which victory almost won
carries with it, continued the battle. Only five feet now separated
them from the coveted goal.
In a voice that was strong and clear, Bill Stiles commanded:
“All together—Ripley forever!”
And the others chimed in loudly:
“Ripley forever—now all together!”
Before an irresistible rush, the discouraged Thorntons fell back, and
the big ball rolled over the line.
As the cheers from Ripley and their adherents rang out, a flag was
run up on the pole at the end of the field, and, as it fluttered out on
the breeze, “Ripley,” in big blue letters, appeared on the silken
surface.
The house-boat boys yelled loud and long.
“That old rag will come down yet,” grumbled the disconsolate Bates.
“I can tell you that!”
Just at this juncture, and quite unnoticed, a slight man of dignified
bearing briskly approached.
As his eyes lighted on the ex-tutor, he rushed with outstretched arms
toward him.
“Norman Redfern!” he exclaimed, in a tone of surprise and pleasure.
CHAPTER XXIII
GOOD NEWS FOR REDFERN
Redfern turned sharply.
“Mosley!” he cried, seizing the other’s hand, and shaking it warmly. “I
was intending to stop in and see you. This is indeed a pleasure.”
“I’ve been searching a month for you, Redfern; but excuse me a
moment—are you Colonel Ellison, sir? I was out when you called,
but was told I might find you here.”
“That is my name, sir,” said Uncle Dan. “You are the president of
Ripley Academy, I believe?”
Redfern seemed astounded.
“What!” he cried. “Mosley, is it possible? Where is Professor
Blackwell?”
“Resigned three months ago. And I was elected in his place.
Congratulate me, old man!”
“With all my heart; this is splendid news.” And Redfern again seized
the other’s hand. “Mosley and I were classmates here at Ripley,” he
added, to the others.
“Let me add my congratulations, too,” said Colonel Ellison, stiffly,
“and express the hope that the majority of visitors will not be obliged
to come, as I have, with complaints against the actions of your
students.”
“Ah,” said the new president, “what is it? I am sorry if they have
misbehaved themselves.”
“Some effort should be made to prevent such occurrences in the
future.”
“What is the nature of your complaint? But perhaps we had better
withdraw to another place,” added the president, noting that his
visitor spoke in a tone which carried a long distance.
As they walked slowly along the road, President Mosley listened
intently to Colonel Ellison’s complaint against Bill Stiles and his
motor boat crew, and promised to look into the matter thoroughly.
“And now,” he said, “if you will permit me, Colonel, we will change
the subject. I was on the point of communicating with you on a
matter of the utmost importance, both to yourself and Norman
Redfern.”
“Eh?” said the Colonel.
“What is that, Mosley?” asked Redfern, quickly.
“As I told you, I have been hunting for you for a month, but could find
no trace of your whereabouts. All letters addressed to you were
returned. Where in the world did you stop?”
“At a place where postmen never come,” replied Norman, with a faint
smile. “But what has happened—why should you wish to see me so
particularly? To speak frankly, I know that Professor Blackwell
expressed a wish that I should keep away.”
“I must remind you, Redfern, that the wishes of President Blackwell
are not those of President Mosley.”
“Good for you,” put in Joe Preston.
“What does all this rigmarole mean?” demanded Colonel Ellison,
looking from one to the other, in surprise.
“Simply this: by a bit of detective work, an unfortunate situation has
been cleared up—the name of a certain person entirely freed from
blame, and——”
“What is that?” cried Redfern, his voice trembling with excitement
and hope. “You mean——”
“Just what I say. But, as it is a private matter, I would respectfully ask
that these young gentlemen retire for a short time.”
“Not so far as I am concerned,” put in Redfern, with a flush. “I have
nothing to conceal; speak freely.”
“Something great coming, I’m sure,” said George, with interest.
“Ma foi, but what ees this?” muttered Pierre, scratching his head. “I
no understand it—ze talk ees so fast.”
Colonel Ellison merely nodded, to show that the arrangement suited
him.
“Well,” proceeded President Mosley, hesitatingly, “I suppose we shall
have to briefly review the whole matter.”
“Yes, yes!” said Redfern, eagerly.
“It seems, then, that one day last spring, your employer, Colonel
Ellison, sent you to a bank to collect a certain sum of money.
Unfortunately, you placed this in your overcoat pocket?”
Redfern nodded.
“And when you went to a restaurant, absent-mindedly hung the
garment on a rack?”
“Yes, yes!”
“And on leaving rather hastily, took what you thought to be your own
overcoat, and were on the train to Nyack before discovering that this
was not the case?”
“Correct again,” said Redfern, his tone indicating suppressed
excitement.
“On returning to the restaurant, you found your overcoat gone?”
“Yes.”
During this conversation a very strange expression came over
Colonel Ellison’s face. He looked decidedly uncomfortable; and his
glance shifted uneasily from the president to Redfern and back
again.
It was plain that the similarity between the overcoats had been the
means of losing the Colonel’s money.
After a short pause, Mr. Mosley continued:
“You made every effort to find the money which had been in your
keeping, and failed?”
“Yes, yes—but tell me—has it been recovered?” asked Redfern,
eagerly.
“Yes, I’m glad I can say that it has.”
Norman Redfern gave an exclamation of relief; his eyes sparkled
with pleasure, while Colonel Ellison stopped abruptly in his walk, and
stared down at him.
“Bully for you, Redfern!” cried Jack Lyons, enthusiastically. And
George Clayton slapped his former tutor on the shoulder, and shook
his hand warmly.
Pierre Dufour looked on in amazement, and murmured, “Ma foi, what
ees this?”
For an instant, Colonel Ellison remained silent. Then, clearing his
throat, he held out his hand.
“Redfern,” he said, frankly, “a man should always be willing to
acknowledge his mistakes. I ask your pardon for having wrongly
suspected you.”
“And I freely give it,” exclaimed the happy Redfern. “I will admit that
appearances were against me. But, Mosley, how in the world did all
this come about?”
“Well, to continue our story: I was, at the time, a professor at Ripley
and expected you, also, to join the staff. Unfortunately, President
Blackwell considered you—shall I say it?—guilty. And that ended
your chances.”
“Yes,” said Redfern, “I have been only too well aware of that.”
“But I had confidence in you; and was determined to prove that it
was well placed. I advertised freely, and——”
“You did?”
“Yes, sir! And in my spare time investigated to the best of my ability.
Nothing resulted, and I got a bit discouraged. But I don’t believe in
giving up easily. Several times, at intervals, I went back to the
restaurant, made inquiries and kept the matter fresh in their minds.
Then what should happen? A few days ago, I got a letter; and it
made me jump.”
“How can I ever thank you enough?” murmured Redfern.
“The man was a traveling salesman—only occasionally visited New
York—and did not again have a chance to go to the restaurant until
quite recently. But he was honest, and wished to find the owner of
the money. The proprietor told him to communicate with me.”
Redfern seized the other’s hand.
“Mosley,” he said, “I’ll never forget you for this.”
The president smiled.
“Well, my story is almost finished. I was about to write to Colonel
Ellison, in order that he might meet the gentleman and have his
money restored. The visit is most opportune, though I regret his
errand.”
“Think no more about it,” said Uncle Dan, hastily. “I was once a boy
myself; circumstances had a great deal to do with my feelings.”
“Uncle Dan,” put in George Clayton, “may I speak a word to you?”
“Well, young man, what is it?”
Briefly, George explained the whole story of his connection with the
house-boat expedition, and this time his guardian, in the light of
recent developments, listened and believed.
“You must understand, George,” he said, “though Redfern is not to
blame in the matter, you have acted in a most reckless and self-
willed fashion. We shall talk about it later.”
“I no comprehend, monsieur the Colonel,” exclaimed Pierre. “Ees
nobody any scamps, eh? Ma foi!”
“Shake Mr. Redfern by the hand, Pierre,” commanded the Colonel.
“It was all a misunderstanding.”
“If it hadn’t been for Pierre’s meddling, a great deal of trouble might
have been saved,” said George, half-resentfully. “He butted in, and
——”
“George—George!” cried Uncle Dan, “I must protest against the use
of such slang—such a lack of courtesy. Affairs have turned out
happily for all concerned; and this is no time for ill-feeling.”
“I guess you are right, uncle,” admitted George, frankly; and then
turning toward the chauffeur, he added, “Everything is all right.”
“All one grand mistake? Ma foi!” said the Frenchman, with the
corners of his mouth beginning to curve upward. Then, with a sly
glance at Colonel Ellison, whose stern countenance still showed a
trace of discomfiture, he extended his hand toward the former tutor.
“We shake hand, Monsieur Redfern,” he exclaimed. “I’m sorry I say I
would your face smack.”
“It’s all forgotten, Pierre,” laughed Redfern, cordially.
The Frenchman smiled broadly.
“A la bonne heure, Monsieur George!” he cried. “We are friends
again. But nevaire you say ‘fired’—‘fired’ to me.” And this time, Pierre
Dufour showed that his resentfulness was a thing of the past.
Norman Redfern presently slapped Jack Lyons on the back.
“Jack,” he said, “your house-boat trip has certainly resulted in
making a great change in the feelings of one young man.”
“And it will have a more substantial result than that,” put in Uncle
Dan, quickly. “I hope you will become George’s tutor again.”
Redfern’s features lighted up.
“Certainly—I shall be only too glad,” he began.
But President Mosley hastily interposed.
“One minute, Redfern,” he exclaimed. “Colonel Ellison’s offer is very
kind; but it might interfere with your professorship at Ripley
Academy.”
And when the true significance of his words was realized, a
tremendous volley of cheers rose on the air.
CHAPTER XXIV
THE END OF THE CRUISE
President Mosley, accompanied by Uncle Dan, Redfern and Pierre
Dufour, entered the Academy building, while the boys wandered off
to the athletic field. The events, rapid and unexpected, and the
happy termination of the house-boat trip, had put everybody in the
best of humor.
The Ripley flag still floated proudly from the top of the pole. Bill Stiles
and his followers, hot, victorious, husky-voiced and tired, marched
around the field. They had won the second event, and Ripley was
crowned with glory.
Owen Andrews picked up his tin horn. It was now a battered and
twisted wreck.
Andrews looked at it sadly, put it to his lips, and, with a tremendous
effort, managed to draw forth a thin, dismal groan.
“Too bad it didn’t last for just one more blow,” put in George Clayton.
“Why, Bill number one?” demanded Stiles.
“Because I intend to enter Ripley,” answered George, calmly.
The hoots, yells and jeers which this remark brought forth from the
Thorntons filled the hearts of the Ripleys with pure, unalloyed joy.
“I say, Joe Preston,” remarked Fred Winter, abruptly, “I knew it.”
“Knew what?”
“That you wouldn’t do a stroke of work on the history of our trip.”
“But I have; I wrote the heading. When I get home, I’ll finish it sure,”
laughed Joe. “Anyway, I have an idea.”
“What is it?”
“We’ll try to get the governor to put a bill through the legislature for
the state to buy the ‘Gray Gull’ and place it in a museum.”
“You silly thing! Do be serious.”
“Let’s see: there was the ‘Half-moon,’ the ‘Clermont,’ and now the
‘Gray Gull.’ I’m going to put that in my history, too.”
“One thing we came near forgetting, fellows,” put in Jack Lyons. He
seized Aleck Hunt by the shoulder. “How about that story of yours?”
“That’s so,” chorused the others.
“What story?”
“What story? Why, about Joe Archer and Battery Park, of course.”
“Oh, yes! Do you fellows really think I’m going to tell it now?”
“You bet we do.”
“Well, I put it in pickle some time ago; and the jar’s been left on the
house-boat. It won’t be taken out before I get a bite to eat—no siree.”
And Aleck backed away.
Joe Preston winked at the others; his grin grew to positively
enormous dimensions. Then he burst into a loud, long laugh.
“I wonder what we’re going to do next, Bob?”
It was Tom that asked the question.
“Well, Ramblers,” spoke up Jack Lyons, heartily, “we’ve had such a
jolly good time on this trip I should say we’d all better take another.”
“Hooray!” shouted his hearers. “That’s what we’ll do.”
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must, at
no additional cost, fee or expense to the user, provide a copy, a
means of exporting a copy, or a means of obtaining a copy upon
request, of the work in its original “Plain Vanilla ASCII” or other
form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive from
the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
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.
ebooknice.com