Sec1_Group1_MS4_Paper.doc - Cal Poly Computer Science

Alan Yeh
Ashley James
Brianne Elliot
Shobin Mathew
Sonja Mayr
Introduction
The title of our game is “Animal Kingdom”. The background story of the game gives
the context on which the game is based. The story begins with a prince who was not
supposed to wander off into jungle for his own protection because it was forbidden by the
kingdom. Against the wishes of his controlling father, he decided to venture into the jungle
anyway. Once in the depths of the jungle, a toucan flew over to him and landed on his arm.
The prince scowled in disgust, for a toucan is a simple creature and the prince felt he was
far superior. He waved the toucan away without another thought. Suddenly, a wizard
appeared before him. The wizard told the prince that he needed to be taught a lesson and
to understand how it felt to be such an animal. The wizard set a curse on the prince,
immediately turning the prince into a toucan. At this point, the game begins.
The purpose of the game is for the prince to learn to live as different kinds of
animals in order to be humbled and to better understand the kingdom of animals and all
those who belong to it, starting with a toucan. The other animal avatars that are featured in
the game are a crocodile, snake, and zebra. The prince, who the player is controlling, will
transform into the different animals throughout the game.
The game is set up as a eleven by twelve “board”, containing 132 tiles. Each tile has a
different graphic on it that represent nature commonly seen in the animal kingdom. The
background of the game board is dirt, which is the common tile throughout the game
board. Other graphics featured on the game board include grass, water, cherries, plants,
deer, mice, and fruit. Each animal avatar can only move on the game tiles that pertain to
their character, shown in graphic form to the left of the game board.
Each animal avatar can only go on the tiles of the game that are “safe”. Specifically
for the toucan, the safe tiles are the cherries, the plants, and the dirt tiles, which are the
background of the game board and safe for everyone and do not give points for being
landed on. The other tiles will kill the toucan if it lands on it, and the game will be over. The
goal of our game is to get the highest amount of points as possible, which are achieved by
moving throughout the tiles. The player gets ten points for each safe tile landed on. The
safe tiles for each avatar are as follows: zebra, plants and cherries; crocodile, water, deer;
toucan, grass and cherries; and snake, grass and rats.
A power-up tile may randomly appear when the player is playing the game. The
power-up can be used while the player is any animal avatar. When the player lands on a
square that contains a power-up, the player because invincible for a short period of time
and can collect points from any tile that has a graphic image on it.
After an extended period of time the player’s avatar, starting with an animal avatar
randomly selected by the computer, will change to a different animal in the animal
kingdom. The player must eat, travel and live as that animal would. With this new animal,
the game rules change and some of the safe tiles may become unsafe, while tiles that were
previous unsafe may be acceptable for the new animal to step on. This information will be
made available to the player through a rules dialogue after the opening sequence and
before the game play.
The player’s avatar will continuously change into a different animal avatar that has
its own rules for gameplay as the game continues. The player will know when their avatar
is about to change because there is a countdown clock on the side of the game screen. Right
before the animal change, the game screen will flash red for about 4 seconds. The player
needs to be aware of what tile their animal is on when it is about to change because if it is
on a tile that the animal is intolerant to, the game is over.
For the normal controls of the game, the player uses the right, left, up and down
keys to move their avatar around the game board. The game screen moves down to bring in
new obstacles for the player, and if the player is stagnant on the play screen their avatar
will remain on the same tile move down with the game board. The player cannot move in
any direction beyond the parameters of the play screen. If the player is at the bottom of the
game screen and the game moves down so the avatar is below the game screen, the game is
over.
The objective of the game is to stay alive while gaining as many points as possible.
The player starts out with 200 points and gets 10 points of each safe tile landed on. On the
game over screen, the player is shown their score from the game just played as well as the
highest score achieved by that player. The player is essentially playing against him/herself
to the highest score possible and beat his/her previous high score.
The game increases in difficulty once the player gets to 500 points. At this point, the
game speeds up, making the player have to move the avatar faster to keep up with the pace
of the game.
A shield is available for when the player is surrounded by unsafe tiles. When the
player presses space bar a shield will appear to protect the avatar for one tile. This means
that the animal avatar can move across one unsafe tile when the shield is turned on. The
more points the player has, the more tiles the player can go across with the protection
shield. However, each square they use the shield on will subtract 50 points from their
overall score. To remove the shield, the player just needs to press space bar again.
Design
According to Kate Salen and Eric Zimmerman, authors of Rules of Play, meaningful
play is the goal of successful game design. Without meaningful play, the game will not be
one that the player will want to continue playing. It is formed from the interaction between
players and the system of the game, as well as the context in which the game is played.
There are two different types of meaningful play that will be discussed: descriptive
meaningful play and evaluative meaningful play. Descriptive meaningful play emerges from
the player action and the system outcome and is the process in which the player takes
action and the system responds to that action. Each different outcome of the action creates
a different meaning. The meaning of an action lies specifically in this relationship.
Evaluative meaningful play is what occurs when the relationship between actions and
outcomes is discernable and integrated into the larger context of the game.
Allowing the player to make choices is how meaningful play is achieved. When a
player makes a choice, like in our game by making decisions on where to move the avatar,
when to use the shield, how fast to move, among multiple other choices, the action of that
choice results in an outcome. Each action taken results in a change that affects the overall
system of a game.
Feedback is a way that an action can derive meaning. In Animal Kingdom, the player
receives feedback when they move on a tile with safe items, which causes an outcome of a
gain of ten points. The player also receives feedback when they move onto an unsafe item,
causing the game to be over. This play becomes integrated so that the player realizes that
the more safe squares the avatar moves on, the more points are gained to beat their high
score. This game takes on a negative feedback loop, meaning that as the player continues to
excel in the game, the game increases in difficulty. As the player gains more points and lives
through avatar transitions, the game speeds up, continually increases the difficulty of the
game. The player is motivated to continue playing the game because the player will need to
work on their strategy and increase their skill in the game in order to stay alive longer and
gain more points.
When a player makes a choice that results in their avatar becoming dead, the larger
context of the game is involved because of a choice that involved the game ending.
Descriptive meaningful play is achieved in the moment-to-moment decision making, when
the avatar moves from tile to tile, gains points from safe tiles, uses the shield, and lands on
a power-up. Evaluative meaningful play is achieved when the player’s choice results in an
outcome that is integrated into the larger concept of the game, such as when the player’s
avatar lands on an unsafe square and that round of the game is concluded.
Uncertainty in our game is a key factor in achieving meaningful play. The two types
of uncertainty are micro and macro, both of which Lion Kingdom achieves. Micro is the
moment to moment uncertainty in the game. The random animal transformations are
unpredictable and add interest to the game. This is a change that happens within moments
of each other in the game, which keeps the game constantly changing from one move to the
next. Macro is the uncertainty of the outcome. The purpose of the game is to get the highest
score possible. One wrong move could end the game for the player, making the uncertainty
of when the outcome will occur by chance, which addresses the player’s skill. In order to
have a successful game, micro and macro uncertainty must both be unpredicable, which is
accomplished in the game.
The imperfect information available to the player in the game adds to the
uncertainty and predictability of the game. At the beginning of the game, rules are stated
and hints are given. However, all strategy and rules are not given, which adds mystery. The
hidden information is for the player to play continuously and find out. For example, if the
player is on the top four rows of the game board, the game speeds up, allowing the player
to collect points quicker. This is not a tip that is given to the player, but is used as imperfect
information for the player to figure out for themselves.
Our game does not allow for any obvious strategy. Negative feedback loops adjust
for player skill level; the game begins to speed up after the player reaches 500 points and
increases in speed continuously for each additional 100 points. This adjusts the game for
stable play: as the player gets better at the game, the game gets harder to play. This makes
the player want to continue playing because the game does not get boring because it is not
easy to beat.
Although there is a negative feedback loop for adjustments for stable play, a player
needs to be rewarded to have balanced game play. Our game offers an award in the form of
a reward of facility. Rewards of facility allow the player’s avatar to do things it could not do
before. These kinds of rewards increase the strategies and options the player will have for
playing the game. The power-up in our game acts as a reward of facility because it turns the
player’s avatar into a lion, at which point the lion can move through and gain points from
all squares. This reward has variable reinforcement, meaning it appears randomly on the
game screen throughout game play. The power-up is an example of how we use imperfect
information in the game. The power-up adds uncertainty and increasing meaningful playplayers become excited when they are “invincible” in the game for a brief period of time.
Rewards are also offered as a reward of sustenance. This kind of reward maintains
the player’s status quo and keeps all of the things in the game so far. When the player is
stuck or is in a position where they need to go through an unsafe tile, the shield is available
for use to make this possible. This way, the player doesn’t have to lose the points they
gained during game play.
Implementation
This diagram practically covers exactly how we organized our game.
In essence, we had an actionscript class for every symbol we wanted to call or control with
actionscript. We had the document class start off all our screens; menu, play, and
gameover. We used inheritance on some classes to extend the coding onto more specific
classes. For example we had our different types of squares extend class square, and our
different types of avatars extend class avatar. The maze was then used as a
multidimensional array to store all the squares, within which animals would be placed
randomly.
All symbols are made and controlled by ActionScript. Beginning with a constructor,
start-grid, we coded the objects to do as we wished through the extent of our ActionScript
knowledge. Through the onTick function, we used many constructors to build our game,
such as the create new row and move avatar.
Throughout the implementation of the game, there were countless problems that
took some creative thinking on our part to figure a solution around them. These problems
are thoroughly covered in the iterative design section. An example of one of the more
challenging issues would be when we realized that players could just get stuck with no way
out. We had at first tried to program the maze in such a way that we could control the paths
through making the player have to think ahead. This, however, proved too difficult to
program for and it made the game less entertaining. We then came up with the idea for a
shield in which it would cost the user a notable sum of points to solve this issue. The
thought of losing too many points and the threat of death if the player doesn’t have enough
points to use the shield prevents excessive use of the shield. Another example was when
we tried to toss in a power-up as a perk. We met some difficulty in program random
squares within the maze to hold the power-up icon which, when the avatar lands on it,
would change the avatar to a lion with the ability to travel on all squares for a few seconds
before another avatar change takes place. Despite some difficulty in this we managed to
program it into the game by slowly chugging away at it and just using the same coding we
used for the other parts of our game, with some slight modifications of course.
Iterative Development
In order to create a well-rounded game in the short amount of time we had, we
first decided on the genre of the game. We noticed that a lot of the popular games available
on mobile devices and on flash websites are very simple, yet highly addicting. We wanted
to focus on a puzzle because they tend to be simple yet very enjoyable. The first idea we
had in mind was a game that involved blocks moving through common colors, very much
like a maze. Specifically this was a game of emergence; a game where a simple set of rules
will be applied to a set of objects. If it was a game of progression a large number of rules
and a small number of outcomes, which will lead to little meaning to play the game again.
Our first meeting, we started to brainstorm certain themes, a few ideas included
an outer space theme, Iraq war theme, gangster battles, and a safari/jungle theme. We
decided on the safari/jungle due to the number of animals we could possibly work with.
This theme allowed a lot of versatility because we could work with many different animals
and associate them with certain blocks; much like a food chain where specific animals
could only eat certain foods. The theme also allowed us to create a creative storyline, which
I explained earlier.
Since our group wanted to focus on a specific animals eating specific items we
decided to think of different animals and different items they could possibly eat. Starting at
the top of the food chain we wanted the Lion to be able to eat anything, which we
incorporated into a power-up and I’ll go into further detail about that later. Then down the
food chain would be other carnivores such as alligators could eat deer and travel through
water. Zebras could eat grass and travel through dirt and lastly, an insect would only be
able to eat fruit and grass.
Onto what would be required, our group started to vigorously learn actionscript
in order to contribute into the development into the game. Graphics were the first priority,
so we started to create rough outlines of the animals needed in order to link the images to
the actionscript and create any type of functionality. Our group imported the images into
flash so one of us would be able to start on the programming.
The design process began after we created the first prototype of the game, which
involved basic graphics and functionality. This prototype included movement of the
animals between squares, a basic layout of the game, and also an end game screen. From
there on we slowly added points and a shield function to improved meaningful play within
the game.
In the play testing process we sent the game out to a number of our friends and
asked them a number of questions. Below is the questionnaire we sent out to people who
played our game. The common responses to our game included, difficulty understanding
the icons in the game, there was really no point to the game and people were able to rack
up points due to degenerate strategies.
Milestone 2 Player Questionnaire
Play-tester: (roommate, classmate, friend, etc.)
Questions asked about rules: (how many)
Time spent playing: (minutes, seconds)
Different scenarios: (i.e., if the ladybug/available squares changed)
Player Reactions: (facial expressions, comments while playing, etc.)
Player Comments: (questions, critiques, suggestions about gameplay)
We began to analysis these evaluations and started to incorporate many new
functions, focusing on improving meaningful play. We went back to the beginning of the
design process and creating another prototype further improving problems that arose
including reducing anxiety from the speeding of the board trying to incorporate positive
and negative feedback loops by adding the Lion power
up.
Source: Wikipedia Commons
Overall, the iterative development was necessary in order to improve our game over the
ten weeks we were given. It allowed us to see faults in our game in which we would never
have noticed if we didn’t allow for play testing. It kept us organized and focused because if
we did not follow the design process the game would be completely scattered. The
incorporate of a theme allowed us to expand and become more creative. It prompted us to
start creating designs and graphics right away and from then on we were able to create a
full functional game in just several weeks, something we didn’t believe we were actually
able to develop in such a short period of time.
Our game was like a living organism going through an accelerated process of
evolution; it was constantly changing and improving. Not only did our basic ideas evolve
into a full blown game design, our game was constantly changing due to discoveries made
through playtesting.
We ran our first round of playtesting when we had a puzzle game with one avatar and
immediately received a lot of feedback for our game development. There were quite a few
kinks to start off with. The worst of all of these was the fact that we failed to remove the
icons after the avatar moved on it resulting in the opportunity for users to use a
degenerative strategy and move back and forth onto a tile amassing an inordinate amount
of points.
The next problem was the fact that we couldn’t program the maze so we could always
have a path for the user to go through, and this would result in times where the user would
just be stuck with no way to move. To compensate for this we added a shield feature which
costs 50 points for each tile movement and without enough points using the shield would
result in death. Unfortunately there would be times where the user started off the game
already trapped with no way of moving, and without any points yet using the shield was a
suicidal choice. To counter this we started the user off with 200 points that way they could
get themselves out of a sticky situation in the beginning, giving them the chance to
accumulate points and potentially use the shield later when necessary.
We also discovered that the game was too easy because of how slow the game board
would scroll down. This meant that once players were accustomed to the game’s
intricacies, it became insipidly easy to attain a high score. We chose to use positive and
negative feedback loops to handle the issue. This was remedied by altering the score
system and speeding up the game board under two conditions; One, the game board will
speed up once the player reaches 500 points and continue to every 100 points from there
onwards. Two, the game board will speed up when the avatar is on the top four rows of the
game board. However, tiles on the top four rows are worth double the points, thus leaving a
risk vs. reward option for the player. We also made the game board slow down when on
the bottom four rows to allow the player to survive when near death.
Another concern was that we had a very insufficient directions menu that did not
provide the players with enough instruction to play the game without our help. This was an
easy fix that we got to in our next batch of updates.
After this we began to implement our additions to the game before the next round of
major playtesting. This is where we made it so the avatar would change randomly between
four different animals, each with their own set of “safe tiles”. We made sure to place a
countdown to each change and the icons of what tiles are safe for your current avatar up
next to the score in-game. We also updated the directions menu and graphics to make
everything clearer and make more sense logically.
After all this changes we initiated our next stage of major playtesting. This shined a
light on one glaring difficulty. Players were unable to constantly keep track of the timer and
puzzle to watch out for the animal transformations as well as the maze navigation.
We then returned to the design board and figured we could add visual and audio
clues to warn the player of an impending animal transformation. With this idea in mind,
we added music to our game and had it change as well as have warning flashes in the last
few seconds preceding the avatar change. With this our game was complete, yet we still
had one more fun feature we had time to add.
Being able to achieve so much and still have time left made us realize we could try
and get a power-up into the game. We managed to add a power-up in which the avatar
would transform into a lion and be able to travel on all squares for a short period of time.
From the game’s birth through our ideas to the Armageddon of fun we now have, our
game evolved from a mere thought into a full blown flash game fit for widespread
amusement.
Since we were still in the process of programming more functions during our play
testing stage as explained earlier, not a lot of features were dropped from the game. The
overall functionality was well developed so it was unnecessary to change any basic
structure. However, we did encounter some issues that many play testers pointed out. One
of the greatest concerns with the game was the point system, since that drove the overall
goal of the game. The second prototype of our game we finally implemented the scoring
system, which seemed to work pretty well at first. However, it impinged on evaluative
meaningful play by creating a degenerate strategy. Players were able to rack up points by
moving back and forth. This lead many players to just rack up points from moving back and
forth instead of navigating through the maze. So in order to fix this we made it so the empty
squares in which all animals can travel through cost no points at all, but the squares that
actually do have items will equal to 10 points and they will disappear after you went over
them.
Another idea that we thought up was showing the next animal change on the top left
of the screen. This was dropped from the game because it would create uncertainty
another way to improve meaningful play. If a player were able to see the next animal
transformation it would make it to easy for the player to prepare themselves making the
game way too easy. This small change will challenge the player to prepare themselves not
only the paths in which he has to navigate through but also the challenges that arise from
each character change.
In order to improve the overall understanding of the game, many of the initial
graphics were scrapped because they were hard to understand. The ladybug, which we
began with, was replaced with a toucan because it didn’t make sense for the ladybug to eat
certain items such as a cherry. Also we improved other icons, such as the leaves because
many people didn’t understand what the icons were. For a well-rounded game it was
necessary to improve the graphics to make the game much more enjoyable.
Lastly, when we implemented the shield we didn’t account for explicit play. When a
player turned off the shield they tend to forget to turn off the shield causing the player to
lose without realizing what happened. This prompted us to create a directions on the menu
screen but also removed the need to press space bar to turn off the shield. As long as the
player pressed the shield on it was unnecessary for the person to turn the shield off
because it will automatically turn off.
Future Work
In all honesty we attempted and succeeded at putting in most of the features we had
in mind for our game. Of course with more time there were some ideas we thought we
could put to action to improve our game’s value. The main focus of these ideas was to place
the games on the widespread market. An example was to place the game on Facebook.
Doing so would allow friends to compete against each other online for the highest score.
The ultimate goal for players trying to reach a high score, is to beat others while doing so;
and what other way is more fun than beating your friends and rubbing it in their faces
after?
Another idea was to make the game available to the mobile market, such as making it
an app for phones. Doing so would require us to convert our game to a different type of
code as well as make some changes to better fit with the intricacies of mobile devices, but it
would be an incredible expansion to our game’s appeal and market. If popular enough we
could even potentially put a price tag on it and make some money to put into the game, and
of course our pockets.
A small addition we figured we could make was to add another type of leaderboard.
This would make the game have two different ranking systems. One of which would be the
score rankings, and the other would be the survival time rankings. This would have players
attempt to not only gain points, but to survive for as long as possible as well. This can
provide for more meaningful play for the player, and more motivation to keep playing.
Other than just adding these feature, we thought of some sub-goals that could further
pique the player’s satisfaction in our game. The main thought we had was the addition of
achievements. You tend to see this more and more in games and it provides the player with
“mini goals” to achieve whilst trying to succeed at the main goal of the game. One idea was
to give an award for collecting so many of one icon. Another was to give recognition for
staying in the top four rows of the game board for a certain amount of time. A final example
was to have a tier of score achievements such that they player is trying to reach a higher
score to beat themselves as well as attain achievements for each score tier.
Conclusion
Our group came together to create a game that we are all now addicted to playing. Our goal
was to create a game that was creative, entertaining, and that we could proudly show to
friends. We managed to implement many of the aspects we wanted to from the start- avatar
changes, a power-up, increasing difficulty, and high scores. We succeeded to make a game
that had cool, cute graphics and an interactive menu screen. Our game features changes
between four different avatars, each of which come with their own rules. We put in a lot of
time, thought and energy into this game, which can be clearly seen by the player. Overall,
we feel proud about how the game turned out and is definitely worthy of being on
addictinggames.com .