Thursday, November 28, 2013

Video Game Guides

I recently wrote a guide for League of Legends, which can be viewed here.

Guides are a unique piece of literature and I had fun writing my first one. It's a way to share your experience of a game with others, and is aimed towards improving others' experiences.

It was a new exercise for me as I've never written something like it. The classic literature elements are all there. It is essentially and informative piece, but there is little support for citations. There is room for passion, and it comes out as you describe your experience.

Writing a video game guide is something I recommend to anyone who thinks they have a unique perspective of a game and wants to share that. In terms of video game development, I think it is important for a game to have social aspects. I cannot play a game that is not social, because it makes me feel lonely. If a game does not have social elements in-game, I think a good alternative is through forums where people can share their experiences with others.

Wednesday, November 13, 2013

The Zynga AMA

This post is devoted to my analysis of this Reddit Ask Me Anything by a Zynga Developer.
2 currencies - 1 can be earned in game easily and can unlock most content. Easy reward to give players. The other could be earned in tiny amounts, and bought in large amounts. The most successful games were fun without the second currency, but made plaeyrs always want it.
I love that they mention this. This is my favorite part of a Freemium model to analyze.
various things over time - serve the game in limited bites, and make the player come back for more. this will create a lasting relationship with the customer, which is vital since players very rarely pay anything on the first day they play a freemium game.
This quote connects so much with my previous blog post.  Making the player come back for more is closely tied in with the two currency model. This is accomplished by slowly rewarding them with currency over time.

I partially disagree with the second half of this quote. Getting a player to pay for the game doesn't have to be through repeated and throttled play. Zynga games benefit from the gated gameplay through energy/stamina/require x number of friends, but that isn't the only way to do it. For example, League of Legends is free to play and allows for unlimited play. This makes the second currency more invisible to those who don't wish to pay. This is an important component towards making a game whose intrinsic value is within the gameplay itself.

Monday, October 28, 2013

Free to Play: Part 2 - Keeping the Game Relevant

The free to play model usually includes daily or weekly rewards for playing the game. This reward is usually comprised of free in-game currency that substitutes paying to play. These rewards support the free player community in a game that would otherwise be overrun by pay to player gamers.

This model is obvious. Free to play games need a way to keep players who don't pay for services (skins, levels, etc.) to feel like they are still getting the whole experience. That effect of daily rewards is obvious. Without daily rewards, free to play gamers have no way of free progress (unless there is something else built into the game). There's a subtle side effect here that isn't so obvious.

Providing daily rewards keeps the game relevant. The user is rewarded for playing the game every day. Users don't want to miss out on their rewards, so at a minimum they will log in and play to get those rewards. This forces the user to play in a situation when they would not otherwise. By forcing the player to play, the game has a better chance at keeping a larger player base. This larger player base attracts users, which means more players are talking about the game. A combination of larger player base and more play time keeps the game relevant.

Friday, April 12, 2013

Mobile Games: Part 1 - Game Controls

I recently did an analysis of apps for my android class. I looked at two video games on the Google Play! store: Fruit Ninja and Temple Run 2. Here are some excerpts from that assignment.
Fruit Ninja is a video game where the main objective is to slash fruits in half for points. The fruits get thrown into the air and fall before the player’s screen. The player must slash the fruit before they leave the screen without hitting any bombs. Slashing is controlled through a swiping touch motion. This kind of game control is a lot of fun to use and unique to touch devices. Slashing different fruits can provide power-ups, and there are multiple game modes. There is also a Kinect version which melds the Kinect controls masterfully. 
Gameplay may be seen as simple. There is only one type of player input (swipe). This makes the game repetitive. The different game modes helps counteract the repetition, but the different modes share the same set of controls. It would be nice to have different controls between modes as well.
Temple Run 2 is a 2.5D video game that involves progressing through a continuous dungeon. Gameplay for Temple Run 2 is similar to running on a treadmill. The player runs automatically along a path, and they control choosing direction (left, right, jump, duck). The directional controls are input through swipes in the corresponding direction. Examples include balancing a mine cart and jumping over logs. 
The simple gameplay can get repetitive. While there are a lot of gameplay mechanics, the level is more or less the same on every playthrough. There aren’t multiple game modes like in Fruit Ninja.
Through these analyses, I learned a couple things to make good mobile apps great. Mobile has unique player input, and that needs to be exploited. Mobile games need to be written for mobile controls (no buttons! swiping is awesome!). I also learned that multiple game modes can be simple to implement, but help increase the lifetime of a game. Simple gameplay, while usually unwanted in the AAA console games market, is doable in the mobile world. However, you need to implement good variety and exciting player feedback to correctly take advantage of this. Mobile games is a unique genre which I hope to learn and share more!

Sunday, March 31, 2013

Upcoming Events

1. Free to Play: Part 2 - Keeping the game relevant

2. Graphics Series

3. Mobile Games: Part 1 - Game Controls

Statement of Purpose

The purpose of this blog is to create a database of video game based knowledge for developers. I wish to use my experience as a video game player and developer to write blog posts which analyze aspects of video games. My inspiration comes from a graphics thread post which analyzes the graphics of Legend of Zelda: Wind Waker. Hopefully I can contribute to the video game community in meaningful ways through this blog.

Free to Play: Part 1

Implementing Pay to Play

"Pay to Play" is a model that free to play video games use to generate income. The model makes players pay money to access features of the video game.

I recently started playing Pokemon Trading Card Game Online, a free to play game which implements pay to play. Trading card games, such as Pokemon, Magic, and Yu-Gi-Oh! have been using the pay to play model since they were created. In order to have a fantastic deck, the player needs to buy booster packs or the correct cards so they can implement their strategy. Naturally, Pokemon TCGO uses free to play, requiring the player to buy the physical cards which contain a code to unlock cards for the online game. This unlock comes in the form on booster packs and booster decks.

When Pokemon TCGO was in beta, this was the only way to get extra cards. This is the usual implementation I see in pay to play games. However, when the game released the developers added a system that allowed players who didn't want to pay for the game to get booster packs too. Every five days of logging in, the player would be rewarded with a booster pack credit. This way, players who want to pay to play still have the opportunity, but players who don't want to play don't feel completely cheated. Yes, free players don't get cards as quickly which means they are hindered, but the gap between the two types of players isn't as large.

League of Legends uses this form of pay to play perfectly. The two currencies used in the game, Riot Points and Influence Points, have different sources yet both can be used to purchase champions for the game. Riot Points are bought with money and can buy special skins for champions. Influence points are earned by playing games, but cannot be used to purchase skins. Every day, the player gets an Influence Points boost for winning a game. Once again, by paying a player gains access to champions more quickly by paying for them, but free players can still earn those champions through playing.

These two video games have pay to play implementations which nicely allow two different types of players to play together. One of the most difficult challenges for a game developer is catering to multiple types of gamers, may they be hardcore or noobs or otherwise. These systems close the gap between pay to play and free players by allowing free players a daily/weekly opportunity to unlock features of the game. By catering to both types of gamers, the free to play game can collect a larger play base.

TCX Map Editor

The following a blog post I wrote for a video game I developed in a team of four Winter 2013.

During one of our early meetings with our professor, Dr. Zoe Wood, Zoe stressed the importance of having a strong map editor early in the development process. Because the focus of our game is competitive multiplayer, a balanced map would need to be created and recreated in order to achieve our goal.

I started with the concept of the best map editor I've had experience with - Halo's Forge. As a long time Halo fan, Forge is the first thing that pops into my head whenever someone says map editor. The success of Forge is displayed by the numerous community-made maps which Halo pushes into its multiplayer playlists.

When I started designing, the first thing I knew I needed was a virtual trackball. Forge uses the virtual trackball to help place map pieces, and I had already written one as per the requirements of CPE471, Introduction to Graphics, last quarter. The virtual trackball allows the user to manipulate objects through translation, scaling, and rotation.

By the 25% demo, I had a simple map editor. It featured 10 cubes all on virtual trackballs, indexed for selection between each other, but I had so much room for improvement. First I added mesh selection, which changed the object from a cube mesh to a rectangle mesh to a cylinder mesh and much more. I also made the list of meshes dynamic, allowing the removal of meshes and the adding of meshes to the map via buttons.

I ran into an issue at this point. Mouse controls are very good for manipulating an object in 2D space. There's an x-axis and a y-axis to derive inputs from. However, the map editor was in 3D space, and I had no way to control a third axis from the mouse. I decided the quickest solution was to add two buttons to control my third axis. Mouse controls move the objects about the x-axis and z-axis (flat on the floor) while the two buttons control up and down movements (the y-axis).

The map editor has changed as per the specifications of the project. Recently I've added territory and spawn locations to the map editor, and I'm sure there will be more to add later in the quarter.