Page 6 of 11

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 3:44 pm
by Halk
Oh it was worse than adfly, it was sharecash. They don't just show you adverts, they make you sign up for stuff.

viewtopic.php?f=3&t=1478

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 4:39 pm
by Jack Dandy
Hmmm, I see.

So let's say, for example:
If a modder would want to make a level that features retextured version of the game's tiles, or a monster that has the same model as the monsters in the game but slightly altered, he'll have to wait for something that's released by the devteam, yeah?

Let's see if I got it right: Is it likely that AH will release a program akin to Bethesda's G.E.C.K for their Fallout games, which allowed people to fiddle with existing assets, adding stuff to them, and release them as mods?

And what you meant was that doing so WITHOUT an official program (by hacking into the game's files and all that) and distirbuting it would be a big no-no.

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 5:47 pm
by UncleSporky
Then this thread is already in violation, correct?

Manually decompiled level 1 lua in the first post (pastebin)

Modified console.lua distributed in this post (dropbox)

Actually, I'd like to know more about what constitutes breaking the rules.

If we create a new level01.lua from scratch, new map, new enemy spawn locations, etc. are we allowed to distribute that? It still uses all the functions and definitions you created for LoG, though. Is that distributing a modification of your work, or something entirely new?

Can we submit files for review to be sure we aren't distributing something we shouldn't be?

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 6:51 pm
by Sol_HSA
Yes. Those are in violation.
UncleSporky wrote: Actually, I'd like to know more about what constitutes breaking the rules.

If we create a new level01.lua from scratch, new map, new enemy spawn locations, etc. are we allowed to distribute that? It still uses all the functions and definitions you created for LoG, though. Is that distributing a modification of your work, or something entirely new?
Since it distributes stuff ripped from the game (ie, the functions and definitions), it's in violation.
EDIT: I misread the question; if you're just using symbols (not code that defines the symbols), I think it's OK. You couldn't do much otherwise.

Instead, if you write a program that performs the following steps:
1. Extracts the level01.lua from the game data
2. Performs modification on it based on user modified data (let's call this delta)

..then you can distribute the program that performs the above steps (which I'd call a "patcher"), plus the delta (since the delta only includes things done outside Almost Human), that would be OK by the rules.

Alternatively, wait and see what AH comes up with regarding modding support.
UncleSporky wrote:Can we submit files for review to be sure we aren't distributing something we shouldn't be?
In theory yes, but that would, again, add to AH's workload. I can't answer to this question.

Rule of the thumb is: if what you're distributing has any data that's copied from the game data, it's "tainted" and can't be distributed. It's entirely possible to make mods - by doing the abovementioned patcher - without your data being "tainted".

Re: Temporary modding thread

Posted: Mon Apr 16, 2012 6:51 pm
by seebs
antti wrote:I moved this topic to the new Mods subforum. We also wrote some rules about modding the game, please read them here: viewtopic.php?f=14&t=1560&p=14856#p14856

I hope the rules are reasonable for you.
Pretty standard. I will point out that there is something of a theoretical legal question in whether or not people are allowed to charge for code they wrote, which is that if their code doesn't include any of your code, it's not obvious what rights you have over it. I don't personally care much, but I'd point out that this has been a sticking point for people in the past.

All I ask is that you enable the developer console for us in some way that doesn't require messing with an exported/copied Console.lua. :)

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 6:53 pm
by seebs
Sol_HSA wrote:
UncleSporky wrote: Actually, I'd like to know more about what constitutes breaking the rules.

If we create a new level01.lua from scratch, new map, new enemy spawn locations, etc. are we allowed to distribute that? It still uses all the functions and definitions you created for LoG, though. Is that distributing a modification of your work, or something entirely new?
Since it distributes stuff ripped from the game (ie, the functions and definitions), it's in violation.
I think "uses all the functions..." doesn't mean "includes the functions" but "includes calls to those functions which will only work when invoked inside the LoG environment". So it doesn't include anything ripped from the game.

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 7:03 pm
by Sol_HSA
seebs wrote:I think "uses all the functions..." doesn't mean "includes the functions" but "includes calls to those functions which will only work when invoked inside the LoG environment". So it doesn't include anything ripped from the game.
If it only calls the functions (doesn't include source, decompiled source, or bytecode from the game data files), it's ok. Otherwise you couldn't do much..

or well.. I suppose it might be possible to do some magic there too, but that edges on being ridiculous.

Anyway, the API is not supported for the time being, so AH might change it at any time. Just another thing to keep in mind. =)

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 7:25 pm
by seebs
Yeah, not expecting any mods written against the current environment to be very permanent, but it might be fun to play with.

I'm more interested in the debugging stuff for now.

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 7:37 pm
by UncleSporky
seebs wrote:I think "uses all the functions..." doesn't mean "includes the functions" but "includes calls to those functions which will only work when invoked inside the LoG environment". So it doesn't include anything ripped from the game.
Yeah, that's what I meant.

For example, here is a level I just made:

Code: Select all

mapName("The Best Dungeon")

mapDesc([[
################################
#....##....#####################
####.##.########################
####.##.########################
####....########################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
################################
]])

startingLocation(1,1,1)

function startitout()
    spawn("ceiling_shaft",1,1,0)
    
    spawn("wall_text_long", 4,1,1)
        :setWallText("What is up Sol_HSA! \n Is this ok to post?")
    
    spawn("torch_holder", 3,1,0)
        :addItem(spawn("torch"))
    
    spawn("peasant_breeches",4,3,0)
end

function ohcrapasnail()
    spawn("snail",10,1,3)
        :setAIState("guard")
end

startitout()
ohcrapasnail()
(I actually have no idea whether this would work in-game or not...)

Is it ok to post that? :)

Re: Reverse engineering (was:Temporary modding) thread

Posted: Mon Apr 16, 2012 7:39 pm
by Sol_HSA
I'll wait for a dev to answer to that. My guess would be "yes".