27 March, 2012

Competitiveness and the desire to be on the winning team

At the heart of player vs player games or pvp as is coined in the industry is the desire to compete.  As my children have very convincingly shown me time and again, winning is funner than losing.  While many people point out that good sportsmanship is all about enjoying the game regardless of outcome, many of us secretly hope to be the winners.  What I have noticed that frequently happens in games is that people know who the good players are and will wait to see which team they join before choosing a team.  If all of the good players do this it's what's known as stacking, where there is an imbalance in playing ability on the two teams.  What occurs then is hardly a competition, rather it is a massacre.  I like to think of myself as a good player in many games that I play, and often I will try to be on the underdogs team so as to even the playing field a bit.  What I have noticed is the more that I play a game and become known, that when I join the underdog team that it isn't the underdog team for that long because many "good" players will switch sides as soon as the tide of the competition comes to be against them winning.

I try not to bring up politics very often, but since it is a common area of competition I think it bears a quick look at it.  When foreigners are being made familiar with american culture for example,  I found it interesting that Americans claim to be the most free country in the world, yet despite having many choices of political parties overwhelmingly there were only two dominant parties.  In talking to people about this occurring for such a long time, many people say that they would prefer to vote for one of the smaller parties, except that would just mean throwing away their vote.  Thus they feel obligated to choose instead from the two parties who clearly have a chance of "winning".  Some people were not even aware that they were allowed to choose other parties, or even that other parties indeed existed beyond the two powerhouses.  I like to look at this as people wish to be affiliated with a winning establishment, even if that establishment may not share the same ideals as said people, the "choosing the lesser of two evils" if you will.

In games the drive to win often leads people to extreme and unethical behaviors, such as cheating, hacking, stacking teams or sides, spying on their competitors, bribery, the list goes on an on.  Often systems are put into place to try and stop these unwanted behaviors, yet the desire to win will often lead people to seek out loopholes or other ways of getting an advantage.  The problem is once a system is compromised and people recognize the inherent unfairness the advantages the cheaters have, then many people are driven to leave the system if they have a choice, or if not they are forced to cheat themselves in order to remain competitive.

So to bring this back to my game, I really want to see this succeed and in order for that to happen it needs to be able to stop such behaviors from happening.  I've seen too many games where the players who are willing to play fair and follow the rules are driven away by cheaters and hacks.  Some areas that I am a little concerned in would be

1. How do you keep factions relatively even as far as number of skilled players on each side?
2. What happens when the majority of a faction decides to stop playing making things unequal?
3. How do we limit hacking of the client, and in what ways do we detect said hacking?
4. What if someone stops playing and gives their account to a friend who is on an opposing faction? How do we detect this and stop it, or does it need to be stopped?
5. What can be done to make sure the game stays fun for everyone?

Any help with how to tackle these questions would be greatly appreciated.

24 March, 2012

Spring Break and Math Stuff

So I have finally come to spring break this semester, though it won't be much of one as I said that I would be available to work in the computer labs (which I anticipate that those labs will be empty).  It will be nice to have a little break from new information though.

On the brighter side I finally got to the section of linear algebra that helps me figure out how to do the triangular tessellations that I was hoping to construct the landscape from.  Standard Minecraft style games use the standard x = 1, y = 1, z =1 3d coordinate system, which makes a lot of sense since that is by far the easiest way to represent something in 3d.  These are known as the unit vectors and are written as = (1,0,0), y = (0,1,0), and z = (0,0,1).  There is a lot more to it, but I won't bore you with the details.  For games the screen will represent an x,y plane because well, lets face it, it is really a 2 dimensional space.  Even "3d" monitors and TVs are just a combination of 2 2d planes which creates the illusion of 3d.

So taking the height component as the y, I have figured out that y will still remain a good old 1.  The x component will need to be .5, but not on every line rather every other line.  The z component is the nasty one as it will be the square root of 3 divided by 2 instead of 1.  So my plan is to create a constant variable called DEPTH ( constants are supposed in all caps like that) which is equal to the square root of 3 divided by 2.  The z can be expressed as a number of DEPTHS, then if there is an even amount of z the x component will be the normal 1, 2 ,3 etc. but if the amount of z is odd, then x will be 1.5, 2.5, 3.5, etc...  Now I wish to clarify that this is just for finding the points which are the corners of each triblock.

Now many of you are probably thinking why not copy the cubic approach that everyone else is using, since it equates to much less work.  I guess that the answer is that I am just stubborn, that and I don't wan this to be dismissed as yet another Minecraft ripoff ( which may happen anyway, but at least I can claim that it is different).

22 March, 2012

Google Summer of Code

School has been going fairly well, though there are some things that I have felt could have gone better.  Anyway while thinking about how I can get better at coding this summer I ran across this excellent program known as Google summer of code, which puts worthy opensource programs in touch with college students (like me) so that improvements/additions to said open source programs can be made.  I feel a little intimidated to be sure, but I will need to practice coding in order to get better, and what better way to do that then working on an opensource project.  I will still be working as tech support for my school's smart classrooms this summer, but I think that I probably won't be allowed to work much more than part time.  This will be a lot of work, but I think that it would be incredibly rewarding and fulfilling at the same time.  I have been thinking that opensource might be the better way to go with all of this anyway, and while I realize that I won't be able to make a lot of money ( if any at all) I feel that being able to share my work so other can build on it is important.

I have realized lately that I have been making a shift from gamer to game developer.  Part of that is the realization of what it takes to make a game of any size.  I now have a much greater respect and appreciation for all of the game developers out there.  I know that many hours of hard work will be required for the smallest part of what I want to do, and that people will most likely be very critical and/or demanding of my work as soon as I get it out and available for use.  I'm not so much worried about that, it's just that I would like to play this game in a multiplayer setting, and if no one is willing to play the game that will be really hard to do.  The nice thing is that I can also see from both perspectives now.  I still understand the frustration of the gamer community at not getting new content at a rate that they desire, yet I understand the plight of the developers who work so very hard just to have people turn around and say meh.  It's an interesting turning point, and I hope I can remember to feel empathy for both sides.

07 March, 2012

Developers vs Publishers

So I have been doing a little research in my spare time between learning linear algebra and coding this semester.  Today I read a long and boring article about the process that publishers and developers entering into an agreement to make a game must go through.  All I can say is, it is no wonder that the game industry is broken.  The short version of what I read goes like this, publishers have money and make contracts with developers so the developers will make a game as a "work for hire", meaning that the publisher gets to "own" the copyright and intellectual property of a game.  Because of the size and complexity of making a games developers don't want to have to start from scratch, and so they create a set of "tools" like a gaming engine which they license to publishers so that every time they don't have to start from scratch.  The rest of the article explained how either side works to negotiate as much as possible in order to retain as much as they can to maximize profits.

So what does this have to do with me and my game that I want to make.  Well I would be considered a developer, an unknown and untested developer at that, which means I will have very little that I can bring to the table when negotiating with a publisher.  This means that it would be an especially bad idea for me to do so, even if I could bring an exceptional product to show them, which is probably what it would take for them to even talk to me.  So I will focus much more on things like Kickstarter and appeal to the public directly for money, which is also a difficult path but will not leave me with nothing afterward.  This is of course after I have made a fair amount of progress, which is slow going while I learn the fundamentals of game design.