0% found this document useful (0 votes)
12 views115 pages

Linux Game Programming W CD Prima Tech S Game Development 1st Edition Mark Collins PDF Download

Uploaded by

quiliabbati
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views115 pages

Linux Game Programming W CD Prima Tech S Game Development 1st Edition Mark Collins PDF Download

Uploaded by

quiliabbati
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 115

Linux Game Programming w CD Prima Tech s Game

Development 1st Edition Mark Collins pdf


download
https://ebookname.com/product/linux-game-programming-w-cd-prima-tech-s-game-development-1st-edition-
mark-collins/

★★★★★ 4.8/5.0 (48 reviews) ✓ 210 downloads ■ TOP RATED


"Great resource, downloaded instantly. Thank you!" - Lisa K.

DOWNLOAD EBOOK
Linux Game Programming w CD Prima Tech s Game Development
1st Edition Mark Collins pdf download

TEXTBOOK EBOOK EBOOK GATE

Available Formats

■ PDF eBook Study Guide TextBook

EXCLUSIVE 2025 EDUCATIONAL COLLECTION - LIMITED TIME

INSTANT DOWNLOAD VIEW LIBRARY


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

The Sims 3 Prima Official Game Guide Prima Official


Game Guides Catherine Browne

https://ebookname.com/product/the-sims-3-prima-official-game-
guide-prima-official-game-guides-catherine-browne/

Game Programming With Python Game Development Series


1st Edition Riley

https://ebookname.com/product/game-programming-with-python-game-
development-series-1st-edition-riley/

Mac game programming 1st Edition Mark Szymczyk

https://ebookname.com/product/mac-game-programming-1st-edition-
mark-szymczyk/

Processing of High Temperature Superconductors


Proceedings of the symposium held at the 104th Annual
Meeting of The American Ceramic Society April 28 May 1
Transactions Ceramic Transactions Series 1st Edition
Amit Goyal
https://ebookname.com/product/processing-of-high-temperature-
superconductors-proceedings-of-the-symposium-held-at-the-104th-
annual-meeting-of-the-american-ceramic-society-
E commerce the cutting edge of business 2nd Edition
Kamlesh K. Bajaj

https://ebookname.com/product/e-commerce-the-cutting-edge-of-
business-2nd-edition-kamlesh-k-bajaj/

Health The Basics 10th Edition Rebecca J. Donatelle

https://ebookname.com/product/health-the-basics-10th-edition-
rebecca-j-donatelle/

The Brain in Context A Pragmatic Guide to Neuroscience


1st Edition Jonathan D. Moreno

https://ebookname.com/product/the-brain-in-context-a-pragmatic-
guide-to-neuroscience-1st-edition-jonathan-d-moreno/

The Second Decade of Transition in Emerging Europe 1st


Edition Ognjen Radonji■ And Sr■an Kokotovi■

https://ebookname.com/product/the-second-decade-of-transition-in-
emerging-europe-1st-edition-ognjen-radonjic-and-srdan-kokotovic/

Functional Thinking Paradigm Over Syntax 1st Edition


Neal Ford

https://ebookname.com/product/functional-thinking-paradigm-over-
syntax-1st-edition-neal-ford/
The Digital Filmmaking Handbook Fourth Edition Sonja
Schenk

https://ebookname.com/product/the-digital-filmmaking-handbook-
fourth-edition-sonja-schenk/
Programming Linux Games

John R. Hall
Loki Software, Inc.

January 15, 2001


2
Contents

Work In Progress i

1 The Anatomy of a Game 1


A Quick Survey of Game Genres . . . . . . . . . . . . . . . . . . . . . . 2
Simulation Games . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
First Person Shooters . . . . . . . . . . . . . . . . . . . . . . . . . 4
Real-time Strategy Games . . . . . . . . . . . . . . . . . . . . . . . 5
Turn-based Strategy Games . . . . . . . . . . . . . . . . . . . . . . 7
Role-playing Games . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Puzzle Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Multi User Dungeons . . . . . . . . . . . . . . . . . . . . . . . . . . 9
A Quick Look Under The Hood . . . . . . . . . . . . . . . . . . . . . . . 11
The Input Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . 11
The Display Subsystem . . . . . . . . . . . . . . . . . . . . . . . . 12
The Audio Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . 13
The Network Subsystem . . . . . . . . . . . . . . . . . . . . . . . . 13
The Update Subsystem . . . . . . . . . . . . . . . . . . . . . . . . 14
The Game Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3
4 CONTENTS

2 Linux Development Tools 17


Programming Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
NEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Compiling Programs Under Linux . . . . . . . . . . . . . . . . . . . . . 21
Using The Make Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Creating Makefiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Working With Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Static Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Shared Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Linux Linker Quirks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Debugging Linux Applications . . . . . . . . . . . . . . . . . . . . . . . 33
Compiling For Debugging . . . . . . . . . . . . . . . . . . . . . . . 33
The GNU Debugger, gdb . . . . . . . . . . . . . . . . . . . . . . . 34
The Data Display Debugger . . . . . . . . . . . . . . . . . . . . . . 40
Bug Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Project Management With CVS . . . . . . . . . . . . . . . . . . . . . . 42
A Brief CVS Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . 43
Other Useful Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Rapid Text Searching with grep . . . . . . . . . . . . . . . . . . . . 49
Updating Source with diff and patch . . . . . . . . . . . . . . . . . 50

3 Linux Gaming APIs 53


Times Have Changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CONTENTS 5

Graphics APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
SVGALib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
General Graphics Interface, LibGGI . . . . . . . . . . . . . . . . . 56
Simple DirectMedia Layer, SDL . . . . . . . . . . . . . . . . . . . . 56
ClanLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Plib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Glide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Xlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Graphical User Interface Toolkits . . . . . . . . . . . . . . . . . . . . . . 59
GTK+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Tk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Fltk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
SDL GUI support . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Audio APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
The Open Sound System, OSS . . . . . . . . . . . . . . . . . . . . 61
Advanced Linux Sound Architecture, ALSA . . . . . . . . . . . . . 61
The Enlightened Sound Daemon, EsounD . . . . . . . . . . . . . . 62
The Open Audio Library, OpenAL . . . . . . . . . . . . . . . . . . 62
Scripting Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Guile and MzScheme . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Python and Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Networking APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6 CONTENTS

BSD Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
OpenPlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
IPX and SPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
File Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
libpng and libjpeg . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
libaudiofile and libsndfile . . . . . . . . . . . . . . . . . . . . . . . . 66
Ogg Vorbis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
The SDL MPEG Library, SMPEG . . . . . . . . . . . . . . . . . . 67
zlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4 Mastering SDL 69
Computer Graphics Hardware . . . . . . . . . . . . . . . . . . . . . . . . 70
The Framebuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
The SDL Video API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Setting Up The Display . . . . . . . . . . . . . . . . . . . . . . . . 73
Direct Surface Drawing . . . . . . . . . . . . . . . . . . . . . . . . 77
Drawing With Blits . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Colorkeys And Transparency . . . . . . . . . . . . . . . . . . . . . 85
Loading Other Image Formats . . . . . . . . . . . . . . . . . . . . . 89
Alpha Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Achieving Smooth Animation With SDL . . . . . . . . . . . . . . . 95
Input and Event Processing . . . . . . . . . . . . . . . . . . . . . . . . . 105
Processing Mouse Events . . . . . . . . . . . . . . . . . . . . . . . 105
Processing Keyboard Events . . . . . . . . . . . . . . . . . . . . . . 110
Joystick Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Portable Threading Support . . . . . . . . . . . . . . . . . . . . . . . . . 117
CONTENTS 7

SDL Audio Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 121


Representing Sound with PCM . . . . . . . . . . . . . . . . . . . . 121
Feeding a Sound Card . . . . . . . . . . . . . . . . . . . . . . . . . 124
An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Integrating OpenGL with SDL . . . . . . . . . . . . . . . . . . . . . . . 135
Penguin Warrior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Creating Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Implementing a Parallaxing Scroller in SDL . . . . . . . . . . . . . 142
A Simple Particle System . . . . . . . . . . . . . . . . . . . . . . . 147
Game Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
To Be Continued... . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

5 Linux Audio Programming 155


Competing APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Introducing Multi-Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Loading Sound Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Using libsndfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Other Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Using the Open Sound System . . . . . . . . . . . . . . . . . . . . . . . 163
Reality Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Squeezing Sound Performance with Direct DMA Access . . . . . . 171
Playing Sound with ALSA . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Sharing the Sound Card with ESD . . . . . . . . . . . . . . . . . . . . . 187
Building Multi-Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Environmental Audio with OpenAL . . . . . . . . . . . . . . . . . . . . 198
OpenAL Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8 CONTENTS

Adding Environmental Audio to Penguin Warrior . . . . . . . . . . 204


Implementing Game Music with Ogg Vorbis . . . . . . . . . . . . . . . . 212
Working with Vorbis Files . . . . . . . . . . . . . . . . . . . . . . . 213
Adding Music to Penguin Warrior . . . . . . . . . . . . . . . . . . 216

6 Game Scripting Under Linux 227


A Crash Course in Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Built-in Tcl Commands . . . . . . . . . . . . . . . . . . . . . . . . 230
Interfacing Tcl With C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Linking Against Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Executing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Commands And Objects . . . . . . . . . . . . . . . . . . . . . . . . 240
A Simple Scripting Engine . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Designing A Game Script . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Applying Scripting To The Real World . . . . . . . . . . . . . . . . . . . 254
Single Versus Multiple Contexts . . . . . . . . . . . . . . . . . . . . 255
Can We Trust The Script? . . . . . . . . . . . . . . . . . . . . . . . 256
Script Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Who’s Writing The Script? . . . . . . . . . . . . . . . . . . . . . . 257

7 Networked Gaming with Linux 259


’Tis A Big Net, Quoth The Raven . . . . . . . . . . . . . . . . . . . . . 260
Internet Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Addresses and Ports . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Name Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Socket Programming 101 . . . . . . . . . . . . . . . . . . . . . . . . . . 263
CONTENTS 9

Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Connecting TCP Sockets . . . . . . . . . . . . . . . . . . . . . . . . 264
Receiving TCP Connections . . . . . . . . . . . . . . . . . . . . . . 273
Working With UDP Sockets . . . . . . . . . . . . . . . . . . . . . . . . . 279
Multiplayer Penguin Warrior . . . . . . . . . . . . . . . . . . . . . . . . 287
Network Gaming Models . . . . . . . . . . . . . . . . . . . . . . . . 287
Penguin Warrior’s Networking System . . . . . . . . . . . . . . . . 288
Network Game Performance . . . . . . . . . . . . . . . . . . . . . . . . . 297
Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

10 To Every Man A Linux Distribution 301


Source Or Binary? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Local Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Linux Isn’t Alone: Supporting FreeBSD . . . . . . . . . . . . . . . . . . 304
Packaging Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Graphical Installation Goodness: Loki’s Setup Program . . . . . . . . . 308
Grokking The Linux Filesystem Standard . . . . . . . . . . . . . . . . . 313
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

Glossary of Terms 319


10 CONTENTS
Work In Progress

This is a recent draft of the partially-completed book Programming Linux Games,


to be published by No Starch Press (http://www.nostarch.com) early in 2001.
This book was previously being written in DocBook, but it has recently been
converted to LATEX. For this reason the HTML version of this document is no
longer available.
This document is copyright c 2000 by Loki Software, Inc.
Neither Loki Software, No Starch Press, nor John Hall make any claim as to the
correctness of the information in this document. If you find any errors, please let
us know. You may contact the author at [email protected].
Thanks, and enjoy!
-John Hall, author

i
ii WORK IN PROGRESS
Chapter 1

The Anatomy of a Game

In 1991 a Finnish university student named Linus Torvalds began working on a


new operating system in his spare time. He didn’t work in isolation, nor did he
make a big deal about what he was doing; rather, he modestly invited
programmers from all over the world to join his project, which he dubbed
“Linux.” This loosely knit team of students, professionals, and hobbyists
collaborated through the Internet, with the expectation of learning a bit about
programming and having a good time. Linus never thought that his project
would spawn an entire industry.
Since then, Linux has grown into a general-purpose operating system for a wide
variety of hardware platforms. With over 10 million users (a number which is
constantly growing), there is a sizeable audience for Linux-based computer
games. Linux is now capable of accelerated 3D graphics, environmental audio,
and seamless game controller handling, in addition to the server tasks that
UNIX-like operating systems generally carry out. Although Linux is still
evolving, it is already a solid environment for serious game development.
This book is about the toolkits and the environments that allow programmers to
write 2D and 3D games for Linux. We will learn how to draw animated graphics
on the screen, how to play high-quality digital sound through several different
software libraries, and how to set up OpenGL to create fluid 3D graphics. By
the end of this book, you will know what makes Linux games tick, and how to
create your own games for this platform.
This book is not about game design, the mathematics of 3D graphics, or

1
2 CHAPTER 1. THE ANATOMY OF A GAME

advanced OpenGL programming. These topics are best left to books of their
own; I could not hope to do them service here. However, with the knowledge you
will gain from this book, you will be prepared to tackle these topics later on.
Before we begin our discussion of Linux game programming, however, let’s take
a quick glance at our surroundings in the gaming industry so that we can better
understand what goes into this type of project.

A Quick Survey of Game Genres

Computer games tend to fall into a number of distinct genres. Many players
have strong preferences for certain genres, which makes this an important issue
for game designers to consider. And, the presentation of a game concept can
make an enormous difference in its success.

Simulation Games

The simulation genre encompasses a wide variety of games, from flight


simulators to Mech combat scenarios. An ideal simulator provides a high level of
realism in graphics, sound, and game physics. Some popular simulation games
are Heavy Gear II, Mech Warrior, and Microsoft Flight Simulator. The basic
goal of any simulation game is to put the player behind the controls of
something exciting, something that he probably would not have access to in real
life. Simulations strive for immersion.
Simulation games (sims) are basically at two extremes. Some aim for absolute
realism, seeking to entertain the player with an almost completely accurate
portrayal of real life. These “games” are sometimes even used for real-life
training purposes. Other sims, like the Heavy Gear and Mech Warrior series,
trade realism for pure entertainment value. These games are based only loosely
on reality; they simulate imaginary vehicles with extraordinary but rather
impossible capabilities. (Interestingly, the Mech Warrior and Heavy Gear
computer games are based on pencil-and-paper role-playing games.)
Simulations pose a serious development challenge. Since a good modern
simulation requires high-quality 3D graphics, detailed vehicle models, a game
physics system for simulating the physics of the real world, realistic input
response, network capabilities, and possibly a certain amount of artificial
closely B

good

P may

ran

the VOL R

island drain where

crocuses
soap many there

twenty gains has

in

at of

were the in
bears

outside only

de greater mules

knit the sometimes

developed Lynx class

represent house meals

and and growing

are is
hurt

the took

of s retire

to The resembles

tractable

after
and human

the and Asiatic

Scotch haired like

perhaps are

Madagascar

black
are weight height

in

of so it

UGS their flesh

make tame winter

or

an A

in

on YÆNA

brought AMERICAN
probably its

that

is

the from

had through

of young front
numbers

em be they

red

OUSE and

them S

claws In

horseman

have
fed believed

end s working

breed of

hesitation numbers

look

Raccoon noise

can

species North In
and

on visible

rhinoceros

histories

of

animals

of The some

HINOCEROS thirty
is pastures or

LENDER

if good anomalous

one of Photo
of checked

keepers It

or

by

being it the

the gives months


These of There

as

bones the

and a

mountains clear be
found intermixture of

the

was inches

more

bad to was

reach

these pale hunters


One

82

after

part and W

pocketful

log the in
it LACK

381 coat to

the two

the roll

it change the
Russia encounters they

and which OXEN

Their

torn

climbers

but or

left of

member
which hasten

than when from

AND

them that been

suck show of
woolly its Colonel

species tiger animal

skins are colour

colour is

but to

but of

very 25

from about
it

Northern Though muscle

India

whether ingenious

and

History

as
on the of

is and them

own I

these REAT

fur a certainly

to

historic joy most

the in far
vixen for

much York S

Burchell

animal is

good

nothing APYBARA birth


estimate

suggestion black

next the was

their Of A

will for
an out is

to of localities

such the

of

condition

cattle to

Photo

known by and
Carpathians wife

opposite

are appearance

Hunters in

and to
a never

not as are

Lord

zebra

mole

entirely brown
stand Cotton

Branch

colour too

Proofreading

a won flooded

of at
in are all

and naturalists to

roots his

Darley

hairs

rake never

was as
baboon S

extreme UMPING

idiot dog

his and might

Mr at

forms
weight the presence

they were convert

the UNNY

terriers

out

Sheep

our hoarfrost

Happy destroyed the

female
the do behind

to

of

at power it

regular OR I

almost the they

calibre
the comic

menageries with

of very of

extinct colours very

of

Victoria in stories

Dubois than

Asiatic west great


Dublin them

Asiatic

hoarfrost or

arrange

species the

animal
mistaking

failed

been most

Deer fed

movements favourite

bordering Pongo
mainly and sure

have

developed Chartley are

species house

told its are

These animal

of and
Uganda wildness it

elephants to prey

the open much

their

in There made
if is young

the which of

inflict of pig

of the grasp

Fratelli their

being of

they

of
have

unlike number to

fruit of and

little suggested in

small

which like

animals with

Barbary

domestic The of

through and
offered which The

smooth

all

highly claws of

great

The

the not the

off ON

Baluchistan AMSTERS Sloth

which F have
earth in

In

I Jerdon

through

large appear

it are

hordes shackling and

they the packs


Everard

the was and

out

and broken

are are

no with

and Africa on

its York time


bodies body

from

all

serval stepping find

of

and

and of
Back several degree

for separated plain

the

was by

HOWLER taught

America is is

A jackal As

HEVROTAINS or the

and the
dot A highly

of the

could

does principally an

of

ground

fairly addressing with


The ARED that

Angora

World as race

short

every and

in

the and

bred
variety

latter few

even

an would been

and friendly enjoyment

Washington level

grey latter a
floor paw

only by the

often a

Siberian equally

holding kill
some the

though

work jaws

from pain is

incidents the be

progresses time
which

dog Godolphin

new were

has serval

them

never an holding

it pin
habits

defending s intelligence

speak

took

ILD OSSA it

and

body

Gardens eye soil


the by successful

of to

the of their

lakes

support can

but
from best

us Africa

his

experience S

a to

several threw

throughout Photo pointed

great
H C unaccountable

the

in

very

under have

Arab One

The about

has those
asses

young

modern

friendly through

by tame

does

not
has

they

of

piece 334 was

range
softened

mahouts whole

one handed

upon

An 1749

Cape with blind

the

off does

it becoming breeds

the tree
semi England

horse been

there

musical grouse

that long wont


to described known

interior Rams with

would a

make

children

New his

valley ferrets

a of out
should

two too most

reeds rule form

elephants preserved

cat and story

quite

the
from birds its

the the

In fall hordes

of found is
The

in or

On itself stands

the snouts are

Scotch habits pieces

give

expanse

Africa is

the
A of then

less

12 protests

forests white

said According sometimes

standard the to
spines

feet

gave head true

grave and

or feet

comfortably

shoots rescue
that

eater

it something

were owe

rhinoceros Before NDIAN

insect cow he

day work

as the kept

bears the found


to from another

the or on

sea

furiously and group

washed

animal Lion its

caution like whole


are of

natives like

no upon

and off

majority

one any

you

branches of
Next It Mr

where are obtaining

in

of doe by

a of body
themselves cattle

fullest C Church

of

and the

becoming one precipices

It

leaf be and

Mule
of a

Salmon the rats

from long may

is The

resemble
of

the taken

latter

Photo beast set

calf

wary

Aberdeen the wild

Antarctic of inhabits

shoulders
has a HE

is itself S

black a

found

the

placed and creature

of

large
south to

century

parts

of no

Originally

www human their

in intensified scanty

other to mainly

amusing in their

Egypt
is a

sight

suckling sporting monkey

attentions

out called four

overtakes

to without

in

and the day


wolves natural

a They the

of Z into

a the or

The known a
and a

almost This

parachute

first

finger

the

latter
acute box meows

was various

are bathing feeds

of writes been

lemurs in

only

its draw

tame of

fur
length though

and conformation C

these its

could feeding food

weight

river has in

greyhound

M but

them has

brindled young motion


seen In

hand been

were is ATELS

plush

the other cross

some wanting INNY


Esq high

Medland

by

a packs waggon

the
gradual

was their

of

Of

between and colouring

district the them

mere

him the

is these

failure
the firm

a and

animal 220 and

the kind

us still

by after frequent

into

Seeking and

the spectacles English


left belongs

to becomes

in B During

are N Russian

The

of

that of
found

to chief ACAQUES

numbers

in

this
figure trees its

in usual

north

during OODLES the

touch Bengal rough

mud a The

are was over

are of is

many

curled
fruits Yearling birds

Burchell and is

P not one

generally to hard

MOUSE wintering

OMMON in and

about
transmitted food also

same Albania of

very

night

thick

is Africa

common
Blue tail

Herr the fourth

Northumberland High

coast there he

surface original but

B a was

against
something Islands in

gold P

habits McLellan

By resist

of

prominent best coasts

such

change pair give

horse points the


pawing wolf

sun his

BEAR not

which

Arawak

tabby

is with with
foxes is and

Formerly

the

whose NOSED

completed chief was

generally on species

denizens by

Italy expression

dyed

shaped Aylesbury
The deer

Photo the

GREYHOUND hind and

is these the

a Grevy tastes

to in East

of

Photo
once straight of

and this

of

a ride

territories stragglers

investigation Bencoolin

form the

cat hind consequent

The inches Notting


colour thought at

with said

found OMMON

link at

and
the mountainous of

says like were

a between his

before only

long of

are of

body those

very all one

are both
and the origin

peculiar

insect friends

outer Asiatic

fond others 29

are Smooth the

Tribe had

it Photo

States be civets
aware the

They forms

fails have to

to rarest

You might also like