The Gang Garrison 2 Forum
May 23, 2013, 10:58:56 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Chat with us on IRC: http://ganggarrison.com/irc.html
Server: irc.esper.net, Channel: #gg2
 
   Home   Help Search Login Register  
Pages: 1 2 »
  Print  
Author Topic: UT-style mutator mod support  (Read 820 times)
Dataflashsabot
Full Member
***
Offline Offline

Posts: 165


« on: April 15, 2011, 02:57:23 pm »

At the moment, a mod requires a separate EXE be downloaded for it and separate servers be set up for it. While lamenting this fact, I saw an easy way to solve it: Dynamic script modding, in the style of UT's "Mutator" system.

  • Server points out that it is modded and sends the client a .gml file when it requests to connect
  • Client scans this file for unsafe functions, IE file or registry commands (or execute_* commands, which could in turn contain encrypted unsafe commands).
  • If clean, execute_file's the code, thus allowing the entire programming to be changed at the modder's whim, without anything having to be (manually) downloaded.

I can't even see this being very hard to do. I might even make such a mod-friendly version myself, if it gets rejected for the official version.

Possibly (and again like UT) a checkbox could be provided, allowing the user to hide "non-standard" servers. Another idea would be support for custom images/sounds (although the mod could do this itself at a stretch, downloading them dynamically.)

Thoughts?
« Last Edit: April 15, 2011, 03:17:03 pm by Dataflashsabot » Logged

trog
member of intel's squad of garbagemen against the yakuza
1000$ Monopoly Rich Beta Male
*
Offline Offline

Posts: 9879


i am uberdeath


« Reply #1 on: April 15, 2011, 03:47:15 pm »

I think it would be easier to have it so modders could host mods that show up in the lobby with a symbol next to the name, and if someone tries to join without the mod they get a link to a ganggarrison thread for the mod. To avoid people giving rickroll websites or something, you could force the ganggarrison.com part of the link, and the hoster would only be able to give the part of the URL for the thread.
« Last Edit: April 15, 2011, 03:48:00 pm by ]TROG[ GS » Logged

Dataflashsabot
Full Member
***
Offline Offline

Posts: 165


« Reply #2 on: April 15, 2011, 03:58:58 pm »

I think it would be easier to have it so modders could host mods that show up in the lobby with a symbol next to the name, and if someone tries to join without the mod they get a link to a ganggarrison thread for the mod. To avoid people giving rickroll websites or something, you could force the ganggarrison.com part of the link, and the hoster would only be able to give the part of the URL for the thread.
Easier to make, yes. But it would be pointless. The thing is, if any manual download is required, that's a high barrier and most people will just press cancel and choose a "normal" server. The whole point of this is that there is no barrier at all, they can click any server at all and play no matter what mod it's running. Many a topic in Feature Requests has been closed with the suggestion that it should be a mod, but the problem there is that the audience for client-side mods is very small indeed. The idea is to change that.
Logged

trog
member of intel's squad of garbagemen against the yakuza
1000$ Monopoly Rich Beta Male
*
Offline Offline

Posts: 9879


i am uberdeath


« Reply #3 on: April 15, 2011, 04:01:45 pm »

I think it's more a problem of people not knowing when client mods are being hosted, so putting them in the lobby will help increase the audience.

But if someone is willing to do what you suggested, c1
Logged

NAGN
Developer
******
Offline Offline

Posts: 16895


Yeah so now I have an idea


« Reply #4 on: April 15, 2011, 04:03:56 pm »

this is basically plugin support
Logged



[im
Dataflashsabot
Full Member
***
Offline Offline

Posts: 165


« Reply #5 on: April 15, 2011, 04:14:05 pm »

Technical details:
I would suggest a new subfolder, Mods:
-Mods
--Modname1
-------Modname1_index.txt
-------Audio
---------bgmus1.mp3
-------Code
---------main.gml
-------Images
---------modified_scout_sprite_frame_1.png
--Modname2
-------Modname2_index.txt
-------Code (other folders optional, only Code required.)
---------blah.gml (GML files need not be named anything special, the game will load all of them.)

A modded server would provide to a client <moddame>_index.txt, which contains a moddame and a list of files:
Code:
Moddame1
something.gml <md5 of file>
blah.png <md5 of file>
etc.wav <md5 of file>
If any file is missing, the game downloads it and sorts it to the correct subfolder. If we have a Mods/moddname/filename.ext already but the MD5s do not match, it will prompt to overwrite (perhaps with "last changed" dates)?

With all the files obtained, it will start the game and then immediately load and run any and all .gml files in Mods/moddname/. No replacement of images or audio is automatically performed, that is the code's responsibility.

this is basically plugin support
Sort of, yes. Like TazeTServer, but intended for client-side and with lobby support etc.
« Last Edit: April 15, 2011, 04:15:08 pm by Dataflashsabot » Logged

NAGN
Developer
******
Offline Offline

Posts: 16895


Yeah so now I have an idea


« Reply #6 on: April 15, 2011, 04:17:42 pm »

yes, it was planned for a long time by vindicinator, there was a big argument over security concerns, and the fact that legitimate functions can be used wrong/"bad functions" used right

I believe that a system was considered of a master list of "approved" plugins on the GG2 server, no idea how far that went...
Logged



[im
Dataflashsabot
Full Member
***
Offline Offline

Posts: 165


« Reply #7 on: April 15, 2011, 04:22:29 pm »

yes, it was planned for a long time by vindicinator, there was a big argument over security concerns, and the fact that legitimate functions can be used wrong/"bad functions" used right

I believe that a system was considered of a master list of "approved" plugins on the GG2 server, no idea how far that went...
Do you have a link? I'd like to read that.

If file functions, anything that would allow the loading of a new DLL (Is this even possible anyway), registry features, dynamic code execution, etc were disabled, there's nothing a malicious script could do other than perhaps crash the game. It wouldn't take long to compile a list of such unsafe functions, and I don't think any of them would have much legitimate use.

Unrelated: This would also provide an auto-updater for mods. Only the server needs the new files, then the client just takes them over the old ones when it connects.
« Last Edit: April 15, 2011, 04:23:51 pm by Dataflashsabot » Logged

NAGN
Developer
******
Offline Offline

Posts: 16895


Yeah so now I have an idea


« Reply #8 on: April 15, 2011, 04:26:34 pm »

I don't think that there's a public conversation on it, I think it was mostly between private conversations between Vindicinator and MedO, you can try contacting him, as vindicinator deleted all his posts
Logged



[im
Shiggy Diggylicious
Hero Member
*****
Offline Offline

Posts: 2973


Yes


« Reply #9 on: April 15, 2011, 05:23:54 pm »

I think it would be easier to have it so modders could host mods that show up in the lobby with a symbol next to the name, and if someone tries to join without the mod they get a link to a ganggarrison thread for the mod. To avoid people giving rickroll websites or something, you could force the ganggarrison.com part of the link, and the hoster would only be able to give the part of the URL for the thread.

I don't even know anyone who rickrolls anymore.
Logged

[bp]pg 1 & 2 for sale. Ask about prices if you're interested.
AcidLead
The Flash of the Action
Veteran Beta Tester
*****
Offline Offline

Posts: 6248

Our hero returns triumphant. Execute him at once.


« Reply #10 on: April 15, 2011, 07:10:56 pm »

I don't even know anyone who rickrolls anymore.
Being on the internet, you should know two things:
1. No meme ever dies, no matter how old, because someone always uses it no matter how out of date it is.
2. All of your base are belong to Cats.
Logged

recent additions:
oh fuck it we're redoing all of AWE top-down
Chef Kittay
Hero Member
*****
Offline Offline

Posts: 533


I'm in your Kitchenz making Chickenz...


« Reply #11 on: April 15, 2011, 08:39:32 pm »

no going off topic

how bout this?

coding an md5 v.scanner put it in the gg2 folder the program would open you select your shortcut for your personal gg2 client grab the downloading files from the modded server being hosted, scan that publish a report on the server your scanning, make a new .txt file in a new folder created in the core gg2 folder named V. reports if everythings safe
play the addon, if not it will copy the hostname server port and ip

btw this is not far fetched I might be able to code some probably in vb.net even.
« Last Edit: April 15, 2011, 08:41:56 pm by mkninja2 » Logged

Dataflashsabot
Full Member
***
Offline Offline

Posts: 165


« Reply #12 on: April 16, 2011, 06:31:10 am »

no going off topic

how bout this?

coding an md5 v.scanner put it in the gg2 folder the program would open you select your shortcut for your personal gg2 client grab the downloading files from the modded server being hosted, scan that publish a report on the server your scanning, make a new .txt file in a new folder created in the core gg2 folder named V. reports if everythings safe
play the addon, if not it will copy the hostname server port and ip

btw this is not far fetched I might be able to code some probably in vb.net even.
To be honest, the grammar here is far too mangled for me to parse. It sounds like you're talking about an external program to do the same thing I was suggesting?

Anyways... me, Medo, AJF, and Vindicator talked this over in #gg2_dev last night and concluded that step 2 of my plan is impossible[1]. It looks like the best solution is a "signed code" system; each mod would also have a sign.key file containing the MD5 of all GML concatenated, signed with a trusted private key, which must match the MD5 when decrypted with one of a stored list of trusted public keys. This list would be downloaded every so often, allowing new keys to be introduced and old ones revoked.


[1] The code could always edit the event code of existing objects, and the code it sets could be decrypted/concact'd at runtime.
Logged

Chef Kittay
Hero Member
*****
Offline Offline

Posts: 533


I'm in your Kitchenz making Chickenz...


« Reply #13 on: April 16, 2011, 11:06:07 am »

okay sounds alright lets see if we can get this to go into effect.
Logged

Dusty
Hero Member
*****
Offline Offline

Posts: 10653


Dust in a box under a table


« Reply #14 on: April 17, 2011, 09:53:33 am »

so, it would be like downloading map? could you base any of it off the map download code?
Logged

Pages: 1 2 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.271 seconds with 18 queries.