Anti-code pack rant, TorqueIDE, still hackin’ on Trajectory Zone, and the continuing adventures of a full-time indie. All in this issue of Davis’s newest novel, The .Plan! ;-)

“You can get anything you want, at Alice’s Restarant…”
No Thanksgiving is complete without a playing of Arlo Guthrie’s very political (and very funny) Alice’s Restaraunt. If history repeats it’s self, I’ll be singing it off and on for the next week or so – that song just gets stuck in my head. So any random quotes you see in today .plan come from the song. If you’ve never heard it – go track it down. It’s worth the 18 minutes 20 seconds 🙂 (BTW: My previous .plan doesn’t count as a .plan – I just needed a place to slap a very large list o’ thing on, when someone asked about a wishlist for TorqueIDE 😉
“That’s not what I came to tell ya’ about…”
I find myself becoming concerened about a situation that previously I had been totally for: Code packs. I have zero reservations about content packs – they have nothing to do with the engine it’s self. A script pack? Well, I’d probably never buy one, mainly because there’s very little that can be done with the scripting system that I wouldn’t rather do myself. (Though I can think of one minor exception that came up recently.)
But code packs, that’s a different story. Originally when the first couple o’ people has said something about doing it, I was one of the people that said “heck yeah!” I’m all for giving people what they deserve for thier efforts – or more importantly, the effort that they save me. I bill my time out at $45/hour generally (unless I’m doing AutoCAD work – then it’s a measly $20/hour at the moment) If they allow me to continue to bill my time out instead of setting down and working on the engine, I’m all for handing them some of my hard earned cash.
Some people have objected to paying for features. Some people have objected for paying above a certain price point. (Yes, I understand the economics of exchange rates – I spent a decent amount of time in China, with some hops through Japan and Hong Kong. What they get -vs- what we get is very different. Sorry, but, if the person who wrote it is in the US or UK, they will base price off of thier economy, not yours. Sorry, but I agree with them in this case. It’s just one of those realities of life.) Me personally, I’d pay around $20 – $30 USD for most of the features I’ve seen. MAYBE $50, but, the need would have to be desperate before I paid that. (I’m a tight ass with money, so what do you expect 😉
So I’m all for paying for code – what’s the problem here? The engine, the community, code rights, and hard feelings.
The Engine: Anything released as a code pack will never see the inside of the engine I’m sure. Some of these things are stuff that the engine could REALLY benefit from. I plan on paying for / working with BobTheCBuilder when it comes to his lighting pack. This is stuff that I feel the engine needs – it’s not game specific, and it allows the engine to continue to be freshened up (which is needs from time to time – the last update (1.2) was pretty recent, but there’s never a time the engine should stagnate either. Stay on top of it!) I’d rather see it as a resource – something that everyone benefits from. You could say “well, anyone who buys it benefits from it.” See the next section.
The Community: One of the things that have made Torque great was FxMelv’s. Not Melv’s tools themselves, but, stuff like that where someone created something cool as hell, and released it. Sometimes it filtered into the engine, sometimes it remained a resource (which stagnates sometimes. *Eh* Not a good situaiton either. But that’s a different rant…) The community also used these as educational guides, hacked them into new controls sometimes, contributed back to the original resource, etc. Once released, a resource sometimes takes on a bit of a life of it’s own and becomes much more useful than the original resource. And sometimes it just spawns a whole new set of resources. How many forum posts and resources have something similar to this: “I used Melv’s FxFannyPack, and then built up off of it to make a…” or “I used what I learned there as a basis for…”. (While I use Melv as an example, he’s FAR from being the only person who’s contributed stuff that others have built up from!) A code pack? That kills it dead. There is no “I based if off of…” anymore. Which leads into…
Code Rights: Ok, so, most of everything I have belongs to GG, except the stuff I did. If I want to release a resource, no problem – I diff against HEAD, and away I go (not that I’ve ever done it that way.) Now I have something new to deal with – something else to prevent me from wanting to submit patches and resources. I’ve got to deal with other people’s code that doesn’t fall under the original agreements with GG, and I have to becareful not to release it as part of a patch. Bleh. Yet another step that prevents people from contributing to the engine is a bad thing. This, of course, can also lead to…
Hard Feelings: And this one shouldn’t be underestimated. Melv releases FxTerrainDeformation from hell as a free resource, about a month after I release Midnight Ryder Technologies Terrain Deformation Pack for $20. That’s going to cause problems, hard feeling, and probably even some backstabing inside of the community, in the worst possible place: The people who contribute. Or, let’s look at it differently – I release a TD code pack, and Melv has been working on FxTD. Does he now eat it, and ignore his work that could be valuable to the community? Tough call. What about when I release TD code pack, and Melf just plain decides he doesn’t like paying for code packs, and intentionally releases a free resource that does EXACTLY the same thing? Don’t think these things are going to happen? They already do with commercial software packages. Sure, this is a smaller community and it’s going to happen less often. (Look at how often the Open Source community does everything it can to replicate the functionality of a commerical product.)
But let’s face it – we’ve now got an opportunity to shoot ourselves right in the foot. We’ve got a good thing going, and I fear it’s possible that we, as a community, could screw that up. I could be wrong of course.
(BTW: Just in case anyone is wondering – no, there will never be a Midnight Ryder Techologies Terrain Deformation Code Pack. The name is just too long, so, I’ll release it as a resource! 😉 Actually, it’s because it’s not really worth a code pack – therewise, I might have considered it!)
Which brings me back to the original delima: how do I pay back the guys who have saved me so much time? I really do feel strongly about that – I’d buy Melv’s particle code pack as just a thank you. (If I wasn’t so interested in getting even more oomph outta particles. I was planning on rewriting some stuff in the particle engine, but he’s saved me the time 🙂
I don’t have a good answer. At first I thought this was The Way – the perfect way for GG contriubtors to get something back from thier efforts (besides the “thank you”s. Those only go so far 🙂 The obvious one is that Jeff should just pony up cash, and start providing incentives for people contributing to the engine. Yeah, like that’s realistic – they would have to have the money first (well, I suppose Jeff T. has got to be rich, he owns a motorcycle company now :-), then there’s the change that THAT could cause in the community (for the sake of your sanity, I won’t document how I feel about that one. Not that I would bitch if Jeff said “Hey, how much to continue developing TorqueIDE?” – I’m a mercenary when it comes to money now.)
Simply put – I’ve yet to see a path that leads to monitary value given to the people who contribte, but doesn’t also lead to changes in the community.
OK, I’ve said my thing – yeah, I know, I’m an ass. This was something I was all for, but, suddenly I’m speaking out against it. Sort of. This is the only place you’ll see me speak out against it I think. 
Does that mean I’m going to encourage people not to release Code Packs? Heck no. You should get something back if you put that much effort into it! 
Am I going to boycott Code Packs? Heck no. I’ve already got a couple of ’em I want to buy, and will when they come out! (Melv, what are you doing reading this? 🙂
Am I going to turn this into a big deal? Heck no. I just thought it might be beneficial to mention the dark side of going down the code pack path, and hopefully someone will step up with a great idea that is even better than code packs. Or, points out exactly how wrong I am on all of this.
Note: I pick on Melv simply because Melv is fun to pick on, and Fx can be placed in front of any noun or verb to produce a funny result with an actual warped product line behind it. FxGigglyBreasts could be produced for a Tomb Raider knockoff. FxTissuePaper for the people who enjoy those games way too much. Things like that. It’s not to exclude anyone – there’s a heck of a lot of people who’s contributions to the engine or as resources I use 🙂
“Shovels and rakes and implements of destruction…”
From Script Editor to IDE in 10 days, or your money back 🙂 What an interesting thing… the only question I have about writing the original Script Editor was: Why in the hell didn’t I do it sooner? It’s almost exactly what I was needing – I’ve already saved a buttload of time using it instead of TribalIDE. Granted, I’ve lost any time that I’ve saved because I keep throwing in another feature, or in corporating changes that Harold or Stefan sends me (they aren’t the only ones of course.)
I mean… this thing is bloody awsome! It started by doing one job, and doing it sort of ok. Now it does that one job really well, and continues to expand. I use it full time – the only thing that I still use TribalIDE for is the couple o’ times that I’ve umm… broken the IDE. (Well, if you develop the IDE with the IDE, what do you expect? ;-) 
I didn’t expect much reaction when I released a screenshot – *I* was hyped about it, but, I didn’t expect anyone else to get excited about it. Yeah, I thought it was something that Torque probably should have had all along, but, didn’t expect others to see it the same way. And when I released the resource initally, I didn’t really expect anyone to step up and help out (but I sure hoped they would)
Now it does almost amazing stuff. Running the game in a window on the TorqueIDE desktop is cool. Just jump out of the game window to the editor, explore or code, jump back in. it’s great. It’s still got quirks, but, it’s still just plain cool.
However, there started to be The Bad Thing. This grew from 370 lines to 2K lines of script in the span of a couple of days, all coming from various sources. When I incorporate stuff into the resource (I’m calling myself the ‘maintainer’ at the moment. I’m taking what people send, poke and prod at it, see what it takes to fit into my scheme of things, the plot it in.) I’ve been trying to get it to ‘match’ with how I did things, but it’s not always possible. So I got smart – the Documenation Browser (which is now were to read TorqueIDE documenation – the resource is going to go stale fast.) contains a document on hackin’ new stuff in to TorqueIDE. It’s far from complete, but it’s a start – that way, people have a good idea the theory I’m operating on for the IDE, how tools have to register themselves, etc. Should hopefully save me some effort if people know up front how it works.
The other thing I did was break it up into pieces that are each more maintainable, and future proofed it a bit. Before, it was all one big script, now it’s composed of something like a dozen much smaller scripts, each one function specific. When you start up the IDE, it loops through the tools, editors, and builders directory, and exec()s all the scripts there. Later if someone releases a new tool – just drop it in the tools directory.
Tools register themselves in the menu. Editors register the extensions they deal with into the ExtensionManager (which is really not much more than a set of $globals. But I set it up just in case I needed something more advanced in the future – at least the concept is there.) This means future hackers have a much easier job head of them, ‘specially where it’s been documented (and it’s easy to do!)
I’ve got a list of tasks a mile long – however, I’ll never do them (see my previous .plan for an idea why I’d never do them all.) Hopefully, someone picks up on a couple of the big ones, and realize they really are possible to do – and runs with it 🙂 One can hope.
I will say though that I’ve got a little bit of ego in this situation – while there’s at least one function that completely sucks, I think the work I’ve done is very cool stuff. I’m not counting the work that others have thrown in – I’m talking just about the core things that I hacked in. I like it. It makes sense, and it works well. And it’s happened amazingly fast, considering how little time I’ve put into most functionality (though there’s been one item that just totally ate my lunch time wise.) For once, I’m looking at something I’ve programmed, and saying “This is how it should be.” instead of my usual “Ya know, I’m sure I could have done (x) better” and proceed to beat a piece of code into submission – it’s not uncommon for me to redo the same exact section 10 times. Amazing how much satisfaction that gives me. And the fact that other people like it and are contributing – man, that’s just like icing, iced cream, and cherries on top of the cake 🙂
Of minor note is the fact that the IDE has also been great stress relief. Anytime I’m blocked or frustrated, I just switch over to programming on the IDE, and yet another feature falls together. Then I switch back to game programming, and continue feeling so much better now that I’ve successfully accomplished something. So expect to see TorqueIDE get all sorts of interesting tools and features over the coming months – the stress releif is a great reason to continue to work on it! 🙂
“‘Kid, what’d ya get?’ I said ‘I didn’t get nothing – I had ta pay $50 and pick up the garbage.'”
I love Torque. I hate Torque. Take your pick – at any given time, I can express either one of those. I’ve managed to bang most of it into shape, but, I’ve still got terrain deformation related bugs. Other than that, I’m just about ready to roll with the next version of TZ (beta 3). I’m really happy – this thing has GOT to get done one of these days, I’m starting to get tired of seeing it 🙂
“So there I was, on the Group W bench…”
Some things just crack me up. Right now, my second in a row GG screenshot of the day is up. The first screenshot was of four windows – one with text, two with graphics, and one with a list of files. It gets 75 comments.
This one has random terrain, some cool looking tron-esque level settings, a volcano, etc. It’s a shot taken in game. It gets 8 comments. A screenshot of text got more response than something that was in game. Weird.
Someone hurry up and submit more screenshots – otherwise, I’ll submit one of a new standard file browser (IE – looks like Windows, acts like Windows. If you run on Windows. Otherwise, it acts like Mac OSX 🙂
“Obie looked at the seeing eye dog, and then at the twenty seven eight-by-ten colour glossy pictures with circles and arrows and a paragraph on the back of each one, and looked at the seeing eye dog. And then at twenty seven eight-by-ten colour glossy pictures with circles and arrows and a paragraph on the back of each one and began to cry…”
I assume that somewhere, Arlo and I must share some genetics. Why? The amazing ability to take a small story, and make it stretch out for a REALLY long time 😉
Still surviving indie-ship. I’m starting to get more work from outside of the old company that I worked from. However, there’s starting to be a problem – every time I work on TZ or on the IDE, I’m reminded of one fundamental fact: THESE are the things I want to work on. Not someone’s AutoCAD drawings (though, it’s a nice change of pace, and it’s paying the bills.) Somehow, I’ve got to get the incomestreams from game development to be sufficent that I no longer have to deal with the rest of the world of computer – just game development. That’s all I want to do 🙂 Unluckly, so far I haven’t found a perfect strategy to change that Right Now – I’ll just keep pluggin’ along as is for now, then make the transition as I can. I get the cool-points of saying I work for myself (or, in game development circles, saying I’m a full-time indie), but I still don’t quite have the freedom I’m looking for. I’ve got a taste right now (or, more like a heavy dose), but, it’s still not quite what I want. Time for more strategy work when I get the chance.
(and once again, I submit a .plan, and GG eats it. Good thing I’ve taken to copying them first, then hitting submit!)
“You can get anything you want, at Alice’s Restaurant
{Excepting Alice}
You can get anything you want, at Alice’s Restaurant
Walk right in it’s around the back
Just a half a mile from the railroad track
You can get anything you want, at Alice’s Restaurant
Da da da da da da da dum
At Alice’s Restaurant”
Paul Dana   (Nov 29, 2003 at 11:50)
You did more singing in this post than you did at the Indie Jam! Sup with that?
I pretty much agree with your points. On the one hand I have no problem paying for code that I can use (for me up to about $50 without having to think too hard about it). On the other hand I plan to release all the useful code I have written for free (and have already done so…). There is no getting around the value of *free* for all the reasons you mentioned.
Phil Carlisle   (Nov 29, 2003 at 12:07)
That kind of makes it difficult though, because if we do release everything for free, we’re essentially saying code has less value than art.
I know that most games are about the artwork, but seriously, I’m not sure thats setting a good precedent. We arent buying torque for the artwork, so why do we think that buying code for game related stuff is any worse?
But there are issues of access and fragmentation involved. I’m not offering any solutions here 🙂
Phil.
Jarrod Roberson   (Nov 29, 2003 at 12:53)
The solutions is “blessed” code that GG “sponsors” by selling it as “offical” upgrades or something. Free is never free . . . take the state of the exporters right now. Free yeah, but not money wise, because they have to be maintained and ever second I spend either enhancing or recompiling or whatever an exporter to work with a new version of a graphics package is 3 seconds I am not spending on unique content or code.
I would not mine a subscription fee even to get updates to the exporters, lighting, terrain and other systems if they were well designed and fixed alot of the coupling and cruft in Torque now.
Davis Ray Sickmon, Jr   (Nov 29, 2003 at 12:55)  
LOL – yeah I know, no matter how you look at it, every direction you go with Code For Sale -vs- Free Code comes up with questions and problems. :-/
For me, code purchase is a better value than artwork is. (There I go – I just insulted an entire group of the GG community. 🙂 If I buy a piece of artwork, I’ll probably use it on one game (not completely true – Eric F. and I have been strategizing how to re-use our content as much as possible). If I buy a piece of code – it will more likely than not be in each and every release I make. So, for ME, it’s got a better value. But that’s just me.
@Paul: Much easier to recite the words to Alice’s Restaraunt – timing is not particularly important as compaired to say, Sweet Home Alabama. And you are SUPPOSED to sound funny in Alice’s Restaraunt, as compaired to Sweet Home Alabama 🙂 (However, while I may know all the words to Alice’s Restaraunt, don’t expect me to try and DO it. 🙂
Eric Forhan   (Nov 29, 2003 at 13:27)
Code is a better value, Davis, because you can (usually) use it in many games. However, (unique) art is more valuable because it can be only used once.
In other words: I can only sell my unique model once. I can’t sell it to fifty different projects, simply because gamers won’t like seeing the same model in so many games. Super-leet shaders can successfully be used in so many projects (EDIT: And thus be sold for less to make up the money). 
Not to take away from the hard work. We’re just talking simple ‘Supply & Demand’ economics. 🙂
I think what we’re struggling with is that the Torque engine is playing ‘catch-up’ to the modern engines. What would be great is if we could all band together as one super-entity and make a super-dooper torque engine. However, that’s not really worked too well in the past. And, money is a great motivator. 
But is it the right one? Beats me…
For the record: There are lots of art and art resources out there. Tutorials, free skyboxes, textures, terrains… 🙂
EDIT: Clarification
Edited on Nov 29, 2003 13:45
Michael Cozzolino   (Nov 29, 2003 at 17:15)
Hmm… I don’t know a solution. I never really thought of potential problems with code packs until recently. I think anything not game specific and/or improves the visual capabilities is going to be great for Torque. Free is great. But I do know what it is like to need money. I took a second job and my Torque time has pretty much gone to 0. I’m struggling with trying to keep it a priority in my life and not quit my dream.
On the other hand their is power in numbers and this community is capable of so much. We as a whole could really push the Torque technology. Look at the coding frenzy that is TorqueIDE.
So I really think as a community this could be a problem and we as a community need to come up with an answer. We really need to figure out a revenue stream for major Torque contributers.
Justin Mette   (Nov 29, 2003 at 18:45)
Something that will be harder to justify with code content packs for the price will be support. You can only imagine the kind of support emails you would get because your code did not integrate with someones hacked up version of Torque. 
Another issue is keeping your code current with HEAD or point releases. This may not be so easy to do.
How much value is maintenance worth on code content packs? Even with the art content packs already out there by BraveTree, they have had to recently upgrade them to work with 1.2 – and you know it will be worse with any kind of complex code.
If code content packs came with no support, they are really no better than code resources. I’d actually look into writing the feature myself so its better understood and integrated into our particular game engine. This allows us to more easily upgrade the code or fix bugs when needed.
Another interesting perspective is that of trading code content with other indie teams. Say we have a sweet AI system for GravRally that someone wants to trade for an IRC client. That’s a good trade and a scenario where boths sides gain something.
Edited on Nov 29, 2003 18:46

Talk to me (and everyone else) by commenting!