MHRD
Modding the game
The game seems to be dead, I'm making a custom build of the game to help someone play this game because he don't understand English well. It is using reverse engineered code and fix a lot of bugs. This is a private build of the game, and I can stop development of this patch and destroy everything I made if the developer is against that.

I don't know if the community is allowed to make custom builds and / or patchs to improve the quality of life of the game.

So to the devs, it is possible to make community patches for the game (Like Minecraft?) without breaking any laws whatsoever ?

https://steamcommunity.com/sharedfiles/filedetails/?id=2138378129
Last edited by SheatNoisette; Jun 24, 2020 @ 6:11am
< >
Showing 1-11 of 11 comments
icy  [developer] Jun 22, 2020 @ 8:51am 
I don't know exactly what you mean, when you say the game is dead. It is true, that there haven't been updates in a while now, which does not mean that it wouldn't be purchased and played anymore or that there won't be updates in the future.

I would take issue if someone were to distribute parts of the game (e.g. part of the binary or reverse engineered code) as this would clearly be piracy.

If on the other hand legitimate owners of the game were to share patches, which don't contain any parts of the original game, I wouldn't mind.

Please keep in mind, that discussing piracy is against the community guidelines, so if anyone comments: don't get yourself banned.
Last edited by icy; Jun 22, 2020 @ 10:12am
SheatNoisette Jun 22, 2020 @ 9:21am 
Hi, sorry for being a little bit rough. I mean "dead game" because updates is a bit lacking, the current build have some problems running on some Linux distros already (Looking at Arch Linux and distros based on Ubuntu).

I don't say "share reversed engineered code", that's illegal. What I wanted to emphasize is creating custom community game patches based on a generated decompiled code to bring some QoL improvement into the game.

Basically:
* Use a decompiler for the game, and this would generate nearly all of the source code. (this requires the game jar, this won't be shared)
* Fix what the compiler can't generate properly and generate a source code patch for the generated decompiled source code. (This will be shared, and MAY contains some fragments of your code. This can't be used to build a steam/retail version of the game for example).
* Adding features such as translations, custom fonts, background colors or a LWGL/libGDX port.
* Sharing binary patches for retail/steam version of the game. This would replace some importants files in the steam/retail jar file.

Thank you for answering to my post and sorry for the misunderstanding.

If you need more details, I'll be happy to help. You can pm me.
~ SheatNoisette
Last edited by SheatNoisette; Jun 22, 2020 @ 1:07pm
SheatNoisette Jun 22, 2020 @ 1:44pm 
I just read again your statement, if binary patches and/or sources patches for adding content or QoL are not allowed, it mean it's impossible to mod the game legally speaking ?

I have other questions :
* Can patches source code be open source (And only patches to add/fix content) ?
* Does the player needs to build the patch itself (So, the patch source code (Not the game source code but the patch source code, which is like a addon to this source code) needs to be shared/opensource) ?
* Does the patch, if allowed, can be shared as a source code patch AND/OR only in binary form ?

To create modifications even if the game doesn't support mods, it is required to modify part of the binary and so share small part of the binary to make this available for everyone. These binaries alone are unusable without a proper copy of the game. I'm not talking about removing the DRM of the game, it's again ILLEGAL , but sharing modifications of the game to improve it.

I know it's a gray area, but before doing (maybe) a huge mistake I prefer asking you directly.
Again, I would like to clarify the difference between source patch and game source code: the "source patch" is a patch which modify the game source code (Like a addon). The "game source code" is the game code, which illegal to share :
Patch + Game source code => Base game + modification
Patch + Game source code => Nothing, impossible to do something whatsoever.
Game source code => Steam/Retail version of the game
(=>: represent compilling)

Sorry for double post
I think this is a little bit clearer. It's really tough to explain what I would like to do.

TLDR:
I'm against game piracy, and it's absolutely not what I want to do. I just want to do an addon to the game without doing something stupid/illegal without breaking copyright laws, but it would need binary patching at least to make this feasible.
Last edited by SheatNoisette; Jun 22, 2020 @ 1:45pm
Quarterdane Jun 22, 2020 @ 2:12pm 
Couldn't you write a custom patcher (and patch-maker), so that rather than needing to share the modified classes themselves, you'd only share instruction files that tell the patcher how to modify the classes to achieve the desired result?
SheatNoisette Jun 22, 2020 @ 2:23pm 
I can use a binary patcher to do the job, it's not a problem to release the patch.

The only thing I mind is can I release the scripts to build custom version of the game and/or share my patches (Scripts/source code) as an open source project?

Another problem: I'm using a more recent version of the JDK, and when I do a diff, nearly all the classes content are modified. That's a huge issue.

Only two things I can't get it to work: Friend score and autocompletion.

Edit 06/23: The sound system seems to be broken, but the basic patch system is here (bspatch basically) and is "usable".
A lot of work needs to be done to have a proper mod support (Maybe a modloader ?) and a lot of cleanup is required (warnings/deprecated functions/bugfixing). The patch system is modifying the JAR file for now, it's ~230kb in size (Built using OpenJDK 14).

My objective is to build a modding framework or at least modding tools for the game. I want to be crystal clear.
Last edited by SheatNoisette; Jun 23, 2020 @ 5:31am
icy  [developer] Jun 23, 2020 @ 9:09am 
I'm sorry, but I don't completely understand the issues.

1. I understand that you can build patches as Quarterdane pointed out
2. I don't understand exactly how your scripts work and what they do. So can you open source them without violating the copyright? To be honest: I don't have enough information to say. To be safe: No, you can't.
3. If you create a JAR with a different JDK I guess the bundled JRE isn't upward compatible!? Then the question becomes, why you don't use an older JDK?
4. Not sure what you mean with "can't get to work".

It seems to me that you put an terribly huge effort into making the game moddable. While on one hand I think it is cool that the game motivates you to make custom changes and mods, on the other hand I wonder if that energy would be put to better use elsewhere. I guess people still wait for a successor of MHRD as an example ;)
SheatNoisette Jun 23, 2020 @ 9:46am 
Hi again,
The only example that I know is MCP, or Minecraft Coder Pack (https://minecraft.gamepedia.com/Programs_and_editors/Mod_Coder_Pack).
Here is an extract: "The package was created to help mod creators to decompile, change and recompile the Minecraft classes. Instructions are included in the readme files which come with the package. The package contains scripts to decompile, recompile, and reobfuscate the game and the server."

This will not release any of the source code, but provide the tools to make mods to the game. Basically, provide a streamlined way to make modifications for the game.

What I mean "can't get it to work", is that the decompilation process isn't accurate and needs a lot of bugfixing (It's only recreating the source code, it's not generating accurate source code). The autocompletion parser is completely broken and many other things for example. The game, however is completely playable.

"When you can do something, it doesn't mean you should." But when you are bored, it's something you ignore. :steamfacepalm:

For the JRE, I'm only using a recent JRE, making the toolkit/game compatible with recent JRE version. The Java bytecode is regulary modified at (mostly) every release, so it's not always backwards compatible.

Again, boredom, but the game can be launched on a Raspberry Pi >=2.
Last edited by SheatNoisette; Jun 24, 2020 @ 7:37am
Félix Jun 25, 2020 @ 7:39am 
I'm certainly no legal expert but I don't think it would be illegal to release a patcher that doesn't contain any of the game's source code. Though of course, I'm pretty sure that it would very much fall under piracy even if it only contained parts or fragments of the game's source code.

That being said, I don't think adding modding support for the game is a bad idea either, if it can allow people to help expand and improve the current state of the game further more then it can only be a good thing in my opinion.

Looking forward to see more games with support for user mods.
Last edited by Félix; Jun 25, 2020 @ 7:43am
random Jul 13, 2020 @ 12:35pm 
@icy,

I haven't been able to get the game to work at all. After checking forums and trying various corrective actions, I finally reached out to you via the forums for help but didn't even get a response and I know I'm not the only one with this problem launching the game. Therefore, sadly I have to concur that this game is dead and I regret my purchase.
Mont4g Jul 13, 2020 @ 9:46pm 
I think if you enjoyed this game, you can take one step further and learn VHDL.
The creator did an amazing job at simulating a design language as VHDL or Verilog, softening the hard spikes that a newcomer may find completely obscure.
icy  [developer] Jul 14, 2020 @ 4:07pm 
Originally posted by user321253:
@icy,

I haven't been able to get the game to work at all. After checking forums and trying various corrective actions, I finally reached out to you via the forums for help but didn't even get a response and I know I'm not the only one with this problem launching the game. Therefore, sadly I have to concur that this game is dead and I regret my purchase.

Sorry if I missed your message in a different thread. I try to check all communication on this board, but every now and then I stop following a thread or may miss one completely.

The sad reality is, that despite putting an effort into making the game work on as many devices as possible, computers are just too different from one another to make it work on a 100% of all systems. Different operating systems, JVMs, configurations, hardware, drivers, etc. are simply too much to handle sometimes, much more so for a single developer. While I usually try to support players as much as possible to make the game run on their computers, for a small minority it just seems like a lost cause, despite all the remote assistance I can give.

So in cases like yours I came to the conclusion, that sometimes all I can do is just to recommend players to make use of a refund. You can ask Steam for a refund as long as you own it for less than 2 weeks and haven't played it for more than 2 hours. I am sorry if this advice comes a little too late.
< >
Showing 1-11 of 11 comments
Per page: 1530 50