Casey O’Donnell on DIY Gaming (Part 2)

by Joseph Matheny on December 11, 2007

Casey O’Donnell on DIY Gaming

(2 of 2)

Wes Unruh

In the first half of this interview
gbamp-ide.jpg
we discussed some of the ways in which hobbyists have been tinkering with
handheld gaming and how game developers and homebrew or independant game designers have tackled similar problems
from different directions. This part of the interview continues, with discussion about how the game manufacturers
have alternately reached out and clamped down on hobbyists. DIY Gaming – is it viable, how does one go about
it, and where’s the line between free expression and protected code? This is the second part of an interview
with Casey O’Donnell.

Let’s bring this back to the idea of software or code being protected vs. being free speech. There has been code in the past,
one example being the encryption code for HD-DVDs, where an actual
number, an alphanumeric code was copyrighted and not supposed to be printed, even though it was printed in the public
patent.


Casey O’Donnell
:
Yes, it’s kind of interesting, and there’s a history of that within the game industry. Nintendo started all of this
lock-out stuff with the Nintendo, in part it was the shape of the cartridges, but Nintendo also had a patented and
copyrighted program that had a lock and key, the lock was in the machine, the key was on the cartridges, and if they
didn’t match up the game wouldn’t boot. The interesting thing that happened, and I’d have to go back and
look at the case, but Atari via
Tengen, Inc. attempted to reverse engineer it, couldn’t quite figure it out. So they got the patent document from the
patent office and then used that to reverse engineer it, which is a violation of patent and copyright law so they got
beat in court. But then you’ve got another
court case with Sega
where their encryption or lock-out mechanism was just printing at
the beginning of each cartridge ‘S-E-G-A’ and the court ruled that that’s not a program.

Here’s the key bit:

Sega Enterprises Ltd. v. Accolade, Inc. 1992. 785 F.Supp. 1392.

Even before Accolade began to reverse engineer Sega’s games, Sega hadpissysonix.jpg
grown concerned about the rise of software and hardware piracy in
Taiwan and other Southeast Asian countries to which it exported its
products. Taiwan is not a signatory to the Berne Convention and does
not recognize foreign copyrights. Taiwan does allow prosecution of
trademark counterfeiters. However, the counterfeiters had discovered
how to modify Sega’s game programs to blank out the screen display of
Sega’s trademark before repackaging and reselling the games as their
own. Accordingly, Sega began to explore methods of protecting its
trademark rights in <24 USPQ2d 1564> the Genesis and
Genesis-compatible games. While the development of its own trademark
security system (TMSS) was pending, Sega licensed a patented TMSS for
use with the Genesis home entertainment system.

The most recent version of the Genesis console, the “Genesis III”,
incorporates the licensed TMSS. When a game cartridge is inserted, the
microprocessor contained in the Genesis III searches the game program
for four bytes of data consisting of the letters “S-E-G-A”(the “TMSS
initialization code”). If the Genesis III finds the TMSS
initialization code in the right location, the game is rendered
compatible and will operate on the console. In such case, the TMSS
initialization code then prompts a visual display for approximately
three seconds which reads “PRODUCED BY OR UNDER LICENSE FROM SEGA
ENTERPRISES LTD” (the “Sega Message”). All of Sega’s game cartridges,
including those disassembled by Accolade, contain the TMSS
initialization code.

So the question becomes ‘what is encryption?’ What’s a reasonable expectation? You know, users are pretty savvy,
they can figure out ways to do things. And I wish people would refer more to the Sega Genesis case in saying ‘Look,
if we can figure it out, it can’t be that novel.’ Maybe it’s not encryption, or it’s weak encryption if we can crack
it.

kcode.jpg


If they didn’t do their due diligence, they can’t just sue people for figuring out.. it’s like we were talking
about the Konami code when we were planning this interview. It’s almost like we’ve gone from cracking individual games
to get the ‘god-mode’ to cracking whole systems, we’re talking about meta-cracking, if you will.


Casey
:
And that very inquisitive nature is being shut down. I think that’s one of the most disturbing parts of it, is figuring
out that ‘hey, if I do this key sequence I’m going to get X.’ That’s a really important part of what it takes to be a
game developer, what it takes to be a scientist, what it takes to be a whole lot of things. I want to dig deeper, I want
to find out what makes it tick. And if you have corporations shutting down that process of inquisitiveness, that seems
to me to be very frightening.


Casey
:
One of the things that was really interesting was while I was in India, it really drove home the fact that game developers
don’t talk about what they do. People were encountering the same problems that I’d solved when I was a game developer, and
that was five or six years before I’d gone to India, so like seven or eight years. Nobody’s systematically documenting
or talking about these same problems. And while I love the resources out there, they don’t help game developers figure
out how to go from point A to point B. If you look on those game development sites, they’ll have some really great examples
of how you do x, y, or z. But it’s very engineer or art-specific. It’s a header file. And even Nintendo’s example
code that comes with their licensed SDK’s does the same thing. So you get people going ‘oh, I guess that’s how we’re supposed to do this.’ And so in India they’ve constantly got their artists
running to the engineers and the engineers running to the art side, and the art team can’t run the game.

game2pull.png

Whereas in the US people have figured out ‘oh, you never hardcode anything.’ You read all of these files, smash them
into the game, and then you run the game. But that’s something you realize over time, it’s not opaque. And even if you
go and look at those things, you shouldn’t even read your damn triangle, you shouldn’t have the vertices’s of your triangle
in your game code. Don’t. Just don’t. Read it from a file, because then you could make it a square.


Keep everything modular.


Casey
:
Exactly. And so that’s part of that missing link, of how do you really make games. It ends up being this experimental
process that everybody has to go and do, rather than people learning from each other. And so it’s this bizarre hacker
ethic combined with secrecy which just is really strange to me.


Well, awesome. You’re ‘All But Dissertation’ right?


Casey
:
Yes, PhD. candidate, so I’m writing up the dissertation right now.


Well, this was awesome, thank you very much.

Of course, this is just the second half of the interview, if you missed it you can
catch the first part here
, and below I’ve included the same set of links to help you get started
in exploring this topic much deeper.




Related Links:



Lapis

moboid.com/lapis/



Game Development Related:

gpwiki.org/index.php/Game_Programming_Wiki

flipcode.com/articles/articles_summary.shtml

nehe.gamedev.net/

gamedev.net/

mathworld.wolfram.com/

wikipedia.org/wiki/M.U.G.E.N

enterbrain.co.jp/tkool/RPG_XP/eng/

clickteam.com/eng/index.php



Emulator Forum:

emuboards.com/invision/



General Pages on Homebrew:

wikipedia.org/wiki/Nintendo_DS_homebrew

wikipedia.org/wiki/Wii_homebrew

wikipedia.org/wiki/Psp_homebrew

wikipedia.org/wiki/PlayStation_3#Linux

wikipedia.org/wiki/Microsoft_XNA



Microsoft XNA Pages:

msdn.microsoft.com/xna/

creators.xna.com/



XNA pro-con discussion:

forums.xna.com/thread/32590.aspx



XNA Related:

ziggyware.com/news.php

xnaresources.com/



DS Homebrew:

tobw.net/dswiki/index.php?title=How_to_start_coding

dev-scene.com/NDS/Tutorials_Day_1

palib.info/wiki/doku.php?id=day1



PS3 Homebrew:

gamesindustry.biz/content_page.php?aid=24363

gamasutra.com/php-bin/news_index.php?story=9290



Open Consoles:

xgamestation.com/view_product.php?id=33

gp2x.com/

{ 2 comments… read them below or add one }

Kenneth December 27, 2007 at 10:16 pm

Awesome set of articles! My friends and I discuss a similar concept quite a bit (albeit without the technical jargon we so lack). Sorry to sound cliche, but it appears to me that the game development community of the “world” (JP, US, EU to a lesser extent) would much rather monopolize such information than allow upstarts from any corner of the globe a chance to improve upon it. Which is, I believe, ultimately a detriment to the gaming community (developers, publishers, gamers) as a whole. What about the direction Valve/Steam is moving towards? Any input/ideas on that?

ps: I pleaded with my fingers for a coherent comment. Here’s hoping!

Reply

Casey O'Donnell December 31, 2007 at 10:51 am

Kenneth…

Great comment, thanks for reading.

So… I agree that the net effect of all of this is that you do wind up with a monopolization of power and access. I wouldn’t go quite so far to say that as a whole the game industry does it consciously. I think it is more of a product of a continuous headlong rush forward that leaves little time for reflection. In part this is what I think my research is an opportunity for.

I definitely agree that it is a detriment to the community at large, and that more access and more people making things will only push the game industry forward.

Unfortunately there are quite a few companies and individuals that have yet to figure out that all this secrecy and closure isn’t necessarily a good thing. It’s as if the game industry is stuck in a 1980′s concept of intellectual property. The rest of the world has moved onto the 1990′s (at least) where they understand that there is value in “openness,” though even still most companies can figure out how to do it.

As I move the “game industry game” chapter of my dissertation forward as a homebrew game effort, I’ll be documenting as much as possible on a website (I’ll link it here) for others to read.

Keep at it.

Reply

Leave a Comment

{ 2 trackbacks }

Previous post:

Next post: