Sign in to follow this  
Marlon

The truth about modding (needed, not given)

Recommended Posts

Hi guys

 

So far so good. I have a server up and running, infrastructure is solid, redundancy is solid, backup is solid.

I am starting to realise the limitations now, not in terms of nice to haves, but things that could seriously make a difference between reliability and instability.

 

I am a software engineer by profession, and have a few years of java under the belt (long ago)... contemplating modifying the code.

 

What I would like to know from those of you who have been working on it, is how feasible is it?

 

I see hacky (no offense) mods, and patchy mod loaders... I understand why, the code is aged, and was not built for it. With the way things are now, is modding a good idea, or will it become a long term maintenance nightmare...

 

Even more so, will it pose any problems during steam updates (my server runs headless on unix servers), because I  use steamcmd to manage it.

 

What is the deal, should I count my losses and stay stock? Not willing to compromise the servers stability. Players will start to settle and play on it, and I don't want to be those other game server administrators that let people down, and go offline for weeks while I am stuck fixing something I did not break... (dayz comes to mind, and some others....)

 

Do tell :)

 

Marlon

 

Share this post


Link to post
Share on other sites

If I'm not mistaken, the current system for mods is injecting bytecode into the server upon launching or modifying the class files directly.

 

Currently WU does not have a modding API, but it is in the works and should come out fairly soon. I'd advise waiting for that before starting any modding yourself, as I have absolutely zero clue as to whether it would clash (I assume it would)

  • Like 2

Share this post


Link to post
Share on other sites

Mods that only use reflection are less likely to break (from what I've seen anyway).  Relying on only reflection or the up-an-coming WU modding api should make things more stable. 

I think this is a good ordering of modding compatibility coding methods...

1. (most likely) WU's up-an-coming modding API.

2. Reflection.

3. Javassist's higher level Bytecode alteration tools, ie. tools in CtMethods and ExprEditor classes.

4. Javassist's low level Bytecode editing tools, ie. CodeIterator and  Bytecode classes. I'm guessing ASM would fit here if someone figured out how to use it with WU.

 

Remember you can always just disable a mod. In my own experience the worse case has been some items that the server skips over and doesn't add to the game. If the server can't find an item template for a new item it throws a warning and skips over that item. Although, there was that issue with numerous white horses in someone's mod that added different animals graphics.

 

I been thinking about how to code mods so it has built in clean up code to undo any detrimental changes that might have altered the database. I'm not sure how feasible this is but it seems like a good idea.

  • Like 1

Share this post


Link to post
Share on other sites
On ‎4‎/‎11‎/‎2016 at 7:17 PM, Retrograde said:

If I'm not mistaken, the current system for mods is injecting bytecode into the server upon launching or modifying the class files directly.

 

Currently WU does not have a modding API, but it is in the works and should come out fairly soon. I'd advise waiting for that before starting any modding yourself, as I have absolutely zero clue as to whether it would clash (I assume it would)

will the api modding also give us access to 3d modding (i'm a 3d modder nut, but have no clue on programming) as well as the "geek code" as I like to call programmers haha, no offense intended lol.

Share this post


Link to post
Share on other sites

Be careful of installing mods that add items to the DB.   That can sometimes be a cleanup.   Also have a backup of your server, which you stated you do,  as you can always fall back if a long term bug appears by using a mod, and most import have a test environment to see how well the mods play together without effecting your production server and your player base.   Ive been running mods since release and they add a lot of value add to for your players.  As far as hacks.    Being a ethical hacker for a living i can tell you even a vanilla server can be hacked with a modified client and packet capture tools to monitor the data stream, and then start playing with data stream injection.   Mods only make it easier.  

Java is a super easy platform to hack and is highly susceptible to fuzzing.

Share this post


Link to post
Share on other sites

If you want to make changes hop on in. With the mod loader if you mess something up it is as easy as turning it off, you won't mess up your server files using the mod loader.

 

If you want to wait for CodeClub to make a modding api...well I suggest you look up the term soon(tm) when it comes to Wurm. Great guys but be real, there is a handful if that, working on the code and most of those are volunteer. They do what they can but you can't rush a AAA scale project with a few guys.

  • Like 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this