Categories
Personal Development

Action vs Waiting, Practice vs Talent

Action wrote Debugging Habits: “Wait and See” vs. “Act and Learn” in which he discusses the results he gets by taking action versus waiting around for things to happen or fall into place.

On a similar topic, David Seah wrote Building a Niche of One, in which he discusses leveling up abilities by orders of magnitude. He cites an article that claims talent isn’t the only thing. Practice is just as important.

Just like successful songwriters need to write hundreds of songs before they get their “overnight” hit, chess players need to play thousands of hours worth of games to become good at chess. Seah was nice enough to provide a graudated scale. 10,000 hours over the course of 10 years might make you a master, and it sounds daunting. Well, yeah. It is. That’s a lot of dedicated hours. But 1,000 hours is doable within a year if you work full time, and you can be an experienced expert. Already have something taking up your full time? 100 hours can be done on the side, and you can still be somewhat of an expert. 10 hours could be a dedicated weekend or spread over a few of them, and you’ll definitely learn enough to be dangerous. Even dedicating an hour to a task will give you practice with the basics.

I’ve never liked the idea that some people are just never going to have certain talents. It sounded too much like your lot in life is set before you, and you never had a chance to make a difference one way or another. “Some people just aren’t meant to be programmers” or “Some people just aren’t musically inclined”. I personally think that if they aren’t going to be able to do it, it is because they’ve decided that they won’t do it. It wasn’t due to any inability except to take action, any action. I’m sure talent is important, but I also believe that talent isn’t always inate. Left-handed people might be more creative initially, but I’m sure if I practice being creative enough, I’ll also get a +4 creativity roll. Or at least be much better than I am. No law says I must stagnate.

I can play chess, but I don’t have nearly as much experience as a friend of mine does, and he destroys me almost every time we play. Almost, because I’m slowly getting better. One game I almost won, and one time I managed to take his queen before he realized his mistake. B-) I also play as Terran in Starcraft, and while I know “how” to play, I am almost always struggling to survive by the end of a game. Almost, because there were a few games where I made a decisive strike that would have turned the tide of battle permanently in my favor if I had only paid attention to producing more units (Larry, I will defeat your Protoss!). When I first played Quake 3 Arena, I was the n00b that would stand on a platform and look around while rockets and machinegun fire found me like mosquitos on a hot summer day. Eventually I became the regular leader on the boards within my group of friends. Well, until they remembered how to play again (there was a long absence from the game for a lot of us). Even then, I was holding my own. I gained experience and was able to play more competitively. I became better, even though I stunk something fierce when I began.

Whether it is programming, meeting women, writing novels, juggling, brainstorming, or playing games, taking action and getting the experience of the attempt, whether you accomplish your goal or not, will always improve what you know. How can I possibly learn the best way to design a C++ class in my game project if I don’t get familiar with the problem domain? How will I learn how to write the next great American novel if I don’t try to write anything before taking it on?

I’ll make mistakes. I’ll make HUGE mistakes. I’ll probably look silly. But I’ll only have myself to blame if I don’t learn from it. I’ll take a variation of “Fool me once, shame on you. Fool me twice, shame on me” as “I stumble once, and that’s expected. I stumble again, and I should have marked the stupid rock on a map!!”

Perfect practice makes perfect. No one is perfect. You’re expected to make mistakes. Learn from them. Then do better. Then do better again. Take action, practice and learn.

Categories
Marketing/Business

I Hate Being Sick

I somehow came down with something yesterday. I woke up, my throat was sore, I got to work, spent the entire day feeling slightly warm, then got really warm and felt terrible on the train ride home.

I ate some dinner, drank some water, and went to bed. So much for Development Night.

Of course, I was so sick that I couldn’t just fall asleep. I needed to sleep, but I guess my breathing was weird. My heart was beating pretty fast for being stationary. Eventually I did fall asleep, but now I’m wide awake, it’s 10:45PM, and while I’m feeling a bit better, I feel like crap for not being able to sleep AGAIN.

Oddly enough, while I was waiting to go to sleep, shivering in bed because I was so warm and my room is above a garage, I kept having delusions about how my game business was going to work. I imagined what it would be like to have a FAQ that talks about my company. I imagined that GBGames was a lousy name and that I was working on a new one. I imagined talking about how much more trust my business model put in the customer compared to say Sony or Valve: “No DRM here!” I imagined talking to other developers, and I was actually a role model for a number of them. I was a serious competitor to a lot of businesses as well.

I had a number of other images, and I am upset because I would have loved to write all of them down, but every time I became conscious of them, I would immediately forget. It was like I was dreaming, realized it, woke up because I had to breathe (stupid stuffy nose), and forget the important points.

I hate being sick, but I really got excited thinking about the near future. I smiled despite the crappy way I felt. I actually dreamed about the success I was going to have.

Now to make an action plan to make it into a reality.

I’m writing this still feeling a bit sick, so hopefully it isn’t too rambly. I’m just awake enough that I can’t lie in bed anymore, sick enough that I can’t do too much, and my back still hurts enough that I can’t sit up and read a book.

Categories
Game Design

Game Design Resources

Even while I continue to work on Oracle’s Eye, I am looking forward to working on my next game project. Since OE took so much longer to develop than I expected, I can imagine that something similar will happen with my next project. I’ve also mentioned that I want to create a game for the next Independent Games Festival. I want to make sure that I dedicate enough time to that project, so I might as well get a jump on designing it instead of postponing it.

I’ve set a deadline by the end of December to get a basic idea of what kind of game I want to make. Of course, I’d like to be able to come up with more than just “it’s got spaceships and explosions and stuff!” I’ve realized that game design is a complete discipline in and of itself. You can’t design games just because you’ve played a lot of them when you were younger, just like you can’t be a high school educator simply because you went to high school and “know all about it”. While hacking it out is great for getting things accomplished quickly, it is also hard to know what it is you will end up with by the end. Also, I’d rather avoid potential game design pitfalls if I can help it. While reinventing the wheel is good for learning how it works, I wouldn’t mind reading about how other people might have messed it up before getting it right. I’ll mess up enough as it is. I’m all for taking risks instead of stagnating with what is safe, but I don’t have to ignore potentially helpful experiences that other people have been thoughtful enough to document for me. B-)

And so I decided to look up game design. I went to GameDev.net first and checked out the Game Design articles since I remember going there years ago. HOLY. COW. I don’t remember having access to that many articles on the subject! Maybe I just appreciate how important the topic is these days. Maybe there really has been that many new articles produced in the past couple of years. There are definitely a number of new game design books.

And I definitely have a lot more reading to do.

Categories
Game Development Politics/Government

Future Copyright Developments

Ernest Adam’s The End Of Copyright on Gamasutra focuses on a very touchy subject. I don’t know if I agree that copyright will end completely, but I do like that Adam’s actually did what most people seem to be afraid to do: he looked at different possible business models. He also appreciates that copyright is not the inalienable right that some people make it out to be.

Obviously the traditional business model of selling a single copy to each player isn’t the only one that exists. MMO games, even before Everquest, show that subscriptions work just as well. Some people will pay for better features, improved items, or just faster servers. Some people would pay for the privilege of having a better quality experience. Imagine if a Mickey Mouse movie came out that wasn’t by Disney but was 100 times better than anything Disney ever produced? Sure, if there wasn’t any copyright, anyone could then redistribute it, but I’m sure you could make some decent money by charging for the privilege of seeing it when it is only released in a select few theaters that you control, right?

I don’t think copyright should go away, but even if it did, I don’t think it would be the end of innovation and science. People will still want to create. They will still want to design. They will still work. I really don’t see everyone falling on their knees and crying out “What do we do now without the protection of copyright?!?” Oh, I don’t know, you could just make money by being the sole provider of an original work?

Of course, without copyright you won’t even have open source software to blame for your inability to profit from your work. If people didn’t want to give away the source code, they could keep it a secret. People do so now, anyway, but without copyright there would be no legal recourse to get access to the source. Open source and proprietary software both benefit from copyright law, contrary to what some would report as fact.

Anyway, it is good that a big name is actually taking a look at the industry and saying, “Hey, you don’t HAVE to do things the way everyone else is!” The idea that the most popular business model isn’t necessary is still a “crazy” one to a lot of people.

Categories
General

Back from Thanksgiving

Now that I’m back, I find that I have a lot of reading to do! Lots of blog updates, lots of email, lots of regular mail, lots of magazine articles, and lots of game playing. Ok, so the last one isn’t strictly reading, but still, it must be done!

Oh, and Christmas shopping.

Categories
Game Development

Oracle’s Eye Development: Movement Code Improvements

Already I’ve improved the movement of the Player and the Ball.

Essentially, what I am supposed to do is make any moves, then walk through the Kyra Tree, then check for collisions and respond accordingly; however, my hardcoded movement code moved the Player, then walked the Tree, then moved the Ball and checked for collisions. The Player worked out just fine, but the Ball would get stuck in the Wall.

Then I changed it so that the actual movements wouldn’t happen until the update code ran. When you push the arrow keys, the Player’s Direction changes accordingly. It will only change positions during the update, and it does so at the same time as the Ball. Then I walk the Tree, and so collision detection is a bit more accurate.

Also, the Player only moves in four directions now, so it isn’t possible to move twice as fast on a diagonal. For this game, not being able to move diagonally shouldn’t be a problem, but an adventure or action game might require such movement in the future.

The Ball currently changes Direction when it hits a Wall. It’s actually kind of cool to watch the Ball bounce back and forth between the Walls. If I start adding more Walls throughout the middle of the level, it could actually be fun.

It’s amazing what can be done when you don’t have to worry about ruining the code base. I’ve been using Subversion all this time, but psychologically I’ve been concerned about doing the wrong thing. I basically convinced myself that I’m going to be writing code that needs debugging anyway, so the “wrong thing” will most likely be a bug that needs to be fixed to make the right thing. So far, I haven’t had to rewrite whole sections of code, or if I had, I haven’t noticed it as hard work.

Thanksgiving is here, and I’ll be out of town for the rest of the week/weekend. I’ll probably have a bunch of spam comments to delete, and I won’t likely have time this weekend to approve any. Still, keep the comments coming. I love the feedback. B-)

Categories
Game Development

Oracle’s Eye Development: What’s Left?

While I have pretty much made the game “feature complete”, I feel there is still a bit of work to do. As most developers would put it, I did the first 90%. Now I have to do the remaining 90%. Except I feel like I did the first 20% and still have 160% left. B-)

What improvements and additions can I make?

  • Sound. Right now, the game is completely silent. It shouldn’t be. Even simple beeps would be an improvement.
  • Improved collision detection. If the Ball hits a Wall, it is possible that it can become stuck. It shouldn’t.
  • Level loading. It’s very boring in its current state. It has only one level, and it is a trivial one at that. It should be able to load an arbitrary level layout from a file, which will allow multiple levels to be created. Any players should be able to load an arbitrary level from a menu.
  • Graphics. Why is the Ball always rotating in the same direction? Why is the Player’s sprite just a static stick-figure? Why not spice it up and create some animated movement?
  • Better quality code. My code doesn’t delete memory properly. When I create a Room, it is made up of a series of sprites that get owned by the engine, and the engine deletes the sprites just fine when the engine is deleted, but the Room itself isn’t deleted. I couldn’t delete the Room without causing a seg fault since I shouldn’t delete the Tiles in the Room. I’m sure there are other places that could be improved.

With all of these improvements, why leave Oracle’s Eye alone? I admit that I want to start working on something I can knock out relatively quickly, such as a Space Invaders clone. I’ve learned a bit while working on this game, and so I should be able to improve on what I’ve learned by working on something new. On the other hand, I feel like I would be quitting while there is still some good educational value left in developing this current project.

It’s obvious that I can’t really call Oracle’s Eye “complete” when there is so much left to do. I have decided that I will continue to work on it for the rest of the year. With holidays coming up, and the fact that I don’t work for more than a few hours a week in the first place, I don’t exactly have a lot of time to work on it, but I’ve surprised myself with how much I could accomplish so far.

At the very least, I should replace the stick figure with a living, breathing character of some kind. B-)

Categories
Game Development Geek / Technical

Free Sounds

My friend Becky Kramer tuned me into The Freesound Project, a “collaborative database of Creative Commons licensed sounds.”

Basically, all the sounds in the project are available under the Creative Commons Sampling Plus 1.0 license. You can creatively change a work and use the derivative work commercially or noncommercially. You could take the original and distribute it in a noncommercial way.

Sounds great to me, especially for my early projects. I’ll pay for my audio needs when I think doing so will help sell my games. For now, when I am just trying to make simple games for myself, these freely available sounds will be good enough.

Categories
Game Development Linux Game Development

Oracle’s Eye Development: Technically Completed!

That’s right! If you look at the plan for Oracle’s Eye, I finally completed the tasks that I originally wanted to have completed at the end of the second week of August. B-)

  • The Player moves in four directions. Actually, it moves in eight, although it is coded badly and so the Player moves faster diagonally than on the four main directions.
  • The Room is currently empty and hardcoded. I wanted to be able to load Rooms from a file, but for now I’ll deal.
  • I have a Ball that can be kicked around the Room. It obeys the Walls, although it will get stuck. The Ball also passes through the Player instead of stopping upon impact.
  • When the Ball hits the Goal, the level ends. Well, the program itself just closes, but still.

It’s ugly. It needs work. It’s definitely unpolished. But it runs, it works (for the most part), and it is pretty much “complete”. The question I have now is “Do I stop?” Should I continue to work on it and make it more appropriate for mass consumption, or should I just stop here and work on something else? Right now, you just move the stick figure towards the Ball, and upon touching the Ball, it moves towards the Goal. You could play around with it before it gets there, of course. It’s not very interesting, I know.

Download files:

codenameOraclesEye-r90.tar.gz, 8.0 MB
codenameOraclesEye-r90.zip 8.5 MB

To build, you will need libsdl1.2 and libsdl_image. Go into source/kyra_2_1_1/kyra/engine/ and run ./make. Then, you go back to source/ and run ./make. To run, ./oracles-eye.

Only available for Gnu/Linux, but there shouldn’t be too much needed to get it to run on Windows.

Categories
Game Development

Oracle’s Eye Development: All Day Development Ruined?

I was fine last night.

I was fine early this morning.

But today I got this incredibly sharp pain in my lower back. I lay on a couch with a heating pad and read a book, but I really wanted to get on development. My morning was shot, but my afternoon and evening could still be productive, right? I have to admit, I was tempted to call it off. I should lie down and relax.

Well, screw that! With Thanksgiving and Christmas coming up, I’ll have plenty of time to relax. Today is my day, and I will work on Oracle’s Eye. Maybe I’ll take more frequent breaks, but I am not giving up a great opportunity to get plenty of quality work completed on this project.

I’ll let you know how much of a folly this decision is later. B-)