I'm not any more entitled than any other member on this community, and I hope that DC/CS don't take me in the wrong way, I'm only talking off my little not-so-broad experience... I'm a beginner game developer, with some mates we've released a couple free fangames (actually ROMhacks but the same conditions in law/community/dev apply here), and I've already faced all sorts of ups and downs.
I'm not the best programmer either, I'm not as good as others for the logic work though I do best on visual sequences and effects, but on every single project we have released so far, no matter how complex or simple, no matter our focus, "skill", or timeline (even if infinite) to develop & test every feature, even if we total 5 programmers in the team with the best possible organization, no matter if we actually do a "better" job than the original creators... we WILL always get at least 1 bug or oddity, that WILL be found by 1 player within 1 month of release if not less! Under whatever condition, the "perfect" program is just inhuman!
QuoteI do W:A development as a labor of love. j0e hit the nail on the head saying "Maybe he'd lose his ambition to continue if he knowingly left imperfections that he knew he could easily fix." I'm in this for the long haul; I want to make W:A as good as it can be.
I like that sentiment. Personally, I've never been a fan of deadlines. Here's an example: You're working in a game that's very "important" to your public AND yourself too, you got an emotional attachment to the project, and is so technically advanced it plays vfx thought impossible. You're 7 days away from deadline, the ending sequence still has to be manually written (can't just play a video because HW limits), AND the artist doesn't have all sprites ready yet! Which means you have to improvise something to fill the gap; it's your responsability now, and you don't want the ending to suck nor screw it up, or you'll doom all your previous work to a safe failure. By that point, you have no brain to ensure the program is "logically right" nor optimized enough, or you'll have no time to ensure everything actually displays right on screen let alone have it ready on time.
For this, a game on its first public release is hardly ever "finished" at least according to original game plan; there's always that crude moment the team says "we have no time to develop new playable features, let's just finish/make the remaining menus or bonus levels, fix bugs, polish what we have now". Or that's what seems to be done for Sonic 2 and Mania (with its randomly missing transition cutscenes on first releases (!)).
---
HOWEVER, not having a deadline isn't always that good either! But I hope it's not the case for you or anyone else. Because when there's not it's easy to get "lazier" with the time, get 1/3 of game, and then lose any will/energy to keep going. I don't know why that happens to me, but it's very difficult to avoid unless it's a "short & simple" project or there was a constant emotional feedback. The only... "mental workaround" of sorts I've found so far, is to self-impose imaginary deadlines, just to stay awake. This way I'll get the adrenaline, an artificial emotional feedback to help me for the last weeks.
I remember that when I adopted this kind of workflow, I had a very bad look from another mate who does better than me on the coding "logic". After that, I tried to push myself to write logic on-par to her level, but this only led me to an "art block" of sorts and I gave up. I'm not nearly as good as her on it, but in this way I've managed to do a lot more "visible" work, even if more messy than before. For some reason I find myself with more time and mood to experiment new effects than ever before. Overall, I'm faster and more productive, even though I'm not that intelligent in comparison. The sad truth is, as long as the game program works and does it well, average player simply doesn't care unless there's a bug that's too awkward, or worsens/cheats the gameplay. If the worst programmer from the planet done a game that doesn't look buggy to the player (even if it's avoided with many kludges and such) nor slowdowns (too much), people will actually like it.
Within retro community, most people believe that the Megadrive/Genesis games made by japanese teams "push" the video hardware more than the rest, however if you compare the code from Red Zone against Sonic 3 & Knuckles, you'll see the former is infinitely better done.
The point is, I understand the perfectionism, I don't like mediocrity either, but stopping to patiently fix every single detail feels like an impossible goal, IMHO. Because nobody is perfect. And if I can't ever release a bug-free game, at least I'd try to keep things fun and fair, no?
If you have a different point of view, please let me know! I'm always eager to learn more