Categories
Game Development General Personal Development

Thousander Club Update: November 20th

For this week’s Thousander Club update:

Game Hours: 227.25 / 1000
Game Ideas: 500 / 1000

Target: 903

A little less than 100 hours left for the year!

I spent another week researching Autotools, and I managed to get two text-based applications building with it. One was a basic “Hello, World!” application, and another was a text-based board game simulation that I completed months ago. Now, I am trying to get the Kyra Sprite Engine building into a shared library. Previous versions already had a working autotools build system in place, but it has been broken for the last few iterations. Ideally I could get it back to a working state. At the very least, I would like to be able to use Autotools on my project while integrating Kyra into that build procedure.

Of course, November is almost over, and a month ago I said I wanted to be able to complete a Space Invaders clone. Researching and using Autotools is only tangentially related to that goal. Of course, goals can be changed, and I think that sticking with learning a new skill would work better than taking a break to make a game, which in all likelihood would take longer than I think it would.

So my plans change again, only I don’t feel too bad about it. Sure, it means putting off finishing another game, possibly until the beginning of 2007, but it also means that I am not trying to spread my focus across five different disciplines at once. I am still moving forward, and learning a new skill always feels as though you are not being productive at first.

Realistically, with the holidays approaching, I can see my time getting split up between the day job, game development, and family, which means that Space Invaders might really take me a couple of months to make anyway. But hey, once it is made, I should be able to easily build and distribute it.

Oh, and I also spent a number of days coming up with some really simple ideas. I plan to catch up to 1,000 ideas by the end of the Thousander Club for this year. Last week I was at 445 ideas, and now I am up to 500. If I spend a few more weeks coming up with hundreds of ideas, I should be able to make it. It has been a long time since I posted one of them, and I hope to post one for this week.

Categories
Game Development General Personal Development

Thousander Club Update: November 13th

For this week’s Thousander Club update:

Game Hours: 218.25 / 1000
Game Ideas: 445 / 1000

Target: 882

I have printed out the manual for Autoconf, which is the tool used to create configuration scripts for a wide-variety of Unix-like systems. Together with Automake, it will allow me to make packages that users will simply need to configure && make && make install. So far, it doesn’t seem like it is too complicated, but it is difficult to find beginner documents that don’t assume you already know something. Interestingly, the Autotools book claims to be a tutorial, but it seems to give examples without explaining much, expecting you to use the reference manuals for the individual tools.

I intend to write my own set of tutorials since I think these tools would be much more useful to developers if they only knew how to use them.

Categories
Game Development Linux Game Development Personal Development

Thousander Club Update: November 6th

For this week’s Thousander Club update:

Game Hours: 216 / 1000
Game Ideas: 445 / 1000

Target: 861

I spent this past week researching autotools in order that I might use them in my projects. Basically, if I can use autotools in my game projects, I will have less of a problem when porting to various Unix-like systems, including different Gnu/Linux distros. In fact, if I do use autotools, I can use CheckInstall to create various distro packages, such as RPM or .deb files. Of course, there is still the problem of porting to Windows, but it seems that my code is quite portable, and there are various installers available for that platform anyway. As for the Mac, I imagine that a third party will be involved, such as Red Marble Games which provides a porting and marketing service.

This week is the 45th of the year; the year is almost over. I hope that I can make a better effort for these last few weeks.

Categories
Game Development Games General Personal Development

Dexterity.com Shuts Down, Articles Go Missing

Steve Pavlina announced that he has shut down Dexterity.com, his shareware game development business which he has run for about 12 years.

Unfortunately, he hasn’t transferred his articles on game development practices. Some of his articles have been updated and are in his articles section, but some, such as “Zero Defect Software Development” and “Shareware Amateurs vs Shareware Professionals” are nowhere to be found.

I’ve personally found these articles to be a great resource, and in fact they were the reason why I was inspired to start my own indie game development business. It would be a shame if we could only access them through archive.org or Google’s cache.

EDIT: Some of these articles are in the Association of Software Professionals newsletter archives, available to members only. If No Independent Developers Are 100 Times Smarter Than You, Then Why Do Some Get 100 Times the Results? is a free article.

Categories
Game Development Personal Development

Thousander Club Update: October 30th

For this week’s Thousander Club update:

Game Hours: 211.75 / 1000
Game Ideas: 445 / 1000

Target: 840

I spent a few hours looking into various ways to implement frame-rate independent movement for my Pong clone. Yes, I am still dedicating time to it. I had discussed the topic with William Willing as well as Troy Hepfner of My Game Company. I even looked into my copy of “Game Programming Gems” since I knew it had four interpolation methods described, two of which are frame-rate independent.

William had pointed me to a thread on the Indie Gamer forums discussing the various methods. Some of it was hard to get my head around, but in the end I decided that I would look into interpolating with delta time…

…and sure enough, I checked and found that I had already gone this route before. Over a year ago I was working on Oracle’s Eye and tackled this problem, and I basically came to the same conclusion, which I describe in a previous post. The good news is that I am much more familiar with what is needed, and my solution can be implemented in a much better way. Last time, I think I had done something incorrectly, and the animation wasn’t very smooth anyway.

William had actually gone through the trouble of coding up some implementations for the various methods. I found his code useful to read through, and I think would make a good resource for others. How about it, William? Feel like posting the code? B-)

Categories
Personal Development

Shooting Baskets

Yesterday, I went to the gym to play some basketball. Basically, I needed to get away from a computer monitor and get physically active. Running around and shooting a basketball was an easy and fun way to spend 15 minutes.

I started using the gym at my day job a few months ago. I haven’t played basketball since high school, and I was never very talented at it in the first place. Still, I wanted to practice shooting baskets. I would shoot from the free throw line and try to make five shots in a row. The highest I ever got was four shots. I just could not make that fifth shot! It was frustrating because I would shoot the ball and make a basket or two, then I would miss. Sometimes, I would miss completely. I was getting very inconsistent results.

Yesterday, however, I didn’t bother with free throws. Oh, I tried them a few times, but I decided that I was going to be fine with missing a shot. I just wanted to make a shot from anywhere. So I would shoot, and if I missed, I would grab the rebound and take the shot from wherever I was as quickly as I could. I noticed that I was making quite a few baskets, or maybe I just ignored the fact that I was still missing baskets because they gave me an opportunity to run and grab rebounds.

In any case, I took the failure of not making baskets, made it a part of the process of playing basketball, and felt great about it.

Michael Gelb, the author of “How to Think Like Leonardo DaVinci”, gave a seminar on creative thinking over a month ago, and I was able to attend. To go to the seminar, I had to bring a ball. Gelb taught everyone how to juggle, and to do so we needed to get into teams of at least three people. Besides becoming a student of juggling, I also became interested in the way Gelb learned to juggle.

When he first wanted to learn, his teacher told him to “take three balls, throw them up in the air, and don’t let them bounce”. Technically accurate advice, but it was not very helpful. Still, Gelb tried very hard to juggle, and every time he dropped the balls, he became even more determined and would try harder. Eventually, after struggling for so long, he learned to relax. He no longer became stressed when he dropped a ball. He pointed out that no one learns how to juggle without dropping a ball, and so when he had us go through the steps to learn how to juggle, he made failure a part of it.

The first step was to throw one ball in an arc, but you DON’T catch it! Catching it is your partner’s job (and another reason why we needed partners). Dropping the ball used to be a point of failure, but now it was a part of the learning process. Now when you drop a ball, you know that it is part of the learning process.

I found that when I was shooting baskets yesterday, I did not feel nearly as disappointed about missing a basket as I used to feel. Missing a shot meant that I could practice rebounds and could get another opportunity to shoot. Missing a shot was no longer a point of failure. It was a part of the learning process.

How to Think like Leonardo Da Vinci: Seven Steps to Genius Every Day
How to Think like Leonardo Da Vinci: Seven Steps to Genius Every Day
by Michael Gelb

Categories
Game Development Personal Development

Thousander Club Update: October 23rd

For this week’s Thousander Club update:

Game Hours: 204.75 / 1000
Game Ideas: 445 / 1000

Target: 819

While the numbers don’t look too productive, I did manage to tackle a number of other responsibilities. I was reviewing a game as well as catching up on my finances.

Also, now that I am back from the Schmooze, I am feeling quite motivated to get a finished product as soon as I can. I hope to spend the next couple of days making a basic plan. I haven’t updated my business plan since March, and I want to make some mini-goals for myself in a few other areas in my life.

Categories
Marketing/Business Personal Development

2006 Grand Rapids Schmooze

Tomorrow I will be hanging out with other members of the Association of Shareware Professionals at the 2006 Grand Rapids Schmooze. As last minute as it is, if you can be in the area this weekend, you can join the people already attending, including a few game developers such as Thomas Warfield, Gregg Seelhoff, and Jay Semerad. It is definitely going to be a great time!

The Schmooze started today, but it’s crunch mode at my day job and so asking off for a day is the exact opposite of what I should be doing to get my project completed on time. Hopefully I’ll be able to catch up with the Schmoozers during the rest of the weekend.

And if anyone at the Schmooze is reading this post, say hello to everyone for me!

Categories
Game Development General Personal Development

Thousander Club Update: October 16th

For this week’s Thousander Club update:

Game Hours: 204.75 / 1000
Game Ideas: 435 / 1000

Target: 798

I managed to add a few more ideas to my list, but I spent the week either working long hours at my day job or catching up on other responsibilities. I did not get too much time to work on game development. I am fine with this fact, but I need to do a better job of scheduling these down times. As it is, it has been about a month since I first started working on Pong, and I don’t want to have another month go by before I am ready to release it as truly finished.

Categories
Game Development General Personal Development

Thousander Club Update: October 9th

For this week’s Thousander Club update:

Game Hours: 203.75 / 1000
Game Ideas: 432 / 1000

Target: 777

I hit 200 hours as of Wednesday morning, which puts me at over 20% of the way towards 1,000 hours!

In the article But Can You Make Pong?, it listed a set of components and features to make a Pong clone. I don’t have a win condition, so the game goes on forever or until you hit ESC or Q to exit the game. I don’t do any fancy work with the graphics or sound. I only used keyboard input, and it is hardcoded to the up and down arrow keys as well as the A and Z keys (although I did provide a configuration file that should be easy to edit to make it work for other keys). The physics are also simple, which means that the ball simply reflects as it hits an object. If it hits a paddle, it reverses the x-component of its direction vector. If it hits a wall, it reverses the y-component. It makes for some interesting bugs if the ball hits the top or bottom of a paddle, though. The scores are prominently at the top, and since the game simply starts and doesn’t end, there is not much of a UI to speak of. There is no computer AI, so you must play both paddles.

Still, even without all of these cool features, Pong is finished. I can add some of these features, or I can move on to a second project. There is the temptation to polish up a Pong clone, to “do it right”, but I think I can always take what I learned, apply it to a second project, and come up with newer features there. I’ll likely write more about this next project this week, but it might just be Asteroids or Space Invaders.

As suggested last week, I am also going to see if I can get this Pong clone submitted as a good example project for people learning how to work with the Kyra Sprite Engine. I will spend some time this week cleaning up the code just for this purpose.