I was wandering is there a way to get your hand on the source code of games making the trends two decades ago. I`m thinking about games like Starcraft or Unreal Tournament original. It is said games become public domain if 25 years have passed from the moment they have been produced. But what does that mean? does it mean that you no longer need to purchase the game if you want to play it or does it mean that the source of the game is available for free to anyone interested?
two decades old top games source
Calin said:
It is said games become public domain if 25 years have passed from the moment they have been produced.
I'm not sure where you've seen that, but it's not accurate.
You would need to search to find if the source of the games has been published, and under what license terms. iD software are well known for open sourcing many of their older games, but this certainly isn't all that common across the industry.
Try looking through these lists:
https://en.m.wikipedia.org/wiki/List_of_commercial_video_games_with_later_released_source_code
https://en.m.wikipedia.org/wiki/List_of_open-source_video_games
- Jason Astle-Adams
Source code of the original simcity game has been published, except for the plane crash in the sky scraper.
Code of RCT2 has been reverse engineered in OpenRCT2, similarly Dune II has been reverse engineered in OpenDune. Not truly original source, but close.
Code of RCT2 has been reverse engineered in OpenRCT2, similarly Dune II has been reverse engineered in OpenDune
when you say `reverse engineered` you`re talking about decompressing/extracting art assets, animations of 3d models and anything that can be read from the original game and rewire them back together in a game. You can`t reverse engineer the actual executable.
My project`s facebook page is “DreamLand Page”
Calin said:
when you say `reverse engineered` you`re talking about decompressing/extracting art assets, animations of 3d models
What 3D models? Dune II and RCT were published before anyone had even invented a GPU. The sprite data was decoded earlier.
Calin said:
You can`t reverse engineer the actual executable.
I don't know why you think that. In fact, decoding the machine code back to more source-like program text is exactly what happened.
It's a lot of work, but it's not impossible, far from it.
CPU instructions could be reverted back to source code with some trying. Many languages offer something like that, is it C++ or C# and you could somehow guess what the code looked like. It is however easier in C# IL than C++ but yeah.
If you want the source code of old games, you should search for it on GitHub as it has become one of the standard solutions for public open source code
About 15 years ago I have seen a Russian Cracked version of Starcraft. The people who did this had so much stuff removed from the original bundle that, when installed the hacked version had only 20 MB. It was a fully functional multiplayer Starcraft. It had all the in-game graphics and sounds, the only thing that was missing were the small character animations in the GUI. I`m against cracked software, however as an adept of minimalism the `cleanup` they did got me impressed. It was a job done with accuracy, as a rule software is very demanding, you get errors out of nowhere, to get a job like this done you need to cauterize all the loose ends. What I`m describing here is not exactly reverse engineering but still, it is somehow related.
My project`s facebook page is “DreamLand Page”
Shaarigan said:
CPU instructions could be reverted back to source code with some trying. Many languages offer something like that, is it C++ or C# and you could somehow guess what the code looked like. It is however easier in C# IL than C++ but yeah
These games existed before Java 1.1, so C# wasn't even invented, and C++ at a 8086 in ≤ 1990? Probably not ?
Dune II looked like generated code to me (I started from a more readable version, a 8086 'decompiler' generated a bit of C code for each decoded CPU instruction so you could compile and run it), probably originally written in C.
RCT must have been more difficult, as the program was written in assembly language. Chris Sawyer basically used the same code for Transport Tycoon, Transport Tycoon Deluxe, Rollercoaster I and II, and Locomotion, extending it every time.
Not exactly what you're asking for, but some Muds from back in the day have their sources out there, e.g. Circle Mud from 1993: https://github.com/Yuffster/CircleMUD
They weren't famous like Starcraft, but they were the first MMOs, so a lot of people played those. It's just that there wasn't a lot of people around as a whole.
Circle Mud still compiles with a few weird flags and gives a glimpse into how people used to code back then.