Categories
Game Development Personal Development

Thousander Club Update: May 28th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 111.25 (current year) = 373.5 / 1000
Game Ideas: 616 (previous year) + 44 (current year) = 660 / 1000

Edit: Hah, I didn’t get to update this entry before it got posted. After a couple of good productive weeks, I had a week in which I couldn’t do much of anything.

Categories
Game Development Geek / Technical Linux Game Development Personal Development

Interview with Ryan “icculus” Gordon

Over at LinuxGames.com, I found Interview with the Icculus, a discussion with Ryan “icculus” Gordon on the future of game development on Gnu/Linux.

The best quote:

I guess you’re asking what Linux gaming will look like in five years and, in a roundabout way, I’m answering: whatever we make it look like.

Ryan is doing his part by putting in his efforts into the next version of libSDL, which seems to integrate more with OpenGL behind the scenes, as well as the reincarnation of the Loki Setup program, called MojoSetup.

I’m hoping that GBGames can also make a significant difference in the future of gaming on this platform.

Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: May 21st

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 110.5 (current year) = 372.75 / 1000
Game Ideas: 616 (previous year) + 44 (current year) = 660 / 1000

I spent a good portion of this week reducing the dependencies Killer Kittens has. I followed the advice of Troy Hepfner, owner of My Game Company and creator of Dirk Dash. He outlined what to do in the article Game Developer’s Corner: Linux Game Development: Distributable Binaries which members of the Association of Shareware Professionals would have seen in the May 2007 issue of the ASPects newsletter. If you’re not currently a member of the ASP, you can join and obtain access to the back issues in the archive.

If you install a game, it should install any dependencies if you don’t have them. On Windows, you’ll see games that try to install the latest DirectX drivers, although there is room for improvement. If I already have a later version of DirectX, don’t offer to install an older one!

Anyway, ideally the game should be as easy as extract-and-run. I shouldn’t need to tell someone that they need libSDL-1.2 and libSDL_image-1.2. If someone doesn’t have the required libraries on his/her system, the game should supply its own version of the libraries.

But I don’t want to provide hundreds of libraries. Besides bloating the download size of my game to possibly tens or hundreds of megabytes, making it less likely someone would want to download it and increasing bandwidth costs, it would be a hassle for me to deal with!

My game currently depends upon libSDL and libSDL_image. Using Troy’s helpful information, I was able to reduce libSDL’s dependencies dramatically by creating a custom version. I built the Kyra Sprite Engine as a dynamic library according to the instructions in this post.

Unfortunately, I had problems getting Kyra to build using my custom SDL libraries. Also documented in that post, I found that building the Kyra Sprite Engine actually builds two libraries: libkyra and libengine.

I ran configure with the following arguments: –prefix=/home/gberardi/wc_KillerKittens/KillerKittens/lib –with-sdl-prefix=/home/gberardi/wc_KillerKittens/KillerKittens/lib/ –with-sdl-exec-prefix=/home/gberardi/wc_KillerKittens/KillerKittens/lib/

If I run ldd libkyra.so, I find that it uses the libraries in the KillerKittens/lib directory. If I run ldd libengine.so, however, I find that it uses the system-installed libraries, which also brings in all of their dependencies.

If I can get libengine to build using the same libraries as libkyra, I can get my dependencies down to a handful. I believe the problem lies with a faulty implementation of autotools and libtool, but those tools seem incredibly difficult to work with. As a (possibly half-serious) joke, it is said that most people don’t actually know how to use autotools and simply copy and paste configuration files from one project to the next.

I’ve asked for assistance on the The Linux Game Tome game dev forums as well as the Linux Game Development Center mailing list. While I wait for any response, I’m still hunting through the configure, configure.in, ltmain.sh, and various Makefile files, trying to determine why one library builds with the options I pass to it while the other does not.

On a different note, if you are going to be in Chicago on May 24th, you can come see the game development tech talk I will be giving for the DePaul Linux Community.

Categories
Game Development Personal Development

Thousander Club Update: May 14th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 101 (current year) = 363.25 / 1000
Game Ideas: 616 (previous year) + 33 (current year) = 649 / 1000

Last year, I was at only 85 hours. I know I could have done better this year, but at least my current hours show an improvement from last year’s effort. Hitting 100 hours in mid-May is better than hitting that same milestone in mid-June. Still, it would be nice to be two months ahead. Last year I hit 200 hours in October. Perhaps I can hit 200 hours in August instead. July would be even better. B-)

Categories
Game Development Personal Development

Thousander Club Update: May 7th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 96.75 (current year) = 359 / 1000
Game Ideas: 616 (previous year) + 33 (current year) = 649 / 1000

Monday and Tuesday: I took the time to look through my code and figure out the best way to implement temporary invulnerability. It was great because Tuesday morning I spent about 30 minutes actually coding the feature. I did it simply by hiding and showing the sprite. Later I implemented a way to earn an extra ship every 10,000 points.

I also threw in a cheat that lets me immediately destroy all of the aliens in a wave at once, earning all of the points for the kills. It is a lot easier to test that I can earn an extra ship if I didn’t have to play through four levels every time.

Wednesday: I tweaked a few variables to see if I can improve the feeling of the game a bit. I’ll have to do more experimentation here. I also added some string to the yarn balls to make it more obvious what they are. I added a difficulty menu, which was tougher to do than I thought. I need to overhaul the menu code.

Thursday: Added the different difficulty settings. I may have to change what actually makes one setting different from another, but at least someone can choose something easier or harder if they want.

That night, I transferred the game to my laptop so I can show off the new features to the people at the local LUG. I found out that temporary invulnerability didn’t look right. It must have something to do with either the LCD display or the refresh rate or the fact that the laptop is dual core. Whatever was the cause, the ship was either completely hidden or completely visible during the temporary invulnerability state, so it was definitely wrong. After a quick change to the code, the ship slowly fades back into view when invulnerable. Not only does it work on all machines, it looks much cooler! A similar problem was occurring with the yarn balls. They didn’t seem to rotate properly, and the trailing strings didn’t seem to flow. Friday night I attempted to fix it by not updating the animations as often.

The good news is that people were starting to recognize the yarn balls as yarn balls. B-)

I did get a few of the same < title="Do You Listen to Feature Requests: Previous Post" href="https://www.gbgames.com/blog/?p=621">requests, such as power-ups and shielding. I didn’t think it made too much sense to have shielding, but I thought of something better and funnier: flying fish. Fish with pilot hats. They fly across the screen, and when they get hit, maybe you have to catch them to get a power-up.

Friday morning I experimented with rapid fire. I just increased the speed of the player’s shot to see how well it played. It made the levels much easier, but it also seemed to make it more responsive. When the kittens are near the top of the screen, it just takes longer to shoot them, and so the action seems really slow. I don’t think I can make it a permanent change, but I can see providing a rapid fire power-up. Now I have a new decision to make: is rapid fire a temporary power-up, or do you get to keep it until you lose a ship? I suppose if I make it last until you lose a ship, I would need some other power-ups in the game as well.

At this point, I’m starting to think that these features can always go into v2.0. I could spend another few months just getting all of these features working properly, but I could have released the game and gotten a lot more feedback in those months.

Categories
Game Development Personal Development

Thousander Club Update: April 30th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 86 (current year) = 348.25 / 1000
Game Ideas: 616 (previous year) + 32 (current year) = 648 / 1000

Monday: Increased challenge gradually by adding an extra bomb for the aliens to drop each level. Now level 11 doesn’t look and feel like level 1. I still have to tweak some settings, though. It seems that after a certain level, you can’t really tell that there are extra bombs. I will probably need to increase the rate of fire as well as increasing the maximum number of bombs.

Tuesday: Fixed the game over menu. It now restarts the game if you pick the appropriate selection.

Wednesday: Increased challenge again by increasing the rate of enemy fire. Now when you get to a later level, it doesn’t have nearly as much resemblance to older levels. In a way, it now kind of resembles those shooters in which there is nothing but a shower of bullets to navigate through. I also thought of a few more ideas that might make the game more fun and fair in light of the challenge increase. Adding features this late in the schedule probably isn’t the best thing to do, but as I didn’t have much of a schedule, I suppose I can’t be “off track”.

Thursday: Made some minor changes. For instance, the player’s bullet appeared too far above the actual ship, which wasn’t too noticeable before, but now that you can shoot the bombs, it was frustrating when you miss one that you shouldn’t have.

I spent the past few days watching people play the game.

While I didn’t spend more than a few hours on game development this past week, those hours really made a difference.

Categories
Game Development Personal Development

Programming Yourself

Steve Healy wrote Programming Your Mind to Think About Programming, which gave me a few more ideas on how to convince myself to work even when I don’t feel like working.

He mentions feeling motivated while listening to certain songs, reading select articles, or watching a certain television show. I know that whenever I hear certain video game remixes (especially Contra and Mega Man 2) or techno, I can’t help but want to type semicolons.

I would like to develop rituals to get me in the mood to think creatively. For instance, I want to immediately pull out a pen and notebook whenever I am waiting for something. In line at the grocery store? Take some notes on my next game project. Waiting for something major to compile? Write down a few game ideas.

It is sometimes too easy to just let time go by without any results. If you can program yourself to do things automatically, things will get done as time passes.

Categories
General Personal Development

Nastiness on the Net

I haven’t been keeping up with the blogs I normally read, so when I read the first line of Martin Fowler’s blog entry NetNastiness, I had to look into it.

Somehow I hadn’t heard that Kathy Sierra, of the Head First books series and Creating Passionate Users blog, has had death threats made against her. She canceled a presentation and talked about discontinuing the blog due to these misogynistic threats.

I do not want to be part of a culture–the Blogosphere–where this is considered acceptable. Where the price for being a blogger is kevlar-coated skin and daughters who are tough enough to not have their “widdy biddy sensibilities offended” when they see their own mother Photoshopped into nothing more than an objectified sexual orifice, possibly suffocated as part of some sexual fetish. (And of course all coming on the heels of more explicit threats)

I knew about Tim O’Reily’s bloggers code of conduct, but I didn’t know it was proposed in light of these death threats. I still don’t quite understand what the situation was, but apparently some well known, otherwise respected people were involved with the websites that hosted the comments.

Fowler wrote about the subject of nastiness on the Net in relation to these threats.

I worry that people who have interesting things to say and questions to ask are put off by the cut and thrust. They don’t feel free to speak. The freedom enjoyed by people who are nasty does deny freedom to others – and the nasty people belittle the fears of those they have silenced.

We can’t just sit back and say, “Well, that’s the Web!” It isn’t how I want my Web to be.

You may be thinking that this is taking it too far, some people will take offense at anything; following this logic leads to people who either say nothing, or speak in the bland platitudes favored by PR companies.

There is no need to go to the extreme of not saying anything for fear of offending someone. Fowler is right, however, in that we need to be aware that what we say may mean something a bit more than we intended. If you think that the nastiness is no big deal, you may want to ask yourself what effect it is having. Fowler’s entry touched on research that claims only 1.5% of women are involved in open source, even though 25% of women are involved in proprietary software development. His numbers are actually a bit different, as I got mine from a slideshow my friend sent me from the Flourish conference hosted in Chicago recently. One of the more interesting slides asked the question “Have you ever observed discriminatory behavior against women in FLOSS?” Just a little over 20% of men said yes, while almost 80% said no. Women, however, answered in the reverse.

And this is a study focusing on women in open source. What about foreigners? What about homosexuals? What about parents? What about students? What about race, or handicaps, or religious beliefs? How many people don’t feel welcome on the world wide web due to some level of nastiness that is tolerated in communities such as IRC channels, mailing lists, and blogs? It doesn’t need to be a misogynistic death threat to cross the line.

I want my Web to to better.

Categories
Game Development Personal Development

Thousander Club Update: April 23rd

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 83.5 (current year) = 345.75 / 1000
Game Ideas: 616 (previous year) + 24 (current year) = 630 / 1000

I managed to get some time in this past week despite the day job. I picked a title for my Space Invaders clone as well as a theme. It’s now called Killer Kittens from Katis Minor. The theme is pretty much the same thing as Space Invaders, only now there are killer kittens instead of generic aliens. Instead of dropping generic bombs, the kittens drop exploding yarn balls.

While this theme is pretty much a cosmetic change, I have managed to add a few minor features as well. Also, killer kittens are funnier than generic aliens. If I can focus on this project in the coming week, I might be able to finish enough to release it before the end of April.

Categories
Game Development Personal Development

Thousander Club Update: April 16th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 76 (current year) = 338.25 / 1000
Game Ideas: 616 (previous year) + 24 (current year) = 630 / 1000

Crunch time at the day job is still taking its toll, but I think I’ve learned a few things about increasing my productivity in general. Or maybe I am just putting into practice what I’ve already learned. Either way, I have some new habits that seem to translate into progress, and I can’t wait to have free time to spend on GBGames again. In fact, I figure that I can still dedicate 15 minutes a day , which should translate into almost two hours a week. No matter what, I should work for 15 minutes on my own project before going to the day job. I think the toughest part will be stopping after the 15 minutes are up. B-)

In the meantime, I have been doing a halfway decent job of coming up with some game ideas during the few breaks I’ve given myself. When I used to be on track for the Thousander Club, I would come up with at least three game ideas per day. I haven’t been doing so since I hit the previous crunches last year. I want to try to catch up with the ideas as quickly as I can, but if I can’t, I should at least try to get back into the habit of coming up with three ideas each day.