A possible mod option for mods that do not change gameplay

Freeform discussion about anything related to modding Transcendence.
User avatar
Shivan Hunter
Commonwealth Pilot
Commonwealth Pilot
Posts: 81
Joined: Tue Nov 29, 2011 3:07 am

Fri Nov 02, 2012 7:52 am

This would have to do with the high score list- obviously an unmodded game doesn't belong on the same high score list as a game with Dynamic Systems, and a game using some godmodded ship (or even a newbie boost) doesn't belong on the same high score list as an unmodded game. But what about a game using my HD Stargates mod (which only changes the stargate animation) or (when I get it working) my weapon graphics replacer?

What I propose is a flag for mods, possibly an attribute in the <TranscedenceExtension> tag (there are problems with this approach- more on this later), that marks it as a graphics-only mod that does not change gameplay. Two games, one using this mod and one not, would still be able to go on the same high score list; and a game using only graphics replacers would still be a registered game.

What if I made a godmod and marked it as a graphics-only mod to get a high score?

This is the problem with implementing this as an XML tag- the high score server has no control over which mods are accepted. I could easily add the flag to the godmodded Wolfen mod I use for testing. As such, this is probably better implemented using a small server-side list of graphics-only UNIDs, as well as some information about the mod such as the MD5sums of all the files it uses (the hashes are to prevent me taking my godmod and giving it a false UNID). When a game is finished, it sends its information to the server, which can check its list of extensions against the list of graphics mods.

This list could be community-run; people could submit their mods for review once they're on Xelerus, and someone checks to see if it replaces anything that modifies gameplay. The review and list would have to be updated if the mod is updated, since the MD5sums would have changed.
I'm here to shift paradigms and chew bubblegum... and I'm all out of bubblegum.

<+The_Shrike> If you install 2 solar panels, you will have 2 solar panels installed.
<DarthGeek|2> :o

FourFire
Militia Captain
Militia Captain
Posts: 567
Joined: Sun Aug 12, 2012 5:56 pm

Fri Nov 02, 2012 9:39 am

That's a great idea! (+1)
(func(Admin Response)= true){
if(admin func(amiable) = true)
Create func(Helpful Posts)
else func(Keep Calm and Post derisive topics)}

User avatar
Cygnus.X1
Militia Lieutenant
Militia Lieutenant
Posts: 245
Joined: Sun Feb 24, 2008 6:21 pm
Location: Elysium Fields... I mean System
Contact:

Fri Nov 02, 2012 1:30 pm

I like the idea too, but as you said, it requires some level of faith in the end-users that they will stay honest.

Locks only keep honest people out.

Vachtra
Militia Commander
Militia Commander
Posts: 304
Joined: Tue Feb 16, 2010 2:03 am
Location: Texas
Contact:

Fri Nov 02, 2012 2:45 pm

I can see your point about it being the same challenge to a degree but even graphics changes can alter the game, like the 1 pixel mask. In this game it isn't just the weapons and armor that make the challenge.
One of my early problems were the hornets when I wasn't quite ready for them. If you can hit them then they're only annoying. If you can't hit them then you're in trouble. If they were much smaller graphics, well.....

In short, vanilla really needs it's own high score list.
"Have you guys ever watched the show?" ~ Guy

User avatar
Shivan Hunter
Commonwealth Pilot
Commonwealth Pilot
Posts: 81
Joined: Tue Nov 29, 2011 3:07 am

Fri Nov 02, 2012 7:31 pm

Cygnus: The server-side list is not a complicated "lock", and it'd be fairly easy for a modder to poke someone on IRC when they release a graphics mod to add it to the list. That's one of the main reasons I suggested it be community-run, anyway. :)

Vachtra: Then graphics edits that do change gameplay would not be allowed on the list. A mod that changes weapon graphics or jumpgate animations could barely change some gameplay; a mod that makes the Wolfen (or Phobos... >_>) a pixelship is a very different beast. This would be taken into account when adding mods to the list.

If the work involved is a concern, I could probably maintain the list whenever I don't have final exams. :)
I'm here to shift paradigms and chew bubblegum... and I'm all out of bubblegum.

<+The_Shrike> If you install 2 solar panels, you will have 2 solar panels installed.
<DarthGeek|2> :o

george moromisato
Developer
Developer
Posts: 2974
Joined: Thu Jul 24, 2003 9:53 pm
Contact:

Sat Nov 03, 2012 5:00 pm

I also think this is a great idea. My plan is to have "registered extensions" which need approval from Kronosaur Productions. A registered graphics-only extension could be used for official high scores.

Registered extension are verified with cryptographic signatures by the server (just as the vanilla XMLs are today.)

Could someone add a ticket to remind me? Thanks!

User avatar
Cygnus.X1
Militia Lieutenant
Militia Lieutenant
Posts: 245
Joined: Sun Feb 24, 2008 6:21 pm
Location: Elysium Fields... I mean System
Contact:

Sat Nov 03, 2012 9:07 pm

george moromisato wrote:Could someone add a ticket to remind me? Thanks!
Aye aye, Cap'n

http://wiki.neurohack.com/transcendence ... icket/1203

Vachtra
Militia Commander
Militia Commander
Posts: 304
Joined: Tue Feb 16, 2010 2:03 am
Location: Texas
Contact:

Tue Nov 06, 2012 3:04 am

Can the crytographic signatures cover the images used or would they be imbeded in the extension?
The only thing I'm thinking could be messed with here is someone using a graphics mod and leaving the xml alone while editing the images. This would change the mod without changing the code. If the signature didn't cover that then we'd still have a problem.

I know the intent is so someone can have their pink commonwealth station with a happy face on it but I'm just throwing out a worst case scenario.
"Have you guys ever watched the show?" ~ Guy

User avatar
Shivan Hunter
Commonwealth Pilot
Commonwealth Pilot
Posts: 81
Joined: Tue Nov 29, 2011 3:07 am

Tue Nov 06, 2012 7:16 am

I'm pretty sure that's not possible. If I include an extension with a Resources/Stations1.jpg, Trans will still use the base one unless my mod references it- which would require overwriting the rsStations1 Image, or using a new <Image> asset and overwriting a station to use it.

I don't think it would be hard to check images too though, just to be sure.
I'm here to shift paradigms and chew bubblegum... and I'm all out of bubblegum.

<+The_Shrike> If you install 2 solar panels, you will have 2 solar panels installed.
<DarthGeek|2> :o

Vachtra
Militia Commander
Militia Commander
Posts: 304
Joined: Tue Feb 16, 2010 2:03 am
Location: Texas
Contact:

Tue Nov 06, 2012 4:34 pm

A mod which changes images would not be referencing Stations1.jpg from the main source drawing. It would be referencing the image that came with the mod. The entire mod would be changes to stations, ships, weapons, and such but the only changes would be image changes.
If someone then used that mod but gave it new images with the same names and sizes but different internal image sizes (like a 64x64 image box with a 4x4 image inside instead of 52x30 for example) The mod doesn't know what the image is that it's using just that there is an image and that it uses a certain part of that image.
Can this be tracked?

The only thing I can think of is embedding the image into the mod as an official extension the same way the main game has the images embedded in the game. Is there a compiler that can be released to do this for mods?
"Have you guys ever watched the show?" ~ Guy

User avatar
Cygnus.X1
Militia Lieutenant
Militia Lieutenant
Posts: 245
Joined: Sun Feb 24, 2008 6:21 pm
Location: Elysium Fields... I mean System
Contact:

Tue Nov 06, 2012 5:14 pm

K.I.S.S.

Just as individual .XML files can be "verified with cryptographic signatures", so to can any binary file, including images and even sound files. If the graphics being tested are off by even a single pixel, they will fail the testing.

See George's reply below...
http://www.neurohack.com/downloads/TransData27.zip
Last edited by Cygnus.X1 on Tue Nov 06, 2012 5:46 pm, edited 1 time in total.

george moromisato
Developer
Developer
Posts: 2974
Joined: Thu Jul 24, 2003 9:53 pm
Contact:

Tue Nov 06, 2012 5:34 pm

Vachtra wrote:The only thing I can think of is embedding the image into the mod as an official extension the same way the main game has the images embedded in the game. Is there a compiler that can be released to do this for mods?
Yes! In fact, I believe it is already available. The latest TransData zip includes TransCompiler.exe which does just that.

All registered extensions will come in a .tdb package generated by TransCompiler and signed by the server.

User avatar
Cygnus.X1
Militia Lieutenant
Militia Lieutenant
Posts: 245
Joined: Sun Feb 24, 2008 6:21 pm
Location: Elysium Fields... I mean System
Contact:

Tue Nov 06, 2012 6:37 pm

I'd like to try this out using DigDug's awesomesauce Clear Iocrym Graphics mod, since it's just a graphic update but still requires overriding vanilla XMLs. I'd like to create a 'genuine' *.tbd as well as a 'hacked' version that makes a small change like reducing the command ship's shield HPs to 1 in the overriding xml file. I was then thinking of using a simple MD5 checksum to show the differences between the testing results.

Code: Select all

E:\TransData27>TransCompiler /?
TransCompiler v1.02
Copyright (c) 2003-2012 by Kronosaur Productions, LLC. All Rights Reserved.

  /input:{input filespec}
  /output:{output filespec}
 [/digest]
 [/dump]
 [/entities:{entity filespec}]
Yeah, can't figure out what "{input filespec}" means, and *.* doesn't seem to work :oops:

george moromisato
Developer
Developer
Posts: 2974
Joined: Thu Jul 24, 2003 9:53 pm
Contact:

Tue Nov 06, 2012 7:31 pm

Cygnus.X1 wrote:I'd like to try this out using DigDug's awesomesauce Clear Iocrym Graphics mod, since it's just a graphic update but still requires overriding vanilla XMLs. I'd like to create a 'genuine' *.tbd as well as a 'hacked' version that makes a small change like reducing the command ship's shield HPs to 1 in the overriding xml file. I was then thinking of using a simple MD5 checksum to show the differences between the testing results.

Code: Select all

E:\TransData27>TransCompiler /?
TransCompiler v1.02
Copyright (c) 2003-2012 by Kronosaur Productions, LLC. All Rights Reserved.

  /input:{input filespec}
  /output:{output filespec}
 [/digest]
 [/dump]
 [/entities:{entity filespec}]
Yeah, can't figure out what "{input filespec}" means, and *.* doesn't seem to work :oops:
Be careful with these tools because they will overwrite files if you're careless. You need to specify an XML file and a TDB file. For example:

Code: Select all

transcompiler /input:MyExtension.xml /output:MyExtension.tdb
You will not be able to create a "genuine" version of Transcendence.tdb because changing the images will change the signature.

User avatar
Cygnus.X1
Militia Lieutenant
Militia Lieutenant
Posts: 245
Joined: Sun Feb 24, 2008 6:21 pm
Location: Elysium Fields... I mean System
Contact:

Tue Nov 06, 2012 8:17 pm

If I'm being obnoxious please let me know :oops: Your (George's) utility apps are notorious for not having much in the way of documentation. That's not really a gripe, just a statement of "that's the way it is". I do like a challenge.

E: is my portable thumb drive, I've never had any problems running Trans like a portable app, kudos on that, by the way. :mrgreen:

Code: Select all

E:\Trans108l>TransCompiler /input:newIocrym.xml /output:newIocrym.tbd
TransCompiler v1.02
Copyright (c) 2003-2012 by Kronosaur Productions, LLC. All Rights Reserved.

Parsing newIocrym.xml...
error : unable to open XML stream

newIocrym.tbd - 1 error
Transcompiler.exe, Transdata.exe, and Transcendence.tdb are present in the same directory of E:\Trans108l\
newIocrym.xml is present at E:\Trans108l\Extensions\newIocrym\

Sooo, please accept my apologies, but I don't seem to know what I'm doing wrong. If I get this figured out I will make a wiki page for us all ;)

To clarify my earlier statement, I'm intending on creating a 'clean' newIocrym.tbd file in it's published form (as in how it was published on Xel), which overwrites the vanilla XML for the ICS with the new graphics, but makes no other functionality changes. I would then create a second 'hacked' newIocrym.tbd file with the ICS's shield HP reduced to 1 in it's XML code, as this is a very small change that would have a big impact impact on game play. I feel this would be very relevant to illustrate the problems and solutions being discussed on this thread.
Last edited by Cygnus.X1 on Tue Nov 06, 2012 8:42 pm, edited 4 times in total.

Post Reply