A ghost in spacetime, a bug that could cross real time (Happy Mid-Autumn Festival!!!)
Do you believe in the existence of ghosts?
A ghost capable of traversing time, space, and even the digital world of semiconductors.
It can silently destroy code that was originally working correctly.
Even if no one has touched this code from beginning to end.
There have been no commits in the code repository for almost a year.
Even the bytecode hash values are completely identical.
But it's broken.
Because the development team added a physics engine in a completely unrelated new version.
this...
It's practically a ghost story from the digital world.
However, any phenomenon that science cannot explain is probably just a matter of the current level of understanding.
Sometimes, the truth may not meet everyone's expectations. Perhaps... the truth is actually very simple, and also very foolish.
"It's... it's open!"
Several people gathered around the computer, marveling at the door that had been successfully opened.
"So that's how it is..."
Lin Lixin sat down in front of him, his expression unusual.
As a modern person, he already had a general idea in his mind the moment he started coding.
There's an unspoken rule in the gaming industry.
If we were to name the two things most likely to lead to mistakes in a game...
That would be gates and floating-point numbers.
During the Qake 2 era, this door could be opened normally.
Even if there are NPCs standing behind the door.
When the door opens, the collision box precisely presses against the NPC's feet, creating a very slight offset that allows the door to pass through normally. But without modifying anything in the source code, why does the door suddenly become impossible to open?
Even after reverting the hardware to NX instead of NF, it still won't open?
The answer is actually very simple.
Source code and machine code are completely different concepts.
For all engineers at Amenva, the primary programming languages used in the development process are usually only two.
One is the N Language, which is completely bootstrapping and has been a solid foundation for Amenva from the beginning.
It's a thoroughly high-level language, armed with a wealth of easy-to-use, modern syntax, making it a super language designed specifically for games.
The other is NvaScript, a just-in-time (JIT) compiled language designed for the web world.
The problem lies with the N Language itself.
Besides the source code, what else has happened since Quake 2 was released?
The compiler for the N Language has been updated.
To adapt to increasingly modern hardware and to more and newer syntactic sugar and advanced syntax, the N Language releases an update almost every so often.
A computer (whether it's a game console, PC, or handheld) cannot directly run a high-level language like N Language.
It must be compiled into machine code, into a version that the computer can understand.
The compiler itself performs a preliminary optimization of the code during the compilation process.
Eliminate unnecessary loops, replace unnecessary variables with constants, and replace inefficient code with more efficient code...
In other words, what is ultimately run by the computer is not the same thing as what the programmer wrote.
The source code for Quake 2 has indeed never been touched.
But the compiler has been updated.
This, in turn, triggered a problem that was extremely insignificant and was even completely ignored.
Changes in floating-point precision.
Simply put, the numbers are now more accurate than before.
Computers, in pursuit of performance or to perform necessary mathematical calculations, often exhibit surprisingly erratic behavior in number processing. A prime example is the Far Lands in Minecraft, which is a classic case of floating-point error.
Because the entire world coordinate system uses floating-point numbers, in Java, when these numbers are extremely large, even minute errors can accumulate and be amplified.
This ultimately led to various bizarre distortions and shifts.
The same principle applies here.
The number of digits after the decimal point has changed.
So the door couldn't be opened, and the case was solved.
When everyone finally caught this "time-traveling ghost," they were so angry they laughed.
that's all?
Is that the truth?
Among the crowd, Kevin Mitnick, the former number one hacker on Earth and now the chief security advisor of Amenva, who had been temporarily called in to work overtime, had a black line appear on his forehead.
He had been looking forward to a tense and exciting hacker battle.
They initially thought an even more terrifying reclusive master than Lin Lixin had infiltrated the Amenva server and silently corrupted the source code. "Uh... okay, anyway, let's record this experience in the employee handbook, otherwise we don't know how many more times we'll fall into the floating-point pitfalls in the future."
Even Lin Lixin was speechless at this moment.
It was at least a rather fantastical EB journey.
As physics engines become more advanced and 3D modeling becomes more sophisticated, we will inevitably have to deal with these issues frequently.
It's always good to learn about potential pitfalls beforehand.
"Hey? Speaking of floating-point errors, we also discovered a problem during our previous testing."
Carmack slapped his forehead and quickly went to the workstation.
"We've implemented full rigid body physics and gravity simulation, so players can now pick up some items in the scene, like these buckets or these planks..."
As he spoke, he picked up the bottles and jars from the map and threw them away.
Although the overall smoothness of the physics system needs improvement, and its accuracy and level of detail are not yet perfect.
But compared to the past, it's simply astonishing.
An interactive physical world—that's truly amazing. "Then I discovered something fun. Look, I put the board here first... then I jump on it, lift the board again, and get a good viewpoint..."
Carmack positioned his character on the wooden plank, pressed the interaction button, and slightly adjusted the camera.
Then...
He frantically pressed the jump button, and somehow managed to step on his right foot with his left, sending him soaring into the sky.
The truth of the entire scene was immediately revealed.
Apart from the small house in the middle, the rest of the place is a completely blank space with nothing in it.
Carmack, on the other hand, seemed to be having a lot of fun.
Christopher, the project manager standing nearby, was clearly embarrassed.
To say so much nonsense in front of Lin Lixin was incredibly embarrassing.
"It's not over yet. Watch closely, I'll stack the boards and buckets a little bit around here, I'll try... Last time I squeezed right outside the map..."
Carmack, on the other hand, was carefree and extremely jubilant.
Seeing that Carmack showed no signs of stopping, and knowing that continuing might lead to unforeseen problems, Christopher quickly spoke up, saying, "This is still an EM in the testing phase. Our main goal these days is to improve accuracy. These issues will definitely be resolved later, and B will be fixed soon."
"Repair? You mean this board flew into the air or something? Why do we need to repair it?"
Lin Lixin turned his head to look at him, puzzled.
"Huh? Isn't B going to be repaired?"
This rhetorical question left Christopher speechless.
If we don't fix it, won't it become a mountain of shit?
If we release it then, the players will be cursing us out, okay?
"Of course, malignant b should be fixed, but this... I think it doesn't really matter."
Lin Lixin shrugged, glancing at Carmack, who was having a great time.
"Don't mistake players' amusing actions for cheating. If everyone finds it interesting, then encourage them to goof around."
Some designers aren't very skilled technically, and their coding is terrible.
A lot of time was spent polishing the game to the point where it barely passed the mark. Then, players discovered many interesting patterns that he hadn't noticed before, quickly found a way to break the deadlock, and overcame the originally difficult challenge.
Then he became anxious.
I've put so much effort into this design, so you all must play it with the same dedication. Skipping class is not allowed.
To prevent players from having too much fun and wasting his artistic talent, he quickly released a hotfix to fix the shortcut.
The idea was that this would encourage players to experience his "ingenious designs."
But to everyone's surprise, the players quickly found a new strategy.
So he patched it up again, and the players conquered it once more.
Better mods emerged from the community, and modifiers became a must-have tool for everyone.
Even in the end, he would still feel that he hadn't properly sealed all the gaps, allowing those damned bugs to squeeze through.
But he never seemed to realize one thing.
Could it be that... the things he's so proud of aren't actually fun?
"If you have enough confidence in the content, you don't need to worry about players skipping class, because they will definitely come back." "Even if they do manage to skip class using the physics engine's features, that's their own prerogative."
"Never teach players how to play the game."
This can be considered Lin Lixin's heartfelt words.
Back when "Pixel War" was released, it was because he was too eager for quick success, hoping to quickly expand the game's appeal by introducing a strategy-like gameplay style, which ultimately led to a bad outcome.
It's only because players are willing to support Amenva that they're willing to support it; otherwise, they might have been subjected to a lot of criticism.
This incident is considered a rare dark chapter in Amenva's history.
As it turns out, the designer's greatest original sin is arrogance.
"We should conduct a closed beta test and have some players try it out. If they find it doesn't negatively impact the experience and is actually quite fun, then it's not a 'b', but rather... a 'feature'."
You agree, right, BJMP?
This includes the entire community built around the Source Engine, based on games like Half-Life -Half-Life, Portal, and M.
Or perhaps it will be a truly free and super sandbox world like Minecraft in the future.
They all retain a large number of b. Among these, it must be admitted that many may indeed be due to technical issues that have not been fixed in time.
However, a large portion of these features were indeed intentionally retained for the sake of the gaming experience.
Just like in Minecraft, if TNT duplication is fixed, a large number of redstone generators will become unusable, and many generator players will give up updating and become relics of the past.
"M" will also lose its unrestrained and exhilarating feeling.