I was working on a coin-op game for a mid-level manufacturer in Chicago. Let's just say they were the last dinosaur in the tar pit and they didn't have a stellar hardware engineering team. They tended to copy other people's designs and not really understand the architectures, so things like in-circuit emulators and IDEs were scarce or non-existant. You debugged via trial-and-error and, if you were lucky, printf().
So I was working on this title and started working from home a couple of days a week to take care of a family member. That made things hard, and even harder since you tend to have the physical machine next to you while coding. It was frustrating to code for a day, get to work, then find half of it wasn't working.
Then I discovered that the MAME kids had already supported the platform. With a small amount of work I could develop on the emulated platform. I could work remotely and I had access to things the in-house guys didn't even have: hardware breakpoints, live RAM viewing, scripted testing for example.
Without MAME I would have seriously been suffering on this project.
"Fortunately, [...] a SpyHunter fan [...] had extracted the sound effects himself and put up WAV files on his web page."
"I wanted to give the guy a game credit [...]. The publisher refused....their legal team were already writing up a cease-and-desist letter ordering him to remove the assets from his fan page."
Guy saves the day and instead of a cookie he gets a CnD letter. Do things really have to work this way?
"But you have to defend your trademarks or they become worthless!" Right, because the publisher would have been so much better off if those WAVs wouldn't have been out on the Internet in the first place.
I came here to post about exactly that. My jaw dropped while reading... not because it was flagrantly unethical, or abusing the law, or anything like that, but because it reminded me so acutely of the stereotypical movie villain who enlists the help of some hapless bystander and then impassively murmurs, "Thanks," while shooting them.
I already know this is going to get downvoted because Hacker News (wisely) disapproves of feckless criticism of big corporation business practices, and every time I post something like this, no one realizes that I'm just sharing an observation as opposed to making a hard judgment, but I was so surprised by the similarity between reality and fiction here, and so pleased to see that someone else had made the same connection, that I'm posting it anyway.
I was going to give you an upvote actually, but I viscerally hate the phrase "I know I'm going to get downvoted..." Just write what you have to say and who cares about the fools that react negatively.
I expressly condone your decision. I dislike it when anyone says that, or when people say "UGH WHY AM I GETTING DOWNVOTED." But, I have noticed that sometimes I will be spontaneously aware of someone's voting patterns, and I catch myself thinking, "This guy gets downvoted for the same stuff every time he says it. Why does he keep posting it?" So I thought I'd put the little explanation down there, in case anyone does something similar. IMHO, "I know I'm going to get downvoted..." is a little less stupid when it comes with an explanation--a pre-emptive, quiet rebuttal to all of the silent downvotes.
EDIT: Also, I never presume that people who downvote me are fools. Sometimes I find myself downvoting due to some essential gut reaction that I either can't verbalize or don't bother verbalizing. In fact, I think I have done that when people fecklessly criticize corporate business practices. Perhaps it was my initial awareness of "I might downvote the comment I'm writing, if I came across it in the wild," which inspired me to include the explanation.
Every disagreement is an opportunity for learning. By including the explanation, it invites someone to reply and say, "Actually, I downvoted you because x," and then I will learn something new about the nature of HN commenters.
Legal teams have zero incentive not to draft such letters. It's up to the executives at the company to have the courage to ignore the attorneys' advice. Of course, odds are it was sent and now the poor SpyHunter fan has an entertaining story to tell.
This is really important. Law firms, once on retainer (or even in-rolodex) constantly search for way to create billable hours. If you don't watch your lawyers very carefully, its not altogether unlikely that you'll get a big 'ol surprise bill for work that you not only didn't authorize, but also made you look like a total dick to your fans and customers.
This is an incredible example of the 'zombie code' problem. You lose the source to something and are somehow expected to maintain it anyway.
Years ago at a previous employer, we had an old xenix system that ran a library book lending system. The company that maintained it had gone bust long ago and noone knew how to migrate the data, in fact noone really knew xenix either. I ended up (as the Linux and y2k guy) working with one of the smartest guys I've ever met to hunt the data down. In the process I learnt xenix and Geoff learnt xenix x86 assembly. Geoff patched the library system to start dumping out csvs. Then he patched an import function, then an extra field to indicate the year starting with 19 or 20 (to solve the y2k problem all we had to do was shutdown for Christmas, bring the box up in January, set the date to 1900 and we'd be fine. It didn't quite turn out that way but that was another story) and after a significant post y2k problem Geoff took over maintaining a defunct piece of software on a defunct platform, for 3 years. The library didn't migrate because they didn't need to, as long as they had Geoff. After I left, Geoff took over xenix admin (to be fair, not a lot to do) and a few years later fell very ill. While the library thought they'd saved money, ultimately they trapped themselves in an expert system that could only prolong the inevitable disaster on the horizon.
Tip for next time: Make deliverables relative to the time you get the initial assets you were promised.
BigCo promises you the original source code + game assets.
Instead of promising Alpha/Beta/Release from the signing of the contract, promise X/Y/Z business days from delivery of those critical assets.
(Make sure you have a timeout clause in there too, "Assets will be delivered by BigCo within 60 days of the signing of this contract or we will not develop that title and BigCo will pay a penalty of $X")
[edit to add] Be careful to define what "assets" mean to you. Assume what you write will be read by a lowest-bidder consultant, with active disincentives against showing initiative, and who can barely read. (Not stupid though)
This works for me in mechanical construction projects.
Specifying durations from deliverables rather than absolute dates has transformed the way I run projects. So instead of saying "we'll be on site 2 Feb 11", thus setting ourselves a deadline without holding others accountable for their deadlines, we say "we'll be on site 3 weeks after all design review issues are closed, and this list of actions is complete".
It's not a silver bullet. It has worked wonders for controlling risk associated with penalty clauses in contracts, and cuts out the need for a lot of communication (i.e. bitching and CYA tactics). I'm convinced that it justs makes everybody more accountable, somehow.
Now if only I could find a WBS/Gantt chart tool that supports durations and not dates... MS Project doesn't.
Exactly this. I had a brief foray into this. A mentor of mine had taken over the reigns for the mobile division of a large publisher. He asked me to work on a few titles for them, and I gladly did. It sounded fun.
He was great (and remains a mentor and friend), but my GOD was the larger legal department a nightmare. They attempted to put 100% of the risk on to me. I lasted about 3 weeks before I had to tell my friend that his company was insane, and they weren't budging. Unfortunately, even as a high level executive, there wasn't much he could do.
Thus ended my brief career as a freelance game developer:)
This is yet another reason for software developers to unionize. Otherwise it'll continue to be a race to the bottom as developers continue undercutting each other and giving away any leverage they may have had.
Let developers race to the bottom for bottom-feeder work. It's no concern of yours, since that's not the sort of work you want.
You're a professional, and will deliver high-quality work in exchange for a premium rate. There are plenty of clients out there who are willing to pay for things to be done right.
All that unionizing would accomplish is dragging you and me down into that pit you describe. I'll thank you to refrain from doing so.
I've done many advertising campaigns who's dates shift based on the client dragging their feet delivering assets. We absolutely put them on the hook for getting critical stuff to us and then saying it's 3 weeks from that delivery date.
I especially like the bit where someone else had embedded Mame with a pirated ROM as a "port" to a major console. Especially amusing if you read Mame's license, which includes:
> MAME is free. The source code is free. If you paid for it, you've been
ripped off. If you sell it, you are a thief.
> You are not allowed to distribute X-Mame ( source or binary) and
ROM's image in the same package or physical medium.
> If you distribute the executable, you should also distribute the
source code.
> The source code cannot be used in a commercial product without a
written authorization of the authors.
It would depend on the console. I worked on "Midway Arcade Treasures" (PS2, XBOX and GameCube) and none of the emulators in that package was based on MAME, including Spy Hunter.
I'm just amazed they could find the source for some of the older Midway games. I think Bally kept really good archives, but I think Williams not so much.
I love the bit where he gets the best guy in the office to play through the game with cheats and grabs the image data from the sessions in order to reconstruct the maps.
Perhaps because I've always been an, er, "dedicated" gamer, there's something about a solution involving playing the game which is really satisfying.
while this special occasion may be a different thing, doing anything on the job that's fun otherwise may poison it forever.
think of playing wow ... for gold farming.
or being a game tester? nightmare of a job.
another example: texas holdem. it may be fun playing with friends in your spare time, but i'm pretty sure it's a brain wreckingly monotonous chore if you have to do it for hours, 4 games open simultaneously at any time. not much fun in that.
assembly line working at foxcon suddenly sounds like a really diversified job.
>another example: texas holdem. it may be fun playing with friends in your spare time, but i'm pretty sure it's a brain wreckingly monotonous chore if you have to do it for hours, 4 games open simultaneously at any time. not much fun in that.
No, but writing the bot to do it for you would be fun.
Poker AI that can beat the average human you will find online is pretty trivial to write. Running profitable poker bots involves spending 90% of your time touching up your scraping algorithms to cope with the ever changing DOM of the casino sites, which shifts dynamically to prevent exactly this kind of thing.
With the level of programming skills required you can earn way more money with a legitimate job.
In this case I liked the fact that it was a one off thing, the guy had to play through the game a few times so they could get the data out of it.
Like if someone needs to take an acoustical reading from a room and you're the guy in the office who plays cello so get asked to work through a few tunes while your colleagues take readings.
Or if you're the office cycling nut, and get called on to fill in when the courier company makes a mistake but your team still has to get those plans to company B across town before 5pm.
Okay, I'm really stretching it. I know. Though that last one really did happen to me when I was 14 on work experience at an architects' firm, and I felt like a HERO. (Though in retrospect perhaps they were just concocting a story to give me a job to do...)
"but the publisher insisted that we had signed a contract, and that with-or-without assets we were expected to deliver the alpha version on time....which at this point was a week later."
Crazy, yet all too common. We didn't hold up our end of an agreement, but YOU have to. Does this happen in all industries, or just software?
"We didn't provide the plants or mulch or dirt for the garden (which we were supposed to do last week), but you still have to provide a flower bed tomorrow."
I'm assuming there was something in the contract that the original party was required to provide assets for the port. Perhaps it wasn't.
"No... no need to contractually obligate us to deliver - just believe us, we'll get you the files!"
Stories like this make me thing that we should have some legal basis for telling the suits to fuck off. Professions like aircraft pilots and medicine doctors do this.
I think there is, the problem is the severe imbalance of funding power between a publisher and a developer. Also some care has to go into writing the contract. It's possible the language in the contract didn't require the publisher to provide the code.
In this case, the developer should have been able to sue the publisher and renegotiate the contract. But I suspect that wasn't economically feasible.
I agree about the importance of the contract but that is not what I had in mind.
No contract can force a surgeon to operate using a self-forget cutlery set. In some countries everybody has the right to refuse dangerous work. My fantasy was about the right to refuse work that goes outrageously against state of the art.
I had similar experience with Metal Gear Solid port for the PC.
We did not have the source to the midi/mod library playing the music (they were composed of short samples).
Instead we found .wav files of all music tracks on one of the fan-page sites. We even found the samples to a lot of our sounds. We simply grabbed and used them instead
So moral of the story: Making unreasonable demands and threatening to completely cut off funding for related projects works as a way to force a contractor to deliver despite "setbacks" on your end?
Probably because he likes games too much. The supply of game programmers is simply too large for there to be decent salaries and working conditions for everyone.
Seems to me like the Internet is a wide open place for people to make games on their own. That's what I'm doing. It seems to me like "working for the man" as a game programmer is making less and less sense with all the options available these days.