On Competition

January 16, 2010

Competition is a very interesting thing when one analyzes it from the point of view of The Resource Based Economy concept and the goals of the Zeitgeist Movement. I’ve just stumbled upon a question of how can Jacque Fresco say that competition is negative, and this made me want to write some of my thoughts on the subject down here.

First of all, the popular approach to competition is a thing of social conditioning. People like to think that we just have a competitive nature, but in fact this is a very incorrect assumption. Competition is something that we learn along the way, through our lives. Grades in school, social status, sport etc. It is not built into us, it’s not in our genes. Of course, it is mechanism of survival, that might be triggered by life threatening scarcity, like the lack of food or water (or money when your life depends on it), but making a competition out of everything is a purely cultural construct. Both studies on animals and people confirm that.

The question remains – is competition a good or a bad thing? Productive or not?

Let me ask you a question. If you and a bunch of other people were to move a very heavy object out of your way, what would be the most productive way of doing it (except for using an appropriate machine of course)? Make a competition out of it and try approaching the object one by one, or approach and push it together? When presented with such a scenario most people naturally and obviously gravitate toward the “together” option, rather than competition. So why is that not the case when it comes to society? Why do people think Cooperation will never work on the large (global) scale? I think the reason is very simple – thinking money.

And this is something that is not so easy to escape. Just like we think with words because our communication depends on them, we think with money when it comes to situations in life, because that’s what our lives are, unfortunately, about in the current system. The system is, in turn, about us making money through competition which is why it does such a great job making us believe it’s natural and productive. But let’s stay on the subject…

When we’re presented with the simplistic scenario of pushing a heavy rock out of our way, we don’t take money into equation. And when you remove (or not add) that element the situation becomes a lot simpler, because you no longer think “what’s in it for me?” and “what will be the profit?”, but you rather think “how to do it best?” and you understand that the benefit of the group is the same as your benefit. When money is taken into account, you prefer to compete because you know that in the end you will get all the profit for yourself. If you win that is, but the risk is usually worth it. When money is not there, you just think how to get the heavy object moved with least effort.

Money is so much tight in into competition most people don’t even realize it. Sometimes it’s a direct relation, sometimes indirect. For example, with children the relation is indirect, because they might not get money directly for better grades or as a reward in some competition, but they might get something expensive or a promise of a better present for some upcoming holiday. Without money (and scarcity it produces) competition would be completely pointless, because there would be no reward for it and nothing to compete for. Instead cooperation would step in as the best way of making advancements in every possible area.

Obviously most people in the current society, based on their conditioning, think that competition is good for innovation and general social progress, and that without it there would be none of those things. And this is true… but only as long as we operate on the basis of the current, monetary society.

In the monetary system there can’t be anything like cooperation. There can only be competition, when people cannibalize each other to get to the top, and monopoly, which comes in when there’s nobody left to eat. And let me stop here for a moment and say one thing: monopoly is not a symptom of the system working badly, it’s a symptom of the system working as planed. While many people use terms like “unhealthy competition” in regard to monopolistic actions, they seem not to realize that there’s nothing on Earth like a healthy one. The goal of every company is to get to the monopolistic position (and expecting them to admit that is plain stupid) because that’s where they can feel safe – it’s the land with no predators hunting you. So next time when you see a company doing something to kill, destroy and vaporize its competitors don’t be surprised or shocked – that’s basically how the system you live in works. If you don’t like this symptom then you should have the same feelings towards the disease itself, rather than saying, as people typically do, “competition is good, it’s monopoly that’s bad”. Without the promise of monopoly there would be no final goal for competition. Monopoly is like the gold medal of the monetary economy. And everyone wants the gold medal.

Anyway, back to the original point, when you have to choose between competition and monopoly within the monetary system you will obviously choose competition. As I said, monopoly itself is not the problem, but when you see no other solution on the horizon you will choose competition over it, because it means lower prices along with all the bullshit you’ve been taught – progress for example. But that’s irrelevant – it’s always the prices that consumers are interested in. Only prices. If it was different then we would demand the best technology and the best materials to be available to us immediately instead of going “OMFG” watching years old popular science shows presenting water- and detergent-less washing machines or nano-technologically enhanced fabrics.

Many people believe that competition breeds progress. That is, unfortunately a lie. I’m not even saying this is incorrect, because I like to call things what they are. In this case, “lie” is the word. Let me use school as an example here, since I like to expose the messed up nature of the current educational system (that I have voluntarily abandoned). When you make students compete against each other for better grades you not only breed jealousy but you also disconnect them from the actual point of education – learning. Today it’s completely up side down. I’ll leave out the fact that the information provided in school are mostly irrelevant, outdated, false and full of propaganda and I’ll focus on that kids don’t “learn” in order to get more knowledge but in order to get higher grades, presents, be better than someone else and so on. As a result the “learn, pass, forget” scheme is born and you basically learn nothing. Thus – no progress.

The same goes for all other kinds of progress, like the one we should be most interested in – social progress. Companies don’t really introduce new technologies in order to make anyone’s life better. They do it in order to be competitive. And that’s two different things, just like learning for candy and learning for knowledge. On the market today there are lots and lots of products no-one really needs. They’re there because the companies need to widen the range of their products, with no regard to actual needs of the society. A good, even though not much, ekhem, “down to earth” example, is Burj Dubai (or whatever it’s called now). They built that building not because they wanted to make peoples’ lives better, but because they just wanted to enter the “tallest building in the world” competition. They wanted to be the best, but it’s not the kind of best that brings any good. I know this might sound hippie but it’s also reasonable – this building, even though it’s very space efficient in terms of land it takes, will not help the world’s homeless people, because it wasn’t built with that purpose in mind. So yes, they competed, they’ve reached their goal and the whole world is very excited and amazed, but… nothing productive actually happened. The society did not benefit in any way.

And it goes further than that. Patents are another problem. Sure, they’re a good thing in the monetary system, because they allow inventors to make their living so that they can keep inventing (unless they work for a company that doesn’t give a flying shit about them, only their inventions that are patented for that company, not for the actual inventor), but in general they’re very counter productive. The example I like to use is the car industry, but it also goes to any other. Today you have many different electronic safety related systems installed in cars. There are many kinds of those systems, each developed by different companies. That’s because the engineers in those companies work against each other instead of working together. As a result company X has to redesign what company Y already designed. A lot of work gets wasted and the actual progress is slowed down because the work has to be done over and over again from the ground up. Sure, sometimes it’s good to approach the problem from a different perspective from the ground up, but that’s something that should be done as research aside of the continuous development of an already implemented solution. That’s much more productive than a continuous chase just to overtake the competitors by 5 centimeters.

Same goes to game industry. We have 3 consoles and the PC as gaming platforms today. What for, I ask? Wouldn’t it be better if there was one console out there that had all the best? Imagine what would come out if the engineers from Sony, Microsoft, Nintendo, NVidia, AMD and Intel worked together to create the best console we can have with the current technology. Sure, you might joke that it would be WiiStation 360 having the graphics of the Wii, the reliability of the 360 and the lineup and ease of development of the PS3… But in reality I think you realize that it would be a lot more productive. Just forget about money for a second and think “cooperation” rather than “monopoly”.

And let’s not forget, all of that also breeds waste. Obviously most waste comes from other aspects of the monetary system, like planed obsolescence and brainwash… I mean advertising, which are, of course, related to competition (the more you sell the higher your profits are and the closer you are to the Ultimate Goal, which is monopoly), but competition creates waste even much more directly. Namely, redundancy. Many companies doing the same thing doesn’t only mean wasting of ideas, potential and time but also wasting of materials, energy and other resources.

And the last but not least, competition sets us against each other. Most people don’t want to think about it, because they want to consider themselves “good”, but in reality we cannibalize each other every day. You have a job? Someone lost a chance to get one because of you. Of course feeling guilty because of that is pointless (at least feeling personal guilt), but the fact is we create and perpetuate the system that reinforces the cannibalistic, competitive behaviors.

If you want to stop that then begin with not thinking in terms of “competition good – monopoly bad” and realize they’re two symptoms of the same illness and that they’re, in fact, the same.

GAME ENGINE FORUM THOUGHTS

January 3, 2010

A few months ago I’ve switched engines from Crystal Space to Panda3D. The reasons for that were very simple – after a few years of learning, I were now able to more clearly specify my needs regarding the game engine, and Panda just fits them better. It’s very Python-centric and very mature (comes with a lot of profiling and debugging tools, and you just need that for a big game), which is exactly what I need. Also comes with a set of fairly good GUI and animation mechanisms that I find very convenient. But it’s not Panda that I want to write about. It’s rather what I’m observing on Panda’s forums, and also other places over the net related to game engines (especially the ones aimed at ease of use), that interests me. Namely, the completely unrealistic approach some people have to developing games in general.

It might be called “the MMO Syndrome”, because it’s usually about MMOs. Not always, but in majority. People come to a game engine forum and ask if it’s possible to make an MMORPG (supposedly as big and complex as WoW, because that’s usually the main inspiration here) with this or that technology. They’re very enthusiastic – which is good, sometimes even ready to learn, but in general they tend not to realize what they’re talking about.

Don’t get me wrong here, I’m not gonna tell anyone to start small. I haven’t. About 5 years ago, highly inspired and influenced by Deus Ex (and games in general, but DX was the one that made me think “I want to make games”), I’ve begun learning game design/development to create an FPS/RPG. It was initially very similar in design to Ion Storm’s game, but drifted far away from it since then. Anyhow, today I’m getting closer to releasing the game, but it took me 5 years to get where I am now. Many prototypes, many pieces of code trashed (or rather “archived”), many design changes, but most importantly – a lot of learning, hard work and headaches. If you want to start big but are not ready for this kind of fun, you will burn out very quickly. I’ve been seeing that over and over again with many projects. Not to mention that making a complex MMORPG – even a prototype of such a game – would take a whole lot more than 5 or 6 years.

Most importantly however, many people seem to come to Panda’s forum (I’ll focus on that since that’s where I spend a lot of time) having “an idea” for a game, but no clue where to start… So I’ve decided to wrap my head around that and try to figure out a general path, from knowing nothing to knowing something and maybe, in the end, getting some game done.

PROGRAMMING

First and foremost – do not, *ever*, confuse “programming” with “programming language”. That’s the biggest mistake many, many people do when approaching the subject the first time, and it’s just deadly. I like to say, that the difference between programming and knowing programming languages (Python in case of Panda) is like the difference between being a poet and knowing English. When you look at it that way, you instantaneously realize, that communicating in English is very far away from writing poems in that language. It’s just obvious that knowing English (or Japanese, Polish, German, French…) doesn’t make you a poet. Yet people seem to think that knowing Python or C++ will make a programmer out of them. Sad news – It won’t.

What makes a programmer out of you is the ability to make creative use of that language, make things that work using it. And while it’s good to think you can learn that from some books, the truth is it can only come from experience. “To write you have to write”. That’s why you start by making small changes in some example code, then you make bigger changes, then you make simple programs of your own, than more complex etc. And when you go back to those after a while, you will see what a piece of crap they are, because you’ll look at them from the perspective of gained experience. That sounds obvious, but it wouldn’t happen if the ability to code could just pop into your head. It can’t and that’s exactly why you cannot expect yourself to jump into programming a huge game just like that.

But if it’s all so evident when you read about it, why are the game engine forums full of people who don’t seem to understand this simple reality? The lack of perspective is surely one of the causes, but in my opinion there’s another, even more important one. Namely, the game engines themselves and the way they’re perceived by people outside of the game dev business.

Game engine is simply seen as the only part of a game that requires skill to write. It’s “the technology“ after all. In game reviews (the overall technical ignorance of which is sometimes just sad, and it goes onto the readers…) you can easily find the reviewers writing about the engine being responsible for basically everything – from the game’s genre, through it’s whole design, up to the looks. This is, of course, the reminiscent of the time when games were very deeply connected with their engines – at least more than they are today. Currently, I’m personally an advocate of seeing game engine as completely separate from the actual game, since the technology doesn’t really affect the design that much. Take Unreal Engine 3 for example, it served as the backbone for “Gears of War” (TPS), UT3 (FPS), “Mirror’s Edge” (FPP parkour game) and “Mortal Kombat VS DC Universe” (a fighting game) amongst many others. Gamebryo on the other hand was used in even wider variety of genres, from FPP up to RTS. So, as you can see, it’s not the engine that makes a game. Obviously, there are engines that fit better for certain uses than others, but in general the choice is mostly based on preferred work flow and nuances. Like the difference between Source, where you code in C++, and Unreal Engine built around Unreal Script and Kismet. What I’m trying to say, is that popular diminishing (or just nor acknowledging at all…) of the gameplay code is a very false perspective. It is true that writing a game engine (of it’s elements, such as a rendering engine, a physics engine, collision detection etc.) is much, much more complex than writing most of the gameplay stuff, but that doesn’t mean the later doesn’t require knowledge and experience. Especially for big games.

Personally, it took me a lot of trials and errors, scrapped and rewritten parts of code, or even whole prototypes, to learn how to design the code. Because that’s the real deal – designing the code. Coming out with the so called “technical specification”. Names may vary, but what I mean is a comprehensive document saying “how I’m gonna code all that”, how the individual parts will work with each other. Without experience you just won’t be able to grasp that, because wrapping your head around all of the details and interconnections will be too much of a task. To prove it, in my game I had to make a lot of changes to a big chunk of code (comprising a few thousand lines in general) because I left one, very little (but important) element out of the designing phase a few months earlier. I just took it’s functioning for granted and that gave me some pain in the long run. One little thing…

Anyway, I’m not saying you shouldn’t try, per se. But you shouldn’t expect satisfying results in the first try… or the second… of even the fifth if you have no experience at all. The thing is that you can’t see the whole picture. Nobody is born with the knowledge of anything, and you can’t expect you will be able to get “the Matrix code sight” the second you come out of the Python tutorial or Panda manual. It just doesn’t work like that, sorry.

To sum it up, do not expect gameplay programming to be a formality. Do not expect yourself to be able – with no experience – to code your fancy one-man-AAA-with-zero-budget game design in no time. Programming, even Python, is rather complex and the ability to read and write code like natural language comes with time. The engine, even Panda or UDK, won’t do anything for you. It’s like a hammer – if you don’t know how to use it, you will hurt yourself. It’s just a tool, not a servant who you can tell “Make me a better WoW” and it will make it for you.

DESIGN

OK, we have programming sorted out, now design. This seems to be a very similar problem, but with non-techies. Technically oriented people who like games seem to gravitate towards gameplay programming, because it’s seen as a lot easier than engine programming. Non-technical people seem to gravitate towards game design, because it seems like playing games and reading reviews can provide you with all the knowledge needed. This is like thinking that watching Steven Spielberg’s movies will make a director out of you. It won’t.

Game design seems to be not that far away from playing games. In reality it’s much more complex. When playing games you don’t see all the little details that you must take into account when designing them. Also, ideas are easy to judge when they’re already implemented (the typical “why hasn’t anyone thought about that before?”… or, from the other end of the spectrum, “that sucks”), but rather hard to think up. When you play a game you’re looking at a finished puzzle. You can clearly see what the picture shows. You can easily spot it when 2 or 3 pieces are missing for some reason. But designing a game is more like having a thousand or a million pieces in front of you. Completely messed up, some don’t even fit the rest at all, and all of them… are blank. That’s what you’re starting with.

Sure, I’m exaggerating a little bit, because you typically have a very rough initial idea of what you want to do – like the genre, or something that might become the key feature – but no details, the actual design is usually missing. And even game design books and all the Gamasutra articles won’t fill those holes for you – they will only show you the techniques that might help you with filling them and how to differentiate between things that will and won’t work on the design stage (with prototyping being the final test anyway). But the actual ability to use those skills efficiently, again, comes with time. Sure, if you’re doing a Brakeout or even Quake clone that’s usually not a problem, but I’m writing this thinking of those MMORPG fans willing to write their own. And even in less surrealistic cases you typically don’t want to clone another game – you want something of your own. But even a simple design is made of a thousand little things to consider. I actually measure the complexity of a specific feature in painkiller pills…

CONCLUSION

I don’t want to leave you without giving a piece of advice, though, so here it goes. A good place to start, and definitely one of the articles that everyone interested in game design/development should read, is “The Anatomy of a Design Document” by Tim Ryan available for free on Gamasutra. This is where I begun my game design adventure, and this is simply (in the opinion of almost everyone I know who read it) the bible of writing game design documentation. This article lists out what you should focus on, and thus it should make you understand what kind of complexity you will encounter when designing own games. I actually had that article printed twice – the first print just became unusable after a while, because there were my notes all around it (usually “ah! I finally understand this paragraph!” kinda thing). It also talks about technical documentation, so it will show you what you’re dealing with in the programming department. Sure, that article is not the only one you should be interested in – search through Gamasutra, read as much as you can. Print articles and read them in school, work, on the bus/train/tram. Read as much as you can, but always keep both parts of “The Anatomy of a Design Document” close. It helps and it carries the realization, that making games is not as simple as some think, even with an engine written for you.

As the bottom line, as I said on the beginning of this text, I’m not trying to tell you to start small. I’m not even trying to scare anyone away from trying to make an MMORPG. The purpose of this text is to make you understand that you should be realistic about what you do. Games are fun, and game development is also fun, but, unlike playing games, it’s also a lot of hard work and headaches. It also takes a lot of time. If you want to dive into it you must be prepared to either go step by step, making and finishing games of all sizes, or – if you think you can make it without giving up – to spend years with no actual results (just very rough prototypes) to show. Simple language and mature, user friendly engine make it easier, but there are no miracles here. Aim high, because that’s the only way to get there, but be realistic about what you do.

Hello world!

January 2, 2010

For some time now I’ve been feeling the need to write thoughts down somewhere. Writing to my drawer or my hard drive poses very little sense in the time of the Internet, so let’s try with a weblog… again. And we’ll see how it turns out.


Follow

Get every new post delivered to your Inbox.