The Free Version Of StarCraft Is NOT What It Seems...
Vložit
- čas přidán 10. 09. 2024
- Let's take a deep dive into the original 1998 release of StarCraft as well as the free 2017 version to see how similar they really are.
Become a member to get early access to videos - / @nathanbaggs
Want to build cool stuff from scratch? app.codecrafte...
Tools:
🐉 - Ghidra - github.com/Nat...
🐛 - x64dbg - github.com/x64...
💭 All views are my own 💭
Want early access to new videos and some behind the scenes content? Consider becoming a channel member czcams.com/channels/QvW_89l7f-hCMP1pzGm4xw.htmljoin
Other videos you might enjoy:
czcams.com/video/DvJLIWAGno4/video.html
czcams.com/video/ILY7tYdIS2Y/video.html
czcams.com/video/JyWeSVG8hVw/video.html
Not the best video title. I watch you because I like your content but if I saw this without knowing your channel I wouldn't click it.
Thanks for the input - CZcams titles are hard, I may swap several in and out depending on the performance. I'd be curious to know why you didn't like this specific title?
Its interesting, but I'm curious as a layman, what is the purpose? Are they trying to prevent reverse engineering? Are they trying to stop pirating? Or are they trying to prevent people from playing without having B.net?
I suspect they’re trying to stop people cheating
These reverse engineering videos on older games are fascinating.
Glad you're enjoying them (:
Also my favorite content on this channel!
We'd of had it gold if the source code disk for starcraft 1 was leaked instead of returned.
"Why is my VM talking to me!?"
Oh man. Years ago now, I started a windows 10 install, got interrupted, closed it and stuffed it into my backpack. I figured it'd go into sleep mode, so I sure was shocked about 10 minutes later when my backpack started yelling at me as I was walking down the street.
I get that it's probably good for accessibility, but an installer speaking unprompted sure is jarring.
Computers should only speak when spoken to
I have vivid memories of guessing the key as a kid. I was joking with a friend saying "don't worry, we'll just try all combinations". Starting with all zeroes and incrementing only the last digit by 1 each time. Turns out, this worked with the final digit being "3". What was more interesting, is that after discovering this, we found this trick (and variations of) worked on many different games.
A few people have shared stories like this, which is fascinating. Thanks!
I have a similar memory that I had all but forgotten. Went to stay with my grandparents and brought the CD with me to install there but didn't have the key. Was frustrated and upset so I just spammed letters and numbers and got it on a few tries... Thought it was a miracle at the time 😂
VM: What is my purpose?
Nathan: You run an old game in which I will only be looking for the rendering code.
VM: Oh my God.
I would feel some sort of mechanical sympathy for my VM, if VirtualBox didn't keep crashing (:
if VMs are butter bot does that make containers meseeks?
@@nathanbaggs Virtual Box is not a proper emulator, but a virtualization thingie. You need something like pcem.
As long as the butter is passed all is well.
THAT CD KEY THING EXPLAINS SO MUCH. I swore I once “guessed” a CD-Key as a kid.
It turns out I might just have gotten lucky with the last number?
Nice to know it is possible to just spam numbers and possibly have it work! Lolol
I was really hoping someone would comment saying they tried this all those years a go (looks like you're not the only one!) (:
Yeah the technique they're using is called a checksum. It's not meant for security, it's meant to be used as error detection when transmitting/receiving data. If the data changed but the checksum didn't, there's an error somewhere in the message.
This can be used for things like checking if the contents of a file have been tampered with by including a checksum of the file's contents in the file, assuming the user wasn't smart enough to fix the checksum while they were tampering with the data.
If the program knows a file isn't supposed to change no matter what, they can keep a hard-coded copy of the checksum and detect if you changed the file even if you fixed the file's internal checksum. Of course, a smart user can just find the code that checks this and bypass it or edit the program's copy of the checksum to match the hacked file too...
Worked the same with credit card numbers ;)
@@alexxx4434 Credit cards just follow the Luhn Algorithm with the added check that the first digit identifies which type of card it is.
111-1111-1112
the fun thing is that if you look closely, the "old graphics" on the remastered version actually don't look the same as the original, in part maybe because the new one was made to support zooming in and out, as well as widescreen vs. 4:3 ratios, so likely isn't considering the canvas it draws to as a fixed number of pixels
At first the classic graphics looked absolutely horrible when Blizzard released the remastered version with REALLY ugly upscaling. They improved it a bit since then, but it still doesn't look as good as SC BW 1.16.1 or before with a good ddraw.dll replacement.
the utter misery of everyone and their dog requiring a game launcher.... i was pretty loathe to hop on the steam bandwagon and that is actually providing some value to the end user. hell no dawg i'm not going to have 3 or 4 game launchers so you can "synergise your brand". just like i'm not subscribing to 5 streaming services to watch 1 show on each service.
Yes I agree it's the same with steaming services - everyone wants their slice of the pie
It's the enshittification. Everything must be a cable-TV subscription instead of a Box product.
agreed,tho as legally i cant get StarCraft any other way it is what it is,i also hate how they promote their other games into my face when i only litteraly care about StarCraft,someone told me StarCraft characters appear in heroes of the storm,but all i got was some random world of warcraft character so 1 minute after installing it i deleted it,so if i could play StarCraft without a launcher it would sure feel refreshing but i guess you gotta do what you gotta do
Man that starcraft opening sound, classic. Also mounting cd images, haven't done that for years
It was a simpler time
@@nathanbaggs Not sure sure, today everything is Plug n' Play. Back in the day I recall spending hours slightly adjusting memory allocation in dos to get games to run in a stable manner, after all we only had 16 mb (and we had a lot for that time). I ended up memorizing what settings I needed for every game I wanted to play. Today you just hit the game icon on your phone and if it doesn't work you uninstall and try the next one.
Daemon tools, or Alcohol 120% , remember those tools? ❤
Everything is open source if you can read asm.
I really like these deep technical dives on code like this.
Thanks! They take a long time to make but I've been pretty overwhelmed by the positive response
thank god you censored the key, now i have no idea what it might've been
Got to be careful with information like that
These videos are still really interesting even when you only understand 10% of the content
Very interesting comparison. I also hate when launchers require you to run the game from within them instead of direct from the exe file - which is why I quite like GOG - it allows that.
I get why they do it but I don’t want a different launcher for every game I play
@@nathanbaggsI just make a shortcut of the gog .exes and launch them from steam.
@@maryrose2676I think steam is a terrible launcher for a couple reasons. But then again it doesn't have much competition.
Personally I like playnite over every launcher out. I have all my GOG, console, and steam games on it.
@@bluetooth2677 I play with a lot of mods, Steam's native mod support is what drew me in. But I agree. For games without mod support, I don't use steam. Personally, the best game launcher I have is my games folder. Playnite seems interesting. Looking at it now. Thanks for mentioning it.
@@bluetooth2677why do you think it is terrible? I'm sincerely curious
2:39 I like how you censored the actual key part of the CD-key, it's hilarious :P
I'd guess you can't legally protect a single digit key, but you never know!
Nice view!
I do have to point out that you're comparing version 1.04 (I think, this was the first BroodWar version) to version 1.16 or something like that (too lazy to check the exact version)
So what they provided might actually by the original one with the latest patch before the remaster. I do remember they had to patch it at one point for the colors to work ok on Windows 7 and later for example. And they also fixed A LOT of exploits that were still working in version 1.04. And multiplayer improvements. So, can't say I'm that surprised they're very different. They probably have something anti-cheating too.
Thanks for the insight, I'll admit to not going too deep on version comparison. It was whatever version i could find for both 1998 and 2017
@@nathanbaggs Yeah, it's still interesting, nevertheless.
The updated version he got from BattleNet would be the same version number as the latest Remastered patch, so 1.23.10 or whatever, because the modern free version is just Remastered with the new graphics and some other features disabled. This can be pretty obvious from the fact that the free version has a massively bloated file size compared to older versions, because it still includes all the Remastered files.
I believe that a lot of the differences between it and the last legacy version, 1.16.1 from 2009, actually go back to the 1.17 and 1.18 patches that were released in 2017 during the run-up to Remastered’s release. Most mods ever made for the game need 1.16.1 or an earlier version, even many newer ones made after the new patches, because the new patches broke a bunch of things and were more difficult to mod than the earlier versions.
Storm was not an engine but a sort of abstraction mechanism for OS-specific stuff: reading files (including files from inside compressed MPQs), memory management, dispatching window messages, manipulating textual strings, etc. You can find various lists on the Internet that match function ordinals to their 'real' names. It was also used by other Blizzard games like Diablo and WarCraft, albeit with some modifications between games (Storm.dll from one game would not be a drop-in replacement for the other game).
French player here. They completely changed the French translation with the Remaster. Now, the translation is more literal and less evocative, and sometimes completely nonsensical. It also messed up keyboard shortcuts.
That’s a shame, did you go back to the original?
@@nathanbaggs No, I don't know how to do it, if it's even possible.
Always love old implementations of license keys!
I get the feeling it's something they felt they needed to include but didn't put a lot of effort into
What if they explicitly made low effort in that place in a move against capitalization?
At the time when sc came out most developers knew that their games would be cracked and warezed before it hit the shelves anyway, so most implementations had the same spirit as how locks only keep honest thieves out.
The anti-debugger and obfuscation methods are truly sad given the trend in the industry to screw over consumers. Blizzard is actually among the worst when it comes to honoring purchases, having yanked at least two games so far.
They have to do something to prevent cheaters though right?
@@nathanbaggs true but then what happens when they become the cheaters? :)
i remember putting a random number for the serial in 1999 and it worked, finally now i know why
I was really hoping someone would comment saying they tried this all those years a go (:
@@nathanbaggs pretty sure it worked just to enter the game (single-player), to acces the battle-net we used BNGatewayEditor to edit the server list and add our private servers though
@@nathanbaggs I also remember putting 3's or 1's and it worked perfectly every time :)
That CD-key trick sure would have blown my 12yo mind.
Imagine the 'playground cred' this would have gotten me! Infinite Starcraft keys!
A few people have shared stories about guessing a valid key, at least now we know why (:
0:14 those transitions are giving me chills
Ghidra naming all the functions "FUN" does indeed make it more enjoyable.
1:50 Just go 123456789123 or something. Starcraft CD-Keys werent exactly bulletproof.
Maybe i am mistaken, but I swear there was a different free version that just ran straight away without all the online nonsense?🤔
You can still find unofficial downloads for the last “old” version, 1.16.1 from 2009, which still works fine but is missing both any new features and new issues that were introduced with the newer patches and Remastered from 2017 onward. The current free version is literally just Remastered with the paid features disabled.
I didn't understand much but I like the video
Back in the day, I always used 2222-22222-2223 or 3333-33333-3332 cd-key (can't remember which one worked) - but it didn't allow BNET access.
if I remember correctly from the lan parties as a kid, we always used 1 followed by just 0 to get it working on all pcs
I think diablo also uses storm
Ah interesting, thanks!
@@nathanbaggsDiablo, D2, StarCraft, Warcraft 2 and 3 all use storm.dll. its primary use is reading the MPQ files used to store game data for these games, though the DLL also contains functions relating to networking, memory management, and such.
@@Bobbias WoW also used Storm until Wrath of the Lich King when they changed the rendering engine to allow for higher quality rendering on in-game cutscenes when you don't have control of the camera.
@@sintanan469 ahh, I somehow completely blanked on that one.
@@Bobbias It's actually pretty funny in the WoW case. The terrain generation is the War3 map render just expanded on with larger maps. Terrain features and pathing maps are added to original 2004 vanilla WoW just like map makers did for War3 and TFT custom maps. In theory if War3 could handle WoW map sizes you could just port the terrain over 1-to-1 because the maps are encoded the same way War3 encodes maps, too.
Turns out when you give fans the keys to the kingdom with reverse engineering Storm.dll and .mpq files for six years, people knew how to edit WoW day 1.
glDrawElementsBaseVertex was introduced in OpenGL 3.2 released in 2009, so definitely an updated drawing pipeline.
Would be very interested to see the API trace of the original running in OpenGL mode
It didn’t occur to me till after filming that there’s probably an OpenGL renderer for the original as it was also release on mac
Starcraft Remastered has "dynamic lighting" so there is a reason probably maybe that it has renderer thing idk.
hmmm
@@KingLich451 Is there something a miss?
Would be interesting to learn how their anti-debugging techniques work, exactly.
Man, when are you going to create a course to teach us mortals? Cheers from Brazil!
If i could go back to the day i first played starcraft i would. Hardly any games match it in my childhood
Same dude and the cinematics were otherworldly, So many nights spent in dark rooms finishing maps to the end.
The conclusion seems rather vague for the basic viewer.
So the old one is using DirectX5 and the new one DirectX9/OpenGL and is completely remade into the newer rendering engines? Which also is difficult since the game needs to be exactly the same as the old one in terms of gameplay.
The gameplay between the remaster and the original is close, but there's some minor differences under the hood that result in some different functions. Easiest comparison is calling them rounding errors; for 99.9% of players there is no difference. For people that mess around with the functionality of the game in some hacked custom maps, there are a couple things that do not work as they should in the remaster.
I bet the engine was separated in two parts, one that dealt with the operating system and the other that just produced frame buffers using the CPU.
If he could find a way to skip the anti-debugger protection , he would land on the reminiscent code of the Storm engine.
Remember that the game is entirely 2D and basically made without any acceleration at all.
Besides a BitBlt copying rects of pixels from one buffer to another.
@@sintanan469 I think the rounding errors are because they changed compilers and didn't pay attention to the change in behavior of the floating point math library.
That's very typical.
I still have the original and add on on cd
This is absolutely fascinating mate, thank you for sharing. I grew up playing starcraft, online one of my favorite maps was probavly "PTWTC" and tarpit D lol, also Evolves and cat and mouse
I thought this would be about how the in game experience is different. As in if the campaign or some graphics or something is different.
Having the original Star Craft 1 code would be nice. Shame that guy some years ago returned it to Blizzard. I'd've loved to see that
Hi, do you think you could RE a game called Space Empires IV, there are a couple of quirks I would love to fix/change on a modern system, happy to elaborate further if interested. I think the game was written in Delphi.
Also, what limits are there to Ghidra, can you do a tutorial video at some point though no rush? Great video otherwise, loved SC1.
Me who have never seen this channel before and got this video show up in "suggested" section, thinking this video would be about changes made about some campaign missions or units stats or something more in terms of gameplay: "INTERESTING".
Also me who have watched whole video while I have never had any experience with any coding: "I like your funny words magic man".
I think the changes make sense. DirectDraw is pretty much obsolete at this point, plus it had compatibility problems with modern Windows version, especially on Vista and 7. So redoing the rendering in something more modern, that also leverages the power of modern GPUs makes sense. Plus it enables some of the new graphical effects in the rematster. I guess it was already developed for the remaster and backported, or the "new" version is just remaster without the new graphics. After all, you can switch between them on the fly. I don't know why D3D9 instead of 10 or 11, maybe because it has less overhead? OGL maybe for the OSX Version, but on the other hand OpenGL support is legendary broken on Mac devices for years.
And because you can also play in the online ladder, those obfuscation techniques also makes sense. Not everbody looks into the executables to learn about it like you, but to find weaknesses to cheat.
You can just dump the process when its running and load that into IDA/Ghidra, their packer is not a big obstacle
Funnily enough I did try this but ghidra just spun for hours trying to process it, presumably I did something wrong
Do you think you can RE diablo? This may be interesting!
It's on my list (:
@@nathanbaggs Nice! Btw this video was great!
@@nathanbaggs You're going to run into the Storm.dll and MPQ files again with Diablo. Diablo 1 is when Blizzard created their archive system used for most their games. As far as my understanding of it, it was with Overwatch when they finally changed from the original MPQ archive file to their newer version of MPQ and stopped using Storm.dll to translate between the MPQ archive and the game's executable.
"Why is my virtual machine talking to me?"
Absolutely great vids. Love this combination of learning, nostalgia and a hint of sarcasm 😂
Really good analysis! Do you have a route on how to start the reverse engineering part in video games?
You need a goal with RE so I normally start with trying to answer a question “how does the ai work?”, “how does the rendering work?”, etc. As a practical starting point can’t go wrong by starting with strings
@@nathanbaggs thanks!
Okay, now I'm curious if the free version is the same version that was included with the Starcraft 2 deluxe box. It included a copy of Starcraft on a USB thumb drive (shaped like Raynor's dog tag)
Would be interesting to see
Well yes. I noticed that right away since the in-game fonts didn't render how they rendered in the 1.16.x version of the game
An assembly tutorial for Apple Silicon would be really interesting, in your unique style
Having starcraft on my list of games to play in the future , since I kinda have no clue what or where to download a free full version with full content I thought you were going to show some stuff removed from free version well good to know thats not the case.
If you wanted to see if they were different, couldn't you just hash both of them and compare?
I'm more interested in how they are different
The original Starcraft had issues with Windows 7, the colors were all glitched. It took them a while but eventually they released a patch that fixed it. Maybe that's the point when they changed the renderer. It was long before it became free. I remember the original worked on a non-3D accelerated graphics card, many games from that era had so ugly graphics in software rendered mode, Starcraft somehow managed to get much more out of it. And it came out in 1997 so the guy uploaded it to the archive messed it up. A 32 bit game in 1993? The developers must had a time machine to get a copy of Windows 95.
This is likely correct and relates to Windows 7 and DirectDraw.
If I remember correctly, I believe Windows 7 didn't handle DirectDraw by default without users using compatibility mode or altering settings in directdiag
Indeed I'd love a comparison between the free one and the last patch of the original.
I wish I was able to do all the stuff you did in the beginning to install the original!
This is cool, thanks!
But if you all what to know why "Blizzard" had to remaster SCBW to SC:R ASAP, it was becoming full of hackers and bots, killing games before you could even make them! it was not fun..
PS patch 1.17.0 pre-release, was still SC:BW old code, until 1.80.0 patch was release, "official StarCraft Remaster."
And I don't know how you figure this is not "OG SC" because if this was true maps that people made won't not work at all.
Remaster also allowed newer Mac PCs and newer Windows OS PC to work.
It was quite interesting to watch about it!
Thanks for the video!
I think the free version of Starcraft Brood War got a downgrade in graphics. It looks so blurry compared right now.
They added 16:9 proportion in the remake.
Storm gate now makes more sense for the new game made by OG starcraft2 developers
hello, id like to starting learning this as a hobby. im an adult no job. how do i start and where? ofc C? from there where? how can i understand what you are saying? im a bw fanatic when i was a kid
So.. did archiver include viruses as used vm or not?
Wow, how did you not know all 3's was a valid key? That's been common knowledge since forever.
But I wanted to know why all 3’s was valid
4:38 - the most likely answer is yes.
Not sure if anyone else mentioned ot. But you kinda look like the original Jim Raynor portrait in game.
за 12 минут узнал больше, чем за 4 года в университете.
If google translate worked for me then I’m glad you enjoyed it!
You said the original game used DirectX, but iirc StarCraft was also released on Mac, so that means they must have used a different API for that version. Are there traces of that in the original version?
StarCraft.
@@woldemunster9244 I blame my spell checker
In the video, he also looks at OpenGL for the new version. Probably used OpenGL back then, too.
I would expect the mac version to use OpenGL, although I'll admit to not looking into it. Given the time frame I would expect it to be old school fixed function pipeline OpenGL - so still different to this new version
It wasn’t ”also released” on Mac, the same release, the same CDs and all, worked on both Mac and Windows.
So.... 12 numbers and the last "proof number" derives from the previous 12? That sounds quite like ISBN/EANs
I find this video very interesting as a video game developer.
P.S. I am developing a Civ like video game.
I'm not sure I totally understood the part with the CD-key, it can't be that simplistic that it just checks if the last digit is equal to some value and then let you in. Why on earth would they do something like that ? I'm confused
I'm as surprised as you are, but as far as I can tell that's what the code does
Yes. That was common back in the day. See how credit card numbers have same concept.
@@0xeb- It's not the same concept at all. A credit card number will have a check digit that depends on the other numbers. So you can't just guess a credit card number by changing the last digit.
This, as far as I understand, simply checks if the last digit is something, and doesn't care at all about the other numbers.
@filipstamate1564 - it calculates the checksum from the first 14 digits and compares that to the 15th, which means there's only 10 possible outputs
Which is exactly the same as a credit card, like 0xeb- said.
The video is fascinating, however, its more like a bug bounty documentation than a comparison of the old and the new releases, but, still its a good video anyway.
I love watching reverse engineering videos, even though I only have an amateur ability in C/C++ (I’m a PLC programmer; similar, but simplified, sort of). But I feel like the more I watch of these, the more I can learn by osmosis… that’s the plan anyways 😭
The game has been patched continuously for 26 years. I don't get what comparing the 1998 release to the current one is supposed to prove. What's not what it seems?
Clickbait title aside, the video was interesting.
I never thought that "anti-debugging" is a thing 😮
eyyyy! I spent a large portion of my life playing UMS maps lol
I'd love to see how a battle vs the anti-debug software might take place!
Whilst it would be fun to see how far I could push it I'm keen to not give away anything that would let people cheat in still active games
@@nathanbaggs An old game, or other software with similar self-preservation techniques would still be cool!
Brood war is still the best competitive rts ever and wont be topped any time soon. They accidentally made a near perfect game.
i played this when i was kid
the free version yes, i believe i still have the disc
Starcraft is a balls to the walls test of wits. Not for the feint of heart. It was lucky hit accident made by an unlikely group of nerds who loved RTS.
That era is long gone and will never be back. Now it only resides as a memory and for the real nerds. Maven's Haven and Katan's Lair were kickass on kali.
0:05 It’s a cultural phenomenon. Phenomena is plural. “It’s a cultural phenomena.” makes as much sense as “Look at that trees.”. Just proving we’re paying attention!
Running a VM in Turtle mode is not a good idea, that Windows 10 install must have taken forever
🐢
Back in the day Blizzard sued people to hell for reverse engineering Starcraft
Impressive - You know your stuff.
I hope Epic will hire you, so they finally fix anticheat for Linux and I can play fortnite and such.
Thanks! 🙂
OMG I freakin love SC!!!! And I love your vids!! What a perfect match.
These nostalgic games seem to be hitting the mark at the moment
Ребята програмисты, ктото может обьяснить чего он доббился своими изысканиями и что он в итоге сделал. Я вроде внимательно слушал , но результата так и не увидил.
Он взял очевидно различающиеся версии игры и убедился, что они таки различаются.
в ремастере стоит защита от дебаггера поэтому он не смог его нормально изучить, поэтому видео достаточно бессмысленное. А так, все как сказал комментатор выше.
@@sdjhgfkshfswdfhskljh3360 спасибо. я так и понял. но не понял для чего , думал может вторая часть будет где он к 1й подкинет второй принцип ренедера или еще чего нибудь.
@@fenathesnake очень бессмысленное. а чего он изначально хотел, он ведь тоже не обозначил?
@@bishopcupoison4550 вначале говорит, что хочет посмотреть насколько отличается рендер (отрисовка графики).
Итог: в оригинале используется DirectX 5, в ремастере DirectX 9/OpenGL (что достаточно очевидно и без реверса)
В принципе видео для людей увлекающихся реверс-инжинирингом, интересно посмотреть как чел разбирает игры и какой инструментарий использует, для остальных полезной инфы тут нет.
Comment for the algo... Also i need to check if you've ever done one of there for the old black and white 1 or 2, i still wonder to this day how the f***ing ball mouse controlled 3D hand gestures where so good. I need to see that code.
Well they up scaled it, which they said they’d do, because the original resolution is unbearable in 2024.
Please do sc2, my favourite game of all time
It always looks so easy. :D
It's still frustrating that remastered can barely run online without being a giant lag fest in 2024
the video is interesting, the clickbait is a shame
Debugger wouldn't run coz you have not enough minerals 😂
LOL, you can just fill all the CD key fields with the number 3 (i.e. 3333 33333 3333) and it accepts it without question. The whole rummaging through the source code and trying out different numbers was quite unnecessary ;)
I had fun, so not a wasted effort. And now we know why all threes works (:
@@nathanbaggs Indeed. BTW, I think one other Blizz game acepted fours as its key, but I'm not sure which one.
Holy crap, I haven't thought of 'construct additional pylons' since 1998. Totally forgot about that.
Bro, I have a CD you could have just borrowed for the video
Where’s the fun in that (:
this guy is a hack ...kidding . he is really good.. learned a lot from that video of widows to linux coversion . Btw whats your opinion on rust ? Is c++ dead ?
I'll admit to not having played with rust yet, so I don't really have an opinion. Languages arn't "dead" till people stop using them and there's a lot of C++ out there
@@nathanbaggs you are a great person . thank you for your videos
C++ is nowhere near dead and probably won't be well and truly dead for like 50+ years at a minimum.
COBOL is still alive, despite being much older than C++ and having far fewer use cases. COBOL is still important because the machines that run it are massive expensive mainframes and while the code is old, it still runs and nobody wants to have to rewrite it.
In C++'s case things will be different. The language has orders of magnitude more programmers, it's still being actively developed, and there are more use cases than COBOL. While Rust can replace it for some use cases, it is not a silver bullet. The borrow checker errs on the side of caution, making it much harder to do some things in rust, and making certain code that is perfectly safe an error because the borrow checker can't prove that it is safe.
In addition, rust relies on LLVM, which does not support every platform that C++ can be compiled on. This further limits Rust.
Rust is also not the only alternative to C++ for systems programming, so even if C++ was dead, Rust can't possibly claim to be the one that killed it. There's Zig, Odin, Zephyr, C3, Carbon, D, Herb Sutter's cppfront (or whatever it's being called now), and many others out there that you could conceivably choose instead of C++, depending on what your goals are.
Big thumbs up for reverse-engineering. Sexiest part.
Why not just put it the simplest way. Just return 1 regardless what it does.
It’s simply said… newer games now and days are blah and boring… older games are more playable and fun and had an amazing story. that means games like Starcraft, Zelda oot, halo, Mario 64 are the goats…
Don't get a copy strike. You make some of the informative and entertaining stuff on this forsaken platform. Keep it up.... for posterity.
I'm pretty careful not to give away anything that would have any impact on existing games or developers. The game is free after all