Categories
Politics/Government

Today’s Juxtaposed Headlines

The Chicago Tribune: “TERROR STRIKES JORDAN”

The Chicago Sun-Times: “SEX BLANKETS TV”

Both are supposed to be alarming headlines. The sad thing is that I think more people would be shocked and concerned about the latter. Last I checked, tens of people weren’t killed by televised sexual innuendo exploding into their living rooms.

Categories
Games General

Huge Game Industry? It Ain’t

Five Step Program to Move Beyond Game Geek Culture points out the fact that the game industry is actually a lot smaller than it should be.

It’s a good read, even though it takes a few paragraphs before you get to the five steps:

  1. Stop fixating on the current game market
  2. Stop listening to your gut
  3. Learn about product design
  4. Surround yourself with other perspectives
  5. Build an integrated business plan

Now, quite frankly, it is for the reasons given that I think Nintendo’s Project Revolution can do so well, even if the system will be underpowered compared to XBox and PS3. Will Nintendo will be able to convince people who didn’t buy games before to buy a game system to play games? I think that would be the main stumbling block. But R.O.B. got the original NES on shelves when no stores wanted to deal with video games after The Crash in the early 80s. I’m sure Nintendo can figure out how to market their projects.

Categories
Geek / Technical

November IGDA Meeting

Tonight is the IGDA:Chicago chapter’s meeting for November. Alex Seropian of Wideload Games (and Bungie fame) will be giving a post mortem on Stubbs the Zombie.

I’ll be volunteering again, so if you show up, I’ll take your money. I don’t know if they will be selling shirts again.

Categories
Geek / Technical Politics/Government

I Would Like My Digital Rights Back

Rant Mode Equals One: Score: Digital Privacy 0, Digital Piracy 1 is an interesting article talking about the problem with digital piracy.

But not the kind everyone thinks about. It isn’t trying to defend the movie, computer, and recording industries with their draconian copyprotection and laws. It’s an article arguing that individual rights are being compromised.

How does Sony get away with putting a root-kit on your system? Why is any company allowed to compromise the security of your computer just so they can determine that you haven’t made a copy, whether legally or not? And why are laws being passed to allow it?

Yeah, thanks, but no thanks. I’ll just keep control of my own computer.

Categories
Geek / Technical

Girls Don’t Exist on The Internet

I’ve commented on girls and gaming before, but the latest Escapist was focused on the topic. OMG Girlz Don’t Exist on teh Intarweb!!!!1 was written from the point of view of a female having to deal with the strange way males react when they discover who she is.

Throughout the article, the author had her sex revealed in various ways, and each way seemed to get the same result:

“OMG!!!one! ur a gurl?! SHOW PIC!”

And when she refused to show a picture of herself, the other people would conclude that she wasn’t really a girl. You know, because all girls show their pictures on the Internet, so she couldn’t have been one. If the pic was acknowledged as real, it was dismissed as the obviously male player’s sister or girlfriend.

It’s weird how the existence of a female online will cause almost all males in the vicinity to think about unbridled white horses running past a field…

She also mentions the other extreme. Imagine that you meet some of your online friends in person, and you get completely ignored. Are they just shy, even if they swear like sailors when the Zergling rush is destroying their defenses?

As a male, I’ve been guilty of trying not to be the amorous jerk but ending up the guy who doesn’t even acknowledge the girl’s presence. Whether it is for gaming, software development, or Gnu/Linux user groups, either reaction results in females being uncomfortable.

I distinctly remember playing a game of Quake 3 Arena online a few years back, and there were two other people on the map. We were playing 1v1 instagib, and suffice it to say that I was getting killed soundly. One of the other players informed me that the deliverer of pain was a female. I actually don’t remember how it came up, but I do remember that I was actually trying to strike up a conversation. She remained silent, and I didn’t think much of it.

I did think about it later. I rarely try to talk with my opponents online. Why was this case different? Why did the fact that she was a girl make me want to talk to her? I’ve had conversations with males online, but the idea that I was playing against one of those rare female players was just…well it was just rare, which made it interesting.

When there is a group of male gamers, no one makes much of it. Hey, want to join my group? Nice shot. GG!!

But when there is a female involved, I think I get more conscious about it. Trash talking isn’t carefree anymore. Now I worry if calling an opponent a “bitch” will be taken badly by the Female, even if she is on my team and not the recipient. If I say “good job” will it be construed as making a pass? Am I aiming at her because I am trying not to avoid aiming at her, or am I just playing the game? I don’t want her to feel uncomfortable, and so maybe shutting up will be best. Which, of course, isn’t.

Why can’t she just be another Gamer? Why is the fact that she’s female so intriguing?

The author of the article talked about the instant message conversation, showing her picture, and getting WTFs and the like. I know that there are female gamers so I don’t think I would lose all manner of speech except for TLAs. Still, what DO you say? Would it be inappropriate to say that she’s pretty? I know I wouldn’t tell a guy that he looked handsome or cute or something, but then again, I don’t think I’ve ever sent a pic to someone online. I mean, my orange juice pose seems to get enough comments. B-) In any case, somehow I don’t think “Oh, a pic. c001” would suffice.

Maybe what happens online is the same thing that happens in real life. People don’t know how to act in front of the opposite sex, especially when they show up in a place that they didn’t usually. It’s common for people to assist newbies when starting out, but females seem to get this overwhelming help throughout their gaming career, as in the case of City of Heroes. People will steal kills because they think they are “helping” her out. Apparently in World of Warcraft it isn’t uncommon for female players to be given gifts, usually in exchange for dancing.

Why do men either give women trouble for playing games or insult their abilities by assuming they can’t do well if they aren’t helped? And why does my interaction with females online become calculated and conscious compared to my interactions with males?

Categories
Marketing/Business

Incorporating GBGames: Overkill?

I finally managed to talk to a CPA about incorporating GBGames. I had done a bit of research, but it seems odd that there wasn’t a simple bullet list of items to look at regarding incorporation. I mean, if the government knows what I need to do, why can’t I find a simple list? File articles of incorporation, send in a check, send a form to the IRS, and then…what? I found that I would need a Federal Tax ID, which I could request, but I also learned that there are certain responsibilities such as recording minutes for meetings and paying for the privilege of filing annual reports. I also didn’t realize that even though I don’t plan on hiring anyone, I would be considered an employee of the corporation. The descriptions of the employment laws that I’ve been ignoring up until now will need to be looked over in more detail. I’m sure there is one or two things I’m leaving out, but suffice it to say that it would cost me money and time to maintain the corporation.

And so the CPA suggested that a corporation would be too much effort and cost for very little gain. I had originally decided not to go for a Limited Liability Company, but he advised that while it cost more up front, the maintence of the company would be a lot simpler in this form.

I am planning on running this business part-time initially with no outside investment. I don’t want to hire employees, although I will contract out certain work. I also don’t believe I’ll be able to make any income for some time (I’ll need a game to sell first), and even then I won’t be able to live off of it for maybe a year or four. For now, an LLC sounds a bit more appealing. I can always form an S Corporation later, specifically when I start looking at much more serious income and/or start running it full-time.

Categories
Game Development

Oracle’s Eye Development: Another Month

It’s the start of the fourth month of my one month project. B-) On the one hand, I’m getting impatient. On the other hand, I am learning quite a bit, both about game development in general and about scheduling specifically.

I had a few items I wanted to tackle for the next few sessions. When I last left off on Oracle’s Eye, I had a Ball spinning around in a Room, and the Player could walk around. I had also updated the Kyra Sprite Engine. The new version doesn’t use a certain class anymore when it comes to hit detection, but it mimicked the std::vector class and my code didn’t do too much with it. It was easy to just change the type of the object. I had collision detection with a change on one line of code. Pretty sweet.

Now on to the new stuff! I eventually want the Player to be able to kick the Ball around the Room. Of course, if the Ball can’t move in the first place, I’m stuck. I already have the code available to move the Player, and I already used the same code in the Ball class. All that was left to do was provide a way for the game to tell the Ball to move.

I cheated. I just wanted it to move around, and so I used the same function that moves the Player. In GameWorld, I have moveX() and moveY() functions which normally move the Player if he isn’t hitting a WallTile. I simply did a similar test. Now, the Ball isn’t in the same subtree as the Player and WallTiles. With the Player, I can do the test with the following function:

bool CheckSiblingCollision (KrImNode *checkThis, std::vector < KrImage * > *outputArray, int window=0)

The Player and the WallTiles are siblings, and so if this function returns true, then I shouldn’t move the Player. It works for what I need so far, although I can foresee some difficulties if I keep them on the same subtree. The Ball is on a different subtree, and so it needs to use this function:

bool CheckChildCollision (KrImNode *checkThis, KrImNode *parent, std::vector< KrImage * > *outputArray, int window=0)

I basically pass the pointer of the Ball’s KrSprite and the root node of the subtree that the Walls are in. I actually uncovered a bug in my program here. Since I didn’t want to keep pointers everywhere, I named the parent KrImNode when I originally created it. I can then search for it by the constant string I supplied it. In this case, I used “foreground”. What was weird was that the Ball wasn’t able to detect the Walls and would pass right through them. It turned out that the code that creates the node was being run twice, meaning that the node was being added to the Kyra Tree twice, and so when I named it a second time, the first one was basically lost. Unfortunately it already had the information for the WallTiles and the Player, and so the Ball was looking at the wrong node whenever I searched by the name. It actually didn’t take me too long to find the source of the problem, and the fix was even easier. In the end, I had a Ball that not only moved but also obeyed the Wall boundaries.

Even cooler was that it would not run through the Player, but the Player can still go through it. I’ll eventually have to write code that makes the Player and the Ball respect each other’s positions. For now, I will need to address a different problem.

The Ball starts out in the center of the Room, near the top Wall. My animation images aren’t that high quality, and the Ball seems to jump slightly at certain frames. Apparently it is hitting the Wall as it moves, which means that every so many frames, it will actually stop moving to the side. It gives the impression that the Ball is grinding along the Wall. I think I would like to make my Player and Ball images smaller anyway. Right now they fill up the entire Floor tile, and I think they should be able to maneuver better if they had a bit more leeway when walking around.

It’s not bad for a few hours of work. Still, I think I’ll schedule an entire Saturday this month to working on this project. Having a day dedicated to development with (hopefully!) no distractions should provide a big boost in productivity.

Categories
Games Geek / Technical General Linux Game Development

Why I Want to Make Games for Gnu/Linux

LinuxGames posts about the possibility of porting the sequel to Savage to Gnu/Linux. Basically, the Savage 2 engine is heavily utilizing DirectX, and the developers are going to try to work with Transgaming to get it working with Cedega instead of providing native binaries. Apparently Never Winter Nights 2 is also having these issues.

I really don’t like the idea that I have to buy games and then pay recurring fees for the right to play them on my preferred operating system. But if you read through the threads, apparently people are also upset at the level of support they received for the first Savage.

It is already bad enough that I have to keep Windows around to play most games, and there aren’t very many natively Gnu/Linux games of great quality, but why develop half-ass “ports” and make it worse?

I want to make great games natively for Gnu/Linux because I am tired of waiting for someone else to step up and do it.

Categories
Linux Game Development

Learning Kyra: Installing the New Version

I decided to install the latest version of the Kyra Sprite Engine since I am still so early in the Oracle’s Eye project. Historically, Kyra allowed you to dynamically link to the library, and so I had it installed on my system as any other library.

I wanted to install the latest version similarly. I found that the latest version doesn’t have a working configure file; I was expecting to be able to use the standard ./configure; make; make install. It still worked for the most part without the ./configure part. In fact I took advantage of checkinstall to create a nice Debian package for me so I can uninstall and install easily.

So it builds, but I found that there are a few differences. For one, kyra-config doesn’t exist. I normally used it to get the cflags and the lib arguments for my Makefile, similar to the way you would use sdl-config. So, how do you build a project now?

I asked on the Kyra forums, and the maintainer was actually just sitting in front of it waiting for my posts. He was that quick! Eventually I found that the way I wanted to use Kyra wasn’t the way it was supposed to be used anymore.

Kyra isn’t currently capable of being backwards compatible, meaning that different versions of the same library can’t be installed at the same time. So basically statically linking is easier and less likely to cause problems. My only concern is the fact that the LGPL license requires different things for code that statically links to it, but I was planning on releasing my code under the GPL anyway so it isn’t a huge problem.

To make one of my famously long stories short, I ended up working on my Makefile and the library until I found out how to get it to work dynamically…just in time to read that I shouldn’t use it that way. I managed to get my project to build with the new library only to find out that I should use it a different way. I spent some more time until I finally managed to get it to build the preferred way. I have a source directory with all of my source files as well as a subdirectory with the Kyra library source.

It was definitely a good learning experience, as I learned more about linking and libraries on my Gnu/Linux system. I actually built my project successfully three different times: once with the old dynamic library, once with the new library fixed up to be dynamic, and once with the code statically linked. The last option is actually cool because I can actually add the Kyra library directory to my Subversion repository for Oracle’s Eye.

Still, I would have liked to schedule my learning experiences better. I was supposed to be working on my game project instead of the supporting library. I really wanted to try to work on what William Willing mentioned on his blog about Composition vs Inheritance. I’ll probably be able to work on it this Friday though. At least the new library seems to be working great now.

Categories
Games Geek / Technical General

Carnival of Gamers

I saw that Aeropause was hosting this year’s Carnival of Gamers, which has its “headquarters” at Buttonmashing.com.

Carnivals are basically traveling blog shows. There is a Carnival of Capitalists that I’ve heard about, but when I found that there was a Carnival of Gamers, I had to look into it. Essentially, people submit posts on the topic or theme to the carnival host, and the host, which is Aeropause for this month, provides links to the other blogs involved. It’s like normal blogging but much more organized.