Categories
Game Development Linux Game Development

Open Source Multiplayer Server/Client Library

Maybe a year or so ago I was trying to find something along the lines of a multiplayer lobby to include in my own games. I didn’t have any games in mind, but I knew that I would need this software if I wanted to make a useful multiplayer game. Unfortunately it was difficult to find, and I didn’t like the idea of using GameSpy’s software as there didn’t seem to be anything Gnu/Linux compatible about it. It’s even more out of the question since I want to release the code under a Free/Open Source license. I would have to write my own server/client software, and I basically took comfort that I wouldn’t have to worry about making a multiplayer game anytime soon.

Then I saw a post on gamedev.net:

GNS, or Game Name Search, is an open source game portal client/server package. Game developers may integrate the GNS client into their video games, and host an online GNS server to allow clients to find each other over the Internet. GNS servers also provide chat room functionality and content hosting.

It is under the MIT license, which makes it perfect for FOSS and proprietary software developers alike. It is currently at v0.1 Beta, but Gamieon, Inc already has plans to host gaming servers in the future. I imagine that charging for this service will be their main source of revenue from this product, although they do have others.

I think this software sounds like it has a lot of promise and would fit in perfectly with my own game development. When I get to the point where multiplayer games are a possibility for me, GNS will definitely be on the short list when I decide what tools to use.

Categories
Game Design

Character in Games

It Builds Character: Character Development Techniques in Games talks about techniques to make characters that your players can relate to. It provides some simple-to-implement techniques to aid in the creation of interesting characters and their relationships.

The Tarot card idea is actually pretty cool, and I’m sure if someone uses cards from other decks, like Uno or Fluxx, they could come up with some very unique ideas for characters. The Tower, a Reverse, and Squishy Chocolate?!? You could create a down-on-his luck thief who decides to be good from now on. At some point, when he can’t stand his hunger any longer, he comes across a chocolate bar but gets caught trying to steal it since it was sitting in the sun for too long.

Ok that didn’t work so well, but hey, I didn’t actually deal those cards nor was I really trying. B-)

Mock conversations and character webs are also good ideas. In fact, I think it would be cool if games would come with these things as part of the extras, similar to what’s on DVDs. I remember reading a Super Mario World strategy guide that I received through my Nintendo Power subscription. It was really cool to seeing designs of the game series complete with sketches of Mario on a dinosaur years before Yoshi came along. I imagine that storyboards and sketches could be combined with mock conversations and character webs to make great behind-the-scenes footage for a game, especially if the developers act out the roles of the characters. At the very least, they could be really funny.

Categories
Game Design

Difficulty in Games

Gamasutra’s Soapbox: Difficulty and the Interstitial Gamer by Michael M. Eilers talks about the idea of gamer who grew up.

Years ago, video games were for children. Today, while a lot of non-gamers think that it is still the case, most gamers are adults. These are adults with lives outside of school and video games, and they don’t have a lot of time to spend on games. I believe I fit that description, a realization that has always been sad to think about.

The article makes the point that games that make use of the same designs employed in the 80s won’t work as well today. Designs doesn’t mean that you can’t make a Pac-man clone. It means that what is normal in games is drudge work by today’s standards. Years ago I would try over and over and over again to get past a Megaman boss or time the jumps right in Super Mario Bros. I had nothing but time to dedicate to games. Today, if I hear that a game has arbitrary jumping puzzles or has dangers that I can only get past the first time with clairvoyance or cheat guides, I tend to take a pass. I also don’t spend money on MMO games because I can’t be guaranteed that I will get good value out of my monthly fee.

Now, it isn’t to say that I don’t take pleasure in playing these games. I just don’t have the time anymore. Years ago, I played strategy and role playing games for days or weeks at a time, then stop playing those games for a few weeks or longer. When I came back to the game after such a period of time, I couldn’t remember what I had done so I usually erased my old save and started over. I get a slight empty feeling at this point because I can’t feel comfortable continuing a game that I barely remember (“that’s not my character anymore”) nor can I feel good about deleting the progress I had made. I get that exact feeling today when I get a chance to play a game for an evening but can’t return to it for weeks. When I was younger, I might stop because I wanted to play a new game or had a lot of homework for that week. These days it is because game time is rare. It is more like I was able to find some time to play a game instead of having my game time interrupted by something else. I suppose it is why LAN parties are so popular. You get to schedule an entire day or two (or three!) to just playing games.

So gamers have grown up for the most part, and the game industry’s mainstream isn’t the hardcore game player anymore. I touched on this idea slightly when I discussed the idea of making games girl friendly. I basically say that games should be more accessible in general to attract non-gamers rather than specifically female non-gamers. This article made me realize that non-gamers are actually a subset of people who aren’t playing games. Interstitial gamers make up another part of it, and while I knew they existed, I didn’t realize just how large of a group it may be.

And then there is this article at Gamers With Jobs which gives an…interesting point of view on difficulty in games. There are no pictures so it is workplace safe.

Categories
General

Writing Well

Writing is about communication, and writing well means being able to communicate clearly to your audience.

Two kinds of writing by Seth Godin gives some quick, focused tips on how to write for different audiences. To summarize an already short post, if the audience consists of people you know, you can and should write with detail. If you write for a more general audience, you’ll need to lay off the nuance and low level details. It is one of those obvious-when-you-read-it-in-front-of-you kind of tips.

I find that my writing has greatly improved since I’ve started this blog. Any writing I did previously was through instant messages or email. Occasionally I would write a review for Game Tunnel. Even when I was still going to school, my last year didn’t require me to write papers for class as I mostly took computer science or math. I made a point to write with correct punctuation, spelling, and grammar, even when dealing with IM. I just didn’t want to gain bad habits by writing in too much shorthand: “d00d ur kool im out g2g lol”. Children are growing up today writing papers for class that are nothing better than IM conversations! Writing my blog lets me practice the art of writing a lot more often than I normally would. It is a very nice bonus since I didn’t start my blog to improve my writing.

I think I am pretty good at spelling, punctuation, and grammar. I don’t have a problem with the mechanics of writing; however, when I look back at what I wrote even just a year ago compared to what I write now, the quality difference is amazing. Perhaps part of it is because I read so much more often than I used to do. Perhaps I simply had great teachers in high school. I think that writing more often has the biggest impact since I not only get to practice writing but can also read the results. Today I can see some writing from a year or two ago that just makes me uncomfortable.

In a similar way, I need to practice coding more often so that I can look back in a year and cringe at my commenting style. B-)

Categories
Personal Development

Responsibility

David St. Lawrence wrote about how the glass isn’t half-empty or half-full.

Life sweeps onward through time and space, even for those who are hiding under rocks like a hellgrammite. There is no inevitability that things will “improve” or “decline”. There is only change and your own potential to exert control over some part of that change.

At at given moment, you can bring about a dramatic change in your own future by deciding to confront what it is that you are doing and how it is related to your own chances of personal survival. It is this incredibly powerful, yet subtle action of facing something and taking responsibility for some part of it that starts you an the road to taking control of your destiny.

I’ve already learned the eye-opening realization that I can control my life’s course. In fact, even when I didn’t know this fact, my life was still being changed by my own actions or inaction. My decisions to do or not to do resulted in what I did on a day to day basis, therefore impacting my week, month, year, and life. It is humbling to know that I have only myself to blame for what’s wrong in my life, but it was also empowering to know that all I need is myself. Looking back, everytime I did well, it was because I took responsibility for my own actions. Everytime I felt in trouble, I also was blaming other people.

There are a few keys to taking control of your life. You need to be able to control what you think since all action leads from thought. Joan of Arc said, “All battles are first won or lost in the mind.” You need to be able to discipline yourself to take action instead of getting stuck in analysis paralysis. Finally, you need to take responsibility and stop assuming that circumstance or other outside influences have more of an impact than you do. All life is change, but you can take charge and make sure that it isn’t left to chance. “Go with the flow” is a nice saying, but it is a horrible motto for your life.

Categories
Games General

Women Gaming Restaurants?

This topic is kind of related to my post on making girl friendly games. Apparently, Nolan Bushnell announced plans to found a new chain of restaurants designed to lure women into gaming. Bushnell is pretty much famous for Pong, usually incorrectly credited as the father of video games. He also created Chuck E. Cheeze series of restaurants.

I actually remembered going to a restaurant that had table top arcade games with my family when I was younger. The idea of arcade games that you play sitting down was pretty cool to me. Apparently Bushnell wants to make a restaurant that has games that appeal specifically to women. And of course, if women go, men will follow. And alcohol usually helps.

Of course, that’s the theory. Dave and Buster’s and Gameworks already fulfill the “gaming with food and alcohol”, but they don’t try to appeal to women much. What will Bushnell’s new restaurant actually do differently to bring in women? Will it actually bring in other non-gamers as well?

Categories
Politics/Government

IE Only Website: U.S. Copyright Office?

From Copyright Office: Is only MS IE acceptable to you?:

In a followup to its July 22, 2005, Notice of Proprosed Rulemaking, the Copyright Office is now seeking “information as to whether persons filing the electronic-only preregistration form prescribed by the Copyright Office will experience difficulties if it is necessary to use Microsoft’s Internet Explorer web browser in order to preregister a work.”

It’s been a few years since “Best Viewed With Internet Explorer” was something people proudly put on their sites. The idea that only IE is capable of viewing a webpage is absurd, but some people insist. But requiring me to use IE to preregister a copyright? Why? Didn’t Homeland Security say that IE is a problem?

The article provides contact information so that people can submit their opinions on this matter. More info: http://www.copyright.gov/fedreg/2005/70fr44878.html

Categories
Geek / Technical

Guess the Google!

A friend sent me this link last week: Guess the Google!

It is a fun game in which you only have a few seconds to try to guess the Google search term that resulted in the 20 images displayed. Requires Flash 7 to play.

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-)