Reader small image

You're reading from  Learning AWS Lumberyard Game Development

Product typeBook
Published inOct 2016
Reading LevelIntermediate
PublisherPackt
ISBN-139781786460868
Edition1st Edition
Languages
Right arrow
Author (1)
Dr. Edward Lavieri
Dr. Edward Lavieri
author image
Dr. Edward Lavieri

Dr. Edward Lavieri is a veteran software engineer and developer with a strong academic background. He earned a Doctorate of Computer Science from Colorado Technical University, an MS in Management Information Systems (Bowie State University), an MS in Education (Capella University), and an MS in Operations Management (University of Arkansas). He has been creating and teaching computer science courses since 2002. Edward retired from the U.S. Navy as a Command Master Chief after 25 years of active service. He is the founder and creative director of three19, a software design and development studio. Edward has authored more than a dozen technology books, including several on Java.
Read more about Dr. Edward Lavieri

Right arrow

Chapter 12.  Stretching Your Lumberyard Wings

In the previous chapter, we reviewed, at a high level, the steps necessary to publish your Lumberyard games so that they are accessible to others. We looked at the different distribution platforms supported by Lumberyard and additional requirements for console development. We reviewed the three types of game build (release, debug, profile) and their uses. We also looked at two of the testing tools that come bundled with Lumberyard.

In this (final) chapter, we will take a glimpse at what is possible with Lumberyard, beyond the basics. We will explore concepts such as VR, the Waf Build system, Lumberyard's cinematics system, system streaming, and memory handling. We will also explore two additional Amazon Web Services (Simple Query Service and Simple Notification Service) to round out our coverage of Amazon Web Services throughout this book.

In this chapter, you will:

  • Learn how Lumberyard supports VR

  • Understand details of the Waf Build system

  • Appreciate...

Virtual Reality and Augmented Reality


Virtual Reality (VR) and Augmented Reality (AR) are two of the most exciting trends in game development. The two technologies are similar. Virtual Reality is when you create an environment in which the user can interact as if it were real. Augmented reality is when our current reality is augmented with something virtual. Here are examples:

  • VR: A user dons a headset and receives audio and video from a virtual game. The user sees, through this headset, a world that seems real. They have no sensory input from the actual world. They might be on a spaceship or in the Amazon jungle. They are not watching this on a television, they are experiencing it through Virtual Reality hardware.

  • AR: Imagine holding up your phone and viewing the screen based on your camera's video input. In this scenario, you simply are seeing what is in front of you. An augmented reality application might have animals or other creatures roaming the actual terrain around you.

We looked...

The Waf build system


You were first exposed to the Waf build system in Chapter 11, Providing Your Game to the World when you learned the requirements for releasing your Lumberyard games. Waf is Lumberyard's project build system. It can be used in conjunction with Visual Studio or you can use it manually from the command prompt.

Note

You must have Python 2.6 or a later version installed on your computer to use the Waf build system.

When you are creating simple, standalone games, such as single-player, non-networked games, you can simply use the Project Configurator as you have for sample projects in previous chapters. When you are creating a more complex game, you will need to get more involved in the process.

When you examine the Waf files structure, you will see a _WAF_ folder in the Lumberyard \dev folder. As shown here, there are subfolders for Android, iOS, and Microsoft.

Within the Microsoft Waf folder, the msbuild sub-folder has a waf build targets file and an XML properties sheet. You...

Lumberyard's cinematics system


Cinematics are a great way to showcase your game. They can be used as promotional videos and even as in-game cut scenes. These are more than simple animations; they are complex scripted events. Common uses are for reaching a boss level, death sequences, leveling up, and other grandiose game uses.

Most of the time, game cinematics are static. In Lumberyard, cinematics can be interactive. To access them, you select View | Open View Pane | Track View from the top menu. This opens the Track View Editor.

As you can see from the next screenshot, the Track View Editor is chock-full of functionality. Creating cinematics is a complex process that involves great levels of meticulous precision. The Track View Editor has an interface similar to animation and video editing software, which uses layers. Using the editor, you create scenes, layers, and sequences.

When working with cinematics in Lumberyard, it is helpful, as far as possible, to use previously created animations...

System streaming


System streaming is the process of controlling input and output data streams, that is, information to and from your game. The general concept is to stream data to memory when needed based on information requests. Animations, for example, are usually memory hogs. Having animations loaded into memory before they are needed is a sure way to quickly consume all of a system's available memory.

Although Lumberyard handles much of the streaming processes, game developers using Lumberyard to build their games should be familiar with this concept and the necessary interfaces, requirements, files, and applications associated with system streaming. Lumberyard's documentation provides some cursory information regarding streaming.

Memory handling


Amazon Lumberyard is intended for building AAA games, which implies high-quality, memory-intensive games. Memory, as it applies to our games, can be grouped into three broad categories: physical memory required for the game, memory requirements on the player's console or computer, and cloud-based storage requirements. In this section, we will briefly look at each of these three categories.

Physical memory for the game

It might not seem that how much physical disk space a game takes is an issue worth writing about. Remember, we are talking about AAA games, which are usually very large. If you are developing your game for a mobile device or a gaming console, then you will have to deal with additional restrictions. Mobile platform distribution networks, such as Apple's App Store and Google Play, have restrictions on the size of binary files uploaded to their respective stores. In additional, some consoles require a game to be playable within a specific amount of time once selected...

Amazon Web Services


In Chapter 7, Creating Multiplayer Game Play, we explored the need for cloud-based services to support our Lumberyard games. We looked at AWS because of its integration with the Lumberyard game engine. You were guided through the process of creating your own AWS account for use with your Lumberyard game sessions. We also looked at GameLift, a core AWS gaming service. In Chapter 9, Employing Cloud Computing and Storage, we reviewed additional AWS solutions that are relevant to games we create with Lumberyard. Specifically, we looked at Cloud Canvas and Simple Storage Service (S3).

We will conclude this chapter with an overview of two additional cloud-based services from AWS that can represent a great way to support your game's functionality.

Simple Queue Service

When we develop games that use a message system, we usually have to write our own queuing system to manage the messages. Amazon offers a Simple Queue Service, or Amazon SQS for short, to help us manage the messages...

Summary


In this chapter, we went beyond the basics of just creating AAA games with Lumberyard. We looked at how Lumberyard can be used to create Virtual Reality applications. Our VR discussion included tips on how to test your VR game on an actual head-mounted device. We then looked at the Waf Build system, the publishing release system used by Lumberyard. Next, we explored how cut scenes can be constructed using Lumberyard's cinematics system. Later, the advanced topics of system streaming and memory handling were also covered. Finally, we ended the chapter with a review of two additional Amazon Web Services (Simple Query Service and Simple Notification Service).

You have come a long way since the first chapter. Lumberyard is an exciting new game engine and continues to mature at a rapid pace. You are now armed with enough knowledge to start building your own games with Lumberyard. There is so much more to learn and you'll continually learn as you develop. Have fun!

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Learning AWS Lumberyard Game Development
Published in: Oct 2016Publisher: PacktISBN-13: 9781786460868
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Dr. Edward Lavieri

Dr. Edward Lavieri is a veteran software engineer and developer with a strong academic background. He earned a Doctorate of Computer Science from Colorado Technical University, an MS in Management Information Systems (Bowie State University), an MS in Education (Capella University), and an MS in Operations Management (University of Arkansas). He has been creating and teaching computer science courses since 2002. Edward retired from the U.S. Navy as a Command Master Chief after 25 years of active service. He is the founder and creative director of three19, a software design and development studio. Edward has authored more than a dozen technology books, including several on Java.
Read more about Dr. Edward Lavieri