DoomRL > Modding
Uniques/exotics/assemblies/artifacts test
tinyrodent:
--- Quote from: Game Hunter on January 17, 2012, 08:43 ---I'm kinda hoping for more sulf-sufficient modders and throwing fully-usable code at people won't turn them into that, after all.
--- End quote ---
I don't agree. Throwing fully usable code at people with the source included can do just that. At the moment there is very little mod source code available that will run on 0.9.9.5 without fixes. Even the simplest wiki examples don't work, and other offerings such as Dead Simple haven't been updated.
Meanwhile there are gigantic holes in the modding documentation including Generator, AI, User Interface, Core, etc. Some stuff can be reverse engineered but not easily.
The changelog refers to two additional module types "Episode" and "Total conversion". What are the details of these?
Is it possible to make a mod which is simply DoomRL + added features? For example a new challenge; or smarter enemies; or additional badges; etc.
What are the plans for modding in 0.9.9.6 and beyond?
Game Hunter:
--- Quote from: tinyrodent on January 23, 2012, 09:10 ---Meanwhile there are gigantic holes in the modding documentation including Generator, AI, User Interface, Core, etc. Some stuff can be reverse engineered but not easily.
--- End quote ---
This is part of the work I'm doing for modding in 0.9.9.6: getting stuff properly documented. Besides the lua code, there's a lot to sift through and understand on the FPC/valkyrie side, and so it's a pretty big effort. I will REALLY try to accomplish this over the next couple of weeks (last week got bogged down by some feature additions and bug fixes).
--- Quote from: tinyrodent on January 23, 2012, 09:10 ---The changelog refers to two additional module types "Episode" and "Total conversion". What are the details of these?
--- End quote ---
Total conversions aren't actually available yet: it'll take some pretty huge rewrites in the way that DoomRL loads mods (currently it's all game-side: TCs will let you customize all the menu options as well).
Episodes are basically a way of chaining levels together to form a group of levels, much in the way that DoomRL plays now (you're placed at Phobos Base Entry, then move to Phobos 2, then Phobos 3, etc). I will explain the specifics when I update the Modding:Module page. To be honest I don't know enough off-hand to explain it here, but I will make that page top priority.
--- Quote from: tinyrodent on January 23, 2012, 09:10 ---Is it possible to make a mod which is simply DoomRL + added features? For example a new challenge; or smarter enemies; or additional badges; etc.
--- End quote ---
This is doable but not easy, at least at the moment. If you know how to make an episode then literally recreating DoomRL is real quick: as for the rest, in essence you're just altering hooks and/or prototypes, but doing this is often a pain. I don't think it'd be too hard to write some helper functions that make this more manageable for players. The exception right now is stuff like literally adding a challenge to the challenge list or badges/medals to their respective lists. Since mods don't reload DoomRL in its entirety, these cannot be altered: however, including challenge-like properties to an episode and granting the player badges/medals (which will appear in the mortem) can work.
--- Quote from: tinyrodent on January 23, 2012, 09:10 ---What are the plans for modding in 0.9.9.6 and beyond?
--- End quote ---
For 0.9.9.6, not a lot! This is because the graphical version is at the highest priority for Kornel, and he often takes care any and all API. Still, I think something I can do is provide a better ease of use for the modding system (such as the aforementioned helper functions). Since there aren't many changes, too, this gives me the opportunity to actually update the modding docs and tutorials, which (as you pointed out) are pretty badly outdated.
After that, I'm pretty sure 0.9.9.7 should have total conversions ready. I'm not entirely sure other than this, but I'll bet the other developers have some ideas.
tinyrodent:
Thanks for the reply. What's the status of HereticRL? ;)
tinyrodent:
Ok I successfully made the mod work with either 0.9.9.5 or 0.9.9.6 by wrapping the proto references. But I've struggled in vain to find any way of properly detecting the 0.9.9.6 environment during module init:
--- Code: ---local v
if (rawget(_G,"IF_FARHIT") == nil) then
v = 5
else
v = 6
end
module = {
id = "playground",
name = "Hell's Playground",
author = "tinyrodent",
webpage = "none",
version = {0,1,0},
drlver = {0,9,9,v},
type = "single",
description = "Experiment with all weapons, armor, mods, and enemies ",
difficulty = true,
}
--- End code ---
I believe what's happening is that the module init code is called more than once - and the early call doesn't have the globals such as IF_FARHIT set yet. A later call detects it properly. Is there another way to distinguish 0.9.9.5 from 0.9.9.6 during the early call? I tried all of the different globals and none of them seem to work.
tehtmi:
The module file is loaded in a fresh and separate lua system. Since it is mainly intended to provide summary information before loading the module proper, it makes sense not to load the whole module and not to allow it to corrupt DoomRL's active environment. What is included in a fresh lua system hasn't changed between 0.9.9.5 and 0.9.9.6 as far as I know.
It could be nice to allow a module to support more than one version... that can go in the wishlist but I doubt we'll see it for 0.9.9.6.
The only other way you might be able to distinguish between versions is using metatables to track the usage pattern of the fields, but I don't think that has changed either.
So, probably you'll have to deal with the version incompatibility message for now.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version