Unreal's highlevel of packaing and managing assets for years meant modding was locked off. Unity games often shipped on PC with loose files and hacking C# broke after each update but at least was an option.
Over time the modding community has leverage this high level by building unreal native tools. The net result has been the same sort of cross tool use we saw with Gamebryo. Back with Gamebryo the Civilization modding shared tools with sid meier's railroads and even early skyrim and fallout modding.
Now the Unreal tools mean mods can be done in blueprint and should not break after every update like C# based mods. Likewise the common pak format used by unreal games (common because consoles prefer the pak for faster loading), means mods can replace files without overwriting files. Aka, mod conflicts become a reference overwrite issue and not a file overwrite issue.
As a developer of an unreal based game its pretty nice to know modding is no longer locked out. You still need/should provide the community with a modkit, but even those the community can generate on their own if they care.
One of the reasons: if you want people to buy your next thing. (I was fairly highly ranked online in one of the Ace Combat fighter pilot franchise games, and had built a stable of planes in another one. But when they shut down the servers for the previous installment, after introducing a new one, I found I couldn't get interested in investing in the new one, if it was only going to get ripped out from under me like the previous.)
this is fair but I would also really love to see the problem solved at the regulatory level for companies that go out of business, too
all abandonware -- including server code -- should enter the public domain when certain criteria are met
hell, the whole practice of rights holders choosing to stop distributing media that could be distributed by fans at very low cost -- like the Disney vault or the recent fiasco with Coyote vs ACME -- is an affront to art preservation and to art and to creatives and society in general and should be stopped.
free the media! if you won't sell it, you should have to let others distribute it for you
quibble about details but in general stuff like Ubisoft deleting The Crew should be illegal
> all abandonware -- including server code -- should enter the public domain when certain criteria are met
The problem is that 99% of the time it contains licensed code from an entity that is not going out of business, and who's going to pay the person who has to separate in-house and licensed?
Server code often includes proprietary third party software that cannot be legally open sourced, or depends on licences. Do you think game fans will pay Oracle prices?
I completely disagree that rights holders should be required to distribute media or lose the rights.
It essentially means if you create something, it’s not yours unless you are actively selling it?
As for online games, I think the ephemeral nature and limited lifespan of the game should be forced to be very clearly advertised at point of sale, not hidden in an EULA.
The fact you can’t play them forever isn’t a problem, but consumers need to be aware. That said I don’t know how much difference it would make. I think most consumers would not care. I know the online games I play will go away one day and I still pay for and play them. Why? Because I don’t care. I was never going to play them forever even if they were around forever, so I don’t care if they go away. The only difference I’d really like to see is a minimum guaranteed service period and a full refund if that isn’t achieved.
Even if you don't if your game is popular enough they will reverse engineer the server-client communication protocol.
The only place where I see that not happening is the future where game are 100% streamed and your computers is just a screen + controller (stadia 2.0). Then they'll have to settle for knock off clones of your game.
I've heard of this, but always wondering: how can these reverse-engineering based private servers be accurate?
Like, reverse engineering the communication protocol is easy, or at least pretty feasible. But how do you acquire server-side data? Like raw probability tables for certain event? Not to mention the game logic itself. Some of them obviously can be fetched or guessed by using the live server, but it can't be comprehensive.
I've (superficially) involved in certain private servers like WoW 15 years ago, but AFAIK they just used leaked server-side software (usually from a foreign agency) than reverse engineering.
In the absence of hard data you just have to guess - take a look at the SWG Emu project. They had to have historians go through decades old archived threads to try to reverse engineer how the game actually worked, I’m not sure the status of the project now but it did indeed take many, many years to even come close to a compareable experience to the original.
You cant tell if they are accurate really if you do not have sources.
You can tell however, if the game plays nicely and accurately when connected via such a server. fyi, a lot of servers, and it looks like this one too, mainly serve to authenticate do license stuff and then do matchmaking or discovery for players to find other players. they dont actually host a game session.
In theory, if AI was really crazy good, which I don't think will happen anytime soon or at all, it would be able to let you play the game, without any code being written other than the AI. Describe your game, connect inputs, and the model will make up some video and audio output through generative diffusion models. The challenge might be that it's way easier to do if you can let the AI have time to process each request, as opposed to having to react to many inputs per second.
It might require the entire power output of a medium-sized country to play a game, though.
> Fortuitously, the creators of "GUNDAM EVOLUTION" provided a timely notice about the game's end of service (EOS), affording me ample opportunity to start capturing game data packets
This is always one of the biggest issues with trying to make a private server. Ideally, we should be proactively capturing game data packets and archiving them for every game that has an online component, to ensure that somebody in the future will have that available if they're interested in developing a private server for whatever game.
I think it's common for multiplayer game engines to implement single-player by running a local server on loopback (or via an equivalent internal mechanism). At the very least, I believe the Source Engine and Minecraft do this. Perhaps Unreal Engine does this also, and if so, that might be why the client has server functionality.
For live service games, self-hosting is increasingly uncommon. During the Source era of Team Fortress 2, Half-Life Deathmatch, etc, self-hosting was certainly a thing. But in the modern era, games like Overwatch 2 have no means to be a server or listen server. Even "custom games" where you can make your own game mode and do fun, arcadey-style things connect to a dedicated server.
For things that are "single player", (e.g. Tutorials/Practice), I agree with you that it's to be expected that some sort of mock-loopback is likely stood up. But what was unusual in this situation is the _entirety_ of the code is there, to the point it even would bind to a UDP port and handle full bi-directional UDP communication.
I would expect that for something like this, they'd include a trimmed down version, and not ship the _entire_ thing.
Probably many games do, but there is often an external master server that the local server fetches data from e.g. Team Fortress 2's local server calls out to a master server that tracks which items you have, Counter-strike: Global Offensive calls out to a separate master server that tracks your level and stats etc.
Over time the modding community has leverage this high level by building unreal native tools. The net result has been the same sort of cross tool use we saw with Gamebryo. Back with Gamebryo the Civilization modding shared tools with sid meier's railroads and even early skyrim and fallout modding.
Now the Unreal tools mean mods can be done in blueprint and should not break after every update like C# based mods. Likewise the common pak format used by unreal games (common because consoles prefer the pak for faster loading), means mods can replace files without overwriting files. Aka, mod conflicts become a reference overwrite issue and not a file overwrite issue.
As a developer of an unreal based game its pretty nice to know modding is no longer locked out. You still need/should provide the community with a modkit, but even those the community can generate on their own if they care.
One of the reasons: if you want people to buy your next thing. (I was fairly highly ranked online in one of the Ace Combat fighter pilot franchise games, and had built a stable of planes in another one. But when they shut down the servers for the previous installment, after introducing a new one, I found I couldn't get interested in investing in the new one, if it was only going to get ripped out from under me like the previous.)
all abandonware -- including server code -- should enter the public domain when certain criteria are met
hell, the whole practice of rights holders choosing to stop distributing media that could be distributed by fans at very low cost -- like the Disney vault or the recent fiasco with Coyote vs ACME -- is an affront to art preservation and to art and to creatives and society in general and should be stopped.
free the media! if you won't sell it, you should have to let others distribute it for you
quibble about details but in general stuff like Ubisoft deleting The Crew should be illegal
The problem is that 99% of the time it contains licensed code from an entity that is not going out of business, and who's going to pay the person who has to separate in-house and licensed?
It essentially means if you create something, it’s not yours unless you are actively selling it?
As for online games, I think the ephemeral nature and limited lifespan of the game should be forced to be very clearly advertised at point of sale, not hidden in an EULA.
The fact you can’t play them forever isn’t a problem, but consumers need to be aware. That said I don’t know how much difference it would make. I think most consumers would not care. I know the online games I play will go away one day and I still pay for and play them. Why? Because I don’t care. I was never going to play them forever even if they were around forever, so I don’t care if they go away. The only difference I’d really like to see is a minimum guaranteed service period and a full refund if that isn’t achieved.
The only place where I see that not happening is the future where game are 100% streamed and your computers is just a screen + controller (stadia 2.0). Then they'll have to settle for knock off clones of your game.
Like, reverse engineering the communication protocol is easy, or at least pretty feasible. But how do you acquire server-side data? Like raw probability tables for certain event? Not to mention the game logic itself. Some of them obviously can be fetched or guessed by using the live server, but it can't be comprehensive.
I've (superficially) involved in certain private servers like WoW 15 years ago, but AFAIK they just used leaked server-side software (usually from a foreign agency) than reverse engineering.
It might require the entire power output of a medium-sized country to play a game, though.
This is always one of the biggest issues with trying to make a private server. Ideally, we should be proactively capturing game data packets and archiving them for every game that has an online component, to ensure that somebody in the future will have that available if they're interested in developing a private server for whatever game.
Projects like these are great stepping stones into learning how to code for younger kids and adults :)
For things that are "single player", (e.g. Tutorials/Practice), I agree with you that it's to be expected that some sort of mock-loopback is likely stood up. But what was unusual in this situation is the _entirety_ of the code is there, to the point it even would bind to a UDP port and handle full bi-directional UDP communication.
I would expect that for something like this, they'd include a trimmed down version, and not ship the _entire_ thing.
https://news.ycombinator.com/newsguidelines.html
Like others said - do you kill your product and probably company? Open source it :)
Deleted Comment