News
Site News
3D Realms closed.
Zero Punctuation ripped on the whole sordid story.
Honestly... I guess I don't care. My prevailing emotion is a sense of tragedy over the cumulative amount of time, energy, resources, and most of all opportunity wasted over the whole affair. Sure, it's a running gag to compare all of the things that have happened in the same time that DNF hasn't. But that just highlights the gross mismanagement involved. What saddens me is what could have happened. I have no doubt that very smart, talented, capable, and creative people were involved in the development of DNF at every step. Not necessarily all of the people, but I imagine the vast majority. And what we, as gamers, have to show for their collective efforts is precisely zilch. What they toiled for didn't need to be a Duke game, I honestly didn't care, but it should've been something that saw the light of day, enriched the gaming landscape, and validated their devotion and hard work.
I wanted to let the dust mostly settle before registering my feelings on the matter, as I was one of those that initially felt that things looked and smelled a lot like a very coy marketing stunt - the perfect setup for what would've been the announcement of all gaming announcements.
Instead, it was the just the obituary it claimed to be, and the only spectacle left is the inevitable lawsuits as the sharks circle in to fight over the carcass.
Here's another look behind the curtain of independent game development, this one courtesy of Vic Davis of Cryptic Comet, recounting the tale of Armageddon Empires. This is both similar and categorically different than Jeff Vogel's success story. Vic basically caught lightning in a bottle, experiencing an exponential upsurge of interest in his little nichey strategy game due to what amounted to a perfect storm of new games journalism. But it wasn't entirely, or even mostly, luck (though getting the Penny Arcade firehose pointed at you doesn't hurt). He took a decidedly non-mainstream approach to supporting his game:
- Keep your mouth shut until you've got something people can play and buy. Allowing a gamer to go instantly from 'never heard of it' to 'oh - it's done and I can buy it for $10' has a tremendously powerful effect. Hype has to be sustained, and that's why mainstream marketing budgets are so huge, they have to finance the hype crescendo. Curiousity is an itch and being able to scratch it immediately can turn casual interest into a sale.
- Never stop updating. The product launch is just that - the 'launch' of an extended voyage. It's not lighting the fuse on a sales bomb, seeing how much you can get in the first month after release, after which both you and the customers flee from ground zero.
- Make customer support personal and visible -- do it yourself on community forums. This will directly stimulate peer-to-peer word-of-mouth sales recommendations (what the article calls the 'infection vector'). An interesting point was that Vic didn't host his own forums (on his company's website), opting instead to defer the game's individual community germination to existing broader community sites. This put both his personal support of the game and the players' buzz about it in a more 'infectious' environment - he wasn't bootstrapping a new community out in some uncharted corner of the internet. He set up camp smack in the middle of the very people for whom he was designing his game. And as mentioned in the article, he recognized the importance of being genuine and not acting like a viral marketing person masquerading as a native. He was honest and helpful and it paid off.
The end result was that he turned an unflinchingly hardcore, niche, turn-based strategy game (made with Macromedia Director of all things) into a smashing indie success. And he's off and running on his next title. Godspeed!
Jeff Vogel of Spiderweb Software has been kind enough (and narcissistic enough) to undertake a bit of blogging on the topic of independent game development.
Which is cool. Don't take my narcissistic comment the wrong way - everyone who blogs is narcissistic. It's cool because the more attention indie game development can get, particularly successful indie game development, the better. And I don't necessarily think there are really any trade secrets worth hoarding here, so why can't successful indie developers pull aside the curtain a bit more? Indie game development is hard work, besodden with failure and ruin, and almost utterly devoid of accolades. And in that sense, it's not really any different than mainstream game development. It's also risky business, but perhaps one 'secret' is that it might actually be less risky than mainstream game development.
Jeff's been making a steady living doing games for over 15 years. That's a pretty stout achievement, particularly given the nature of the games he does. He makes butt-ugly old-school RPGs only die-hards will love. But the 'trick' is that there are evidently enough die-hards to make the exercise profitable. Predictably and consistently profitable. Having read the two recent posts Jeff made as 'tell-all' confessionals of the financial numbers behind one of his recent games, I wanted to distill some of the key disclosures that were made. Again - these aren't trade secrets. It's common sense stuff for anyone who's not totally drunk on EA and Microsoft's relentless propaganda.
- The Long Tail is a real thing and it works. If you're not beholden to pay back someone else's huge initial capital investment, you can ride the tail to profitability. For the purposes of this discussion, the long tail is the steady, word-of-mouth driven sales sustained well after initial release, in contrast to the 'blockbuster opening weekend' effect that mainstream games tend to rely on to make it into the black, financially. I've referred to this as the 'spike economics' of the game industry, and mainstream developers and publishers alike live and die by it. Indies can't, because it requires huge (i.e. expensive) marketing campaigns, and it needs a steady diet of game releases allowing for the occassional blockbuster to pay for both itself and all the non blockbusters that 'missed'. Note that this model may ultimately prove to be the undoing of mainstream game development as well, but that's the a story for another day.
- Time is the most valuable thing you have.
- Making multi-platform games is like printing free money. You're already doing the design and implementation work. If you take the right approach from the beginning, it's only a marginal amount of 'extra' work to get one implementation to work on multiple platforms and you've just hugely broadened the size of your potential customer base. Which is critically important when your customer base is niche to begin with. Which brings us to...
- Serve an underserved niche. Mainstream game development is like a whale - it has to eat an ungodly number consumers just to stay alive. For that reason, many particular kinds of gameplay just get shoved aside categorically by the big publishers because the games simply don't exhibit the scale of consumer popularity necessary to offset the increasingly bloated development budgets. And so the world is rife with cliques of gamers whose true desires go unmet by the industry at large. And it is precisely these gamers that will forgive your pitiful little game its glaring deficiencies compared to a AAA mainstream game, if only your game scratches their specific itch when none others will. As Jeff put it: "You have to write something that they can't get easier and cheaper elsewhere." Because if they can they will. You may eventually nurture some consumer loyalty, but you'll have none initially, and never enough to offset the fundamental disadvantages you'll face as an independent. Like any successful organism, you have to discover an unclaimed part of the ecosystem.
- "Big budget games will ALWAYS look better." And "graphics are expensive. Really expensive." Moral of that story - don't even try to match mainstream graphics quality. You'll lose, and you'll just go broke/crazy trying. Your time and budget (which is mostly time) are better spent pursuing the handful of unique things that are going to attract that underserved niche. Good graphics aren't unique, and definitely aren't underserved. Yes, a certain percentage of people will ceaselessly hate on your game for how crappy it looks. Screw 'em. They're not buying your game anyway.
As usual, I'm so culturally disconnected that I get all my news from Penny Arcade, and a recent post made brief mention of Blizzard hiring 'Fargo'. I'll say it in question form, just as PA did, to convey the sense of perplexity that accompanied the concept: Fargo? Naturally I thought the reference was to one Brian Fargo, of former Interplay fame, whose name is associated with gaming classics like Fallout, Descent, Baldur's Gate, among others. That's odd, I thought, isn't he like the CEO of some studio or something? Yes, as a matter of fact, he is. But given his history, I guess it's not a bad fit: Blizzard & Fargo. But as it turns out, the entire concept is moot since the 'Fargo' involved is actually Dave 'Fargo' Kosak of (formerly) GameSpy fame. You'll forgive me the mistake, I hope, on the grounds that I have in fact never heard of Dave Kosak, a consequence no doubt of the fact that I basically hate GameSpy, don't read it, and have been known to opine it as a traveshamockery of gaming journalism.
It just so happens, though, that Dave 'Fargo' Kosak is really funny. I mean _really_ funny. Despite my better judgement, I didn't eject myself out of GameSpy after following the original link on the PA post to Kosak's farewell letter (at which point I realized none of this involved Brian Fargo). Instead, I proceeded to waste copious time reading archives of content authored by Kosak over his tenure at GameSpy, and it's good stuff. Genuinely entertaining. One part sophomoric teen gamer humour, and one part frustrated-literature-major-working-at-a-gaming-website, it adds up to some great comic content. I recommend browsing the archives if you've got nothing better to do.
I still hate GameSpy. Just so there's no confusion on that front.
Oh - I almost forgot, just to tie Blizzard back into this, I chuckled at the following comment posted to Kosak's farewell article:
ZombieMessiah on February 13, 2009 09:24 PDTFor all it's polish, WoW is pretty much the worst MMO ever.
A handholding, dumbed down, grindfest of 'epic' proportions.
I'm sure this is a wise career decision, but that doesn't change the fact that WoW is a steaming pile of horse...poop.
Indeed.
I've recently been doing some internationalization work for a gui tool using wxPython, and was confounded by an apparent inconsistency in how 'common' dialogs adhered to the locale settings in effect. Everything worked as expected on Linux and OSX, but on windows the dialogs stubbornly ignored all of my efforts to enforce a specific translation on their widget strings. Note that I'm talking about the 'convenience' dialogs offered by wxPython, such as wx.DirDialog, not dialogs that I construct from scratch.
As it turns out, on windows some of the dialogs actually completely defer to windows shell API calls, and therefore aren't sensitive to any wxPython localization state. The dialogs simply reflect whatever language settings are in effect on the windows machine on which they're invoked. So if you have your application set to, say, Japanese, but you're running on a windows machine configured for english, the dialogs will always show up in english. Which is bubkis. But it's also 'just the way it is', unless/until the wx folks (whom are ultimately responsible for how the underlying dialog entities are implemented) change the affected dialogs to be constructed from other wx primitives rather than using a direct windows call.
After wrestling with the problem for bit, I had begun to suspect the reason behind it, and ultimately did find some verification of my suspicions in a forum post. Interestingly, it references an MSDN forum post which describes a .Net developer struggling with the same issue -- namely the inability to localize, within a .Net application, a common windows dialog.
For the record, I wanted to archive the letter that I sent to my Maryland representatives in the US Congress regarding the EESA (Emergency Economic Stabilization Act) of 2008, which I consider (then and now) to be a resoundingly bad idea.
Here it is in its entirety:
Dear <congress person>,
I would just like to register my severe disappointment that you voted in favor of the HR 1424 amendment (EESA) on Oct 1, 2008, and in so doing recklessly disregarded the long term sustainability of the US economy.
The seeds of this fundamental dysfunction of the global monetary system were not sown overnight, and any solution to it will not be found in the spasmodic and woefully impertinent flailings of a panic-riddled congress.
Furthermore, EESA is not merely impotent to the current problem, which would be shameful enough. In the long term it may very well be the equivalent of pouring water on an oil fire.
I find it tragically disconcerting that the Senate would choose to completely ignore the consensus opinion of not only this nation's best economists, but those of other countries as well, many of whom have first-hand experience characterizing the behavior of lending crises, and all of whom implore the pursuit of alternative solutions.
Instead, the Senate has stayed true to form and chosen to grasp at the most convenient bauble simply for the sake of appearing to do something, anything, as urgently as possible, sacrificing all pretense of informed evaluation and objective judgement.
Your complicity in this debacle of reason, foresight, and leadership is duly noted.
I particularly liked the phrase 'impertinent flailings of a panic-riddled congress'. Remember, the key to politicians isn't to make them your friends, it's to make them fear for their jobs. Plus, I figure there's probably only a 1% chance someone actually read it anyway. At best it got registered on a tally in the 'against' column for their feedback tracker. And it made me feel incrementally better to have written it.
[update - in the extended body of this post I've included the text from a blog post that did a great job summarizing why the EESA is a terrible idea.
Comments following the US Airways flight 1549 crash into the Hudson river provided today's Moment of Marvelous Mirth:
Ben: So why are some people standing in 12 inches of water, while others are being rescued in a raft?
ellen: because they're in first class. ;)
It's ok to laugh because noone died in the crash (at least, as of reports immediately following).
Of course, a hilarious irony would be if the crash was caused by someone on the plane twittering away during takeoff, screwing up the plane's electronics systems like they keep trying to scare us about. But no, that wouldn't happen because the threat of plane crashes from onboard cellular use is bunk.
Note that I still think twitter does little but masquerade aggrandized minutia as discourse.
Here's an awesome chart from the brains at LLNL which demonstrates in glaring fashion just why the 'Foreign Oil Problem' and 'Electricity Generation' are two separate issues. See that tiny little sliver of a line going from 'Petroleum' to 'Electricity Generation'? That represents the amount of oil used in the generation of domestic electricity. Imagine, if you will, that we instantaneously installed a massive national infrastructure of electricity generation powered exclusively by all kinds of clever technologies, and that we suddenly got 100% of our electricity from something besides oil (either domestic or foreign). That tiny sliver of green going from 'Petroleum' is the only reduction in oil use that we'd see as a result of that effort.
When corporations and politicians talk about our foreign oil dependency and our electricity generation in the same breath, they're purposefully trying to confuse the issue. They are shills for the oil industry, which is desperate to do anything to keep you from realizing that the problem is transportation. Cars, trucks, cars, planes, cars, and especially cars.
If you want to talk about electricity generation and environmental responsibility, the problem revolves around coal. Period. Coal is the electricity demon in the closet. The chart tells you that plainly as well.
But perhaps the most interesting story the chart has to tell is the grey block labeled 'Lost Energy' at the right hand side. Imagine what would happen if we actually focused on that problem! It's a tragic and shameful indictment that our entire civilization operates at well under 50% efficiency.
While in a previous post I claimed that Finder had the 'good sense' to not show .DS_Store files, the fact of the matter is that in general I don't want it hiding things from me. If something's on disk, I want to see it. Apparently I'm in the universal minority here, since all three main platforms (*nix, OSX, and Windows) have as their default behavior the cloaking/supressing of various filesystem content. On linux, 'ls' requires the '-a' argument if you want to see everything. Windows forces you to edit folder visibility properties. And OSX hides all '.*' content unless you apply the following bit of voodoo:
defaults write com.apple.finder AppleShowAllFiles TRUE
A quick restart will reveal all, including things like '.localized' on your desktop.
There are a lot of ways to capture image buffers in an X-Org based environment, but I found one that I preferred, and it's ImageMagick's 'import' utility. Very flexible, and more importantly, well documented and maintained. Out of the box, it does time-lapse multi capture, which is generally what I'm after when I'm playing games (which I'm doing more and more of on Linux and not on Win32) and I want to have a framegrabber running in the background taking periodic grabs. A line like the following will get the job done adequately:
import -depth 32 -pause 10 -quality 100 -silent -snaps 5 -window root foobar.png
I'm probably going to cook up a little python script that leverages import, rather than relying on just the command line, since it will provide greater control and flexibility for a session-based use of the tool, and because it looked like import keeps all the grabs in memory until it's done, which isn't suitable for accumulating a lot of images in one session.
This worked a lot better than other attempts with things like scrot, fbgrab, etc.. xv is good for one-off manual grabs, but doesn't provide any automated time-lapse feature, which is what sent me googling in the first place.
An OS and/or window manager shouldn't be leaving little turds all over my filesystem. That's exactly what OSX does. It poops everywhere it goes. Little OSX dingleberries named '.DS_Store'. It's annoying enough that it does it locally, where it at least has the good sense to not show them in the GUI file browser (though they're in full view from the shell). But the fact that it flings its poo all over any and every network mounted directory is just inexcusable.
Thankfully, its easy enough to get it to behave a bit more civilized 'in public', by disabling the creation of the .DS_Store files on network mounted directories. The necessary bit of OSX voodoo is the following command:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
I think a reboot is necessary for it to take effect. And you'll probably want to take a broom to any locations that have been sullied, via something like:
find . -mount -name '.DS_Store' | xargs -L1 -I {} rm -v {}
Bad OSX -- No biscuit!!
I was feeling churlish and finally annoyed enough with the default login background for OSX that I figured I'd google out the recipe for changing it. Turns out it was trivially simple. And in addition I swapped in an 'improvement' on the apple logo itself [snicker snicker].
I run nightly backup scripts, which email me a summary report that includes, among other things, information on disk usage.
I'd been watching the percentage creep steadily up on my main (root) mount drive with increasing concern, but not sufficient concern to actually investigate what the culprit was and whether or not it was a legitimate use of drive space.
Except the other day the percentage finally got dangerously close to 100%, so I finally had to stop putting it off and figure out what was going on.
Turns out it was embarrassingly simple. MySQL was happily generating binary log files which tracked Every Single Thing it did, ever, all the time. Just like it was told to do by my /etc/mysql/my.cnf file (via the 'log-bin' option). Only apparently the files never go away and don't participate in the normal logrotate process (for obvious reasons, once you understand the purpose of the binary logs). So they just keep piling up, indefinitely. To the tune of ~25GB, in my case, for a small set of low-footprint MySQL databases running since about 2006.
Once I understood the situation, it was easily remedied by adjusting the options I supplied to the nightly run of mysqldump (which is what I employ as my MySQL backup method):
--flush-privileges --flush-logs --delete-master-logs --master-data=2
The critical one was '--delete-master-logs', not surprisingly, but the other ones came along for the ride as I waded through the mysqldump man pages.
"Why not just disable binary logging", you ask. Because they're actually a good thing, which is why they're enabled by default. In a disaster recovery scenario, they let you bridge the gap between your last full backup and whatever transactions occurred until the point of the disaster. The issue wasn't that they were being generated, it was that they weren't being cleaned up each time I did a full backup (at which point they become superfluous).
So.. the moral of the story is the age-old lesson that computers always do precisely what you've told them to do, whether you actually want what you asked for or not.
Here's a recent listing of free/open-source FPS games. I was aware of about half of them. Anyway, I just wanted to jot down the list for future reference. Free is good.
And actually, while I'm at it, here's a similar article, this one listing free linux RTS games.
Oops -- apparently a well-known ~x86 dependency 'bug' was allowed to surface in stable gentoo.
Here's a forum post and a bug report.
Here's the recipe I used to get around the recent shenanigans associated with e2fsprogs-libs going stable.
-
emerge -uDavft world
- That ensures that the packages are pre-fetched,which is critical to this recipe working. The unmerge that happens below temporarily eliminates the ability to fetch portage packages.
-
emerge -avt1 --nodeps e2fsprogs-libs
-
emerge -avt --unmerge com_err ss
-
emerge -avt1 --nodeps e2fsprogs-libs
-
emerge -avt1 --nodeps e2fsprogs
-
emerge -avt1 --nodeps mit-krb5
-
emerge -avt1 --nodeps e2fsprogs-libs
-
emerge -avt1 --nodeps e2fsprogs
-
revdep-rebuild -v
Then world updates can proceed, or whatever else you planned on doing.
For reasons that I'm sure involve lawyers, VirtualBox OSE requires some human intervention to correctly install. The 'additions' iso is flagged as unfetchable by emerge, so it must be downloaded manually and put into /usr/portage/distfiles.
http://download.virtualbox.org/virtualbox/1.6.6/VBoxGuestAdditions_1.6.6.iso
Obviously, '1.6.6' should be changed to the version du jour.
Once you've moved it to /usr/portage/distfiles, be sure to correct the file settings:
-
chown portage:portage /usr/portage/distfiles/VBoxGuestAdditions_1.6.6.iso
-
chmod 664 /usr/portage/distfiles/VBoxGuestAdditions_1.6.6.iso
The issue only manifests if you've got the 'additions' use flag enabled for app-emulation/virtualbox-ose, which you probably do because it's neato.
Apparently some of my video cards are now officially decrepit. A recent world emerge broke X for me because my two nvidia geforce FX5500 cards are now on nvidia's 'legacy' list, and no longer supported by the latest (or future) drivers. It's nothing a quick edit to /etc/portage/package.mask didn't fix:
>=x11-drivers/nvidia-drivers-177.0.0
Then the following steps got me back up and running:
-
emerge -avt nvidia-drivers
-
update-modules
I tripped on this issue awhile back (when a lightning strike killed one of my nics), but in all the recovery chaos I neglected to document the issue. And so I tripped on it again just yesterday when I juggled nics between two machines.
The issue is that udev makes a note to itself of which mac addresses correspond to which ethernet device indicators (eth0, eth1, etc..), when they're initially discovered. And then it 'reserves' that indicator, so if, say, you pull out the nic that was eth0 and put in a new one, it won't get eth0, which is non-intuitive (at least if you've been installing nics for years).
The fix is easy, though. Just edit the following file:
/etc/udev/rules.d/70-persistent-net.rules
You can either delete the line that contains the indicator that you want to reassign, or you can just edit the mac address itself. A reboot (or possibly even a restart for udev - I don't know I didn't try) will get the new nic exposed as expected.
It can also be helpful to just run: 'ifconfig -a' if you're not sure which nic got assigned which ethernet device indicator.
Here's a little puzzle for you. What's wrong with the following two statements:
Along with more choices, and the consequences associated with those choices, Fable II boasts an improved combat system for mastering weapons and magic, an AI canine best friend and the much-anticipated Dynamic Co-op Mode, adding multiplayer functionality for you and your friends.
- EB Games newsletter
Lionhead is still making some tweaks to the online co-op formula. They assure us that online co-op is still coming, and that the goal is to have it launch within the first week after the release in North America. They also clarify that you will still be able to see your friends as glowing orbs prior to the update, but the online interactions will be limited to chat.
Did you spot it? The little lie. Or not so little, depending on whether you think claiming a product has something that it won't actually have is a 'little' lie. I'm sure the goblins in Marketing are so desensitized to hyperbole that they don't even categorize outright lies as lies anymore. Perhaps if pressed they'd explain that "It depends on whether 'has' means current tense or future current tense. Because in the future it'll be true. Almost certainly. Probably. Unless it will cost us too much money. Anyway, where's the harm?" The harm is in lying through your bungholes to get people to buy something that doesn't actually *do* what you claim it can do. We used to call that 'consumer fraud', and it got companies in trouble. Ah.. those were the days!
I managed to actually squeeze in some gaming the last few weeks, including an abbreviated affair with Arx Fatalis. If you're an RPG junkie, it's probably worth the $10 it currently costs on Steam, if for no other reason than that you can then sound snobby when you're discussing RPGs with less seasoned gamers.
[UPDATE: don't get it on steam, get it on gog.com instead. Help make the world a better place.]