1 (edited by Zodiac 2012-08-05 22:00:51)

Topic: Mod Loader

Hey guys,

Carrying on the discussion from https://www.teeworlds.com/forum/viewtop … 1&p=2. For those who didn't read the entire thread, basically a suggestion was made to add to the original client a functionality where you are able to download and load up mods from the client. This allows for far more flexibility for modifications of teeworlds, but also makes it vulnerable to malicious code.

Ghost suggested either sandboxing the code (but would also limit the possibilities of the client) or try use an interpretive language like LUA to solve this problem. He also mentioned that if we sort out the security issue and the code is up to standard then they would likely add it to the original teeworlds client.

I honestly believe this would do wonders for the mod scene and for teeworlds as a whole, as it would allow for some of the more creative mods to become feasible and allow more flexibility for the mods that are already in existence. It is of course quite a large project to undertake and a clear solution needs to be discussed.

If you have any suggestions/ideas of the best way to go about doing this then please discuss it below, and/or if you would be interested in participating in coding it then just say. I personally don't mind helping out with the coding, but I know that there are certainly others that are more knowledgeable in this area than me so any help would be greatly appreciated!

UPDATE:
Well had a nice long chat with matricks and minus. Matricks has actually thought about this issue quite extensively, he even got resource transferring working between the server and client using LUA but he said the reason he doesn't like the LUA as a solution is because in his own words.

[20:51] <@matricks> I'm not that happy with transfering it from the server to the client however due to the endless ways it can screw you over due to it being turing complete

From what I can gather, the developers would be more than willing to add the functionality if it was programmed. The first step is agreeing upon the best way to go about it. I fail to see how the community of teeworlds programmers can't come up with a solution, especially when something like this has been implemented before in other games (like Half life and quake).

If we really can't come up with a solution, then we will just have to put this on hold until more qualified programmers start playing teeworlds tongue

2

Re: Mod Loader

This feaure has been approved? I don't like work for nothing...

3

Re: Mod Loader

I do not know wrote:

This feaure has been approved? I don't like work for nothing...

ghost wrote:
AvidTeeworlder wrote:

In terms of the sandboxing approach, which would definitely be the safer option, you said  that it would take a lot of time, but what if someone else offered to do the programming of it; freeing you guys up to work on other more important things. The only thing you would need to do is just to go through the code to make sure that it is legit and is up to standard.

That would be very nice of course. Teeworlds is open source and everyone is free to send in their own patches and if they are quality material, they will surely be integrated.

I assumed that, that meant approval. Unless I am mistaken.

4 (edited by unsigned char* 2012-08-05 17:42:30)

Re: Mod Loader

Ummm... that message did not give any guarantee. What is quality work for them?

I mean, who else has to like? Staff? Oy? To the community?

5

Re: Mod Loader

I do not know wrote:

Ummm... that message did not give any guarantee. What is quality work for them?

I mean, who else has to like? Staff? Oy? To the community?

I don't know, but for now lets just assume that it has been approved while we discuss it, and I will get back to you guys asap with any more details. So assuming it has been approved, A) Whats the best solution. B) Would you be interested in helping.

6

Re: Mod Loader

The point is that many times (this is not from personal experience) community/a few devs have asked for something big to be worked on, and then got ignored or the minds changed. I would be very careful before starting anything big for the official Teeworlds if I was wanting to invest myself in such a project (which I'm not), would poke oy to know about his thoughts.

Not Luck, Just Magic.

7 (edited by Zodiac 2012-08-05 18:16:07)

Re: Mod Loader

Dune wrote:

The point is that many times (this is not from personal experience) community/a few devs have asked for something big to be worked on, and then got ignored or the minds changed. I would be very careful before starting anything big for the official Teeworlds if I was wanting to invest myself in such a project (which I'm not), would poke oy to know about his thoughts.

As I said in my previous post, I am trying to get oy's opinion on the matter, and would certainly not proceed with something like this without the go ahead from him. So people don't need to worry about that. It will also be better for when I speak to him that we have a clear and effective idea for a Mod Loader so I can better explain to him exactly what our plans are. Hence this thread.

P.S Whats the best way of going about speaking with oy? I can't imagine that he would read his pms as I am sure he gets spammed with messages.

8

Re: Mod Loader

AvidTeeworlder wrote:

P.S Whats the best way of going about speaking with oy? I can't imagine that he would read his pms as I am sure he gets spammed with messages.

IRC - quakenet.org/#teeworlds-dev.

Not Luck, Just Magic.

9 (edited by Zodiac 2012-08-05 18:35:14)

Re: Mod Loader

Dune wrote:
AvidTeeworlder wrote:

P.S Whats the best way of going about speaking with oy? I can't imagine that he would read his pms as I am sure he gets spammed with messages.

IRC - quakenet.org/#teeworlds-dev.

Thanks

EDIT:
Is oy under a different name?

10

Re: Mod Loader

AvidTeeworlder wrote:

Is oy under a different name?

He's not online 24/7. But his name is Oy on qnet.

11 (edited by Zodiac 2012-08-05 21:58:02)

Re: Mod Loader

Updated, original post.

12

Re: Mod Loader

[20:51] <@matricks> I'm not that happy with transfering it from the server to the client however due to the endless ways it can screw you over due to it being turing complete

Why do Google®, Microsoft® and Apple® support turing complete JavaScript in their browsers then? They're world's leading corporations, sure they know better than matricks!

13 (edited by Dune 2012-08-05 22:38:36)

Re: Mod Loader

lamefun wrote:

[20:51] <@matricks> I'm not that happy with transfering it from the server to the client however due to the endless ways it can screw you over due to it being turing complete

Why do Google®, Microsoft® and Apple® support turing complete JavaScript in their browsers then? They're world's leading corporations, sure they know better than matricks!

Why didn't you simply answer matricks on IRC...


A larger part of the conversation for those who are interested (the channel is public anyway)

<matricks> well
<matricks> what part is that you want to mod?
<matricks> do you want to send code from the server to the client or the reverse?
<Zodiac_> Well thats the thing, it hasn't been fully discussed how exactly it will work, there will definitely be a lot of discussion about whats the best and most efficient way of going about it. But before going through all that work and programming it, people (and understandably) want to make sure all this work isn't for nothing.
<Zodiac_> Basically that if we were to come up with a solution, that you guys approve of and then we programme it. Would you add it to the original teeworlds client.
<matricks> well, the thing is I've thought about this many times before and how to combat different problems like the scripting etc
<Zodiac_> I know it isnt as simple as that, such as the code would have to be looked at and revised
<matricks> and one step towards it would be to allow the client able to download resources from the server
<matricks> like I do in my ressys branch
<Zodiac_> Yeah that is also an approach that could work
<Zodiac_> but then there is the problem of security that would need to also be looked at.
<matricks> also, I devised a VM and scripting language for scripting the client from the server
<matricks> that solves the halting problem
<Zodiac_> halting problem?
<matricks> [url]http://en.wikipedia.org/wiki/Halting_problem[/url]
<matricks> if you send a script from the server to the client and the client executes it
<matricks> how does the client know that it will end?
<Zodiac_> ooh
<matricks> usally, the only way to know it is to actually run the script..
<matricks> the VM and language I designed worked around that problem
<matricks> my idea was to use it so the server could send over rendering code from the server to the client
<Zodiac_> Wow it seems like you have really looked extensively into this. 
<matricks> I think about a lot of stuff :)
<Zodiac_> haha
<Zodiac_> Why didn't you implement it in the end? Was there other problems?
<matricks> well, takes time :)
<minus> idea come so cheap, right?
<matricks> minus: yeah :)
<minus> +s
<matricks> I've been looking into the resource transfer stuff again this weekend after 10 month of not touching it :)
<matricks> oh.. wait.. 8 months
<Zodiac_> Oh okay, but it seems like there are a lot of people who would be interested in programming this, if we have an open discussion about this on the forwards and agree upon a way forward to implementing this. Would you guys be fine if others did the programming for it and then you add it?
<minus> yeah, those impulses of "that's awesome, i'ma do that"
<Zodiac_> This frees up time for you guys to focus on other important things
<minus> don't last for very long unfortuantely
Not Luck, Just Magic.