Hardcore Gamer is a bad Game Developer

If you’re offended by the title then please hold your horses and calm down! let us define what a hardcore gamer is before you proceed further into reading this blog post. Hardcore gamer that I am talking about is someone who play video games as a primary hobby and tend to spend large amounts (if not all) of their free time playing games, they are those who would turn on their PC/console to play games as soon as they get back from work or school and would only stop playing after they run out of juice.

I am going to start with the reason why it is so, it is simple really: hardcore gamer do not have any free time left to polish their game development skills.

Some of us became a game developer because of our passion in video games. Undoubtedly this passion comes from playing some really fun and memorable games at some point in our lives, we may have spent hundreds if not thousands of hours playing games and then one day we decided to build a career as a game developer and starts making a game that we really love. There is a transition here, where we transformed from a consumer to a creator.

Being a game developer (creator) is different from being a gamer (consumer), it is a very hard path to travel, no matter if you are a programmer, an artist, a designer, or a producer. We are creating a creative product in a limited time with many technical and financial constraints and the available technology and techniques keeps on changing in a very fast pace. If we still have the mentality of a hardcore gamer then we will most likely unable to catch up with the industry, our skill sets becomes obsolete, our techniques becomes in-efficient, and all we can do is criticizing and commenting other games (just like what a consumer usually do).

You may think that spending lots of hours into gaming will increase your game development skills, you may think that these hours upon hours of gaming experiences that you have acquired will help you in designing, implementing, drawing, and producing your game. Well they are not, even if they are they will be very insignificant.

Rather than playing games like a hardcore gamer, you better of learning, polishing your skills, modding a game or just creating something, we have already spent a lot of time playing games before we became a game developer and adding more hours into it won’t do us good in the long run, it’s inefficient and time consuming and it has a risk of corrupting our mind to become more of a consumer rather than a creator. Nowadays, there are many convenient and effective ways to keep up with the latest trend in gaming without actually playing games: there are youtubers, game reviewers, game wikis, etc. Yes, you lose the actual experience from playing a game, but hell, you have had enough experience before you became a game developer, haven’t you?

I am not saying that we should not play games, on the contrary, we do need to play games from time to time. What I am trying to say is that you should never play them like a hardcore gamer do, in which case you will not have the time to polish your skills.

In time management, there is a rather famous diagram called Eisenhower Matrix that looks something like this:

Eisenhower-Matrix

Quadrant 1 is working on your job at a game studio or working on the game you are currently making (professionally) as an indie game developer, Q1 is important and urgent, you will get fired if you neglect your job, or you won’t be able to pay your bills if you’re not releasing your indie game.

Quadrant 2 is polishing your game development skills or doing something that you know will increase your capability as a game developer, whether it’s reading game development books or articles, watching tutorials, trying to increase your productivity by understanding the tools/engine you are using, implementing or prototyping a concept, modding an existing games, learn math, learn color theory, socializing with other game developers or people in the industry, etc. They are all very important, but they are not urgent.

Quadrant 3 is not important but it is urgent, usually it has a lot of things to do with social obligations such as attending reunion, going online in Facebook / snap-chat / twitter / Instagram only to keep our net presence and ‘existence’, login to an online game because the pressure from your online gaming community who misses you so much while you’re at work, going on a trip with a social circle that you don’t even really care about, joining political debates in the internet (it seems very urgent because you need to correct these imbeciles way of thinking, but you have to admit that it is far from important). Their urgency has no meaning because they are not important, but it is hard to let go because of personal insecurity of being shunned from your social circle. I personality think this quadrant is very toxic if not managed properly, oh and yeah, MMO games are in this quadrant.

Quadrant 4 is hedonism and leisure, it is where you spent your time for non-important things, things in this quadrant usually lift the stress out of your shoulder if you can manage it wisely but it is very dangerous if being done extensively up to the point of addiction; This is where playing games are at.

Eisenhower matrix is a very tools to manage our time, the trick is to just hold on to this princile: “The more important things should not be at the mercy of the less important things”. This will make us ends up spending most of our time doing Quadrant 1 and Quadrant 2. Q1 is the presence, it’s in front of our face and Q2 is for the future,  it contains efforts to become better and better at what we are doing.

Quadrant 1 is a no-brainer, we simply have to do it because of our responsibility requires us to do it. For the other three quadrants, we should always focus our effort in Quadrant 2; But most of the time we trade it off by doing Quadrant 3 or 4 because Quadrant 2 lacks the urgency and the leisure, but if you neglect it, it will bites you in the buttocks really hard when there comes a time in which you really need them (which means they shift from Q2 to Q1 because of the urgency), for example, let’s say that you are working as a 2D game artist and you are tasked with drawing and animating several sprites of wolves, and the deadline is in a couple of weeks; If you spent most of your time playing games  you would not be able to do it properly even if there are wolves in it (witcher 3 or world of warcraft) and ended up with ugly animations (or even worse, you can’t meet your deadline because you are still learning how to draw a wolf). It would be a different matter if you spent your free time polishing your animation skills and keep on expanding the range of animals that you can draw, even knowing how to draw a lion would really help in understanding the structure of a wolf, you will have something to start working on, you have the base knowledge to do your things, and you will constantly become a better game developer because you keep on polishing your skills as a creator rather than your skills as a consumer.

The pitfall of creative game iteration

Creating a game is a creative process, we are creating something abstract with one definitive goal in mind and that is “fun” which is as abstract and as subjective as we can get. One method to help us in expressing our creativity is by iterating the game from the bottom up: implement one feature at a time and then implement another feature on top of it and so on and so forth, and we do this progressively in small steps, each feature may be revisited later to be polished or tweaked or even to be changed or disbanded, the whole process is very flexible and it embraces changes which in turn made the game fun. Many successful game developers do this, especially in prototyping and pre-production, and it has become some kind of definitive way to create a game.

I personally think iteration like this is a very powerful method to use in developing a game, but I also see a pitfall that developers who use it may be tripped into: A game development may have a good iteration process but the game development as a whole does not move forward, it’s like a hamster wheel where the hamster feels like it is making a serious effort by running as fast as it could but in reality it is just running in place.

There have been numerous cases where developers are falling to this pitfall. You may have heard of some game that were in development hell that lasted for years or even more than a decade, they tried to be very creative and more original than their competitors, they iteratively added and removed features along the way to enhance their game, and they even made major changes to the game engine that they were using to fulfill their creative needs. But let’s think about it, all of these creative processes that they did are similar in some ways to what other successful game developers usually do, so why were they failed while others succeeded? From the many game development articles and stories I have heard or read and also from my own experience in some of the games that I have made (or abandoned) I came to a conclusion that there are two major causes for their failure, the first one is that those who were failed do not know themselves well enough (they unaware of their game development capabilities, the resources they have, the engine they use, the scope of the game they are trying to create, etc) and the second one is that they don’t have a clear and realistic goal in mind while doing their game development iterations, they charge blindly into iterating features as fast as they could without any kind of long term planning at all.

In an ideal world where there are no time constraint, no budget limitation and no technical hurdles we may freely be as creative as we want in developing the kind of game that we like, we can indefinitely iterate our game features and be as original as possible. But the reality is, we will always have constraints: we have technological limitation, we have budget limitation, we have knowledge and skills limitation, we have time limitation and so on and so forth.

Let’s say that you, as a programmer, say that given enough time you could implement a particular unique feature of your game while you yourself lacks the knowledge in how to actually implement it, you put it in your backlog or even commit to the team to finish it at a certain date, and that commitment made others in your team starts to create assets or code in the assumption that the particular feature will be in the game, weeks passes by, you have read lots of research papers and you have implemented many different things to no avail, you are running in place in each iteration to implement that feature, all the assets that the others have created with the assumption that the feature will work are discarded, weeks or even months of work abandoned and the project stuck in its place, it doesn’t move forward even with the seemingly diligent efforts that the team have made.

The other case is if you are a game producer and has this brilliant idea that no one has ever done before, let’s say that the idea is to create a full world simulation where there are dozens of different plants and animals and that there are a real world ecosystem in place that governs them, and you want each of the animal has their own personality and distinct behavior, and that each of them are visually appealing using the latest and greatest graphic technology, they must have realistic physically based rendering and of course a hair physics simulation to enhance the immersion. You, who knows nothing about the existing technology other than seeing nVidia technical demos pushed this ideas forward thinking that it is trivial in terms of biology and mathematics, months passes by and you’re stuck because you found out that rendering hundreds of dynamic objects that each has hair physics and complex AI are just not possible, not to mention the complex ecosystem formula and the massive number of data that are calculated each frame is chugging the performance and consistently crashing the game.

There is a saying that a failure is a necessary step towards success, and I do believe it is true, I believe that each failure is a valuable moment for us to get better in the future. But I think it is unwise for us if we are not trying to reduce the chance of failure when there are so many things at stake especially if it belongs to other people properties whether it is time, money (kickstarter backers for example) or both. If we aware of our own capabilities, if we know what kind of resources we have (resource is very broad in this case, it’s not just money, it includes: development time, the skills of the team, how well the team works, marketing capabilities, etc.) then we will be able to create realistic goals, we will be able to confidently choose to sacrifice gameplay over immersion or visual over gameplay (or vice versa), etc. Having a realistic goals will make our iterations more effective, the team can make commitment that they can actually do, adding or removing features will be more meaningful, the game will have a clear scope and will be less likely to suffer from scope trips.

The conclusion is: Don’t just be creative and fully depending on high speed iteration process to develop a game; You must first need to know yourself and then you will know the kind of game that you can possibly create within the limitation that you have and only after which you can be creative and do the high speed iteration process.