•December 6, 2010 • Leave a Comment

I know how to get a lot done in a little time.

The secret? Well, it’s easy really, it’s also terrible. The secret is obsession.

A couple years ago I lived and breathed code. For every possible hour of the day I was thinking about programming, about how to code the next great thing, about designing systems, about building my dreams. I built a lot, I read a lot, there are piles of code built up on my hard drive. My old computer is surely scarred by all the programs I installed and uninstalled only to install again. My mind was scattered with theories on program design, language design, OS design, and ideas for all sorts of projects and implementations. It’s all really cool, it’s all really interesting. I learned a lot, I produced a lot, I helped steer my life and dreams for years to come, but it came at a price.

I remember walking across a grassy field. I’ll hazard a guess that it was a beautiful day, that the grass was soft and dewy and lovely, that my friends walking nearby were sharing a funny joke. But I don’t remember any of those details. I was lost in code, my most recent project was the most fascinating yet, and when I was away from the keyboard, my mind would soon jump to what I would write next, what was left to do, and how I would do it. I started to feel somewhat distant from other people, when code left my brain loneliness often took its place. I gained weight, I often yearned for escape from something, but I could never figure out exactly what.

Now, things are different. I still love to write code, love to get lost in the lines of a program, but I don’t get to as often. School has placed more demands upon me, I go out more, I do more stuff than I ever did before, and I read much more widely than I ever used to. It’s nice, I wouldn’t trade what I have now for what I had before. But I still look at my project list, I still run across those old ideas, and I wish I could get them done. And I know I can, but the price I’d have to pay to complete them all, I won’t pay it.

So there’s the secret: Obsession. A single-minded focus will get you farther than you could ever imagine it will, but be careful.


My Failures Are Also Successes

•September 3, 2010 • 4 Comments

Since I started this blog (and long before then), I’ve stumbled A LOT, there are many ideas I just threw out into the wind that never went anywhere, Ruby Tower Defense never got finished, and seems it will forever be classified as dead. Block Bounce had more than it’s fair share of issues, and “To The Exit… Again!” wasn’t perfect either. And there’s plenty more where all that came from.

When I was looking back, it was easy to see all the bad, and I’m willing to bet that you’ve been in that position before too, though your back story is probably better than mine 🙂 . But after a time of actually looking and thinking about my past projects, I was able to see success where I once saw failure, and I’m sure you can see it in your life too. Here are some examples from mine:

My game Block Bounce isn’t one of the worst games ever made (in my opinion anyway), but it will certainly never win any awards. The code is horrendous, the art could use some work, as could the sound and just about everything else. Yet I will testify that this is a success. It was the second game I ever made that reached completion. Making that game helped me get familiar with git, learn how to use Rubygame, it let me feel what it was like to develop a game out in the open (even if no one was watching 😛 ), taught me exactly what I did not want to do again in terms of code style, and gave me a limited idea of what I did want. All this makes it a success.

Ruby Tower Defense never even reached a playable state. It did let me experiment with Bazaar for version control, and helped me decide to stick with git. It’s biggest success was behind the scenes, the game engine. Ruby Tower Defense’s game engine was (and still is) absolutely fantastic. The engine has survived and thrived after the death of Ruby Tower Defense, getting enhanced and having some of its rough edges sanded off as time goes on. Publicly, an older version lives in To The Exit… Again!, and a newer version in ROG. Privately, it forms the basis of all my game-related experiments and prototypes. Because of the game engine, Ruby Tower Defense is one of the biggest successes of all.

It’s my challenge to you today to look back on all your past failures (and even some of your successes), and find all the victories that are hiding just beneath the surface. What you find may surprise you.

I’m Still Kickin’

•June 9, 2010 • 8 Comments

So it seems on further reflection, I’m gonna keep programming. How much, and on what, I’m not sure yet, but lately I’ve just been doing some random coding, and I’m having fun with it. Maybe I’ll start a new project, or continue an old one (ROG is just begging to be worked on…), I don’t know.

Oh, and I’m hoping to make this blog a wee bit more useful to you the reader, and try to make it a bit less of me just talking about myself all the time. Not sure how I’ll do this yet, I bet I can figure it out!

[Part 3] Making an Online Game with Ruby

•May 12, 2010 • Leave a Comment

A lot has happened since I last posted (here’s the complete list of changes if you’re curious, http://github.com/tylerc/rog/compare/3359652…1676fa3 )

But, really, all the interesting stuff is going on outside of the project. Nick, informal art lead and co-designer, has created some art, and we’ve been talking about all the possible directions the game could go in. There’s no ETA for getting the art assets into the game, so you’ll be stuck with my awesome boxes and lines for a little while longer 😛

I’m considering switching the game to 3D just ‘cus I want to one-up one of my programmer friends, but OpenGL is still incomprehensible to me…

Even with all these plans, there’s still one gigantic roadblock: Me. It seems like forever ago and just yesterday at the same time (in reality it was a little over a week ago), that my girlfriend broke up with me. Heartbroken isn’t a good word, I’m broken, and I’m still trying to pick up all the pieces. Everything about my life feels different now, my emotions are different, my thoughts are different, and I’m not sure what the hell I’m doing anymore. I’ve been questioning everything, and I see that there’s so much that I don’t know, so much I’m unhappy about, so much I want to change.

Time will tell if game programming will make the cut.

ruby-opengl on Ruby 1.9

•April 16, 2010 • 3 Comments

So a couple days ago I was trying to install the ruby-opengl gem on
ruby 1.9, and I kept getting this error:

/usr/bin/ld: cannot find -lruby

I use rvm (Ruby Version Manager), so all my rubies are compiled from source. It turns out that you need to compile ruby 1.9 with the --enable-shared configure option to get the linker libraries needed to compile ruby-opengl.

To do this with rvm:

rvm remove 1.9.1 # First remove ruby so we can recompile it
rvm install 1.9.1 -C --enable-shared # Install and compile with the correct option
rvm use 1.9.1
gem install ruby-opengl

And you’re all set with the ruby-opengl gem!

[Part 2] Making an Online Game with Ruby

•April 14, 2010 • Leave a Comment

A lot has gone on with ROG since I originally posted about it:

  • Multiple rooms
  • Dungeon generator
  • Started work on a minimap
  • Tons of bug fixes

Thus far creating ROG has been a really fun experience! It’s been a little harder in some areas than I expected, and coding certain things using a client-server model can be a little awkward sometimes (though I’m hoping I’ll be able to create some nice abstractions to make this all much easier).

At this moment in time, the game is technically playable! There aren’t any quests or the ability to do PvP or PvE, but you can race to the end of the dungeon!

Ok, so maybe that’s not what you’re looking for in a dungeon crawler… But with each bit of code, it gets closer to a playable state.

My choice of using an http server has worked better than I expected! It’s really convenient to be able to check certain values and debug things from inside your favorite browser! I expect that it’s a little slower than using a “real” game server, but so far it hasn’t been a problem.

That said, I think my game might be running a little slower on windows… Something makes me believe that http could be to blame, though it may very well be ruby or rubygame or SDL or something else I haven’t thought of. The slowdown isn’t too significant, but it’s something that needs to be looked into.

To check out the source and grab your own copy of ROG, head on over to http://github.com/tylerc/rog

If you have any comments or if there are things you’d like to hear about, please leave a comment below!

[Part 1] Making an Online Game with Ruby

•March 17, 2010 • 2 Comments

I’ve decided to make an online game with Ruby, yay for masochism! I mean, yay for challenges!

Lets break it down:

  • A simple multiplayer dungeon crawler
  • I will use Ruby, as it’s my favorite language, and this blog happens to be about Ruby, imagine that!
  • I will use Rubygame as my game dev library
  • For simplicity, I will use an HTTP server and sinatra as my web framework to help make things easier
  • I’ll be talking about my development experiences here on rubygamedev

I’ve got some code written, which I’ll throw on github sometime soon. It’s not yet a game, so the jury’s still out on whether or not it’ll be fun…