Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: March 10th

For this week’s Thousander Club update:

Game Hours: 409.25(previous two years) + 23.25 (current year) = 432.5 / 1000
Game Ideas: 710 (previous two years) + 35 (current year) = 745 / 1000

First the bad: I had multiple days off from the day job this past week, but I still only managed to dedicate something like 10 hours total? Come on, Self!

The good: I have a EULA for the game. To make things simple for me, I will use a Creative Commons license and keep the source proprietary. I did a bit of research before deciding on using a pre-existing EULA, and CC licenses are standard, well-known, and easy to understand.

The game will be freeware, and it will currently only run on x86 GNU/Linux platforms. I will distribute a tar.gz file.

After I figure out some logistics, I can release the source to the game. I can also provide an installer which will output a EULA that the player needs to agree to before the game is installed. I’m actually surprised at the number of shareware games out there that just install without even presenting a EULA. If you want your customers to legally be bound by the terms of your EULA, you need to present it to them BEFORE they install. Otherwise, your EULA will not hold up in a court of law.

Even further down the line is getting this game to be cross-platform friendly. Ideally I can use something like mingw on my GNU/Linux machine to build an executable for Windows. I’m sure some code changes will be necessary, but I hope I have anticipated them. For one thing, I learned that SDL video and SDL audio needs to be initialized together on Windows for some reason. I have a comment in my code as a TODO item. I don’t know if I can also create a Mac OS X build, but if I can’t, then I should be able to enlist the help of a Mac-using friend. I could always buy myself a Mac, especially since the Mac Minis are so darn cute, I mean, inexpensive.

In anticipation for the release of my game, I have created a web page for it: Killer Kittens from Katis Minor is “coming soon”! I’m excited! Are you excited?

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: March 3rd

For this week’s Thousander Club update:

Game Hours: 409.25(previous two years) + 13 (current year) = 422.25 / 1000
Game Ideas: 710 (previous two years) + 35 (current year) = 745 / 1000

Killer Kittens from Katis Minor now has a credits screen. I know I said that all I needed was a credits screen and a license for the game data, but I just realized that I still have placeholder graphics that haven’t been updated. Specifically the main background and the player’s ship. You know, the things you see throughout the game! I want to release this game and get some feedback, but I already know from experience that I will get a lot of comments about how crappy the graphics are. I’d like to fix these problems before release. Besides, if the art isn’t a bit better, there isn’t much of a point of having a decent license for its use.

Ideally I could have just grabbed some free sprites from somewhere. I know decent quality free sprites have to be available on the World Wide Web, but all of the websites that I have been able to find that offer free sprites aren’t offering anything that I could use in my game. They either don’t work with my theme or they put me at risk for copyright infringement. I really don’t want Sega or Nintendo coming after me, so no, I don’t think I will use some of the billions of Sonic and Mario sprites out there. I knew about The Linux Game Tome’s Game Development forum and the Repository for Free Game Content sticky post, and I know GameDev.net has a similar thread called Sprites, sprites, and more sprites!. Both seem to point to websites with copy infringement problems or art that isn’t appropriate for my theme. I searched for some time, but I think it will be less of a hassle to create some better programmer art instead.

And so Version 1.0 is even closer to reality, and I plan on taking some time off at the day job soon so I should be able to throw a lot more time into finishing this game. I also hope that I can release it and quickly move on to prototyping a new game during this period. I think that creating a second game in a matter of days after releasing this first one would be a fun challenge.

[tags]game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: February 25th

For this week’s Thousander Club update:

Game Hours: 409.25(previous two years) + 8.25 (current year) = 417.5 / 1000
Game Ideas: 710 (previous two years) + 15 (current year) = 725 / 1000

I’ve been journaling about an appropriate EULA for the game. While the source code could be licensed under the GPL, the actual game data doesn’t need to be. An example of a game that uses a different license for its data from its source code is the well-known Dangerous Rooms of Death: Journey to Rooted Hold. It is obvious that it can be done, but at this point I’m not sure if I even want to keep the data proprietary. The art and sound effects were quickly put together to be placeholders so I could work on the game mechanics. I was planning on replacing them with better assets, probably outsourced or otherwise not made by me.

Since this game has taken me so much longer to make than it probably should have, I just want to release it and move on. Still, I could retain the rights to the data, requiring that if you want to redistribute my game, you would need my permission to do so unless you replaced the data with your own. In the future, I may need to release a game with proprietary data, and having the experience now can only help. Even if I only release the game for free, having the data licensed separately from the code leaves me with more options. Besides, releasing the data under the GPL or a similar license really doesn’t make sense.

I’ve been thinking more about the process I’ve been following to make a game, and it’s not going to work out. Essentially I’ve come up with an idea and then worked toward implementing it. Maw!Soft’s humorous Thousander Club Update from November of 2006 documented a list of prototypes done throughout the year. Since then, I’ve been reading a lot about the benefits of creating quick throw-away prototypes. Gamasutra documented the prototypes developed by the creators of Tower of Goo, and back in 2005 I’ve written about the interview with James Gwertzman of PopCap in which he claims that the development process is “extremely prototype-heavy”.

I still want to get to v1.0 with Killer Kittens to have a finished game under my belt. I was thinking about going back to work on Oracle’s Eye afterwards, but I think my time would be better put towards prototyping ideas. Oracle’s Eye is not exactly a well-formed idea, so I could just prototype with it, but the point is that I want to make a good game next, and it is clear that creating prototypes is the best way to figure out if an idea is a winner. I mean, it works for PopCap, and not doing it clearly doesn’t work for major publishers. I don’t know about you, but I don’t have billions of dollars to invest in a project for three years before finding out that the game won’t sell enough to recoup its costs.

[tags]game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: February 18th

For this week’s Thousander Club update:

Game Hours: 409.25(previous two years) + 8.25 (current year) = 417.5 / 1000
Game Ideas: 710 (previous two years) + 0 (current year) = 710 / 1000

It’s not that I haven’t been coming up with ideas. I just haven’t transferred them from my notebook to my computer, and until they are in the master list, I don’t count them.

I finished working on fixing my build scripts. In less than 10 minutes, I can now go from a freshly pulled-down-from-Subversion project directory to a distributable tar.gz file that lets the player untar and play in any directory.

My next step was to fix the menu system. When I last worked on this project, I wanted to replace the menu elements with a library of existing code, such as Guichan, but since I would like to hit v1.0 sooner rather than later, I decided to work with what I have for now. It’s better to get something out there now and improve it later. Frankly, the only really bad thing is the volume control slider in the options menu. I tried to write a general purpose slider, but I do not have enough experience in writing GUI code to do it well. Since it has been months since I last looked at this code, I am not sure if I should be impressed or disgusted with what I managed to hack together.

Ignoring how badly I want to replace all of it, my main concern was that each time the player brought up the options menu, it would assume that the volume was set to the highest level. On startup, this is true, but if the player lowers the level, exits the options menu, and then returns to it, the slider will be reset to the highest position even though the audio level itself hasn’t changed. This is partly because the slider’s position is not coupled to the volume, and partly because my code to load the options menu was hardcoded to use the highest volume setting as the value to associate with the slider upon startup. It was a simple fix to get the options menu to load and pass in the current volume setting to the menu slider control when it is created.

Ok, great. That problem is solved, but while I’m messing with the volume slider, I should fix another problem. What if the player wants to mute the sound? Well, you could move the slider all the way to the left. You could, but up until now, because it was so decoupled, you wouldn’t get the volume muted. It would just be very low, which means you could still hear the sound effects. Another small change in the code fixed that problem, too.

What’s next? I would like to ad a credits page to my menu system, specifically to thank people who have helped me as well as give credit to font creators as per their license. I would also need to make a final decision on how the content of the game is going to be licensed. Once those two tasks are completed, I will have a v1.0 to distribute.

For part of this week the day job is sending me to Las Vegas for a prototype. If I get some time during the weekend, I should be able to squeeze some of my own development in, but otherwise I don’t expect to accomplish much. Then again, I could doodle on the plane and during downtime. I can mock up some screens for an improved Killer Kittens after v1.0 or for some future project.

[tags]game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: February 11th

For this week’s Thousander Club update:

Game Hours: 409.25(previous two years) + 6 (current year) = 415.25 / 1000
Game Ideas: 710 (previous two years) + 0 (current year) = 710 / 1000

I found that my build scripts were broken for the game. You know how if you leave a Nintendo controller out long enough that the cable somehow gets itself tangled? I always wondered how it happened. Now I wonder how the heck my code stopped working since it isn’t as if I changed anything to break it. Whatever. I set to work fixing it.

To build my game, I am building custom versions of libraries, such as libSDL and Kyra. Rather than use my system’s installed libraries, I want to be able to distribute my game without the player needing to worry about dependencies. To make the download size smaller, I was building the libraries so that only what I needed for my game was compiled. For instance, libSDL didn’t need to load BMP or TGA files since I was only using PNGs. To build these libraries and make sure they installed into my project’s subdirectory instead of into my system, I had to pass the install path name into the configure script.

It turned out that the build scripts were hardcoded to pathnames on my desktop. Now, we all know hardcoding things is bad, so why did I do it? Well, it turns out that you can’t pass relative paths into a configure script. They had to be absolute paths. I needed to pass “/home/gberardi/Projects/foo/lib” instead of “../../lib”.

So since I was just trying to build my game as quickly as I could, hardcoding it was fine. Since I started building it on my laptop, however, the directories I kept my projects in were different, and I had problems.

In a few hours, I learned more about using GNU Make, specifically how to pass around variables from one makefile to another. Now I can get the absolute pathname of the project, and using that, I can pass it around to subdirectory makefiles, which can then specify other subdirectories. Also, if I use any machine to build the project, it should work without a hitch.

Now I just need to get the game to build. Kyra is a real pain to deal with because the original maintainer did not keep the build scripts working for it. You cannot configure && make && make install. Or at least you couldn’t, until I learned about autoconf and automake enough to get it to work last year. Unfortunately, it turns out that I’ll need to jump into it again because it copies over most header files into the install directory, but not all of them. I’m sure it won’t take much to change the build to copy those files, too, but it might take me some time to figure out how to do it. In a pinch, I can hack a small script to copy those files separately from Kyra’s build, but it would be nice to have the library act self-sufficiently.

Kyra is just a tool, of course, and as nice as it has been, it may be best to switch to a much better supported tool, such as Allegro. Once I finish v1.0 of Killer Kittens from Katis Minor, I’ll make an effort to switch libraries. For now, I just need to get to 1.0.

EDIT: Oh, it turned out to be easier than I thought. Makefile.am just needed to be edited to tell it how to create the files, then automake needed to run to generate the Makefile.in. Simple. Now my game builds and runs just fine, which means my real work can begin in earnest.

Categories
Game Development Personal Development

The Thousander Club in 2008

The last time I updated the Thousander Club entries, I had the following data:

Game Hours: 262.25 (previous year) + 146 (current year) = 409.25 / 1000
Game Ideas: 616 (previous year) + 103 (current year) = 710 / 1000

That was September 24th. Somehow throughout the rest of the year, I did not work on my game development again. I’ve had a few more ideas since then, but not significantly more.

It is now February, and I am just now getting back to game development. It’s been a long break, and while I think it has been way too long, the best I can do is move forward.

It’s a new year, and these are my new starting stats:

Game Hours: 409.25 hours out of 1000
Game Ideas: 710 ideas out of 1000

Two years and I still haven’t gotten to 1,000 ideas? I should be able to fix that soon. Adding hours in game development might still be more difficult, but I hope I can make significant progress this year. I’m due for some time off at the day job, and I hope I can take advantage of it.

Ready, set, go.

Categories
Game Development General Personal Development

Oh, and Happy New Year!

It’s been a week since January 1st, and I just moved into a new apartment. Yes, I know I was supposed to move in August, and I did, but then there were problems with that place, so now I moved again. I’ve been in crunch at the day job as well. All of this conspired to slow down my blog posting and my game development.

I’m still unpacking, but hopefully I won’t have to move again any time soon. The Thousander Club got derailed for some time, as well as my Killer Kittens game, but I hope to get back on track towards 1000 game dev hours and 1000 game ideas soon.

Categories
Game Development Games Geek / Technical General Personal Development

Catching Up On Life

Since moving into my current apartment in August, I’ve let things get a bit out of control in my life. My last Thousander Club post was in September. My inbox has been looking like a huge chore to get through. My blog comments were an even worse chore, but I hope I fixed that problem (more later). November is National Novel Writing Month, and I had entered NaNoWriMo, only to write a little over 2,000 words out of the goal of 50,000. It’s not that I haven’t had the time. With not working on Killer Kittens or writing blog posts, I had plenty of time. Without going into details, things in my life have been fairly hectic these past couple of months. Frankly, my business, blog, and side projects like novel-writing had to be put on the back burner. That I managed to finish reading a book throughout all of this is an accomplishment.

But I’m finally getting back on track. I’m remembering how to write lists to focus my actions. I’m itching to work on Killer Kittens again. I want to write about games and their development again. But first, I need to work on my backlog of tasks I’ve been neglecting.

I finally reduced my email inbox at the day job to 0, and I have been maintaining it for the past couple of days easily. I still need to tackle my GBGames email. I just installed Akismet, and I should have done so a long time ago. Today I deleted another few hundred spam comments, and a couple of days ago I had over 1,000 spam comments. I didn’t even bother going through it to see if a legit message was in there, so if you had posted a comment that didn’t automatically get posted for being a loyal commenter, you may need to repost.

My physical inbox at home is still a pile of mail, notes, and papers, but at least I finally entered all of the receipts on my desk into GnuCash. My bills are paid. All the urgent and important things are taken care of on this front. I can tackle the rest either all at once or in chunks.

I need to renew my domain names, renew my just lapsed membership to the IGDA, and renew my ASP membership.

And all the while, I need to remember to make lists of Next Actions and Projects.

Oh, and I want a TV. Nothing sucks more than having six different consoles of as many generations without a television to connect them to. Still, I have a computer and a decent network connection, so while I can’t watch Heroes, Chuck, and Pushing Daisies, I can watch Irving Renquist, Ghost Hunter and random cats and elite Starcraft matches on YouTube. Wait, I can watch Heroes and Chuck online, but it’s just not the same.

Anyway, I’m hoping to get back into regularly updating my blog. I might not have a post each day, but hopefully I will have something interesting to contribute more often than not. Tonight I think I will update the books I’ve read and games I’ve played list. Quake 4 is actually fun, by the way.

Categories
Game Development Personal Development

Thousander Club Update: September 24th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 146 (current year) = 409.25 / 1000
Game Ideas: 616 (previous year) + 103 (current year) = 710 / 1000

I don’t have too much to report. I didn’t do much with Killer Kittens as I was having trouble motivating myself to work on it while so many other things were happening in my life. Now that I’ve been away from the project for so long, perhaps it will be easy to look at it again. B-)

Categories
Game Development Personal Development

Thousander Club Update: August 6th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 146 (current year) = 409.25 / 1000
Game Ideas: 616 (previous year) + 92 (current year) = 699 / 1000

I’m moving within the next month. Between traveling to different states for weddings and visiting friends, crunch time at the day job, and an annoying need to sleep and eat, finding a new apartment has been incredibly time-consuming. I need to move out of the apartment by August 31st, but I can’t wait that long since I’ll be in Ohio again that weekend. I’ve seen a number of places, and some seem nice, but none have jumped out at me as a new home. My current apartment has become too expensive to live in, and so I am looking for something that can let me save money.

And when have I found time to work on Killer Kittens? Frankly, I haven’t. Occasionally I squeeze in some work, but it is usually during the downtime when I am out of town. Then I get back and it is right into day job crunch again. I haven’t even had much time to write entries for this blog, and there were plenty of interesting things going on in July. I’m also behind in my POTM entries. Heck, I missed last week’s Thousander entry, which is the first time I missed a week since I joined the club.

I suppose I can’t be too harsh on myself. Moving into a new apartment is important and urgent. Other things in my life have to take a backseat. Perhaps when crunch is over (when IS crunch over?) I’ll have some more breathing room, too.