Archive for the ‘.NET (C#)’ Category

Creating a plug-in framework in C#: Resources

Thursday, July 26th, 2007

Recently I’ve considered building a plug-in supported application for my own personal use and amusement. I had designed a simple one years ago, in VB.NET and was curious to see what (if anything) was available on the Net in terms of tutorials or pointers for building a more sophisticated one in C#. What follows is a list of links to articles and forum postings that I found which may prove to be useful.

Updated July 27th: Added Mads Kristensen’s article, which somehow didn’t make it on the original list but certainly belongs there.  Additionally, Shaun Hayward’s Toronto Code Camp 2007 presentation, Building Plug-ins and Inspecting Classes With Reflection, is certainly worth a look.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Nope, I’m still alive…

Monday, June 11th, 2007

A crisis on the family front involving the health of one of my children has been consuming my time as of late, but I haven’t abandoned my blog. I’ve composed quite a few posts, unfortunately they were all composed in my head, in my car, while driving to work and without means to record my brilliance. Damn this primitive 21st-century technology! Had I been able to store my wit and wisdom, why I would have shared with you my thoughts on the following:

  • Seven months later, Truevision3D 6.5 is still nowhere to be seen by the non-paying public.
  • Silverlight looks like it will be enough to kick Adobe in the pants and give Flash a run for its money. I could never get into ActionScript and decent online tutorials on Flash that went beyond “hey I’m gonna make a cool intro webpage” were few and far between; I look forward to doing this sort of thing in C#.
  • Ah, Paris Hilton.
  • Spambayes is still working marvelously; again, I recommend it for anybody who is drowning in spam.
  • Google’s new Street View feature is damn impressive. I can’t say I buy into the paranoia that the privacy advocates are attempting to whip up: if you take a picture of my house from the street in front of it, you’re not exactly peering into my windows. If some cretin has the mind to break into my home, I’m willing to bet that he’ll case the place in person and that the Internet may be a tad too sophisticated for him anyway. Besides, by the time the magic Google vans get to my city, any pressing privacy issues and legislation will have likely taken place. Thanks for taking the bullet for small-town America, San Francisco!
  • Dwarf Fortress is, by far, the best ASCII-based game I’ve ever played. Not that I’ve played that many — certainly not in the last 10 years or so — but it beats the crap out of most Roguelikes. I suspect what keeps me playing is not the random-generation element (and certainly not the graphics, the other Roguelike characteristic DF shares) but the fact that you can build rather complex fortresses and gently nudge the inhabitants in a particular direction. In fact, I think Tarn Adams should pitch the concept to Maxis; SimMoria sounds like a winner.
[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

The Never-Ending Beta

Monday, December 11th, 2006

UPDATE: If you can stomach my rambling after this post, here’s a new one on the topic from July 2007.

I’d like to preface this post with the following disclaimer, so as to deflect any low-hanging criticism before it appears:

What I’m about to write about is an incredibly minor, gnat-on-an-elephant’s-back annoyance. As far as I know, nobody will be harmed because of this issue. As an Internet freeloader and forum lurker, I’ve invested nothing but a little personal time into the subject at hand. Furthermore, the applicable developers owe me nothing. I do not wish this to be construed as a personal attack against them. I feel compelled to comment since I’ve followed this for a while and it seems so atypical of anything else I’ve seen in terms of software.

We all on the same sheet of music? Fantastic. Let’s have at it.

Several years ago I came across a great graphic engine called Truevision3D (TV3D for short). At the time I was getting hooked on the .NET experience and this engine not only supported the Framework (via COM) but had a nice collection of samples available so that I could quickly get up to speed with things. The community was small but spirited and helpful. Best of all, the engine was cheap: free if you didn’t mind a watermark, up to $500 if you wanted unrestricted rights.

I played with the engine, made some cool orbit simulations, and considered writing a game with TV3D. But on the horizon there awaited even more goodness: the incredible version 6.5. More than just three minor updates from the current v6.2, this new release would be a major rewrite of things and would feature shader support, an overhauled network engine, better terrain and model support and an integrated physics engine. As great as the current engine was, the new version sounded like the Best Thing Since Sliced Bread(TM).

I chose to wait, since I was busy at home and work anyways and had no burning need to crank out a game immediately. I felt that I could take my time, get even more comfortable with 6.2 and then start with 6.5 when it came out rather than try to retrofit older code. My time wasn’t too far away, I figured, since developer darqSHADOW announced in May 2004 that community members were to be slowly added to the beta program and I made it a point to sign up.

Months passed without word from the TV3D team about wider beta involvement. Still, most of the forum discussions focused on 6.2, even though the occasional 6.5 showcase thread would appear to keep us salivating. In December 2004 developer Arli announced that purchasers of 6.2 would automatically get into the beta; because I hadn’t purchased anything I didn’t get in on that action…but that was OK, since this most likely meant that a wider beta — or a full release — was in store for us in 2005.

By April 2005 it seemed like there were more and more questions about 6.5 appearing…the oft-asked “when is 6.5 coming out” forum posts (inevitably asked by new users) were receiving fewer and fewer polite responses by the forum regulars. September came and passed with little more than a new video posted by lead developer Sylvain along with the only “development diary” posted by the dev team for all of 2005. More and more 6.5 examples and sample code were being posted by beta testers; unfortunately this wasn’t as useful to the 6.2 folks.

By this time I wasn’t following TV3D as closely as I had before; whereas previously I visited the user forums on a near-daily basis, now I was coming around perhaps once a week.

Then, perhaps once or twice a month.

I stopped by in Spring 2006 and found that I wasn’t necessarily alone in my lack of optimism about 6.5’s progress. The community wasn’t quite as friendly as it was before: 6.2′ers were getting sick of seeing screenshots, videos and code samples exclusively for 6.5, and the 6.5′ers were sick of listening to the 6.2′ers whining about timelines instead of just ponying up a simple $150 to get in on the beta.

Each side, I think, had legitimate points: the 6.5′ers were mostly veterans of the forums and were sick to death of newbies asking the same questions; the occasional troublemakers and inflated-entitlement leeches didn’t improve the stance of the 6.2′ers either from what I could tell. On the other hand, the 6.5′ers tended to avoid such questions as “how can somebody publish a game using a beta?”

By Summer 2006 things continued their slow but gradual downhill slide. When one forum poster asked “Are they fooling us?” in regards to the ever-closed, never-ending beta, the conversation degenerated into the typical “they owe you nothing” dogfight that I’ve seen on a dozen other discussion boards (usually involving disgrunted game customers versus fanboys), with one developer chiming in and mentioning that the website was a key part of the 3D engine’s release. Then the discussion turned variations on “oh, well I’d rather wait and have something good than have a product that is rushed out” and “you’ll only complain louder if you don’t have proper documentation, which isn’t ready yet!”

It was at this point that I checked back out.

I do agree that in most cases it is better to wait for something great than have something barely adequate immediately. Small development teams may be forgiven for taking a long time to accomplish a task, especially if they are doing so on the side — that is, in their free time. Timelines for software are notoriously difficult. Building a 3D engine that itself is a product must be incredibly challenging and difficult.

But if your product has been in a closed beta for well over two years, you are doing something wrong.

First and foremost, you’ve Balkanized your community: instead of a vast majority that uses one version (with the occasional late-adopter dropping in on occasion), many of your advanced users and evangelists are using the newest toys while everybody else is in the slow lane. The gurus who would normally help the newbies are busy frolicking in greener pastures and are less inclined to “slum it” with the mundane problems of yesteryear.

Secondly, you’ve left some (perhaps many) of your bread-and-butter customers behind. These are people who started on their own projects a year (maybe two) ago and figured that as their own deadlines approached, your component would be ready for use. Maybe they’ve used the old product and their design requires a feature of your new product…or maybe they got in on the new version but can’t release their product because you are holding them up.

I can’t honestly say that watching the Truevision3D beta saga drag on angers me…because I really don’t have a dog in this fight. As I stated earlier, I haven’t invested a dime into this engine. A lot of hope, maybe, but no money. The words confusion and dismay are closer to what I’m feeling, along with disappointment and frustration. I’m having a lot of trouble comprehending how something with so much promise, with so many smart people working on it, can flounder like this.

I’d love to really find out why — but it’s clear that the TV3D forums aren’t the place for this discussion anymore, if it ever was. To have a voice, apparently you need to fork over at least $150…and at that point, you’re no longer interested in the opinion of anybody who hasn’t done the same. And I’d rather not pay somebody that much money for a product that could stay in beta for another two years.

Am I crazy?

This is a trivial thing — especially from my position — but does this situation strike anybody else as being normal or reasonable?

Postscript: the questions about 6.5’s release date continue. Two-and-a-half years later.

Postscript 2 (11 January 2007): TV3D user Zaknafein boldly posted a link to this entry in the Truevision3D forums, which explains my sudden surge of traffic.

kick it on DotNetKicks.com

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]