Categories
Game Development Geek / Technical

Time Flies

Whoops! I didn’t meant to stay up past midnight programming!

I think it is a good thing that I was getting so into it that I didn’t notice when an hour or two went by. At least, that’s what makes me feel better about how behind my project is. In this time, I managed to get the program window to come up and close on the correct input without seg faulting for the first time.

I was still having fun, as frustrating as it was. I distinctly remember not feeling motivated when I started this programming session, but here I am, hours later. Good night!

Categories
Game Development Linux Game Development

Oracle’s Eye Development: First Week

Steve Chandler’s 100 Ways to Motivate Yourself mentions definitely planned work as being both motivating and productive. The idea, which has been repeated by many people, is that one hour of planning saves three hours of work. Also, once you have a definite plan, you can’t help but get motivated to actually start doing things according to that plan.

I thought that today would be a good development day. I had asked for the day off from work to attend a seminar today, met with a friend for lunch, and came home. Unfortunately, I took a nap for a few hours. Not a good start. But at one point, lying half-awake, I started to think about making the game. While the seminar was interesting, I did take some time while there to work on some designs for the classes I will need. When I thought about those classes, I thought about how much I clarified my future coding just by taking some time to write down ideas. The idea of doing even more design work got me motivated to wake up completely and get to work.

Right away, I hit my first challenge. I haven’t decided how the graphics or other data would be licensed yet, but the code itself will be licensed under the GPL. I didn’t need to think about it until I started to write some new code. While I was originally modifying my code from my GiD, I decided to try to make use of Joost Ronkes Agerbeek’s code from his post A Closer Look At The Game Engine. I was only working on main.cpp, and I made some modifications to the code. According to the ZLib license, I need to make it clear that the altered source wasn’t originally made by myself. I couldn’t remove the ZLib license either. Could I still use the GPL for my project if I used ZLib licensed code? Will I really have to rewrite main.cpp, which isn’t more than a few lines in the first place?

I googled “ZLib GPL compliant” and found the Free Software Foundation’s Various Licenses and Comments about Them. Regarding the ZLib license: “This is a free software license, and compatible with the GPL.”

Oh. So while my project can be under the GPL, portions of it can be licensed under other free licenses. I added some comments to main.cpp to specify where the source came from and the fact that I modified it. I also provided a listing of the ZLib license and maintained Joost Ronkes Agerbeek’s copyright noticed. I am new to mixing code under different yet compatible licenses.

All this before doing any “real” coding work. I could only imagine how difficult it is to work on a much larger project that might mix tens of hundreds of licenses. It is no wonder people have been complaining about license proliferation! Still, it left me wondering what I can do with my own code. I would like to clean up my existing engine. Would a single line change still need to be credited to Joost? My main.cpp is obviously just a modified version of his Main.cpp, but what about when I add functions to and remove members from my GameEngine class? Is that copying or is that reimplementation? I sent an email to the Linux Game Development Center’s mailing list to ask how other people mix code legally. After getting a quick response, I was quickly reassured that I didn’t have to keep detailed comments regarding which code belongs with which license.

Now to the real work: I spent a great deal of time just reworking my existing state machine engine to make it cleaner and work much more like Joost’s. Of course, I was trying to make my own project work with the Kyra Sprite Engine, so I had to make some modifications. In the end, I spent quite some time just trying to get the project to build cleanly. It doesn’t do anything other than create a window and quickly seg fault, but that isn’t bad for just a few minutes of coding.

But it is bad for the week. I didn’t spend much more time on the project. Besides writing down some ideas about the design, I really only spent that one session actually programming. But perhaps it isn’t a complete failure. One hour of planning saves three hours of work, so maybe this first week might make the rest of the month much more productive. At the very least it should now be obvious that I need to dedicate more time in a week to working on the project. B-)

Categories
Marketing/Business

We Don’t Trust You

Jerry’s Brain And The Heresies It Contains at The Social Customer Manifesto asks why some great thinkers of the past few centuries are getting ostracized. In the end, it boils it down to the idea that those in charge (business, government, society, etc) do not trust you.

There are myriad examples where “We Don’t Trust You” is the rule in business with how customers are often treated:

* DRM: We don’t trust our customers with music and movies
* Product Warning Labels: We don’t trust our customers not to harm themselves
* Fitting rooms: Take a card to prove the number of garments you are taking inside
* Onerous contracts: We don’t trust you to do what you said you’d do
* Misinformation or lack of information, and feeding uncertainty: We don’t trust customers to make good decisions based on good information.

To be honest, I think the product warning labels are a bit of a stretch. When you can sue for having hot coffee (not the GTA issue, the McDonald’s issue) spilled on your lap because there was no warning label saying it was hot, that doesn’t instill a lot of trust in the American customer. But why do we have to bring a numbered card in the fitting room? Why can’t I take the new Dave Matthews Band CD and listen to it on an iPod? For that matter, why can’t I take an MP3 of the Minibosses from one iPod and transfer it to another? Why do people who buy Half-Life 2 have to wait hours, assuming no errors or problems occur, before getting to play the game?

It’s because of trust. Or rather, a lack of it. Whether someone comes up with an alternative theory of the universe (“The Earth revolves around the sun”) or an alternative theory of how software should be treated (“Software should be Free”), that person becomes someone you shouldn’t trust. After all, who is he/she anyway?

Categories
Game Design Game Development Marketing/Business

Girl Friendly Games?

People keep talking about making games more girl friendly. When women make up over 50% of the world but only a small percentage of your customers, more women gamers means more sales. Naturally, there is an emphasis on attracting women to video games. But then people guess at what to do. More cute characters would be good. What girl doesn’t like Hello, Kitty? Or what about making games geared towards girls? Barbie games? Yeah, right.

Instead of trying to attract women exclusively or specifically, why not simply make the game more accessible in general?

An example:
Debian Women is a project to get women more involved with Debian.

We will promote women’s involvement in Debian by increasing the visibility of active women, providing mentoring and role models, and creating opportunities for collaboration with new and current members of the Debian Project.

Debian’s mailing lists are known to be elitist, which turns off many newbies. People were leaving Debian for Gentoo which has newbie-friendlier web forums, and in general there are more men than women involved in computers. Still, it turned out that this community project didn’t just attract women. Debian Women also attracted men who were tired of hearing “RTFM” when asking for help. When Debian became more accessible, it allowed everyone to participate, not just more women.

Awhile back I went to see Sheri Pocilujko of Incredible Technologies give a talk on Female Friendly Gaming. When I asked her about the basis for her ideas, she admitted that there were no studies to support them. She was basically going on anecdotal evidence. Still, I think what she noted and suggested makes sense. She noted that making games more attractive to women in these ways also attracts men. I paraphrase them here, but the basic idea is to make your game more accessible, not more pretty. Women, non-gamer men, etc. Even the hardcore “mainstream” gamers of today aren’t as hardcore as they were years ago. Playing a game that has the interface of some old NES games would be a painful experience today for many who have been spoiled with modern advances.

When making a choice, you should be provided with all the information you need so that uncertainty is minimized.
Research has shown that girls are less likely to get called on in class than boys. Boys continue to get attention even if they are wrong, but girls in general are more timid about being wrong and so avoid participation. In the end, boys grow up to be men who are risk takers while girls grow up to be women who are unsure. Women don’t take mathematics or science classes as much as men do. In fact, girls are raised to believe that “Math is hard”. There are other studies that show that females are raised differently from males. Males are prepared to be independent while women are prepared to be dependent. They grow up with certain expectations which turn out to be wrong when it comes to the business world. NOTE: while I normally like to receive feedback, my experience in LA&S classes in college requires me to point out to you that these studies exist and in no way do I imply that ALL women act a certain way. I am not claiming that women are always frail flowers or that they can’t be competitive with men, so please don’t respond as if I did. Thank you.

What is the point? The point is that when you are making a decision, whether in a game, in business, or in life, you have a certain fear. No one wants to make the wrong choice. The more information you have, the less uncertainty you have. When you provide a choice to the player, you should be able to provide all the information that the player needs. But too many games require the player to “know” something. Imagine if you were given a choice of three potions: red, blue, or green. It might be a legitimate fear that if you pick a potion, it might be the “wrong” one. What if you should have taken the red one but you took the blue one? What do those potions do? Why might you need each? How likely will you need each one? With this information, it is enough for people to stop playing. “Math is hard, so I won’t take it in college if I can help it.” It is said by men and women alike. There are just more men who happen to like math and video games. Maybe the analogy is flawed, but I think they are related. I think men play video games more often than women because they were perfectly fine with trial and error to learn how something works. Doing it wrong the first couple of times didn’t phase them. Women, on the other hand, probably got discouraged from initial failure and went back to their training: “Math is hard, so do something else.”

Provide enough information for the player to make an informed choice. Super Mario RPG is a great example of a game that provides information on screen when you need it most without making it annoying to experts.

All relevant information needed to play the game should be provided upfront.
Pocilujko related the story of a girl who bought a fighting game for her boyfriend. She practiced for weeks so that she could surprise him by being able to play the game with him. When she gave it to him, and they started to play, he defeated her soundly. He would even make use of moves that weren’t in the instruction manual. When asked, he just claims that he “just got it”, but the girlfriend was very put off of the game. She read the instructions, practiced, but the special moves were completely missing and she wasn’t aware of them.

I personally didn’t like playing Mortal Kombat or Killer Instinct because there was no way to learn the moves in game. You had to learn it from someone else or through cheat guides. That’s not fostering community so much as making a bad first impression. Super Smash Bros is a fighting game where the controls are the same for each player. Sure, there are slight differences in results, but the interface and mechanics are roughly the same. People pick it up quickly, although it would be better if there was a way to make it obvious which buttons do what in game as opposed to requiring someone to read the manual.

Don’t hypersexualize the female characters.
Women with unrealisticly large breasts might appeal to male teenagers, but most women (and some men) will take offense. You might have scrawny males, fat males, muscle-bound males, but women are almost always sexualized in some way. I’ve heard some people, including women, claim that making the men attractive will help too, but I don’t think that showing shirtless men will really attract the other half of the world to your game.

Characters should have a purpose in the game other than fulfilling the sexual fantasies of teenagers (in age and mental capacity). Won’t it be more compelling to more people to have interesting characters, or should you continue to cater to those who would rather spend their gaming time trying to zoom the camera down a polygonal blouse? Last I heard, The Guy Game didn’t sell well at all even though those were real women.

Make it easy for people to want to buy from you.
Another thing that Pocilujko talked about was marketing and selling. Girls don’t buy games at video game stores because the exclusively male team who invariably works there almost always make them feel uncomfortable. Instead, girls shop at Walmart or Target for their games. The people who work there don’t care that she’s a gamer, so she isn’t in fear of getting asked out on a date or being told that she should look for My Little Pony games instead of Doom 3. While a girl might play at a gaming kiosk, she might back away from it the moment males start to play or a male sales representative appears. Why? Comfort. Have you heard what 12 year olds say when playing a video game? Yeesh.

She mentioned being a salesperson for a Star Wars card game at one point in time. Not only did women feel more comfortable buying from her, but imagine how the men reacted. Here is a woman who not only knows about their game but is also interested in it. Quite a few sales resulted in those interactions, although I don’t think it is necessarily for a good reason. Still, people were more open to the female salesperson who was also knowledgable in the game than they would have been to the male version. Women specifically were more open to playing a game where the person teaching them wasn’t perceived as judgmental.

It is funny because this isn’t just a secret to getting more women gamers. It is a secret to any sale in any business. Make the customer more comfortable about buying from you, and you eliminate another barrier to closing the sale.

Long ago, games didn’t have a lot of room for storing things like a good interface or help text. Most gamers were game developers, which mean they were programmers. Interface wasn’t as important since the person playing the game knew how to use a computer. Today, there is no excuse. A lot of research has been and is being done, and many of these problems have already been solved quite well. Most people aren’t computer science majors and you can’t expect them to be.

Still, the problem is not making games more girl friendly. There are whole communities of female gamers, so it is obviously not an intrinsic problem with the gender. The actual problem to be tackled is in making games more accessible to girls AND boys who wouldn’t normally play. “Math is hard” isn’t just a problem with females, as I’ve said. People generally accept that casual games are supposed to be made more accessible to the soccer moms who play them, but I think that lowered barriers to entry are needed in normal games as well.

My own anecdotal evidence: a friend of mine once remarked that the interface for Harry Potter and the Chamber of Secrets on the PC was not intuitive. I didn’t notice the interface being a problem. Why? Because she doesn’t play computer games regularly and doesn’t know that the keys W-A-S-D are normal. I naturally moved my fingers to those keys whereas she was trying to use the arrow keys. It is not fun to be told by someone that you’re doing something wrong, no matter how nice they say it (and I distinctly remember being nice about it, for the record). Here was a kid’s game that was causing problems for an adult. How did children who don’t normally play games figure it out? Another story: I remember playing a game on the Apple II and getting frustrated with this same issue. I had to use I-J-K-M to move about instead of the arrow keys. “Who thought of that?” I remember thinking back when I didn’t know what “intutive” meant. I had to look up information in one of the computer manuals to find out how to move. The Computer was still new to me so I was already used to figuring out how it worked, but how many people would never play that game because they couldn’t figure it out?

I don’t think that game developers should try to cater to girls so much as they should target non-gamers. Female gamers exist and play mostly the same games that males play. It’s the people who don’t play games that need games that work for them. They need to know that math and video games aren’t painful, scary, or hard.

Categories
Personal Development

Secret to Getting Results

Sometimes I think about pruning out the blogs that aren’t directly related to game development, software, or business. Then a great post like 5 Secrets to Getting Results comes along from a music business marketing blog in my RSS feeds.

Each item is not so much about doing a specific action or using a specific tool. It is about changing your thinking. The only thing you can control in life is your own thought process, so it obviously has a big impact on how productive you can be. Being negative will only help you be more negative.

You can read more details on each secret, but here is the list:

  1. Set out deliberately to make every day highly productive.
  2. Make the most of your opportunities each day.
  3. Appreciate the privilege of work.
  4. Be courageous!
  5. Develop extra energy reserves.
Categories
Games Politics/Government

Truth About Violent Youth and Video Games

Maybe I am late to the party, but I just now read the article that talks about the decline of violence in recent years: The Truth About Violent Youth and Video Games

First off, I have absolute proof that video games are not the cause of this epidemic of youth violence in America. No, really, I do. Ready?

There is no epidemic of youth violence in America.

It shows that data from the FBI itself indicates a decrease in youth violence over the past few years. If GTA 3 and other violent video games are supposedly training kids to kill, wouldn’t the FBI have data that shows an increase instead?

But don’t confuse the politicians and media with the facts. Their minds are apparently made up.

Categories
Geek / Technical

Graphical Tip for X

While I think KDE and Gnome are great, I’ve grown accustomed to Fluxbox. It’s a lightweight window manager and does all I need it to do. One day I plan to use FVWM because it is so configurable, but Fluxbox is great for now.

I also use Debian. Debian has added a common menu for each desktop environment and window manager. While it is normally very nice, it doesn’t please everyone all the time, and there is one thing I can specifically complain about:

Now, xsetroot is a command line tool. It is, according to the man page, a “root window parameter setting utility for X”. Normally people use it to set the background to an image. KDE and Gnome and other window managers have simple, GUI-based ways to let you do so, but for people who prefer config files and scripts, xsetroot is the command you use. Of course, it needs arguments to be useful.

So what happens when you run xsetroot without any parameters? It resets your background and your mouse cursor to the default X settings. Essentially, it means your mouse is now a cross instead of an arrow and your background is made up of an annoying-to-the-eye pattern. So when you click on that menu entry, you end up with an ugly background and mouse cursor. Why would they put that entry in there?!

Luckily, Fluxbox lets you change the style from the main menu, so the background could revert back to what I had before, but the mouse cursor stayed the same. I didn’t want to have to restart the X server just to get a good mouse cursor back, so I decided it was finally time for me to learn how to change it manually.

After some IRC inqueries, man page requests, and some Googling, I found Customizing X Windows Tips. At one point, it mentions the various standard mouse cursors you can use. The command to use is xsetroot -cursor_name <cursorname> where cursorname can be one of entries in /usr/X11R6/include/X11/cursorfont.h
Some examples:

  • draped_box
  • hand1
  • hand2
  • iron_cross
  • left_ptr
  • plus
  • top_left_arrow
  • watch

Well, now that I know about it, it is pretty easy, but it isn’t very obvious to someone who doesn’t know. KDE and Gnome users are probably laughing at me as their mouse cursors are handled by the desktop environment, and Windows and Mac users might be thinking that using Gnu/Linux is tougher than it really is, but hey, I now know something that I didn’t know before. My computer is that much less mysterious. Some people might prefer to just get things done without knowing how the computer works, but I am a curious person. Before, I was always afraid of accidentally running xsetroot from the menu and not being able to recover. Now, I can feel comfort knowing that if something does go wrong, I can fix it, and I also know a lot more about the issue to make things better for me if I want. I am planning on writing a GUI to pick a mouse cursor for people who might not want to know about how things work and so don’t care to figure out how to fix it. I imagine that one might already exist for X11, but I haven’t seen it yet.

Categories
Games Geek / Technical

Machinima

The Escapist’s Casual Friday for issue #4 featured the article Machinima by JR Sutich. It started out alright. It talked about how cool some video game movies, like Red vs Blue, can be. It also talks about how much poor quality work is out there that passes as Machinima but is really nothing more than some kid trying to show off how skillful he is at a game.

Sutich talks about how the issue of copyright infringement hasn’t come up very often for these videos. If not for the games themselves, why not for the popular music that gets featured? Especially since MTV has decided to play machinima music videos, it would make sense that the RIAA might decide that unauthorized machinima should be stopped to protect “creative artists”.

And then Sutich says that it would be a good development! While I understand the idea that there is copyrighted work that should be protected and I understand that strict enforcement of copyright would get rid of a lot of the crap out there, I also think that if the only people who can make machinima are the people who are given approval by the game companies, it would stifle creativity rather than promote it. He says, “often the best way to get something legitimized is to have it come under such intense scrutiny that it becomes regulated.” So now machinima isn’t legitimate? Microsoft has embraced Red vs Blue, and EA clearly must approve of Rooster Teeth’s Sims 2-based series The Strangerhood.

People make some pretty good quality machinima out there. It isn’t always easy to find, but it is one of those things that makes the Internet so cool. If people become afraid to make it for fear of copyright infringement lawsuits, there will only be that many less people making it. Maybe the RIAA, MPAA, and other organizations would prefer it to be as controlled as possible, but I know I don’t.

Categories
General

Brain Games

Blow Your Own Mind talks about ways to give your brain a surprise to keep it on its toes. It isn’t enough to do things every day that require good thinking. You need to do different things once in awhile.

Some examples are:

  • Enter your house/apartment with your eyes closed. You can use tactile feedback to find your keys and open your door and follow your nose to the kitchen.
  • Take a different route to work.
  • Shop at a different market than you usually do.
  • Turn pictures and clocks upside-down.
  • Brush your teeth with your non-dominant hand.

Basically, when you find yourself comfortable with a pattern, do something jarringly different! I try to read a lot, so I could read an entire book or magazine upside-down or sideways. I could walk backwards while getting ready for work one day (I guess I’d have to be extra careful with the stairs). Maybe one day I might try to turn my computer monitor upside down and try to work at it. Basically, if I can use my senses in novel ways, my brain will get a workout.

At work I have a few motivational words and phrases posted up at my desk, but after awhile they lose their novelty. So I turned them upside-down or at a 45 degree angle. Now my eye is forced to stop and interpret what I am seeing. Some people I know are participating in National Novel Writing Month (thanks, Cableshaft!), which is a huge change for people who don’t write much. Simple but jarring changes like these can help keep your brain alive.

Categories
Personal Development

Saying No is Saying Yes to a Different Question

In the past couple of years, I’ve learned a lot about personal productivity. The value of my time, the importance of clarity, and the usefulness of having goals are a few things that have had a profound impact on my life. Along the way, I’ve learned a few practical tips. For instance, if the phone is ringing and I’m in the middle of something, I’ll now let it ring. I’ll check my messages when I am finished with whatever I am doing. Another example is placing reminders for your goals in a place that allows you to most effectively accomplish those goals. These are simple things to do that make a big impact, and sometimes it is good to be reminded of them.

Steve Pavlina’s Saying No reminds me that sometimes you have to say “No” in order to get things done. It’s easy to fall into the trap of wanting to please everyone. People invite you out to a movie, your boss wants you to work late, and your girlfriend wants to go on a date. Meanwhile, you have a list of projects that you were hoping to put some dents in. You can’t do it all, so you have to realize that someone has to be told “No”. Otherwise, how can you say “Yes” to every demand on your time?

That’s the power of the word “No”. It lets you say “Yes” to something else. It is very powerful and yet very simple. In order to accomplish things, you sometimes have to decline to do other things. Another way to look at it is the idea that to make the decision to do something, you necessarily had to decide to NOT do something else. If I decide to go on a date with my girlfriend, I necessarily had to decide not to work on a game review. Obviously there are times where it isn’t black and white. We could go on a double date with some of my friends, killing two birds with one stone. But the point is that something has to be refused in order for something else to be accepted.

Knowing when to say “No” to an action is just knowing what action would be a better use of your time. You need to be consciously aware of what these important actions are because otherwise your life will be dictated by other people’s demands, not your own. If I just have a vague notion that I want to work on my game project one weekend, it can be easy to accept a date on Friday night or an outing on Saturday morning. Eventually I can find that my entire weekend has been filled with all sorts of obligations while my own vague plans just don’t happen. They can’t happen unless I explicitly and consciously say “Yes” to them, which means I have to say “No” to other demands and requests.