Indie Is as Indie Does

Home | Blog | Articles | About | Contact
 

8/14/2008

Cliff Hanger

Filed under: — joeindie @ 11:52 am
Cliff Hanger
 
From PC Pro, via Joel’s Business of Software forum:
 
And here’s the actual survey results:
 
Yo, Cliffski. <waves> (Never knew your last name. So often I forget that people on the Web have last names. ;-) )
 
For me, this is the most interesting part of Cliffski’s results:
 
“Some of the criticisms of my games hit home. I get the impression that if I make Kudos 2 not just lots better than the original, but hugely, overwhelmingly, massively better, well polished, designed and balanced, that a lot of would-be pirates will actually buy it. I’ve gone from being demoralized by pirates to actually inspired by them, and I’m working harder than ever before on making my games fun and polished.” (emphasis added)
 
I don’t know if it’ll work, but it seems a lot more positive than many other responses to (inevitable) piracy.
 
-David

8/6/2008

Excitable Boy

Filed under: — joeindie @ 11:53 am
Excitable Boy
 
Yesterday, as I continued to hammer away on the same feature I’ve been working on for a few weeks, seeing no end in sight, I kept thinking:
 
Maybe it’s not too late to rip it out.
 
After all, that’s what my last post was about.
 
But I kept going. Mostly because I wasn’t sure that I could rip it out now. Too many changes in too many source files.
 
My mind likes a challenge, though. A puzzle. So after another hour or so extension, test builds and bug hunting, my mind offered a solution, straight from my subconscious.
 
Leave the bulk of the changes in place, and just ignore the incomplete new parts.
 
I actually stopped then, and left my computer. I loaded the dishwasher, telling myself that I couldn’t just ditch the feature. I had already (sorta) announced it. I had even trimmed it back some, made it less ambitious (before the semi-announcement). And I want the feature. So, dishwasher running (and cleaning the necessary implements of future caffeinated beverage creation; which is why I loaded the dishwasher instead of making a new pot of tea) I went back to work.
 
And in less than 30 minutes the feature was done.
 
I sat there in shock.
 
I had almost talked myself into ripping out a nearly finished feature.
 
Damn.
 
Right.
 
OK, then. Back to work.
 
-David

7/23/2008

On the Trimming Away…

Filed under: — joeindie @ 3:38 pm
On the Trimming Away…
 
Trimming. Chopping. Excising. Removing. Hacking off.
 
Project Vee continues to make me remember what it was like to have a full time job. Summer (the season, not the school break) is nearly half over, and I’m no where near halfway to testing.
 
But I could still get there. All I gotta do is drop a few of the more difficult planned features … ;-)
 
Back in early 2001, after I had already clocked 6 months on The Journal 3, I realized that I didn’t like open-ended, experimental development. Which is to say, I realized that I enjoyed it too much. (What I didn’t like was all the work I wasn’t getting  *paid* for yet.) And that if I was ever going to get the project finished (so I could get paid) I would have to stop all my experimenting and focus on implementing the features necessary to a completed product (of which quite a few were still missing in March of that year).
 
Ever since then I’ve been wary of spending too much time “twiddling”. Experimenting with data structures and UI layouts and code optimizing. It’s all so much fun. :-) But it will all suck up so much time if I don’t keep it checked.
 
So far, I don’t think I’ve lost any (too much) time of Project Vee to excessive exploratory design and development. But maybe I did create a target features list that is outside the limits of what I can hope to achieve, a lone developer, in an efficient timeframe.
 
And so I find myself eyeing my planned implementation phases, considering once again strategic features vs tactical features, with an eye towards putting the project on a diet. The entire phase 4, for example, is likely to *poof*. But I haven’t completely decided yet.
 
Project management is still required. Even for a team of 1. Who knew? 8-)
 
-David

7/18/2008

My Bits du Jour Experience

Filed under: — joeindie @ 12:44 pm
My Bits du Jour Experience
 
I mentioned some of this in my comments to last week’s post, but I wanted to provide more details. Maybe my experience will help other software developers make the most of being featured on Bits du Jour.
 
First, my results from The Journal being featured on Bits du Jour:
  • Sales volume - ~8X normal
  • Revenue volume - ~5X normal
 
I have only very limited information to compare against, so I’m not sure how typical those results are. So I don’t know if the results are high or low or even average. Regardless, I was pleased. And I figure that’s what matters. 8-)
 
Obviously, the whole point of a sale is to increase sales volume and (hopefully) make up the discount in total revenue.
 
At first, when I was preparing for the sale, I was somewhat unenthusiastic. My only other experience with a sale had taught me a Very Valuable Lesson:
 
Never offer a discount to someone who is willing to pay full price.
 
So I hadn’t run a sale on The Journal since 2003. Over 5 years.
 
But then I realized: Bits du Jour’s readers aren’t my customers.
 
OK, sure. Some of them are. But the vast majority had never heard of The Journal.
 
And that’s when I realized the Big Opportunity Bits du Jour offers: Exposure. Lots of exposure.
 
So here’s what I did to maximize that exposure to new users, while simultaneously reducing the risk of offering a deep discount to people who weren’t price sensitive in the first place:
 
  • I decided that I would offer (as Bits du Jour recommends) a 50% discount. Due to the vagaries of decimal mathematics and my love of prices ending in .95, it was actually a 51% discount, but let’s not be too fussy. The idea was offer enough of a discount to draw attention and to push the price down to “impulse item” range.
 
  • I decided that the discount would be cash off the base edition of The Journal (normally $39.95) instead of a percentage off. I seem to recall that BdJ might have recommended that, but I went with it for my own reasons. Specifically, I would still be offering the various add-ons for The Journal (like Hamumu’s Prose Challenges). Those are $10 a pop, which puts them into the “impulse item” range already. I saw no need to reduce their price. (On the other hand, I didn’t sell a lot of add-ons that day. Maybe I should’ve done an all-over sale, after all.)
 
  • The first place I promoted the sale was on The Journal’s “Discounts Available” page. I posted word of the sale there 4 days before the sale. My reasoning was that people who are interested in a discount should be told. (This was the only place on The Journal’s actual Web page that I posted any information about the sale.)
 
  • Then I realized that besides the opportunity to promote The Journal to people who might not otherwise be interested in personal journal software, I had another big opportunity: Current users of The Journal might want to buy cheap copies for their friends and family. So 2 days before the sale I posted information to The Journal’s user discussion email list.
 
  • On the same day, I posted information about the sale to this blog and to Guns & Magic, my writing blog. I usually don’t explicitly promote The Journal to either place (I prefer to keep my ads passive), but this was a special occasion. And maybe some of my readers, who I don’t usually think of as my customers, might be interested because of the sale price.
 
  • My wife got in on the act too, and posted information about the sale to a local homeschooler’s emailing list she is part of. Again, not something we would normally do. But this was special. :-)
 
  • Finally, I sent out The Journal’s newsletter the day before the sale, with the necessary links (and encouragement).
 
Maybe not a “marketing blitzkrieg”, but not slacking off either.
 
If I had it to do over, there is one other thing I would do: I would have posted the sale information on The Journal’s front page the day of the sale.
 
One last word: A lot of my ideas were sparked by BdJ’s own tips. So definitely read their suggestions, as well.
 
-David

7/9/2008

How to Kill Sales Today

Filed under: — joeindie @ 12:28 pm
How to Kill Sales Today
 
Announce a discount for tomorrow. ;-)
 
Bits du Jour will be offering The Journal on Friday 11 July 2008 at the dramatically reduced price of $19.95. The normal purchase price for The Journal is $39.95! (This $20 off applies to any bundle of The Journal and add-ons so long as they are purchased through Bits du Jour.)
 
If you have any friends or family members who might be interested in The Journal please let them know about this sale.  I can’t afford to offer this kind of discount often, and it will only be available on Bits du Jour for a single day. Just tell them to visit http://www.bitsdujour.com on Friday 11 July, 2008 to get The Journal for $19.95. If you visit Bits du Jour right now you can click the ‘Notify Me’ button and you’ll be sure not to miss the deal.
 
The Journal on Bits du Jour:
 
Now, back to work on Project Vee.
 
-David
 
PS Marketing Insight for the Day (or Why I Posted This Here): While promoting a sale to people already willing to buy your product at full price is a great way to lose money, using that same sale to promote to people who might not otherwise be interested in the product seems like a good idea. :-)

6/26/2008

Backwards Compatibility

Filed under: — joeindie @ 6:21 pm
Backwards Compatibility
 
When I say “backwards compatibility”, I’m thinking of:
  • New versions of the software supporting (including properly displaying) data and processes (but mostly data) created or built with or for previous versions.
  • And, to a lesser extent, having the new version output data in a format that can be read by older versions.
 
(Is that the generally accepted definition of backwards compatibility? I should look, I guess.)
 
A tertiary goal of mine for backwards compatibility is to make that support (and proper display) of old data as invisible to the user as possible. In other words, the new version “just works” with the old data. No complicated upgrade processes.
 
Those have been my goals with every new version of The Journal since 1996. I’ve been mostly successful at it, if I do  say so myself, with only a few hiccups along the way. And I’d like to think I’m getting better at it.
 
I get irked when the developers of software I use don’t seem to have the same priorities. (Just like I tend to get pissed off when the customer support I receive isn’t up to my own standards.)
 
Yes, supporting old data is a pain in the ass.
 
Tough.
 
As an aside: What I find kind of funny is that since EXE sizes no longer have much of an impact on users, each new version can effectively include the old version in its entirety. (I think Windows does this.)
 
The Journal v1’s EXE was about 750K. Each major update has, so far, doubled the EXE of the previous version. I trim everything I can, of course, but I’d rather have a few extra MB’s of EXE than “cut off” a user. (I’m pretty sure, though, that GUI code and database code and similar library code make up the bulk of the EXE. Which is to say: It ain’t my code swelling things up. ;-) )
 
Anyway, I know some “programmer putzes purists” and “design morons purists” think of backwards compatibility as the Root of All Evil. They want each new version to totally replace the previous versions–wiping out the mistakes and missteps that plagued those previous versions–all of which are gone now, of course, totally fixed in the new version. They are stupid idealists and only want to look forward. Not backward. They believe that sissy users should suck it up and upgrade and fix all their own mistakes–even those mistakes made in good faith, properly using the old software.
 
There is only One True Way to these idiots dreamers–and it doesn’t include backwards compatibility.
 
Yeah, those people bug me. Can you tell?
 
In summary: Backwards Compatibility == Good Thing.
 
-David

6/25/2008

Beyond Tedium

Filed under: — joeindie @ 10:30 pm
Beyond Tedium
 
The first implementation phase of Project Vee was getting the original application to compile in a sparkling new development environment. That took a week or so (because being 6 years behind in your dev tools is a long time to be behind).
 
In the second implementation phase I replaced the database backend. And wrote the routines for properly upgrading data from earlier versions. And, while I was at it, totally redesigned how the internal data structures communicated with the database. All of that took a couple months (because when you change the database, you change the backup/restore process and all maintenance functions, the new installation detection and similar very low-level functionality).
 
Now, in the current implementation phase (which is called IP2, because I’m a geek), I’m re-designing Project Vee from the inside out. Which is to say, I’m streamlining (and/or replacing) certain core data structures in anticipation of extending those streamlined (and/or replaced) core data structures in anticipation of totally overhauling the UI.
 
I start by describing (in The Journal, of course) where I want to end up. Then I figure out which existing data structures  need to be changed or extended to get me there. And then I make small, isolated change after small, isolated change, doing full builds and testing against legacy data as I go, because I don’t want to lose anything on the way.
 
Because backwards compatibility must be maintained. (Anyone who tells you differently is an idiot. But that’s another topic.)
 
And so the summer grinds along.
 
-David

6/18/2008

Tedium, Tedium, Tedium, Tedium, Tedium …

Filed under: — joeindie @ 11:39 pm
Tedium, Tedium, Tedium, Tedium, Tedium …
 
What I need is an intern. [*] Which is to say: “Someone I can dump this really shitty grind of a task on.”
 
Gawd. What the hell was I thinking?
 
Tedium following tedium. First, reviewing a quarter-million lines of code to convert the project to Unicode. And now, going through the same damn quarter-million lines of code again to separate out the UI display text for localization (and–maybe fortunately–finding a few missed parts of the Unicode conversion).
 
12 years of “mostly adequate” coding practices coming home to roost. ;-) At least Delphi 2007 has automated some of the really tedious parts. But I still have to review and approve. And the RSI’s are beginning to loom.
 
Even better: after I’m finished with the current bullet point … the hard work begins.
 
Back to the grind…
 
-David
 
[*] No, not really. If you’re cute and female, my wife will exercise her veto. If you’re neither-nor … well … the pay is total crap (AKA, “nothing”). And I can be very demanding for a guy paying total crap.

6/5/2008

Eunuch Owed

Filed under: — joeindie @ 10:24 am
Eunuch Owed
 
I’m in the process of converting a 12-year-old code base to Unicode (Windows UCS2). That’s one of the strategic goals of Project Vee.
 
Oh, the joy of it all.
 
Delphi makes it pretty easy. For the most part, WideStrings are handled the same as what are now called AnsiStrings. My chief gripes/concerns are:
  • I have to write my own versions of some tools I’ve grown accustomed to.
  • I have to switch to special WideString-enabled UI components (at least they’re free).
  • I have to go through every source code file and make sure that I have properly changed the type of string and functions called with those strings–except where I shouldn’t.
  • Because some parts of the program are going to continue using 8-bit character strings. For the very compelling reason that if they don’t, I kill 12 years of backwards compatibility. Fortunately, there are few places where this is necessary, and none of them involve user input.
 
I cringe at the thought of the nifty new, hard-to-find bugs that I’m introducing to a stable product.
 
Still, I look forward to how much this could/will broaden the scope of the final project.
 
And it’s good practice for the next strategic goal of Project Vee that will probably cause lingering headaches: localization.
 
-David

5/29/2008

My New Hobby

Filed under: — joeindie @ 2:50 pm
My New Hobby
 
In the beginning … I mostly sat on my ass all day and coded, with brief periods of providing customer support via email. Some days I even saw my family, who were in the next room [1]. I’ve talked some about this before.
 
Last year, most of my physical exercise came in 2 forms. First, walking around ridiculously large furniture stores, time after time, trying to find furniture we liked and could afford. [2] Second, moving from one house to another. And then moving stuff around in the new house.
 
Came my birthday in December–my last “approaching 40″ birthday–I realized (a) that I no longer lived in a skate-friendly neighborhood [3]; and (b) that I was probably too old–and would be embarrassing my family–if I tried to resuscitate that particular form of exercise. Oh, and (c) that I didn’t want to look so … chubby. The rest of me is too thin for the middle be so … not thin.
 
So I claimed a 6′ x 8′ section of the new game room and bought a weight bench to fill it with. Serendipitously, and almost simultaneously, I found a workout plan that seemed both simple and effective. I rearranged the workout (as Mark suggested) to reflect my own priorities [4] and called it mine.
 
DavidRM's Gym
 
Just an FYI: I didn’t buy all of that equipment at once. That would’ve been damn expensive. And likely premature.
 
I started following my “personalized” workout plan in January with just the bench, the barbell (borrowed), and a few cast iron dumbbells. I added some free vinyl weights and a curl bar that someone had left at my folks’s house years ago (when teenagers still lived there). Those are gone now, replaced (because they just didn’t match the rest of the equipment; and were ugly). And I’ve added dumbbells that take free weights (much cheaper than individual cast iron dumbbells once you get to the 20-25 lb mark).
 
I’m finishing my fifth month of following the plan and working out 5 times a week. I lost a couple weeks back in late January due to illness, but that’s it. Even when on vacation I missed only a couple days because the hotel where we stayed had a gym.
 
I call this my new hobby. Because:
  • I work on it almost every day.
  • I spend money on it almost every month.
  • I read up on topics of exercise and (especially) proper form on my own time. [5]
 
So, after 5 months, what results have I seen? First, I’ve lost almost no weight at all. Possibly none. But that’s OK. I wasn’t trying to lose weight (my weight isn’t the problem, it’s my shape). My waist has shrunk a couple inches, though, and I’ve put on muscle weight in my shoulders, chest, back and arms. I’m stronger.
 
It may not seem like much after 5 months, but I have no complaints. And I look forward to the next 5 months, and further. I don’t plan to be entering bodybuilding contests, but I have to admit I’m curious: What will I look like with shoulders? ;-)
 
Here’s why this works for me:
  • I don’t have to leave my house. (It’s convenient.)
  • The workouts usually take only 25-35 minutes. The longest day is less than 45 minutes. (It’s fast.)
  • The workouts are different every day. (It’s varied.)
  • I see progress. (It’s working.)
 
And it’s cheap. (As hobbies go.)
 
In a sense, this is just like everything else I do: Highly (maybe overly) organized, with slow and steady progress toward a (possibly vague) goal. And it happens at home. I’m such a homebody these days.
 
I do miss skating, though. Some.
 
-David
 
[1] It was a really small house.
 
[2] I lost about 5 lbs doing that throughout the spring and summer. My wife and I started calling it our “retail walk”.
 
[3] Great house, great neighborhood, rather shitty, potholed asphalt streets. Some parts of the neighborhood are being repaved, though, so I have hope that mine will one day be as well.
 
[4] Abs, shoulders, chest, arms, and legs, in that order. Back gets lumped in with abs to fill out my Mondays.
 
[5] But mostly because I spend money on it. That’s what hobbies are for. They’re money sinks. ;-)
« Previous entries

The Indie Game Development Survival Guide
by David Michael

Serious Games: Games that Educate, Train, and Inform
by David Michael and Sande Chen
DavidRM Software's The Journal
The Journal for Windows
45-Day FREE Trial
 
 
Contact | Copyright © 2005