• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Yuji Naka explanation about NIGHTS engine and Sonic X-treme accusations

ManaByte

Gold Member
Naka’s truth bombs make me want to try Balan Wonderland….
J Peterman No GIF
 
What.. Wait. He codes the whole game NIGHTS in fucking Assembly!? 😳😳😳😵‍💫

The skill of that guy
Generally speaking, if a game looked technically impressive and didn't use new chips, they probably locked someone in a room until they could figure out how to code that stuff in assembly. Games done in C just were not optimized enough, and anything more "high-level" than C was out of the question.

It's rather unfortunate that coding to the metal of the hardware to make games run better is effectively a dead art.
 

nocsi

Member
Generally speaking, if a game looked technically impressive and didn't use new chips, they probably locked someone in a room until they could figure out how to code that stuff in assembly. Games done in C just were not optimized enough, and anything more "high-level" than C was out of the question.

It's rather unfortunate that coding to the metal of the hardware to make games run better is effectively a dead art.
ok firstly people still code to metal today. People inline assembly all the time, but only when you truly need to optimize. You act like most people can 100% beat the optimizations from an assembler and a compiler. I’ll give you a hint, they probably can’t, and definitely can’t code in such a way that is optimal to the hardware. The ones that are coding to the metal like you’re describing are the ones developing game engines. People making games don’t need to worry about that type of stuff anymore since it’s abstracted away with CoTS engines.

But yea let’s not glorify assembly. This is coming from someone that reads assembly (arm/mips/x86) on a daily basis.
 

Begleiter

Member
The problem with Naka's response is that he's been known to lie about things before to make himself look better (specifically around changes to the Sonic spec), and that we ultimately have no corroboration of either side. People are now going to pick sides based on who they'd prefer to believe.
 
seems like throwing accusations without evidence has been big against him


it's bad, really really bad, worlds look cool like the environmental art is great, but the character designs are pukeatronic
I don't mind the character designs mostly, but the gameplay is god awful.
 

01011001

Banned
It's rather unfortunate that coding to the metal of the hardware to make games run better is effectively a dead art.

yeah we are so far away from that nowadays. not only is noone really doing low level stuff anymore but they don't even have tailor made engines anymore either, its UE4 and Unity for everything these days
 

TheDreadLord

Gold Member
yeah we are so far away from that nowadays. not only is noone really doing low level stuff anymore but they don't even have tailor made engines anymore either, its UE4 and Unity for everything these days
I am not sure about the game industry, but you do find assembly being used in a number of industrial applications. It all depends on how much perf you need to squeeze from the device you are working with. If you can get away with something a little bit more powerful to run a high level language you do so but in many situations you are stuck with certain piece of hardware and there isn’t much that can be done besides going the assembly route.
 
Generally speaking, if a game looked technically impressive and didn't use new chips, they probably locked someone in a room until they could figure out how to code that stuff in assembly. Games done in C just were not optimized enough, and anything more "high-level" than C was out of the question.

It's rather unfortunate that coding to the metal of the hardware to make games run better is effectively a dead art.
The thing is though, wasn't that part of the draw to the Playstation? That their SDK/libraries/compiler were actually great and you could get good performance out of simply writing C?
 
Yuji Naka going off lately, pretty cool.

This guy's got some brass balls.

What.. Wait. He codes the whole game NIGHTS in fucking Assembly!? 😳😳😳😵‍💫

The skill of that guy

Wasn't uncommon for Sega's top programmers back in the day; Yu Suzuki also programmed the original Virtua Fighter engine in assembly language for the Model 1 arcade hardware. Back then if you wanted the best performance from gaming consoles and most types of hardware, you needed to code at least the most critical parts in assembly.

Very small steps away from that and moving certain parts to C started with some games on MegaDrive/SNES, but the PS1 liberated a big chunk of programming dependence from assembly and moved it towards C language with their SDKs and APIs. Still though, the best-performing games still needed to optimize critical parts of their engines in assembly, but that gradually lessened with each successive console generation, and assembly pretty much became completely niche once we got to PS4/XBO.

Generally speaking, if a game looked technically impressive and didn't use new chips, they probably locked someone in a room until they could figure out how to code that stuff in assembly. Games done in C just were not optimized enough, and anything more "high-level" than C was out of the question.

It's rather unfortunate that coding to the metal of the hardware to make games run better is effectively a dead art.

For outsiders enthralled reading about exotic console architectures and the programming feats to get impressive results from them, yes the move away from assembly and handling most game logic "coded to the metal" sucks, but for actual programmers in the field today who have extensive assembly experience or were in the industry back in the 16-bit/32-bit/6th-gen etc. days, they probably do a little dance every morning in celebration.
 

RoboFu

One of the green rats
its pretty sad that a lot of "computer science" graduates these days have no idea what programming assembly for a specific chipset is all about. I put "computer science" in parantheses because colledges have hacked it up so much in the past 20 years to maximize profits that it isnt close to the same courses it once was.
 
Last edited:

RoadHazard

Gold Member
its pretty sad that a lot of "computer science" graduates these days have no idea what programming assembly for a specific chipset is all about. I put "compuiter science" in parantheses because colledges have hacked it up so much in the past 20 years to maximize profits that it isnt close to the same courses it once was.

When I did CS at university we did some of that, at least on a basic level to get an understanding of what's actually going on on a lower level. But those courses were not mandatory I believe, I took them because I found it interesting. And I couldn't actually write a game or much of anything at that low level, but it's nice to have some idea of what your high-level code eventually becomes.
 
Last edited:

RoboFu

One of the green rats
Someone needs to tell Elon Musk to take 2 billion to buy and produce and new SEGA console. You could put an angle on it that it will be getting back at Bill Gates. :messenger_sunglasses:
 
Last edited:

cireza

Member
I have to laugh out loud when people are impressed by needing to code in ASM for the Saturn hardware. It was the standard way to do things. The Saturn was a powerful nightmare, the tools were complicated and poorly documented.

"Kids these days"
Of course. Back then every single developer was coding the equivalent of Nights directly in assembly.
 
ok firstly people still code to metal today. People inline assembly all the time, but only when you truly need to optimize. You act like most people can 100% beat the optimizations from an assembler and a compiler. I’ll give you a hint, they probably can’t, and definitely can’t code in such a way that is optimal to the hardware. The ones that are coding to the metal like you’re describing are the ones developing game engines. People making games don’t need to worry about that type of stuff anymore since it’s abstracted away with CoTS engines.

But yea let’s not glorify assembly. This is coming from someone that reads assembly (arm/mips/x86) on a daily basis.
Saying "people still code to metal today" in the most abstract sense is like saying people still wear knight armor and go jousting. Technically it still happens, often because of people specifically aiming to replicate the effect, but in we're far from the day when it was to be expected that entire games were assembly coded. Whether that's generally a good thing or not is up for debate, but it doesn't change the fact that something has been sacrificed when people jumped from assembly-compiled games to Unreal and Unity Engine.

For outsiders enthralled reading about exotic console architectures and the programming feats to get impressive results from them, yes the move away from assembly and handling most game logic "coded to the metal" sucks, but for actual programmers in the field today who have extensive assembly experience or were in the industry back in the 16-bit/32-bit/6th-gen etc. days, they probably do a little dance every morning in celebration.
Yeah, Yuji Naka's job sure did get easier when .... oh wait.

Yeah, the fact that he's even saying this stuff on Twitter seems to run contrary to this. He sounds like someone who's yearning for the old days again.
 
Last edited:
Saying "people still code to metal today" in the most abstract sense is like saying people still wear knight armor and go jousting. Technically it still happens, often because of people specifically aiming to replicate the effect, but in we're far from the day when it was to be expected that entire games were assembly coded. Whether that's generally a good thing or not is up for debate, but it doesn't change the fact that something has been sacrificed when people jumped from assembly-compiled games to Unreal and Unity Engine.


Yeah, Yuji Naka's job sure did get easier when .... oh wait.

Yeah, the fact that he's even saying this stuff on Twitter seems to run contrary to this. He sounds like someone who's yearning for the old days again.

TBF Yuji's on the more eccentric side as far as devs go, I'm sure guys like him and Yu Suzuki would savor showing off their programming skills among today's crop.

But they're also among the minority; even most of the old guard wouldn't want to mess with assembly these days. I generally miss the cool stuff with exotic architectures of the past, but it is what it is. FWIW, I get your point on the oversaturation of Unreal, Unity etc. which is why engines like Forzatech, Red Engine, and especially Decima are so appealing to me still; I genuinely think you couldn't get the results of a HFW out of UE4, even with a comparable budget.

Those three engines in particular, I can't wait to see what they can bring focusing on current-gen only efforts, knowing only a handful of games on the market will be actually using them (and virtually all of those games being 1P titles, outside of Red Engine titles tho only CDPR will be using that tech).
 

AREYOUOKAY?

Member
He may be in an X-Tremely angry mood but at least he's confirmed a lot of things that may have been pretty obvious already.
MJ in Sonic
Hydro City
Now Adventure for Saturn? Too bad it would have been too late for such a game to save the Saturn.

Bfj8SqT.png


You could see the low poly models used in Sky Chase Zone.
 
Last edited:
All the people saying stuff like "it's really too bad games aren't all written in assembly today" have no idea what they're talking about. A Hitachi SH-2 CPU is not like a modern x86 processor. x86 processors are so complicated now that Yuji Naka couldn't beat a compiler in 99.9% of cases if his life depended on it. It's a different and better world. Game developers have never had more power at their fingertips and generally speaking write far better code than they did in the 90s. It just makes me laugh because most old games are complete spaghetti hack jobs that have frame rate dependent timing and game logic that worked by accident as often as intent. They weren't even well engineered. But let's just pretend they were magicians and the world is falling apart. It's bullcrap.

Oh, and the collision detection in Sonic 1 was such a buggy hack job that Cerny basically had to go in and get it working. You can barely play Sonic for more than 30 minutes without randomly falling through the world. Real wizard.
 
Last edited:

RoboFu

One of the green rats
ok firstly people still code to metal today. People inline assembly all the time, but only when you truly need to optimize. You act like most people can 100% beat the optimizations from an assembler and a compiler. I’ll give you a hint, they probably can’t, and definitely can’t code in such a way that is optimal to the hardware. The ones that are coding to the metal like you’re describing are the ones developing game engines. People making games don’t need to worry about that type of stuff anymore since it’s abstracted away with CoTS engines.

But yea let’s not glorify assembly. This is coming from someone that reads assembly (arm/mips/x86) on a daily basis.
No they don’t … not beyond hardware drivers and even then it has to be a very specialized piece of hardware as most things are layered on top of generic usb drivers.

It’s definitely not used in game development anymore. There is no
upside but there is a thousand downsides to doing so. ( devs really like their apps to be compatible with the most computers and operating systems ) ms and Sony want their consoles to be backward compatible and be on multiple devices. Everything uses abstract layers these days on consoles and PCs.

Not to mention just the sheer amount of bytes there are in 1 gig of ram let alone 16. Then you have the sheer number of registers to deal with in modern cpus.



The majority time machine code is still used today is in direct hardware specific tasks such as small sensors or motors for something like assembly line equipment. Or any type of small embedded system like that. A toy that makes sounds, routers, switches .. etc
 
Last edited:
Yeah, even though they were exponentially less complicated, they worked real good.



Get real.

You seriously used the old "someone on the internet can engineer a crash in a Sega game, therefore all retro games are badly coded" argument.

Do you realize what a shit state modern gaming is in if you actually judged a game's code by the raw number of crashes that are possible? Or, better yet, by the amount of crashes a typical gameplayer has to endure?

How about you get real?
 
You seriously used the old "someone on the internet can engineer a crash in a Sega game, therefore all retro games are badly coded" argument.

Do you realize what a shit state modern gaming is in if you actually judged a game's code by the raw number of crashes that are possible? Or, better yet, by the amount of crashes a typical gameplayer has to endure?

How about you get real?

Engineer? It happened to at least tens of thousands of people because it was so easy to trigger. I never said all retro games are badly coded. I said most of them were, and they were. The source code for many of them are available. They're train wrecks.

Yeah old games were definitely less buggy than contemporary games.



Oh. Oh.

On average, games are FAR better engineered than they ever were in the past.
 
Last edited:
Engineer? It happened to at least tens of thousands of people because it was so easy to trigger.

If it was so easy to trigger, then:
A) Why am I only hearing of this bug now, after being infested with Sonic media for YEARS, and after playing Sonic 1 for years and hitting nearly every other bug a casual player can hit?
B) Why didn't Sega publicly address it in the time?
C) Why didn't it affect the sales of Sonic 2?
D) Why does that video look like it was recorded on an emulator, where - you know - inputs can be manipulated with TAS scripts to cause things to happen that are impossible for a normal player to accomplish? And considering how you went out of your way to find a guy actually doing the inputs for the Guile glitches in your next example, this question sticks out all the further!

BTW, since you went out of your way to credit Cermy for that work over Naka, good job dunking on him! I'm sure he's glad to hear it!






What are you gonna do now, search on YouTube for another video game bug, as if this is some sort of pissing contest? Do you realize how petty you're acting? If you really care so much about the code of modern games, shouldn't you, you know, WORK ON THE CODE, instead of trying to "win" an internet argument?

Or are you actually as much of a hack as you claim Yuji Naka to be?
 
If it was so easy to trigger, then:
A) Why am I only hearing of this bug now, after being infested with Sonic media for YEARS, and after playing Sonic 1 for years and hitting nearly every other bug a casual player can hit?
B) Why didn't Sega publicly address it in the time?
C) Why didn't it affect the sales of Sonic 2?
D) Why does that video look like it was recorded on an emulator, where - you know - inputs can be manipulated with TAS scripts to cause things to happen that are impossible for a normal player to accomplish? And considering how you went out of your way to find a guy actually doing the inputs for the Guile glitches in your next example, this question sticks out all the further!

BTW, since you went out of your way to credit Cermy for that work over Naka, good job dunking on him! I'm sure he's glad to hear it!






What are you gonna do now, search on YouTube for another video game bug, as if this is some sort of pissing contest? Do you realize how petty you're acting? If you really care so much about the code of modern games, shouldn't you, you know, WORK ON THE CODE, instead of trying to "win" an internet argument?

Or are you actually as much of a hack as you claim Yuji Naka to be?


https://www.mariowiki.com/List_of_Super_Mario_World_glitches

"I never encountered a bug, therefore no one else did." Really sage words there bro.

The SF2 bug happens on real hardware. But I guess you never personally encountered it so it doesn't exist, right?

You sound pretty angry. Maybe you need to take a break and sip on a latte or something.
 
Last edited:
Video game devs used to be such hacks that they made exceptions trigger loading a game's secret level so that they could pass the platform holder's certification test.



Sega's certification process at the time took "a few weeks" and required re-submission for any failures, including crashes after the game was left running for days at a time. So Burt started catching any generalized, crash-worthy errors the game might trigger and disguising them as Easter eggs the player had stumbled on—such as a "secret time warp" that bounced the player around in Mickey Mania. As Burt recalls, "most things that were to crash the game just brought up the secret time warp, so Sega wouldn't know it was actually a bug."

That's the level of CRAP engineering that was common in the 90s.
 
Last edited:
Top Bottom