Monday, February 6, 2006

The Journey Begins

So where do you begin when you know very little about how to do what you want to do? As a wise man, Wayne Walter, once said to me, "Steve, how do you eat an elephant? One step at a time". Not profound, but I remember that saying often, so for me its meaningful.

I imagine really smart people would start this journey by documenting a complete plan with milestones, target dates - the whole nine yards. So I'm not that smart. And as I mentioned before, I'm a little scattered in my thinking and not terribly disciplined - I work hard, but get off my intended path and onto others frequently.

So no project plan for me. No, I decided the first thing I needed to do was to build the user interface for my simulation - and there would be several interfaces.

I guess I should mention that what I was creating was a racehorse simulation - a "day at the track" as it were.

I knew I needed a viewport to see the action. A dashboard to show details of who was in the lead, the horse's odds - that sort of thing. Oh, and that would need to be on the screen at the same time as the viewport of course.

Also needed a window to place bets, another to show the payouts post-race. And the biggy - a fully integrated racing form. And I decided early on that some static facsimile wouldn't be sufficient. No, I wanted the races that you watched run, with the actual results, to be logged in a database and displayed in the racing form the next time you play the game. Boy, THAT was a big bite of that elephant...

As you can see, quite an undertaking for a guy that had spent about 50 hours to date learning the programming language and had no idea how to do any of that except make a simple form in VB6, and write a little code.

Somewhere along the way I read that over 90% of all amateur developers never finish a program. I told myself I wasn't going to fall into that category. In fact I was going to not only complete this project - but actually sell at least one.

So there I was with all those grandiose ideas and not much of a clue about how I would get there.

As I may have mentioned, I am somewhat creative, and have a real passion for creating things - whether its computer code, graphics, music - whatever. Not great at any of it, but really love doing it.

So I naturally tend to start my projects with the user interface. Now I'd guess that the real pro's are just the opposite. They probably start by creating programmatical objects (we'll get to that more later) and the infrastructure of the application itself - the part you never see - and then build the interface around that. Me, I like to start with what the user will see and then build the code around that. Right, wrong - I dunno.

I also think I mentioned that I have a career that is pretty demanding and that is critically important to me - it supports my family and promises a reasonably secure future. So this programming stuff has to take back seat to that. What that means is that I work hard all week, and then I work hard all weekend - but doing what I'm passionate about. So its not really work.

The sense of accomplishment I get when I figure out something, or complete a component, is just amazing. And provides me more energy and drive to do more.

So anyhoo, I started drawing out the dashboard portion of the user interface. Pretty easy to do with VB6 - in fact, amazingly easy, once you figure out a couple of basics. Pretty much a trial & error process (like all this stuff). Do it, run it, tweak it, run it, etc. Eventually you say - "that looks pretty good". Not that you're not going to change it 27 more times along the way, you understand...

But wait a sec - you may be interested to know where I got VB6. The Microsoft website? Not hardly. No, I buy most of my development tools on eBay. Can't find it cheaper anywhere else, at least not legally. And as a software developer I feel pretty strongly about software piracy.

After getting the dashboard pretty much where I wanted it I decided the next thing I should tackle is the viewport. It was critical to have the graphics of the horse race running on the same screen as the dashboard.

Should be pretty simple, huh? Well, that little piece took months to figure out. More on that next time.

Gotta get to work for now.

Labels: , , , , , , , , , , , ,