Fast Fourier
Newcomer
As is probably not widely known but will soon be as Western developers continue to outdo their Japanese counterparts (just wait until E3!), game-making in Japan has hit sort of a fork in the road. Western developers have virtually leap-frogged Japanese developers for some specific reasons that can be remedied, and hopefully will be in the near future. The reason you haven't noticed this until now, is that the console gaming world has recently (at least for the past 20 years or so) been a Japanese dominated world, at least in terms of perception. Now the West is finally showing their hand, and it has humbled, humiliated, and in some cases, caused fears for the future of some Japanese companies.
I know of at least 2 companies, one of which is Sega, who are frantically trying to catch up to modern development practices. These practices, are used by any and all development houses (of any type of software, not just games), things like, oh, making sure the product is actually testable and builds correctly, or actually using Object Oriented Programming techniques, are not in as wide use in Japan as you'd imagine. What some of these companies have gone so far as to do is hire Western developers to come in and train workers about development processes, tools, and techniques. The way games are made in Japan right now are applicable to programming for the Nintendo Entertainment System, yes the NES. They aren't applicable to modern large-scale games. They hinder design, and creativity.
You can't code procedurally anymore, and the only reason some of these companies have been getting away with it is by either a) Throwing millions of dollars of resources on a project, or b) Virtually enslaving their employees who are underpaid and overworked but work happily because they have the desire to make games.
If you showed a Japanese programmer stuck in their ways how simple it is to create a game in C++ say for the Xbox, they probably wouldn't believe you. From Software is so obsessed with making games for the Xbox because they "saw the light" in a way and realized that you're banging your head against the wall with PS2 compared to the relative elegance and simplicity of a nicely designed C++ Xbox game, which in fact enables code-reuse (another thing possibly never to have existed in Japanese studios to date).
To explain as simply as possible with examples, what looks simpler and easier to design and modify?
Western style (a simple example from Game Architecture and Design):
class CFighter
{
public:
Bool Kick();
{
m_kick.Execute();
}
protected
CKick& m_kick;
}
class CKick : public ICommand
{
}
class CMildKick;
class CMediumKick;
class CHotKick;
or Japanese style may look something like this...
Msg(((fnp*)Kick)+(F*rand()/RAND_MAX + 1.0));
or even something like
mov ax,[_tx]
imul bx
idiv si
cwd
mov dl,ah
mov ah,al
xor al,al
idiv di
mov [M21],ax
The problems in Japan aren't limited to development processes, the whole image of a games programmer is about equivalent in level of disgust to the picture of an obese man wearing a Sailor Man outfit.
But when Japanese game studios
1) Start paying talent what they deserve and allowing them to have breathing room in their life, which will allow more "normal" people to enter the industry as well, and
2) Pushing things like OOP and using tools to make game design flow smoothly and not push all of the work onto single programmers who are frequently literally in the situation of sitting squat under a falling avalanche.
The success of upgrading development processes may be seen in Soul Calibur 2 and is seen as From Software pumps out Xbox games with a miniscule amount of resources (and all while against the wishes of top management for reasons of pride & politics). We'll see how it goes for Sega and Square, or Konami and Capcom, as they try to compete with the scope and flexibiltiy of Western developers toolkit. What's also good is that a company like Square might be found out for the virtual slave laborers they are.
Just check out this year's E3, games like Fable will be commonplace in 2 years. If the Japanese can't catch up to that, they are in deep shit.
I know of at least 2 companies, one of which is Sega, who are frantically trying to catch up to modern development practices. These practices, are used by any and all development houses (of any type of software, not just games), things like, oh, making sure the product is actually testable and builds correctly, or actually using Object Oriented Programming techniques, are not in as wide use in Japan as you'd imagine. What some of these companies have gone so far as to do is hire Western developers to come in and train workers about development processes, tools, and techniques. The way games are made in Japan right now are applicable to programming for the Nintendo Entertainment System, yes the NES. They aren't applicable to modern large-scale games. They hinder design, and creativity.
You can't code procedurally anymore, and the only reason some of these companies have been getting away with it is by either a) Throwing millions of dollars of resources on a project, or b) Virtually enslaving their employees who are underpaid and overworked but work happily because they have the desire to make games.
If you showed a Japanese programmer stuck in their ways how simple it is to create a game in C++ say for the Xbox, they probably wouldn't believe you. From Software is so obsessed with making games for the Xbox because they "saw the light" in a way and realized that you're banging your head against the wall with PS2 compared to the relative elegance and simplicity of a nicely designed C++ Xbox game, which in fact enables code-reuse (another thing possibly never to have existed in Japanese studios to date).
To explain as simply as possible with examples, what looks simpler and easier to design and modify?
Western style (a simple example from Game Architecture and Design):
class CFighter
{
public:
Bool Kick();
{
m_kick.Execute();
}
protected
CKick& m_kick;
}
class CKick : public ICommand
{
}
class CMildKick;
class CMediumKick;
class CHotKick;
or Japanese style may look something like this...
Msg(((fnp*)Kick)+(F*rand()/RAND_MAX + 1.0));
or even something like
mov ax,[_tx]
imul bx
idiv si
cwd
mov dl,ah
mov ah,al
xor al,al
idiv di
mov [M21],ax
The problems in Japan aren't limited to development processes, the whole image of a games programmer is about equivalent in level of disgust to the picture of an obese man wearing a Sailor Man outfit.
But when Japanese game studios
1) Start paying talent what they deserve and allowing them to have breathing room in their life, which will allow more "normal" people to enter the industry as well, and
2) Pushing things like OOP and using tools to make game design flow smoothly and not push all of the work onto single programmers who are frequently literally in the situation of sitting squat under a falling avalanche.
The success of upgrading development processes may be seen in Soul Calibur 2 and is seen as From Software pumps out Xbox games with a miniscule amount of resources (and all while against the wishes of top management for reasons of pride & politics). We'll see how it goes for Sega and Square, or Konami and Capcom, as they try to compete with the scope and flexibiltiy of Western developers toolkit. What's also good is that a company like Square might be found out for the virtual slave laborers they are.
Just check out this year's E3, games like Fable will be commonplace in 2 years. If the Japanese can't catch up to that, they are in deep shit.