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.