Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

Systems and methods for generating and providing enhanced screenshots may
include executing instructions stored in memory to evaluate at least a
portion of a viewing frustum generated by the instructions to determine
one or more objects included therein, obtain metadata associated with the
one or more objects, and generate at least one enhanced screenshot
indicative of the at least a portion of the viewing frustum by
associating the metadata of each of the one or more objects with a
location of each of the one or more objects within the at least one
enhanced screenshot to create hotspots indicative of each of the one or
more objects such that selection at least one hotspot by a computing
system causes at least a portion of the metadata associated with the at
least one hotspot to be displayed on a display device of a computing
system.

Claims:

1. A method for generating enhanced screenshots, comprising: executing
instructions stored in memory to: evaluate at least a portion of a
viewing frustum generated by the instructions to determine one or more
objects included therein; obtain metadata associated with the one or more
objects; generate at least one enhanced screenshot indicative of the at
least a portion of the viewing frustum by associating the metadata of
each of the one or more objects with a location of each of the one or
more objects within the at least one enhanced screenshot to create
hotspots indicative of each of the one or more objects such that
selection at least one hotspot by a computing system causes at least a
portion of the metadata associated with the at least one hotspot to be
displayed on a display device of a computing system; and provide the at
least one enhanced screenshot to the display device of the computing
system.

2. The method according to claim 1, wherein the metadata includes at
least one of static metadata and run time metadata.

3. The method according to claim 1, wherein obtain includes: determine
coordinates for each of the one or more objects indicative of a location
of each of the one or more objects within a program environment generated
by execution of the instructions; and locate metadata associated with
each of the one or more objects based upon the determined coordinates of
each of the one or more objects.

4. The method according to claim 1, wherein the instructions are further
adapted to append the metadata to each of the one or more objects as one
or more metadata tags.

5. The method according to claim 4, wherein the instructions are further
adapted to associate two or more enhanced screenshots together that each
include at least one object having at least one metadata tag in common.

6. The method according to claim 1, wherein the instructions are adapted
to be executed automatically at predetermined intervals of time.

7. The method according to claim 1, wherein the instructions are adapted
to be executed upon receiving a request to obtain at least one enhanced
screenshot from the computing system.

8. The method according to claim 1, wherein the instructions are adapted
to be executed upon an occurrence of at least one condition.

9. The method according to claim 8, wherein the at least one condition
includes at least one of a threshold amount of objects located within the
viewing frustum and a particular type of object located within the
viewing frustum.

10. The method according to claim 8, wherein the at least one enhanced
screenshot includes data indicative of the at least one condition that
predicated the execution of the instructions, the data indicative of the
at least one condition being appended as metadata to the at least one
enhanced screenshot.

11. The method according to claim 1, wherein the instructions are further
adapted to provide, to the computing system, the at least one enhanced
screenshot in an extensible markup language format document.

12. The method according to claim 1, wherein the instructions are further
adapted to provide, to the computing system, the at least one enhanced
screenshot along with a current view of the program environment.

13. The method according to claim 1, wherein the metadata includes
comparative metadata indicative of a comparison of the metadata of a
first object located within the viewing frustum and the metadata of one
or more objects also located within the viewing frustum when the at least
one enhanced screenshot was generated.

14. The method according to claim 1, wherein the instructions are further
adapted to provide to the computing system the at least one enhanced
screenshot in a format adapted to allow sharing the at least one enhanced
screenshot via a social network.

15. The method according to claim 1, wherein a graphics engine of the
computing system is adapted to generate a view from at least a portion of
the viewing frustum.

16. The method according to claim 15, wherein the at least one enhanced
screenshot includes two or more enhanced screenshots captured from two or
more points of view relative to the viewing frustum.

17. The method according to claim 15, wherein generate includes: capture
an image file indicative of the at least a portion of the view; map each
of the one or more objects determined to be within the at least a portion
of the view to one or more pixels of the captured image file to establish
a hotspot; and associate the metadata of each of the one or more objects
with a corresponding hotspot on the captured image file such that
selection of the hotspots cause at least a portion of the metadata
corresponding to the hotspots to be displayed in a popup window located
proximate the hotspots.

18. The method according to claim 17, wherein map includes determining an
area corresponding to a geometrical configuration of the at least one of
the one or more objects.

19. The method according to claim 1, wherein generate includes generating
a plurality of enhanced screenshots that are arranged as an enhanced
video, the at least one enhanced video adapted to provide at least a
portion of the metadata associated with at least one object upon
receiving input indicative of a selection of the at least one object by
the computing system.

20. A system for generating enhanced screenshots, the system comprising:
a memory for storing executable instructions adapted to generate a
viewing frustum that includes one or more objects; a processor for
executing the executable instructions stored in the memory, the
executable instructions further including a screenshot generation module
that includes: a parsing module adapted to evaluate at least a portion of
the viewing frustum to determine the one or more objects included
therein; an analysis module adapted to obtain metadata associated with
each of the one or more objects; an assembly module adapted to generate
at least one enhanced screenshot indicative of the at least a portion of
the viewing frustum by associating the metadata of each of the one or
more objects with a location of each of the one or more objects within
the at least one enhanced screenshot to create hotspots indicative of
each of the one or more objects such that selection at least one hotspot
by a computing system causes at least a portion of the metadata
associated with the at least one hotspot to be displayed on a display
device of a computing system; and an interface module adapted to provide
the at least one enhanced screenshot to a computing system for display on
the display device of the computing system.

21. The system according to claim 20, wherein metadata includes run time
metadata obtained by the analysis module.

22. The system according to claim 20, wherein the analysis module is
adapted to obtain metadata associated with each of the one or more
objects by: determining coordinates for each of the one or more objects
indicative of a location of each of the one or more objects within a
program environment of the generated by the executable instructions; and
locating metadata associated with the each of the one or more objects
based upon the determined coordinates of each of the one or more objects.

23. The system according to claim 20, wherein the analysis module is
further adapted to append the metadata to each of the one or more objects
as one or more metadata tags.

24. The system according to claim 23, wherein the assembly module is
adapted to associate two or more enhanced screenshots together that each
include at least one object having at least one metadata tag in common.

25. The system according to claim 20, wherein the screenshot generation
module is adapted to generate the at least one enhanced screenshot at
predetermined intervals of time.

26. The system according to claim 20, wherein the screenshot generation
module is adapted to generate at least one enhanced screenshot upon
receiving a request to obtain an enhanced screenshot from the computing
system.

27. The system according to claim 20, wherein the screenshot generation
module is further adapted to generate at least one enhanced screenshot
upon an occurrence of at least one condition.

28. The system according to claim 27, wherein the at least one condition
includes at least one of the parsing module determining a threshold
amount of objects being located within the viewing frustum and a
particular type of object being located within the viewing frustum.

29. The system according to claim 27, wherein the assembly module is
adapted to include data indicative of the at least one condition that
predicated the generation of the enhanced screenshot as metadata that is
appended to the at least one enhanced screenshot.

30. The system according to claim 27, further comprising a screenshot
management module adapted to receive user-defined information indicative
of at least one of the at least one condition and a threshold amount.

31. The system according to claim 20, wherein the assembly module is
adapted to provide the at least one enhanced screenshot in an extensible
markup language format document to the computing system.

32. The system according to claim 20, wherein the assembly module is
adapted to provide the at least one enhanced screenshot in combination
with a current view generated by the executable instructions indicative
of at least a portion of the viewing frustum.

33. The system according to claim 20, wherein the analysis module is
adapted to generate comparative metadata indicative of a comparison of
the metadata of a first object located within the viewing frustum and the
metadata of one or more additional objects also located within the
viewing frustum when the at least one enhanced screenshot was generated.

34. The system according to claim 20, wherein the assembly module is
adapted to provide, to the computing system, the at least one enhanced
screenshot in a format adapted to allow sharing the at least one enhanced
screenshot via a social network.

35. The system according to claim 20, wherein the interface module is
adapted to generate a view from at least a portion of the viewing
frustum.

36. The system according to claim 35, wherein the assembly module is
adapted to generate two or more enhanced screenshots captured from two or
more points of view relative to the viewing frustum.

37. The system according to claim 20, wherein the assembly module is
further adapted to generate a plurality of enhanced screenshots that are
arranged as an enhanced video, the at least one enhanced video adapted to
provide at least a portion of the metadata associated with at least one
object upon receiving input indicative of a selection of the at least one
object by the computing system.

38. The system according to claim 35, wherein the assembly module is
adapted to: capture an image file indicative of the at least a portion of
the view; map each of the one or more objects determined to be within the
at least a portion of the view to one or more pixels of the captured
image file to establish a hotspot; and associate the metadata of each of
the one or more objects with a corresponding hotspot on the captured
image file such that selection of the hotspots cause at least a portion
of the metadata corresponding to the hotspots to be displayed in a popup
window located proximate the hotspots.

39. The system according to claim 38, wherein the assembly module is
further adapted to determine an area corresponding to a geometrical
configuration of the at least one of the one or more objects.

40. A non-transitory computer readable storage medium having embodied
thereon a program, the program being executable by a processor to perform
a method for generating a viewing frustum that includes one or more
objects, the program further including an enhanced screenshot engine
adapted to: evaluate at least a portion of the viewing frustum to
determine one or more objects included within the viewing frustum; obtain
metadata associated with at least one of the one or more objects;
generate at least one enhanced screenshot indicative of the at least a
portion of the viewing frustum by associating the metadata of each of the
one or more objects with a location of each of the one or more objects
within the at least one enhanced screenshot to create hotspots indicative
of each of the one or more objects such that selection at least one
hotspot by a computing system causes at least a portion of the metadata
associated with the at least one hotspot to be displayed on a display
device of a computing system; and provide the at least one enhanced
screenshot to the computing system for display on the display device of
the computing system.

41. A method for providing an award in response to a computing system
obtaining one or more enhanced screenshots during execution of
instructions that generate a viewing frustum that includes one or more
objects, comprising: comparing metadata of at least one of the one or
more objects included in one or more enhanced screenshots obtained by the
computing system to an established award criteria, the award criteria
including information indicative of metadata included in one or more
enhanced screenshots that when obtained allow at least one award to be
provided to the computing system; and providing an award to the computing
system upon the computing system obtaining one or more enhanced
screenshots having metadata that correspond to the award criteria.

42. The method according to claim 41, further comprising establishing the
award criteria.

43. The method according to claim 41, further comprising defining the
award.

Description:

FIELD OF THE INVENTION

[0001] The present invention relates generally to systems and methods for
generating enhanced screenshots, and more particularly, but not by way of
limitation, to systems and methods to generate enhanced screenshots that
include metadata indicative of objects located within the enhanced
screenshots.

SUMMARY OF THE INVENTION

[0002] According to exemplary embodiments, the present invention provides
for methods for generating enhanced screenshots that include executing
instructions stored in memory to: (a) evaluate at least a portion of a
viewing frustum generated by the instructions to determine one or more
objects included therein; (b) obtain metadata associated with at least
one of the one or more objects; (c) generate at least one enhanced
screenshot indicative of the at least a portion of the viewing frustum by
associating the metadata of each of the one or more objects with a
location of each of the one or more objects within the at least one
enhanced screenshot to create hotspots indicative of each of the one or
more objects such that selection at least one hotspot by a computing
system causes at least a portion of the metadata associated with the at
least one hotspot to be displayed on a display device of a computing
system; and (d) provide the at least one enhanced screenshot to the
computing system for display on the display device of the computing
system.

[0003] According to other exemplary embodiments, the present invention
provides for systems for generating enhanced screenshots that may include
(a) a memory for storing a computer program; (b) a processor for
executing the computer program stored in memory, the computer program
adapted to generate a viewing frustum that includes one or more objects,
the computing program including a screenshot generation module that
includes: (i) a parsing module adapted to evaluate at least a portion of
the viewing frustum to determine one or more objects included therein;
(ii) an analysis module adapted to obtain metadata associated with at
least one of the one or more objects; (iii) an assembly module adapted to
generate at least one enhanced screenshot indicative of the at least a
portion of the viewing frustum by associating the metadata of each of the
one or more objects with a location of each of the one or more objects
within the at least one enhanced screenshot to create hotspots indicative
of each of the one or more objects such that selection at least one
hotspot by a computing system causes at least a portion of the metadata
associated with the at least one hotspot to be displayed on a display
device of a computing system; and (iv) an interface module adapted to
provide the at least one enhanced screenshot to the computing system for
display on the display device of the computing system.

[0004] According to additional exemplary embodiments, the present
invention provides for non-transitory computer readable storage mediums
having embodied thereon a program, the program being executable by a
processor to perform a method for generating a viewing frustum that
includes one or more objects, the program further including an enhanced
screenshot engine adapted to: (a) evaluate at least a portion of the
viewing frustum to determine one or more objects included within the
viewing frustum; (b) obtain metadata associated with at least one of the
one or more objects; (c) generate at least one enhanced screenshot
indicative of the at least a portion of the viewing frustum by
associating the metadata of each of the one or more objects with a
location of each of the one or more objects within the at least one
enhanced screenshot to create hotspots indicative of each of the one or
more objects such that selection at least one hotspot by a computing
system causes at least a portion of the metadata associated with the at
least one hotspot to be displayed on a display device of a computing
system; and (iv) provide the at least one enhanced screenshot to the
computing system for display on the display device of the computing
system.

[0005] According to some exemplary embodiments, the present invention
provides for methods for providing an award for obtaining one or more
enhanced screenshots during execution of computer-readable instructions
that generate a viewing frustum that includes one or more objects. The
methods may include: (a) comparing metadata of at least one of the one or
more objects included in one or more enhanced screenshots obtained by a
computing system to an established award criteria, the award criteria
including information indicative of metadata included in one or more
enhanced screenshots that when obtained allow at least one award to be
provided to the computing system; and (b) providing an award to the
computing system upon the computing system obtaining one or more enhanced
screenshots having metadata that correspond to the award criteria.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] FIG. 1 is a schematic diagram of an exemplary environment for
practicing the present invention.

[0007]FIG. 2 illustrates an exemplary computing system that may be used
to implement embodiments of the present technology.

[0008]FIG. 3 is a schematic of an exemplary architecture of a computer
program having a screenshot generation module, constructed in accordance
with the present disclosure.

[0009]FIG. 4 is an exemplary flow chart of a method for generating
enhanced screenshots.

[0010] FIG. 5 is an illustrative example of an enhanced screenshot.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

[0011] The capturing and utilization of screenshots is well known in the
art. As background, screenshots are image files taken by a computing
system to record the visual depictions, also known as views, displayed on
a display device such as a monitor associated with the computing system.
The screenshots are typically captured by at least one of a standalone
screenshot application, screenshot functionalities embedded within
computer programs or executable instructions stored in memory, and also
screenshot functionalities incorporated into operating system software.
It will be understood that the term "view" may include any visual
depiction of data generated by a graphics engine or an interface module
of a computer program such as a graphical user interface. While the term
"view" has been referred to in the singular, it is noteworthy that the
word view may include a singular view generated periodically or a
plurality of views, such as a continuous view of a program environment
generated by a computer program, as will be discussed in greater detail
herein.

[0012] Additionally, screenshots may also be referred to as screen
captures (screencap), screen dump, screen grab, or more formally as a
print screen function. The print screen function may be generally
described as a screenshot function operatively associated with one or
more keys of a keyboard device that is associated with the computing
system.

[0013] While systems and methods for obtaining screenshots are well known,
they only provide the limited functionality of capturing the view in a
standardized image file format. These image files contain relatively
little, if any, information indicative of the type of information
contained within the image file, such as the objects located therein. For
example, a videogame program may include executable instructions stored
in memory that generate and display a continuously updated view in the
form of a graphical user interface with which the user may interact.
During run time, the user may capture screenshots of the view.
Unfortunately, these common screenshots provide the user with no
additional information regarding the program environment other than what
may be visually ascertained by the user on the display device of their
computing system.

[0014] The systems and methods of the present disclosure are adapted to
generate enhanced screenshots that are content rich relative to standard
screenshots thereby providing the user with a host of additional
information that may not be readily ascertained by visual inspection of
the screenshot.

[0015] The systems and methods may generate an enhanced screenshot by
capturing an image file indicative of at least a portion of the view and
intelligently appending metadata to objects located within the screenshot
by mapping the location of each of the objects to one or more pixels of
the captured image file to create hotspots indicative of the objects.
According to some embodiments, each hotspot may be approximated and
defined by a rectangular shape, although one of ordinary skill in the art
with the present disclosure before them will appreciate that other
geometrical configurations may be utilized, such as square, triangular,
or other suitable polygonal configurations.

[0016] The enhanced screenshot may be generated having any one of a number
of formats including, but not limited to, extensible markup language
documents (XML). It will be understood that the enhanced screenshot may
be generated utilizing any one of a number of formats that are adapted to
generate screenshots that resemble a conventional screenshot, but when
users select a hotspot on the enhanced screenshot, at least a portion of
the metadata associated with the hotspot may be displayed on the display
device of the computing system. It will be understood that "select" may
include, for example, mousing over the hotspot, hovering a selector
device over the hotspot, or otherwise contacting the hotspot.

[0017] Metadata may be displayed on the computing system in the form of
textual information included in a popup window that is displayed
proximate the hotspot.

[0018] It will be understood that the term "hotspot" may include any area
of interest located within an enhanced screenshot that has been
intelligently appended with metadata. Hotspots represent the location of
objects within the enhanced screenshot and may each be defined by a
rectangular boundary that encloses at least a portion of an object.

[0019] It will be understood that the term "object" may any visual item
located within the enhanced screenshot, including, but not limited to,
avatars, buildings, trees, clouds, and the like. It will further be
understood that each object may be generally categorized as either
animate or inanimate. For example, animate objects may include avatars,
enemies, animals, and the like. On the other hand, inanimate objects may
include buildings, mountains, and the like.

[0020] Additionally, the term "avatar" may be understood to include a
specific type of object that is associated the computing system of an end
user and includes visual representation of the computing system that
operate within the programming environment. Non-limiting examples of
avatars may include avatars that have a visual appearance that closely
approximates the physical appearance of the end user associated
therewith, or may include avatars having a fanciful or whimsical
appearance.

[0021] With regard to generating a view of the program environment in
either two- or three-dimensional, a graphics engine (not shown)
associated with the computing system may utilize what is commonly known
as a viewing frustum. The viewing frustum may be described as a visual
boundary abstraction that approximates a user's field of view. It will be
understood that the geometrical configuration of the viewing frustum may
depend upon the type of view being simulated. Only objects or portions of
objects located within the viewing frustum are rendered by the graphics
engine as a view that is displayed via the display device of the
computing system. Therefore, as an avatar traverses through the program
environment and objects enter and exit the viewing frustum, the objects
are rendered (e.g., generated) by the graphics engine and displayed in a
format that is perceivable to the user. It will be understood that in
some embodiments, the graphics engine may include an interface module
such as the interface module 305a described in greater detail with
reference to FIG. 3.

[0022] Broadly speaking, enhanced screenshots generated by the systems and
methods described herein may be utilized to capture or depict the
relationship between the view provided to the display device of the
computing system and the objects located within the viewing frustum.
Moreover, as the enhanced screenshot includes metadata indicative of the
objects located within the enhanced screenshot and the metadata
indicative of the conditions under which the enhanced screenshot was
obtained, additional end users viewing the enhanced screenshot may even
more fully appreciate the relationship between the end user for which the
enhanced screenshot was captured and the objects located within the
enhanced screenshot.

[0023] FIG. 1 illustrates an exemplary environment 100 for practicing the
present invention. In general, the environment 100 may include a
computing system 105 having one or more computer programs (e.g., a
videogame program including executable instructions that generate a
viewing frustum that includes one or more objects) residing thereon. In
additional exemplary embodiments, the exemplary environment 100 may
include both the computing system 105 and an application server 110
cooperating together to execute separate components (e.g., module,
engine, and the like) of a computer program. As used throughout, the term
"computer program" may comprise any type of executable instructions
stored in memory and executable by the processor of a computing system.
The computing system 105 and the application server 110 may be
operatively connected to one another via a network 115 such as the
Internet, a local area network, or any other suitable type of
communications channel that would be known to one of ordinary skill in
the art with the present disclosure before them.

[0024] According to some embodiments, the application server 110 may
include a plurality of application servers 110 having portions of the
computer program distributed therebetween. It will be understood that a
portion of the one or more computer programs may alternatively reside in
a cloud based computing arrangement 120.

[0025]FIG. 2 illustrates an exemplary computing system 200 that may be
used to implement embodiments of the present technology. The system 200
of FIG. 2 may be implemented in the contexts of the likes of the
computing system 105 or the application server 110 (see FIG. 1).
Therefore, the computing system 200 utilized to implement the methods
described herein may be referred to as a particular purpose computing
system adapted to generate enhanced screenshots by translating one or
more views generated by a computer program into enhanced screenshots that
include intelligently appended metadata associated with each of the one
or more objects located therein.

[0026] The computing system 200 of FIG. 2 includes one or more processors
210 and main memory 220. Main memory 220 stores, in part, instructions
and data for execution by processor 210. Main memory 220 may store the
executable code when in operation. The system 200 of FIG. 2 further
includes a mass storage device 230, portable storage medium drive(s) 240,
output devices 250, user input devices 260, a graphics display 270, and
peripheral devices 280.

[0027] The components shown in FIG. 2 are depicted as being connected via
a single bus 290. The components may be connected through one or more
data transport means. Processor unit 210 and main memory 220 may be
connected via a local microprocessor bus, and the mass storage device
230, peripheral device(s) 280, portable storage device 240, and display
system 270 may be connected via one or more input/output (I/O) buses.

[0028] Mass storage device 230, which may be implemented with a magnetic
disk drive or an optical disk drive, is a non-volatile storage device for
storing data and instructions for use by processor unit 210. Mass storage
device 230 may store the system software for implementing embodiments of
the present invention for purposes of loading that software into main
memory 220.

[0029] Portable storage device 240 operates in conjunction with a portable
non-volatile storage medium, such as a floppy disk, compact disk, digital
video disc, or USB storage device, to input and output data and code to
and from the computing system 200 of FIG. 2. The system software for
implementing embodiments of the present invention may be stored on such a
portable medium and input to the computing system 200 via the portable
storage device 240.

[0030] Input devices 260 may include an alphanumeric keypad, such as a
keyboard, for inputting alpha-numeric and other information, or a
pointing device, such as a mouse, a trackball, stylus, or cursor
direction keys. Additionally, the system 200 as shown in FIG. 2 includes
output devices 250. Suitable output devices include speakers, printers,
network interfaces, and monitors.

[0031] Display system 270 may include a liquid crystal display (LCD) or
other suitable display device. Display system 270 receives textual and
graphical information, and processes the information for output to the
display device.

[0032] Peripherals 280 may include any type of computer support device to
add additional functionality to the computing system. Peripheral
device(s) 280 may include a modem or a router.

[0033] The components provided in the computing system 200 of FIG. 2 are
those typically found in computing systems that may be suitable for use
with embodiments of the present invention and are intended to represent a
broad category of such computer components that are well known in the
art. Thus, the computing system 200 of FIG. 2 may be a personal computer,
hand held computing system, telephone, mobile computing system,
workstation, server, minicomputer, mainframe computer, or any other
computing system. The computer may also include different bus
configurations, networked platforms, multi-processor platforms, etc.
Various operating systems may be used including Unix, Linux, Windows,
Macintosh OS, Palm OS, Android, iPhone OS and other suitable operating
systems.

[0034] It is noteworthy that any hardware platform suitable for performing
the processing described herein is suitable for use with the technology.
Computer-readable storage media refer to any medium or media that
participate in providing instructions to a central processing unit (CPU),
a processor, a microcontroller, or the like. Such media may take forms
including, but not limited to, non-volatile and volatile media such as
optical or magnetic disks and dynamic memory, respectively. Common forms
of computer-readable storage media include a floppy disk, a flexible
disk, a hard disk, magnetic tape, any other magnetic storage medium, a
CD-ROM disk, digital video disk (DVD), any other optical storage medium,
RAM, PROM, EPROM, a FLASHEPROM, any other memory chip or cartridge.

[0035]FIG. 3 illustrates an exemplary block diagram of a computer program
300 for practicing the invention. According to some embodiments, the
computer program 300 (e.g., executable instructions stored in memory)
resides on the computing system 105 (or application server 110). It will
be understood that the computer program 300 may include any computer
readable code that is executable by the processor of a computing system
that is adapted to provide a view of data (e.g., program environment)
produced by the computer program. Therefore, generally speaking, the
computer program 300 may include an interface module 305a and one or more
additional modules 305n that generate data that may be utilized by the
interface module 305a to generate a view of a program environment
maintained by the computer program 300. It will be understood that the
one or more additional modules 305n may likewise include engines,
applications, or combinations thereof.

[0036] Moreover, to generate enhanced screenshots of the view generated by
the interface module 305, the computer program 300 may also include a
screenshot generation module 310 that includes a parsing module 315, an
analysis module 320 (a.k.a., statistical engine), an assembly module 325,
and an optional screenshot management module 330. It will be understood
that the constituent modules of the screenshot generation module 310 may
be executed by a processor of the computing system to effectuate
respective functionalities attributed thereto. It is noteworthy that the
screenshot generation module 310 may be composed of more or fewer modules
and engines (or combinations of the same) and still fall within the scope
of the present technology. For example, the functionalities of the
parsing module 315 and the functionalities of the analysis module 320 may
be combined into a single module or engine.

[0037] For the sake of brevity, although the computer program 300 may
include any one (or combination) of a number of computer programs, only a
detailed discussion of executable instructions that generate a viewing
frustum that includes one or more objects, such as a videogame program,
will be set forth in greater detail. The executable instructions that
generate, manage, and display a view of a program environment indicative
of a viewing frustum are also provided.

[0038] As background, software architects create computer-readable
instructions that function as a basis for generating and managing a
program environment.

[0039] The program environment may generally include a landscape that
includes a variety of objects. Each of the objects may include both
static and dynamic or "run time" metadata indicative of the attributes of
the object. For example, an object such as an avatar may include static
information such as age, height, weight, name, and the like, associated
with the avatar. These types of static metadata are typically input or
generated during the creation of the executable instructions or during
creation of the avatar by the end user. Run time or "dynamic" metadata
may include information that may change over time such as an avatar's
health status, an avatar's inventory, an avatar's time of play,
interactions between an avatar and one or more avatars, an avatar's
accomplishments, and the like. Additionally, run time metadata may
include the dynamic location of an avatar within the program environment,
which when captured may be provided in the form of a virtual geotag
(e.g., a metadata tag indicative of the virtual location of an avatar).

[0040] As previously described, the objects located within the landscape
may include both animate (e.g., animals, humans, avatars, etc.) and
inanimate (e.g., furniture, structures, etc.) objects. An exemplary
program environment is described in greater detail with regards to FIG.
5.

[0041] Objects that are inanimate may include metadata such as name,
location, color, date of creation, and the like. Objects that are animate
may also include similar static metadata, but their ability to traverse
within the program environment may require monitoring of their locations
during run time. Some animate objects traverse within the program
environment based upon predefined movements that are predefined by the
executable instructions. On the other hand, additional types of
user-controlled animate objects may require monitoring, as their
movements are not predefined.

[0042] For example, the executable instructions may be adapted to
facilitate the use of avatars that may selectively operate within the
program environment based upon interaction with the executable
instructions via end users associated with the avatars.

[0043] Because the executable instructions may be adapted to monitor the
location of each object within the program environment, the executable
instructions may be adapted to generate a view (e.g., user interface)
that may be indicative of the particular location at which an avatar is
located relative to the program environment.

[0044] During run time, the screenshot generation module 310 may be
adapted to receive requests to generate an enhanced screenshot from the
computing system 105. For example, the user may select a particular key
on a keyboard or other input device that is operatively connected to the
computing system 105. According to other embodiments, the screenshot
generation module 310 may be adapted to generate one or more enhanced
screenshots automatically at predetermined intervals of time.
Additionally, in some embodiments, the screenshot generation module 310
may be adapted to generate one or more enhanced screenshots upon the
occurrence of at least one condition.

[0045] By way of non-limiting example, the screenshot generation module
310 may generate one or more enhanced screenshots each time a particular
object or group of objects enters the view frustum.

[0046] In additional embodiments, the screenshot generation module 310 may
generate one or more enhanced screenshots each time an amount of objects
within the viewing frustum meets or exceeds a threshold amount. For
example, a threshold may be established such that when four or more
avatars enter the viewing frustum an enhanced screenshot is generated.

[0047] It will be understood that the at least one condition may be
predefined by within the executable instructions. For example, the
executable instructions may be adapted to generate at least one enhanced
screenshot each time a user accomplishes a particular type of
achievement.

[0048] According to other embodiments, the at least one condition may be
user-defined. As such, the optional screenshot management module 330 may
be adapted to cause the interface module 305a to generate a graphical
user interface (not shown) that allows users to input information
indicative of at least one condition. Moreover, the users may be allowed
to input information indicative of the type of metadata that they would
like to obtain for objects located in the enhanced screenshot. For
example, the user may determine that they would like to receive only run
time dynamic metadata.

[0049] An additional example includes the screenshot generation module 310
generating a plurality of sequential enhanced screenshots upon the
occurrence of a particular event such as when a user is attacked by
another object such as the avatar of another user. As the screenshot
generation module 310 generates a plurality of sequential enhanced
screenshots, the user may utilize the screenshots to conduct a forensic
analysis of the event. Moreover, the use of statistical data calculated
by the analysis module 320 may aid in a forensic analysis of the event.

[0050] According to other embodiments, the screenshot generation module
310 may be adapted to generate a slideshow of enhanced screenshots that
were taken within a particular range of time (e.g., event). The enhanced
screenshots may be arranged in a chronological manner such that end users
may browse through a temporal sequence of enhanced screenshots for the
range of time.

[0051] In some embodiments, the screenshot generation module 310 may be
adapted to generate an enhanced video, rather than a plurality of
sequential enhanced screenshots.

[0052] Regardless of the way in which a request to obtain an enhanced
screenshot is received, the parsing module 315 may be adapted to
determine each object located within the view being displayed to the
user.

[0053] After determining each of the objects, the analysis module 320 may
be adapted to identify a location for each of the objects relative to the
program environment utilizing the viewing frustum. For example, a
location for each object may be determined utilizing a two or three point
Cartesian coordinate system (depending upon whether the executable
instructions utilizes two or three dimensional graphical data), although
other methods or systems for determining the location of objects within a
program environment that would be known to one of ordinary skill in the
art with the present disclosure before them are likewise contemplated for
use in accordance with the present invention.

[0054] Utilizing the location of the object within the program
environment, the analysis module 320 may determine metadata associated
with the determined coordinates. For example, a static object such as a
building may include metadata indicative of the location of the building
within the program environment, along with other useful information such
as a building name, a building height, or building age--just to name a
few. Therefore, the analysis module 320 may locate at least a portion of
the metadata of the building. The analysis module 320 may likewise locate
metadata for additional objects located within the viewing frustum.

[0055] With regard to three-dimensional videogame programs (e.g.,
executable instructions that generate a simulated three dimensional
view), because of the added spatial dimensions of length and height, and
the ability of the analysis module 320 to determine the location of each
object within the viewing frustum relative to the location of the objects
within the program environment, the analysis module 320 may be adapted to
acquire additional types of run time metadata such a distance between two
or more objects or the velocity of an object.

[0056] The analysis module 320 may be adapted to generate and utilize
comparative metadata indicative of a comparison of the metadata of a
first user represented by a first object located within the viewing
frustum and the metadata of one or more additional users represented by
one or more objects also located within the viewing frustum when the at
least one enhanced screenshot was generated. For example, the analysis
module 320 may be adapted to provide differential health status
information indicative of a difference between the health statuses of two
separate avatars engaging one another in combat. The analysis module 320
may be utilized to determine various types of additional statistical data
representative of objects located within one or more enhanced
screenshots. This statistical data may also be intelligently appended to
the enhanced screenshot as metadata.

[0057] Once the analysis module 320 locates the metadata associated with
one or more of the objects within the viewing frustum, the assembly
module 325 may be adapted to generate one or more enhanced screenshots
indicative of at least a portion of the viewing frustum. According to
some embodiments, the assembly module 325 may capture the at least a
portion of the viewing frustum that has been rendered as a view by the
interface module 305a that may be displayed on the computing system 105
as an image file. The analysis module 320 then appends pertinent metadata
to hotspots indicative of each of the objects located within the image
file.

[0058] The assembly module 325 may be adapted to map the objects
determined by their location within the program environment to a pixel or
range of pixels within the captured image file. For example, if the
parsing module 315 determines that a building is located within the
viewing frustum, the parsing module 315 may be adapted to determine the X
and Y coordinates of the building relative to the view provided by the
interface module 305a.

[0059] The X and Y coordinates obtained by the parsing module 315 may be
utilized by the assembly module 325 to associate metadata with a
particular pixel or area pixels (also determined by a second set of X and
Y coordinates) of the captured image that correspond to the X and Y
coordinates of the object determined by the parsing module 315.
Therefore, the X and Y coordinates of the captured image may be directly
or indirectly correlated to the X and Y coordinates of the view as
determined by the viewing frustum.

[0060] According to some embodiments, the parsing module 315 may be
adapted to determine an area of pixels that correspond to the particular
geometrical configuration of an object located within the captured image.
For example, the parsing module 315 may be adapted to generate a
rectangular area that approximates the size of the object located within
the captured image.

[0061] Therefore, the assembly module 325 may then intelligently append
the metadata corresponding to the object to the pixels of the captured
image file to establish a hotspot. The assembly module 325 appends or
otherwise associates the metadata with particular X and Y coordinates of
the captured image such that when hotspots are moused over, the metadata
associated with the hotspot may be displayed on the display device of the
computing system.

[0062] In some embodiments, the assembly module 325 may also append
additional types of metadata to the captured image, such as the at least
one condition that prompted the generation of the enhanced screenshot.
This functionality allows users to determine, for example, the conditions
under which another user generates enhanced screenshots to allow users to
learn and adapt to the playing habits of other users.

[0063] In some embodiments, the assembly module 325 may generate an
enhanced screenshot in the form of an extensible markup language (XML)
document that includes one or more captured image files indicative of the
view. The locations of the objects relative to the view may be mapped to
the pixels of the image file as stated previously, such that mousing over
a hotspot indicative of an object causes metadata associated with the
object to be displayed in a popup window. The XML document may be
enhanced by appending or otherwise associating metadata tags with each
object that are indicative of the metadata corresponding to the object.
Broadly speaking, the association of metadata tags with the image file
produces the enhanced screenshot.

[0064] In additional embodiments, rather than, or in addition to, storing
the enhanced screenshots as extensible markup language documents, the
screenshot generation module 310 may be adapted to provide the enhanced
screenshot to the interface module 305a of the computer program 300. The
interface module 305a may be adapted to provide the enhanced screenshot
in conjunction with a current view (e.g., user interface) of the program
environment. Although not shown, the enhanced screenshot may be provided
by the interface module 305a as a window within the current view of the
program environment.

[0065] According to other embodiments, enhanced screenshots may be
utilized as the basis for a game achievement function included in the
executable instructions. For example, users may be elicited to obtain
enhanced screenshots of one or more objects located somewhere within the
program environment. In return for obtaining the required enhanced
screenshots, the user is provided an award, bonus, or other object
indicative of an achievement such as a badge or a virtual trophy.

[0066] Criteria for providing the award may be predefined within the
executable instructions and may include a type or an amount of metadata
that may be located within the enhanced screenshot to merit the provision
of the award. By way of non-limiting example, the executable instructions
may be adapted to entice the user to obtain enhanced screenshots of a
particular animal roaming through the program environment. In exchange
for obtaining an enhanced screenshot that includes the particular animal,
the executable instructions may be adapted to provide the user with a
bonus of additional health.

[0067] In additional embodiments, the screenshot generation module 310 may
be adapted to utilize automatic metadata grouping to organize two or more
enhanced screenshots according to metadata associated with the enhanced
screenshots. For example, two or more enhanced screenshots indicative of
a particular location may both include the same object such as a home
base of the user. As such, the object includes a metadata tag of "Home
Base," the screenshot generation module 310 may organize or otherwise
associate the two enhanced screenshots together. Enhanced screenshots may
be stored locally in a folder on the computing system 105 of the user, or
may be stored within a database resident on a network-enabled server (not
shown) that is operatively connected to the application server 110.

[0068] Also, although not shown, the screenshot generation module 310 may
be adapted to generate enhanced screenshots in a format that may be
utilized in conjunction with a social network. For example, multiple
users may gather together at a particular location within the program
environment and obtain an enhanced screenshot, similar to a group photo.
As stated previously, the assembly module 325 of the screenshot
generation module 310 may be adapted to append metadata such as a name or
other suitable identifying information to each user's avatar. Therefore,
the social network may utilize the metadata tags associated with the
enhanced screenshot to operatively associate the user's social network
profile with the enhanced screenshot.

[0069] One of ordinary skill in the art will appreciate the broad
applicability of providing a social network with an enhanced screenshot
that includes a captured image having appended metadata tags that have
been mapped to the pixels of the captured image. This functionality is in
contrast to the current methods that require a user to append metadata to
the image after the user has uploaded the image to the social network.
Rather than relying on human action to properly associate metadata with
objects located within the image, the social network receives the
captured image from the screenshot generation module 310 in an enhanced
screenshot form.

[0070] In some embodiments, the screenshot generation module 310 may be
adapted to export or otherwise provide (e.g., publish) an enhanced
screenshot as a webpage that may be provided for distribution via the
Internet. As such, end users viewing the enhanced screenshot as a webpage
may learn about videogame play, program environment appearance, playing
habits of the end user, or other pertinent information provided by the
enhanced screenshot.

[0071] Referring now to FIG. 4, a method 400 for generating enhanced
screenshots may include a step 405 of evaluating at least a portion of a
viewing frustum generated by a computer program to determine one or more
objects included therein. After evaluating the viewing frustum, the
method 400 may include obtaining metadata associated with at least one of
the one or more objects that were identified in step 405 by executing a
step 410 of determining coordinates for the at least one of the one or
more objects indicative of a location of the at least one of the one or
more objects within a program environment of the computer program.

[0072] According to some embodiments, the method 400 may include a step
415 of locating metadata associated with the one or more objects based
upon the determination coordinates of the one or more objects in step
410.

[0073] According to some embodiments, the method 400 may include
generating at least one enhanced screenshot indicative of the at least a
portion of the view representative of the viewing frustum by way of step
420. The method may also include a step 425 of mapping the one or more
objects determined to be within the at least a portion of the viewing
frustum to one or more pixels of the captured image file to establish
hotspots.

[0074] Next, the method 400 may include a step 430 of associating metadata
of the at least one of the one or more objects with the hotspots. It will
be understood that mousing over a hotspot causes at least a portion of
the metadata corresponding thereto to be displayed. Lastly, the method
400 may include a step 435 of providing the at least one enhanced
screenshot to a computing system.

[0075] Referring now to FIG. 5, an illustrative example of an enhanced
screenshot 500 is shown. The enhanced screenshot 500 includes a captured
image file 505 representative of the viewing frustum generated by
executable instructions stored in memory. The captured image file 505 may
include visual depictions of a landscape 510 having a plurality of
objects, both inanimate 515 (e.g., rocks, trees, etc.) and animate 520
(e.g., avatars corresponding to users).

[0076] At least one hotspot 525 indicative of an object is shown as being
selected by a pointer 530 indicative of the location of a mouse relative
to the captured image file 505. Upon a mouseover of the at least one
hotspot 525 with the pointer 530, metadata associated with the at least
one hotspot 525 is displayed as textual information 535 in a popup window
located proximate the at least one hotspot 525. If necessary, additional
metadata corresponding to the at least one hotspot 525 may be displayed
in an additional location 540, such as below the captured image file 505.

[0077] While various embodiments have been described above, it should be
understood that they have been presented by way of example only, and not
limitation. The descriptions are not intended to limit the scope of the
technology to the particular forms set forth herein. Thus, the breadth
and scope of a preferred embodiment should not be limited by any of the
above-described exemplary embodiments. It should be understood that the
above description is illustrative and not restrictive. To the contrary,
the present descriptions are intended to cover such alternatives,
modifications, and equivalents as may be included within the spirit and
scope of the technology as defined by the appended claims and otherwise
appreciated by one of ordinary skill in the art. The scope of the
technology should, therefore, be determined not with reference to the
above description, but instead should be determined with reference to the
appended claims along with their full scope of equivalents