Chapter 2. Game development process

The game development features covered in this chapter are:

  • Gamification
  • Story lines
  • Character development
  • User interfaces

Games are like movies and novels. There should be a story with a protagonist and an antagonist. The protagonist should have an objective, and that objective should require a certain amount of effort to achieve. In our Pencil Adventure game, we have created Steve E. Stencil as our hero. His objective is to save Princess Paperclip from the evil Dr. Marker. Steve E. Stencil has to complete a number of difficult levels and collect power ups along the way in order to save the princess. Our story is simple and very straight forward, which is perfect for an iOS game of this scope. Before diving further into Swift, let’s cover the high level processes used in this book to develop our game, which apply to most game creation.

To make your game coherent and engaging you should create a theme. A theme helps to explain the universe in which the story takes place. Our theme happens to be office supplies. To make the game seem more accessible, we created friendly looking artwork.

There are many examples of great themes, and you can combine them in infinite combinations. Some widely used themes are dark and gloomy crime worlds, gritty cowboys in the wild west, elves and orcs in fantasy worlds, and more.

Your best bet is to start brainstorming. Write down all of your ideas and score them. Once you have a number of ideas, take your pick and try to create a prototype. A prototype will let you try out how your game feels without having to create an entire game.

When coming up with your game idea, keep in mind how much time and effort you are able to put it into it. You don’t want to end up with a game project that takes years to develop.

Even though there are many different games out there, they all start the same way, with a few lines of code.

In order to build a game that users are really going to engage with, it is important to understand common components shared across many game types. Most games are comprised of reward systems (also known as “gamification”), story lines, characters, and interfaces that are used to cater towards a target demographic.

Reward systems and gamification

Reward systems are often necessary in a game to help the player understand their progress, stimulate their sense of accomplishment, and encourage social actions. These reward systems are accessible within iOS games by leveraging Apple’s own Game Center platform. Game Center has boilerplate support for badges, leaderboards, point systems and social sharing. These reward systems tie into a much broader concept called gamification.

Typically, gamification takes the best aspects of classic games such as the pure joy, frustration, design, or challenge; and applies these aspects to a range of real-world processes within an organization or existing network. Within our own application we will not leverage many aspects of gamification, but the topic is important to understand at a high level nonetheless. Using gamification can turn a non-game application into a game, and can help you build better reward systems within classic game applications as well. The Gamification Wiki has great examples that outline how various companies are adopting gamification and what their results have been. Earning points, badges, or currency is a common implementation of gamification used across many industries, and it is adopted heavily in the video game market.

While gamification has many granular components to it, within the context of our Pencil Adventure game, we want to focus mostly on player engagement. A player engagement loop is a great paradigm to think about with any game. This loop helps you identify the key calls to action that will bring the user back to your game more frequently, as well as keep them playing the game for a longer period of time. Generally speaking, a well balanced loop, along with great game play, will create more predictable player behavior.

Alt Text

Story lines

For Pencil Adventure, our story line is simple: a hero is out to save his beloved princess from an evil villain. It is a story line common to many popular games like Mario, Zelda, or Sonic. A story line should be easily described in one sentence to give the game clear and concise direction. After a simple story line is established, it then becomes easier to elaborate on the narrative of the game.

In our game, we want to pick an original setting and theme to differentiate it from other hero-based platform games. We will use a setting and story line revolving around illustrating. This helps us envision various levels and story lines we can create. When illustrating, pencils are a joy to work with, except when the lead runs out. Erasers can be a life saver, yet markers are bold, but not as easy to work with. Paperclips, paper, staples and desks all come to mind when thinking about illustrating. These pieces should start painting a visual picture (pun intended) in your mind for how you could create levels and story lines for Pencil Adventure.

Character Development

With an established story line, we can now start naming our characters and thinking about how they look and behave. Our hero could be a pencil, which is an illustrator’s best tool, that is fighting against his rival, the evil marker. Since we’ve established a simple narrative for a hero, a princess and a villain, it becomes easy to think of catchy names. While creating this game, the authors tossed around a good number of ideas for the characters: Steve Stencil, Mr. Pencil, Mrs. Pencil, Evil Dr Marker, Princess Paperclip, PencilMan, and so on. It can be difficult to establish catchy names, so it is often a great idea to bounce ideas around with others after explaining your story line.

Drawing the characters is the really challenging part in the process of character development. Coming up with a great character name and animating various aspects of the character’s movements within the game are actually fairly trivial by comparison. In our game, Steve needs to run and jump throughout the scene. To do this, we will have to create an animation by looping through a set of images.

A sprite is a simple set of images that when shown in order create the appearance of movement. If you have ever drawn a ball on different pages of a notebook and flipped through them quickly, then you have actually created an illustrated sprite in a sense. For our sprite we are going to create a few frames of movement for running in which the right and left leg will alternate positions back and forth to create the appearance of running.

Alt Text

When creating an illustration, there are different ways to get started. Many game developers will actually borrow a sprite from an existing game to start with. Sites like SpriteDatabase.net exist for this very reason, but it is extremely important to remember that these assets are copyrighted and should not be used or released in any way to the public. If you are creating assets completely from scratch, it is often easiest to sketch them out with pencil and paper and scan those images in to make them digital. Tracing or creating the final sprite with a vector program (a list of which can be found at the end of this book in the “tools” section) is a great practice so that you can easily make adjustments and render them at different sizes.

You can read the full source code of our Pencil Adventure game here on Github.

User Interfaces

A game, like any application, is still subject to user experience and navigation. It is imperative that a player understands the rules of the game, how to save their progress, and so on. These various views require interfaces and navigation that are easy to understand, yet non-intrusive to the experience of game play. Designing these components can be especially challenging on mobile devices where screen space is limited, but there are many elegant ways to tackle these issues.

With complex games, it is often customary to introduce a player to a tutorial that will show them how to play a game. Creating a presentation of images that annotate these instructions is often easily implemented and can significantly reduce player frustration and confusion. In our game, there is really only one action the player must do: tap the screen to make our character jump. While trivial conceptually, this may not be intuitive by default, especially if the player has never played a similar game. So, on the first open of the game we can easily create a screen that annotates this, with an option to dismiss the message and never show it again. We can also instruct the player on how to save the progress, and many other aspects of our game play on this tutorial screen. 

Alt Text

Each screen should contain the controls needed to operate that screen. The game play of the application may feature pausing or the use of power-ups. All of these features should have visual representation on the screen with consideration given to the use of gestures where appropriate. Many games will follow a pattern of a single “back to home” type button, in which the user can navigate out of the game play and to a screen that allows them to navigate to other windows such as leaderboards or settings. Each game has unique properties and challenges, so it is probably a good idea to get inspiration and ideas from games that are similar to what you want to build.

Identifying your target audience

Analyzing the most active video game playing countries, studies show that the average gamer is in their mid 20’s and has been playing video games for nearly a decade. This doesn’t provide a long history to base target demographics or player psychology on, but you can make some fair assumptions with this data to narrow down the target audience.

The Bartle test of player psychology was developed at the turn of the century to help identify and classify players of various game platforms. While the test was originally based on multiplayer online games, many players across different systems and game types have been surveyed, and many factors of the test are found to be relevant to all types of games. The test identifies and categories players into a grid calculating their levels of killer, socializer, achiever, and explorer.  The test is comprised of 30 questions that total a 200% score across all four quadrants, with no quadrant having a greater value than 100%. Killers and socializers follow the negative x-axis, preferring to interact with other human players instead of AI, while Achievers and explorers tend to enjoy the process of uncovering new aspects about the game itself by interacting with other players. This player behavior is then divided along the y-axis to separate the players preferences toward acting and interacting. Acting and interacting are easily understood if, for example, you identify a first person shooter as acting and a sandbox game as interacting.

Alt Text

For many of these player types, we can dissect elements of World of Warcraft (WoW) which is a very feature rich game, to identify which elements of the game appease the various gamer types. WoW is a Role Playing Game in which the player customizes a character and makes them stronger by playing quests, battling with other players, collecting items and gold, and exploring new regions of the game. To date, it is one of the most popular games, and has had more attention both good and bad in various forms of media.

Summary

In this chapter you have read about how you start developing your game by creating a story, a theme and the characters who live in your world. We touched on the basic foundation that all games must have, like the ability to save the players progress.

Throughout the book, keep all of these basic principles in mind, and ask yourself periodically: what type of component is this (character, story, gamification, interface or player) and how would the various player types (achiever, explorer, socializer and killer) interact with it.

Now that we have identified the biggest components of what a game is made up of, it is finally time to dive into some code and apply this knowledge to our own application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset