Reverse engineering (was:Temporary modding) thread

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
Post Reply
User avatar
Halk
Posts: 169
Joined: Wed Apr 11, 2012 8:18 pm

Re: Reverse engineering (was:Temporary modding) thread

Post 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
User avatar
Jack Dandy
Posts: 476
Joined: Fri Mar 02, 2012 2:22 pm
Location: Haifa, Israel

Re: Reverse engineering (was:Temporary modding) thread

Post 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.
UncleSporky
Posts: 17
Joined: Fri Apr 13, 2012 2:28 am

Re: Reverse engineering (was:Temporary modding) thread

Post 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?
User avatar
Sol_HSA
Posts: 681
Joined: Fri Mar 02, 2012 3:10 pm
Location: Nowhere whenever
Contact:

Re: Reverse engineering (was:Temporary modding) thread

Post 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".
Reminder: moderators (green names) don't work for almost human. | http://iki.fi/sol/ - My schtuphh..
seebs
Posts: 268
Joined: Sat Apr 14, 2012 8:58 pm

Re: Temporary modding thread

Post 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. :)
seebs
Posts: 268
Joined: Sat Apr 14, 2012 8:58 pm

Re: Reverse engineering (was:Temporary modding) thread

Post 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.
User avatar
Sol_HSA
Posts: 681
Joined: Fri Mar 02, 2012 3:10 pm
Location: Nowhere whenever
Contact:

Re: Reverse engineering (was:Temporary modding) thread

Post 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. =)
Reminder: moderators (green names) don't work for almost human. | http://iki.fi/sol/ - My schtuphh..
seebs
Posts: 268
Joined: Sat Apr 14, 2012 8:58 pm

Re: Reverse engineering (was:Temporary modding) thread

Post 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.
UncleSporky
Posts: 17
Joined: Fri Apr 13, 2012 2:28 am

Re: Reverse engineering (was:Temporary modding) thread

Post 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? :)
User avatar
Sol_HSA
Posts: 681
Joined: Fri Mar 02, 2012 3:10 pm
Location: Nowhere whenever
Contact:

Re: Reverse engineering (was:Temporary modding) thread

Post by Sol_HSA »

I'll wait for a dev to answer to that. My guess would be "yes".
Reminder: moderators (green names) don't work for almost human. | http://iki.fi/sol/ - My schtuphh..
Post Reply