The Day MAME Saved My Ass
ppl-pilot.com
ppl-pilot.com
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.
"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.
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.
Caveat emptor: watch your lawyers.
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.
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.
This is an oft repeated phrase - "Please acknowledge our trademarks by using 'IdiotGaming is an RTM of Acme Company' on your pages, thanks.".
There you are, protected.
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.
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)
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.
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:)
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.
> 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.
Perhaps because I've always been an, er, "dedicated" gamer, there's something about a solution involving playing the game which is really satisfying.
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.
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...)
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.
Source: http://www.bbc.co.uk/programmes/b008kj9m
That programme in the link can be had for download if you look. Don't worry I've already paid for it, its on me.
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!"
a) People really need to watch out for the contracts they sign.
b) if you try and negotiate it seems alot of these people know they can just find some other poor sucker who will do it on their terms.
OB cached link: http://www.ppl-pilot.com.nyud.net/mame.aspx
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.
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.
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
Looks like the suits won this one.