Thursday, July 23, 2009

C code and the overwhelmingness of large projects.

I remember the first time I looked at the wograld code. It was like reading Chinesee. Gradually, it has started to make more sense. I found all those c and h files to be overwhelming as well, seeing as there were so many of them. The lead developer somehow managed to change things so that it would do different things, but at the time, I just wanted to leave it to him because I couldn't see how I was going to figure out how to read it. I think that part of the reason there are not more good free software games is there is such a long time from the newbie who has never written a line of C code, to a good working game that does what you want. The intermediate steps can seem so tedious and painful, particularly when you don't know how to include libraries and it takes months to find a person who can answer a simple newbie question.

Once I found the resources, my learning of programming became much faster, and I was able to make headway where I had not made it before, and also to make better use of the resources I did have.

Some people think that programming and programming talent is like an inborn skill. Either you have it or you do not. I do not agree with those people.

Anyway, in case newbies in C programming have not found this resource, I will list this message board here since it has been a tremendous help in learning C programming.

http://cboard.cprogramming.com/
http://www.cprogramming.com/

Tuesday, July 7, 2009

The problem with Leveling in games

Many typical RPGs and like games, such as Crossfire, have a level system. This system frequently has levels that can go as high as in the 100's or as low as ten (but frequently this number is scaled up and up in order for the developers to create more content without doing any real work). When a character gains a level, she also gains stats. She might gain in strength, dexterity, intellect, or whatever other attributes are put into the game. The problem is she has 100 levels, so say she starts with 20 strength, and then gains a point in strength every level, now at level 100 she has 120 strength. The newbie character logs in with his 20 strength newbie. The problem is she is going to really be 6 times more powerful, so then, what happens if she decides now that she has maxed out her character, her new mission in life is to grief newbies. The newbies don't really have much of a chance against her.

But the real issue is that instead of 100 levels, there might be thousands of levels. By the time you get a maxed leveled character, that is several years of work. No lifers play day in and day out to get max level, and some games don't even really have a cap on levels, so the no lifer has this character that is several times more powerful than that of the casual player. The no lifer then dominates everyone, and everyone else realizes they will never get that powerful, so they quit. This is bad for the game, because eventually the no-lifer realizes that he is the only one left playing it, and he would rather rank up on a chart where he has some real competition, not just who had no life for so many years.

Ultima Online did it well. Swing a sword, gain points in dexterity and strength, cast a spell, gain a point in intellect, up to a reasonable cap for your total stats. I think it was something like 255 total, with a max of 150 in any given stat, and up to 25 more points with stat scrolls. But this way there were no uber l33t character with thousands more hit points than the newbie. Sure, maxed our characters were more powerful than the newbies, but anyone could easily get a maxed out character with just a little bit of time and effort, so most people had maxed out characters. The games focus was not on character development, beyond tweaking your template for a given game play change. The focus was on actually playing the game, going to dungeons, finding loot, crafting, and finding resources, socializing, and trading. People did not think of it as a grind game where the primary focus was character development. How you played your character mattered far more, as did customizing your template and equipment for your play style.