Client Modding Support

Thoughts on the further development of Haven & Hearth? Feel free to opine!

Client Modding Support

Postby LostJustice » Mon Mar 21, 2022 5:54 pm

I have been messing with the client again and looking at certain functionality of clients across different clients. Namely clients like former Amber, Ender, Purus, and Ardennes. A lot of clients change aspects such as tool tips, information related to UI, settings such as lighting and ect which can be found across all the clients. Very few of the changes in most clients is truly mechanical changes. Steps in the vanilla client has really come a long way considering what was given in previous Haven and Hearth clients back in Legacy. One of the biggest issues I and many other developers experience with the client is maintenance. Adding the features is pretty straight forward once you figure out how it works but maintaining it often just leads to death of clients or developers just getting burnt out from so many code merges.

I am not sure if this subject was brought up before but I was wondering if there could be effort put towards making certain aspects in the client moddable so we can support plug and play changes which can suit every ones needs and provide a solid stable SDK to integrate into the client for modders. Good starting points I would consider is tool tip rendering and UI rendering in allowing us to add our own custom widgets or modify existing tooltips through a moddable SDK without directly adding it into the same source as the client in order to adjust or display information differently from what the client already gives us. (Majority of client changes are focused around here and graphic changes when looking at it from a code level perspective.) I know from actually looking at this code that is not as simple in practice but again wondering if there is any aim or ability to go down this direction because I think this would really help with maintaining custom clients and open new avenues for people to easily maintain and modify a client.

I often think one of the best clients wouldn't really be a modified client at all but a modding SDK like Minecraft Forge with extends and maintains compatibility among different mods and allows a community to maintain features rather than an entire client. More is done with a community backing it than a single developer spending hundreds of hours trying to add in some features with maintenance and not having the client break on them.
Image
User avatar
LostJustice
 
Posts: 677
Joined: Sun Mar 25, 2012 3:57 am

Re: Client Modding Support

Postby shubla » Mon Mar 21, 2022 9:38 pm

Bad idea (except maybe if executed correctly and completely, but it wont be).
Loftar has enough work as it is.
Simple SDK would not suffice as one wants to modify many many things in the client, SDK would likely never be complete and you'd still end up in just terrible merges. Probably one could avoid lot of the merge stuff by structuring the modifying code in better manner, but this is not often the case as one usually intends to do just few quick modifications for convenience, which then blow up to be something more.

If something would relief custom client developers, it would be that client source code would be made private and ran through some obfuscators so that client modification would no longer be possible. But that will of course never happen as long as loftar is in charge of licensing.
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13041
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Client Modding Support

Postby LostJustice » Tue Mar 22, 2022 1:59 am

shubla wrote:structuring the modifying code in better manner


I think you are misunderstanding the question. It is clear as is the system that the client is running on is a jumbled mess when it comes to changes. Changing information in one portion of the client often involves multiple changes... Example is dealing with items in the sense of WItem and GItem and then with the displaying widget itself such as equippory. I am indeed mentioning here a proper restructure to support this. I don't think it is a bad idea or should be taken off the table. Custom clients have their bugs and there is a lot of features that people want that some clients have and others do not. A lot of it has to deal with the effort developers have to put in for this. There are cases where "structuring" your code could help but only mildly and even then can break in an instance when Loftar changes his code around. At some point you need to integrate somewhere or do a full 360 with reflective programming which can bloat up insanely quickly for sometimes the simplest tasks not to mention how hacky this approach is.

And I agree in the sense that it does somewhat need to be done properly but I don't think it will be done right the first time around or even the second but slowly changing code to support this approach rather than a client "that just works" and client modders have to deal with is really a constraint and unreasonable. I am not asking for a full SDK either but an SDK or parts of the client that client developers can consistently plug into and provide support for where majority of it involves expanding on what Loftar and Jorb do not have time for such as strictly UI, Text, and other informational changes for now which considering the way the client is laid out now, wouldn't be terrible if Loftar restructures it on his end to support this.
Image
User avatar
LostJustice
 
Posts: 677
Joined: Sun Mar 25, 2012 3:57 am


Return to Critique & Ideas

Who is online

Users browsing this forum: Claude [Bot], Google [Bot], Halbertz, Semrush [Bot] and 236 guests