StuChat 31 So, Fant 5.2 was just supposed to fix an incompatibility with Sound Manager. Hmmm. Well it fixed that alright and it got half of Fant 6 chucked in for fun. It was only just luck that it didn't end up with FantBug as well. Dear oh dear oh dear. Were we caught on the hop or what! Never ever, ever assume you have a bug free anything (like we did :)) What happened is that after we released Fant 510 we immediately started work on version 6, which contains large chunks of rewritten code. After a few weeks it became apparent we needed to fix this bug in Fant 510, so we thought we could just down-build Fant 6 to 5.20, which we did in the end, but not without a lot of pain. The first alpha that went out thought there was a debug button next to the run button in a project window, and so crashed when the imaginary button was clicked. Anvil's stack was VM proofed (DebuggerLockMem) because it thought a debugger was installed, and the file loader was in a right old tizz because it couldn't find the "LDF" for a given file (Fant 5 has no idea about LDF's whereas 6 lives by them!). And so it went on. So what we ended up with had a lot more new bits than it should've had. A learning experience no less. And the bug in 510 that got fixed? The SWG when initialised by Fantasm thought the global variable pointer was a completely different register to what Anvil and every other tool was using, and so was poking data into a random part of memory. Sound Manager was just making the bug more obvious to see. What we should've done is simply unstuff the version 5 code, fix the bug, release it, and then apply the bug fix to the v6 code set. But if we'd done that, project windows would still not remember where they were, you couldn't enjoy the delights of Nav Services and there'd be no pef linker, so it's a win in the end. And we still have to get a demo of 5.2 out! Sheesh. It's very tempting not to do demo versions anymore. I'm really not sure of the value of them in a complex set up like Fantasm. I don't think you can convey much with a cut down, size restricted demo. What do you think? Anyway, work on 6 is progressing nicely, the LDF's are back and even FantBug has saved my life a few times this week. Moving on to more human things, Rob was in a right old state last Sunday evening. The code generator was giving him a serious headache. I mean he was really depressed about it. The pointer stuff was simply overwhelming him a bit, even to the point where we considered completely re-writing it (not something you consider lightly in something that's been under construction for years!). The phrase "Normally I simply don't have to think about it" summed it all up - I've never really seen Rob so depressed about something. And to make matters worse, I was going "Well, I mean, I don't see the problem - it has to do this, this and this, and that's it?" which was just plain frustrating for Rob I should think. Anyway, we decided that the following day, we'd go through it together to see if we couldn't find out what the trouble was. We did, and it worked, and it only took half an hour, and that wasn't just talking about getting it fixed, that was fixing it. There was no bug per se, just no code to handle a given situation. We were both pretty impressed, and it's a testament to the power of team work. Rob now says he's going to avoid coding on Sunday nights :) It is true dear reader, the hardest part about large projects is finishing the bloody things! "1% inspiration, 99% sheer determination" I think is the correct saying. And it's true as I'm sure you'll agree. It always gets really boring in the middle part of a project, and this is where most projects fall down. I can't even begin to recount the number of projects I started when I was younger and never finished, simply because something newer, more wonderful, more exciting came along. Finally one day, I cracked it, by not taking on huge projects, but by actually finishing one small project (for the Atari ST) that took about 3 days to write. I posted it to a BB somewhere, and the next thing I know, somebody emails me congratulations for getting it on the STFormat cover disk! I had no idea, but it was a hell of a buzz. From that time on, I have finished everything ever started. I think now I realise that some things genuinely do take years, and it's OK to leave it for a bit and work on something else. That's why we did a demo at the end of last year. Simply a break. Great fun too! One thing any kind of experienced coder will tell you is to define the "end point". You may be working on the latest and greatest game of all time, and you've reached the "end point" -- you've finished, all the criteria are met and you're just tidying up. Then you're having a congratulary bath, playing with your rubber ducks (or frogs), when this really cool, nay, great idea for your game springs into your mind. Do you add it to your game because it'll make it even better, or make a note of it in your diary and release the game? You release the game is what you do; a program not released won't earn you one penny. It's the hardest thing to learn and stick to, but in this hurly burly business oriented world we live in, it's the only way to survive. And now for something completely different, but helpful hopefully. Advertising. Here's a tip for you: You place your first advertisement in a publication. They don't know you from Adam. You'll pay top dollar. Fair enough. They'll try to sell you a few months at some discount. Forget it. Place just one and wait. As long as your software works, the one ad. will provide an ROI (Return On Investment). The Mag you placed your advertisement with will bug you big time to place another. Wait. They'll continue to bug you, but now the offers will be getting better and better. If you can, wait three months and then "cave in"; you should get almost double the column space for the same money as you did on your first ad! Seriously. Remember, most mags are paid for by their advertisers, so you should be able to get a fairly decent deal as long as you are fairly "up front" with them and they think there might be repeat custom. Also be sure to think a little laterally about your advertising. For example, people write to us wanting to know why we don't advertise in publications like MacTech. OK, it's a good mag, and an obvious choice right? Yes it is the obvious choice BUT... Where do most new programmers come from? Those that don't know AND from OR? Do they just suddenly decide one day to become a programmer? Do they just wake up and think "Hmm, I think I'll learn to program today. I have a Mac, I can do that"? Nope. They buy a Mac, then they buy Mac mags. Not Mac programming mags. They may see us in the back of MacFormat. They have no idea what we're about, but they've seen us along with words like "programming", "Mac" and "development". Geddit? Oh well, off to Wales again tomorrow. Robs Friday, back to Wales Sunday, and then home again. Poor old Molly.
Code on! (Can we trademark that now:)) Stu.
About Stu. Stu has been working at Lightsoft for about four years, and sometimes feels it necessary to let the world know what's on his mind. Stu welcomes your comments and feedback