PatchLauncher (and how it WOULD work if possible)

External tools, software and sites for creating or editing UT99 resources.
Post Reply
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

PatchLauncher (and how it WOULD work if possible)

Post by Gustavo6046 »

/ Don't trust present continuous! /
Spoiler
#1. What exactly are you doing?
I'm doing PatchLauncher, a program that takes binary patches and applies them to a copy of UnrealTournament.exe before running it. These patches are generated by GNU diff (which means the launcher comes with patch), and it's based either on a decompiled version of the Unreal virtual machine, or on the public headers.

#2. Why are you going to do that?
While there is already a multitude of ways to extend Unreal and it's multiplayer brother, I've always found it rather difficult to make significant changes, especially with total conversions (like those out for Doom). Of course, there is Legacy (I've got to hear about it thanks to a trusted source called EvilGrins), and other attempts, but I still want to make a real game, even if it is just a giant extension for UT that uses custom Engine stuff.

#3. What have you done yet?
Just this sketch for how it would work.

...

No, really. I need your help to build up some concept on patching The Engine, before I can move on and do anything in real C++.
--------------------------

Status
abandoned.
Last edited by Gustavo6046 on Sat Sep 30, 2017 4:57 pm, edited 2 times in total.
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: PatchLauncher (concept stage)

Post by nogardilaref »

In other words you plan to hack the engine, drag the community in doing it with you, just to get "your own" game going, and get away with it.

We just had Flak logging in to put the master server up, and while it sucks they don't release anything or allow certain community members to do a thing for UT itself (although one of them holds the entire source already for years), doing something clearly illegal and "douchey" like this towards them would be like actively spitting on their face.
They might have flaws, but we won't go anywhere by advocating what are essentially blatantly illegal hacks.

If you really want to make a full different game, you're better off actually using a more modern engine like Unity or Unreal Engine 4 itself, in which you can already use C++ freely.

Instead, if you want to fix the game itself to be able to do things for UT itself, you can direct your efforts in helping Higor or do your own thing like he's doing to fix the underlying problems or add new features by building something on the side using nothing more than the public headers, and you can do a LOT this way, including replacing and fixing existing functions apparently.
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: PatchLauncher (concept stage)

Post by sektor2111 »

As spoken before and forum not read we have a XC_Engine, an extension done as it is (there are troubles depending on environment used) which requires a long time polishing which is performed by Higor which pretty much knows what is doing. Troubles are coming from different libraries used, Linux vs Win-doze requiring a lot of considerations due to development insanity for changes which are nasty trouble makers. What is doable for a clean console, I REPEAT (because I posted this already):
- do replace crapped up functions using fixed actors with XCGE;
- tweak states directly in stock files and conform them with original files - do not drop anything in public - each admin might have his/her own methods causing conflicts if a moron player loads all public shared packages - default rules is that player should stay CLEAN in v436 stage and let admins to manage stuff according to server needs - I know what I'm saying here because I did different experiments and I could see what has to be taken in account.
Want to play a crash-free game ? OKAY, do these tweaks in a separate UT version tweaked properly and fire up a LAN party for You and your Bots, that simple. Nobody needs any source-code except real developers who need to find several hints about engine's functionality which are not documented nowhere, even if natives have remarks, nobody can see them and nobody copied them properly for coders.
By making a mess with different compilations borked and incompatible each-other, community goes down-hill and nobody will help you here...
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Re: PatchLauncher (concept stage)

Post by Gustavo6046 »

nogardilaref wrote:clearly illegal and "douchey"
Hey, I'm not sharing the source code - the one that they want to make open-source someday too, anyway. I also could not decompile it, so I'll have to rely in the public headers.
nogardilaref wrote:If you really want to make a full different game, you're better off actually using a more modern engine like Unity or Unreal Engine 4 itself, in which you can already use C++ freely.
a) Unity sucks
b) UE4 is complex
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
User avatar
PrinceOfFunky
Godlike
Posts: 1200
Joined: Mon Aug 31, 2015 10:31 pm

Re: PatchLauncher (concept stage)

Post by PrinceOfFunky »

Postal2 developers would have needed what you're willing to make, in 2003. See the "Engine notes".
"Your stuff is known to be buggy and unfinished/not properly tested"
nogardilaref
Masterful
Posts: 577
Joined: Tue Jun 20, 2017 1:00 pm
Personal rank: ⚋⚊⚌☰⚞⌖⚟☰⚌⚊⚋

Re: PatchLauncher (concept stage)

Post by nogardilaref »

Gustavo6046 wrote: Hey, I'm not sharing the source code - the one that they want to make open-source someday too, anyway. I also could not decompile it, so I'll have to rely in the public headers.
Well, if you're not sharing the source, requesting any help from the community is pointless, and the community won't ever use something like that with the danger of you doing things you shouldn't in their systems.
Gustavo6046 wrote: a) Unity sucks
b) UE4 is complex
Uh? :confused2:

Could you please elaborate a bit on how Unity is worse than UE1? That one I have never heard in my life.

And could you please elaborate on how UE4, which is open source already, and which is actually very similar to every previous engine version, including UE1 (same names for the same things natively, methods, replication rules, etc, as far as I saw), is actually more complex than a closed UE1 which you intended to decompile and do binary patches and whatnot?
Chris
Experienced
Posts: 134
Joined: Mon Nov 24, 2014 9:27 am

Re: PatchLauncher (concept stage)

Post by Chris »

As long as you don't intend to sell it or release it as a standalone game other than a patch or addon there will be no legal issues.
Secondly, you don't simply decompile C++, there are no class definitions in the ABI (application binary interface) like there is in higher level languages, thus if you want to decompile it you would have to disassemble it into assembly structure and then reverse engineer each function by backtracing their callers because there are no function identifiers either, only addresses and offsets.. In other words it takes a huge amount of time. Fortunately the headers would give you a lot of help since they hold most of the class definitions, and most of the functions are also exported to the export table, in order to dynamically link to it, thus making the job of finding those functions MUCH easier. It's not all lost tho.. Me and some other(s) (not mentioning names at this point) got access to the source code of v400. Weither you should be granted access to it or not is not up to me to decide.

Sadly I don't think you'll get far with this, Higor has already done a ton of work on XC and he had to conquer a lot of battles with incompatibilities and broken things. Creating yet another extension would be rather counterproductive unless yours can prove to solve a different problem and being able to run alongside with XC (not two engines...).

Surely there must be a better way for you to learn and practice?
Post Reply