Tag Archives: games

customer feedback and early access

Just before the holidays I completed my penultimate semester of college, in which one of my classes was on Software Business, in particular about starting one. One of the most important things we talked about in the class was customer validation before you begin making the product. Before you write the software you find out what it is that the customers wanted. In the course of the class we formed groups that acted as start-ups and we did surveys to find out if people would actually buy the software we were going to make. (Most of the groups were just in it for the grade, though a few were planning on taking their business ideas beyond the scope of the class, for which I applaud them. I was certainly not one of them.)

The point of the exercise was that before you put a lot of effort into making a piece of software you should figure out if people will buy it, and what they’ll be willing to buy it for. As Steve Blank said “No business plan survives first contact with the customer.” So, better to have that contact before you invest time and money into that business plan.

This also applies to the game industry. When you are making a game you want to make sure the game is fun to play, that the mechanics work and that your players understand your story. As you make the game, though, you get blinded by your own bias and you become unable to see the flaws, the things that might be unclear, or the things that might not be so fun. In order to make sure you have the best game possible you want to get outside input. Just like in the software industry many companies will do an alpha or a beta release.

In comes “early access”. In the past year we’ve seen more and more games starting to get released under the early access system, either on Steam or through their own sites. The idea behind these games being released in this way is that developers can get player feedback so that the game can be even better.

Cube World, being developed by Picroma, currently in alpha
Cube World, being developed by Picroma, currently in alpha

From the Steam website:

We like to think of games and game development as services that grow and evolve with the involvement of customers and the community. There have been a number of prominent titles that have embraced this model of development recently and found a lot of value in the process. We like to support and encourage developers who want to ship early, involve customers, and build lasting relationships that help everyone make better games.

This is the way games should be made.

There is merit to this, and there are success stories that show that early access to a game can help the game develop into something great. Minecraft, for example, exploded in popularity during it’s alpha and beta releases, giving the developer Mojang access to mountains of player feedback. It’s a game that continues to evolve even today, each new release adding more to the game.

Unlike a pre-purchase of the game you get access to it immediately, and from the get go you can play the game in it’s current form. However, both pre-purchase and early access come with one inherent problem:

You are buying a game that is not finished yet.

When you pre-purchase a game you are paying for something before it has come out. You have no idea, and no way of knowing, if it is any good. With early access you are paying for a game that is in progress, but you also have an opportunity to be a part of the game’s development, which is a unique opportunity. However, you have to keep in mind, the game isn’t done yet.

Hearthstone, Blizzard's digital CCG, currently in closed beta.
Hearthstone, Blizzard’s digital CCG, currently in closed beta.

There will be problems, there will be crashes, there will be changes, there will be bugs. As long as you understand the risks associated with purchasing an early access game then there isn’t a problem. Getting early access to a game is a great opportunity, however, early access in itself as a business model is doing damage to the gaming industry.

Not everyone understands that the game isn’t finished yet. When the game is released to the public in an unfinished state it effects the way that people view the game. When the crashes and the bugs happen those become what are focused on, and it does damage to the game and to it’s development cycle. People who were at first excited about the game coming out start to lose interest, and the game can die before it’s even finished.

If you want to be a part of the process, if you are interested in seeing the game in it’s early stages, if you are willing to put up with the problems and the crashes and the bugs than by all means, by that game in early access. I myself have played a number of these early access games. The important thing to keep in mind is this:

The game isn’t finished yet.

You can’t judge an alpha or beta game based on it’s current state. The game isn’t done yet, so don’t judge it based on what it is, but on what it can become.

toxicity, anonymity, and the word ‘noob’

For some context take a look at this article on Polygon, which talks about online harassment and cyber-bullying targeted at game developers. A very good read, and it got me thinking about this topic.

Toxicity is not something limited to online games, but it is one of the places that it seems to be the most prevalent. When I look back on the last few times I’ve played online multiplayer games I can recall at least a dozen cases of toxicity. Trash talking, insults, cursing, blaming other people on your team, these are just a few of the ways that toxicity comes into place in these types of games.

Why? Honestly, what purpose does this serve? Why do we feel a need to be so toxic when we are playing games?

One of the last time I played Dota 2 I had a particularly bad experience with a particularly toxic player. I am still fairly new to Dota 2, and one of the problems (and one of the intriguing parts) of single draft is that you will often end up with a hero that you have never played before. This was the case, and as such I was floundering a bit. One player in particular got annoyed at me, and in the chat consistently berated me for every perceived mistake, including every time he died and I was nearby. (In one of these cases he claimed that I should have sacrificed myself so he could get away because he was losing too much farm or something.) Now, I will admit that I am not a great player, and I am sure that I was making a lot of mistakes that game, but the abuse (I do not use this term lightly, the level of toxicity was abusive) was completely uncalled for.

The thing I found very interesting in this case was that on our team this particularly toxic player had the second lowest level, had the least kills and the second lowest gold per minute.

In my experience I’ve noticed that good players don’t trash talk. Good players don’t need to blame others, they don’t need to get inside their opponents head, they just play their best and usually win. The players that resort to toxicity are generally not that great, to be frank.

Recently I’ve been prompted on YouTube several times if I want to use my real name instead of an alias on my channel and in comments. I’ve turned this down, but it make me question the motivation to this push. YouTube comments are most certainly one of the few places on earth where you can find almost incomprehensible amounts of ignorance, stupidity and toxicity. I think if people would read their comments aloud it would stop a lot of it, but I think there is an entirely different cause as well, at least for the toxicity part: anonymity. On YouTube you hide behind a username, no one has any idea who you are, and when hiding behind a mask it’s really easy for our ugly sides to come out.

I personally think that if everyone on YouTube were to use their real names it would stop most people from making toxic comments. Of course, there is a whole slew of privacy concerns with that, but I think that it would at least alleviate a large amount of toxicity on YouTube.

When we play online games, we are essentially hiding behind a mask. We are known by our usernames and gamer tags, and in a way those become an entirely different identity, and in a lot of ways disconnected from who we are in person, and a lot of people really aren’t worried about soiling that second identity because it’s distinct from them. This is another root of toxicity, this idea that you are anonymous online.

It needs to stop. There is no need for it, and it just harms the gaming community. There is a reason that gamers are not taken seriously in society, why when it’s discovered that a political candidate plays World of Warcraft it is heavily criticized and becomes news. We as gamers are perceived an immature, toxic and disconnected, and a large part of why is that this sort of behaviour is so common in online interactions. Are all players that way? Not by a long shot. Enough are, though, to make this a serious problem.

I wanted to finish off with one more point. There is a word that float around in the gaming community, a derogatory term that I feel needs to be buried once and for all. This word is ‘noob’. In no other activity that I know of is it a bad thing to be starting. In almost every other social activity and/or social circle/group that I know of people are happy when new people show an interest. Every time I am at the game store playing Magic the Gathering I am really happy to see someone there playing in a draft for the first time. In my experience people are more than willing to help the new player learn the (admittedly) complicated rules of the game, to help them feel welcome, and to get them to want to play more.

However, a brand new player jumps on to Dota 2, and immediately everyone in the game is yelling at them, calling them a ‘noob’, and telling them to go home. How is this alright? I don’t understand why some gamers are so quick to try and chase away anyone who wants to share in their hobbies? It doesn’t make any sense to me, and I have a strong urge when I hear (or see, as the case may be) the word ‘noob’ to punch the perpetrator in the face. It needs to stop.

first impressions: PyGame

So, I’ve decided that every time I use a new language or framework for the first time, I will write a little first impressions post about it.

This spring term I am taking a computer graphics class, CS 455 at BYU for anyone interested. It has been a really interesting class, and the projects so far have been both fun and informative. The latest project we were assigned to do was an Inverse Kinematics solver. If you don’t know what Inverse Kinematics means and you want to, you can read about it on wikipedia, but that’s not the point of this post.

We were given a framework, basically a starting point, using XNA that we could use for the project. Well, I ran into a little hitch there when the CPU in my nice gaming machine died. My gaming computer was also my only windows machine (I run Fedora on my school laptop). So… now what?

I decided I would need to learn and use a different environment, language and library to do the assignment. Being a big fan of Python I decided to try out PyGame, a library designed to help make 2d games.

This is, of course, a first impression, I have only spent about 8 hours total working with the system, but here are some initial thoughts after completing my first project in PyGame. First, a screenshot:

Screenshot from 2013-05-23 00:27:06

Syntax

Well, considering that this is a library for Python the syntax is, well, Python. That is a huge plus. Even if you are not familiar with Python syntax it is pretty simple to learn (unless you are an experienced C-related language programmer, then the lack of brackets and semi-colons might drive you nuts). It is a library that is simple to use for both experienced an inexperienced programmers. The entirety of the IK solver took only 155 lines of code.

PyGame itself plugs into Python like any other module. It provides a bunch of classes, methods and constants that make interacting with the game window really simple. Here is my displayPlanks method, which is used to draw all of the planks that make up the arm.

Before calling this method we already know where each plank is located as well as how much to rotate the image of the plank. We also know the position of the end-effector (represented graphically as a baseball). This method simply takes the image of the plank, scales and rotates it for each segment, and then prints all the planks and the baseball to the screen. All of that happens quickly and without a lot of code.

Documentation

The PyGame module is pretty well documented, and everything I needed was pretty easy to find as well. However, I must say that the color scheme used for their online documentation is pretty hard on my eyes.

Additionally, I was able to find some examples of some of my problems easily enough on google. There is also this free online book that is a pretty good resource to learn how to use PyGame, I only read chapter 2 and half of chapter 3, but it is easy to understand and is a pretty good resource for anyone interested to learn PyGame.

Power and Capability

This was a simply project, and I haven’t done a lot of research on this subject yet, but as far as I’m aware, PyGame is not designed to be a heavy-duty game development environment, so I doubt we’ll be seeing any best seller’s coming from it, but it’s simplicity definitely makes it worthwhile and capable of being a good way to prototype and make smaller games.

Conclusion

Again, this is a first impression, so if I have preached false doctrine, I claim ignorance as my defense. That being said, though, I was impressed at how simple it was to learn and build something with PyGame, and I plan to use it in the future for personal projects.

Here is a demo of the IK solver in action:

You can check out the source code for my IK solver on github.