Dungeon Editor Suggestions

Talk about anything related to Legend of Grimrock 2 here.
Post Reply
User avatar
JohnWordsworth
Posts: 1397
Joined: Fri Sep 14, 2012 4:19 pm
Location: Devon, United Kingdom
Contact:

Dungeon Editor Suggestions

Post by JohnWordsworth »

In light of some of the other threads that have popped up since the Grimrock 2 forum has opened, I thought it might be nice to share some ideas specifically for the dungeon editor / the modding process. A lot will have changed since LOG1 anyway, but the things here are based around the knowledge that Grimrock 2 will use a component based system.

Hope that this post is not out of place and that some of the ideas here are useful / not already on your list.

Custom Races, Classes, Traits and Skills
SpoilerShow
While it would be very hard and unnecessary to allow the removal of pre-existing skills or to integrate new skills into built-in game systems. It would be cool to be able add new ones. New / custom skills wouldn't need to do anything to the underlying game systems (although, you could have 'weapon skills' for new classes of weapons perhaps), but my main thought is that mod scripts could read those skill values to enable other features / special attacks on weapons etc. Something like...

defineTrait{name = "manaSink", uiName = "Mana Sink", description = "You are unable to cast magic, but are highly resistance to magical effects.", onAddTrait = function(champion) champion:setMaxStat("mana", 0); ... end, onRemoveTrait = function(champion) ... end}.

defineRace{name = "hobgoblin", uiName = "Hobgoblin", description = "...", defaultStats = {strength = 10, ...}, availableTraits = {manaSink, dexterous, ...}}

defineSkill{name = "armourer", uiName = "Armourer", description = "The higher your armourer skill, the better weapons you can craft.", onAdvanceSkill = function(champion, value) ... end, onReduceSkill = function(champion, value) ... end}

defineClass{name = "monk", uiName = "Monk", description = "...", skills = {armourer, unarmed_combat, ...}
Custom Party / Monster Conditions
SpoilerShow
This could be a system where you could define a custom condition, with it's own onStart, onExtend, onEnd hooks. For instance;

defineChampionCondition{name = "drunk", uiName = "Drunk", onStart = function(champion, duration) champion:modStat("dexterity", -10); end, onEnd = function(champion) champion:modStat("dexterity", 10); end

defineMonsterCondition{name = "blind", uiName = "Blind", onStart = function(monster, duration) monster:setViewRange(0); end, onEnd = function(monster) monster:resetViewRange(); end

Then you could just do 'champion:setConditionCumulative("drunk", 20)' or 'monster:setConditionCumulative("blind", 20)'.
Additional / Symmetrical Hooks
SpoilerShow
It would be awesome if there were not only hooks on monsters for being hit, but also hooks on weapons for when the user attacks / lands a hit. Currently, if we want to have a weapon blind a monster for a few seconds say, we have to write the logic into every monster hook. This is just a bit fiddly when you then download a monster from someone else and a magic pack from someone else - as they cannot be made to work together automatically. This is particularly useful with the above conditions suggestion for applying monster conditions on a weapon hit to any monster. Ideas for additional hooks off the top of my head;

Alcove / Item Holder Component: onRemoveItem.
Door Component: onHit, onProjectileHit.
Item Component: onAttack, onHit, onProjectileHit, onCastSpell.
Change Individual Object Properties
SpoilerShow
It would be useful to change the properties on an instance of an object. For instance, after creating a dagger, you could throw it in a forge and give that same dagger '+1' damage. This is mostly useful for randomising loot!
Object Definition Offset and Material Aliases
SpoilerShow
A lot of mods have multiple copies of the same mesh. The most common reasons for this seems to be to (a) to offset the model or (b) to change a material name. Suggestion;

cloneObject{name = "high_wood_button", baseObject = "button", modelOffset = vec3(0, 0.5, 0), materialAliases = {stone = "wood_button"}}
Custom Entity Properties / User Data
SpoilerShow
Just a minor one, but when making custom spells etc, it would be useful if we could set inert user data on entities to read back later. For instance entity:setUserData("key", "value") and entity:getUserData("key"). This would allow us to keep track of how many times a monster has been hit say, without having to store that information in a random table elsewhere mapping IDs to our data (which is a pain to clean up when things die).
Allow Modding of Core Game Data
SpoilerShow
It would be nice if modders could extend / modify the core game in some ways. A suggested way of doing this is to have a 'mod_data' folder in the project. If there is an init.lua or dungeon.lua file in that folder then they are called after the init.lua/dungeon.lua files in the game. The modder's init.lua file could therefore redefine any objects in the game world (using objects in the mod_data folder) and dungeon.lua could alter things in the game world / spawn additional creatures etc. This could be a 'post-release' feature, and using it should definitely disable Steam achievements!
onGui Features
SpoilerShow
The biggest problem I came up against with the onGui methods was the inability to scale textures, which meant I had to provide multiple copies of the QuickBar graphics. It would be awesome to crop and scale textures in some way. For instance;

drawScaledImage(filename, srcX, srcY, srcWidth, srcHeight, destX, destY, destWidth = srcWidth, destHeight = srcHeight);

drawQuad(filename, x, y, width, height);
More Audio Control
SpoilerShow
It would be very useful to be able to get an id back from playSound() and then use stopSound(id) to stop a sound that was previously started with loop=true.
My Grimrock Projects Page with links to the Grimrock Model Toolkit, GrimFBX, Atlas Toolkit, QuickBar, NoteBook and the Oriental Weapons Pack.
User avatar
Neikun
Posts: 2457
Joined: Thu Sep 13, 2012 1:06 pm
Location: New Brunswick, Canada
Contact:

Re: Dungeon Editor Suggestions

Post by Neikun »

Great thread, John.
I don't have much to add at the moment, but I can say this:
The LoG1 editor did quite a lot without even being in the original scope of the game.
That said, it also left quite a lot to be desired.
Well thought out feature requests for the editor this time around could spell for the best dungeon maker of all time =D
"I'm okay with being referred to as a goddess."
Community Model Request Thread
See what I'm working on right now: Neikun's Workshop
Lead Coordinator for Legends of the Northern Realms Project
  • Message me to join in!
User avatar
Asteroth
Posts: 471
Joined: Wed Oct 24, 2012 10:41 am
Location: Eastern U.S.

Re: Dungeon Editor Suggestions

Post by Asteroth »

I would definitely love modders to be able to add new races and skills. Will few would have the skill to make good skills, or good race portraits for that matter, it would be an awesome tool for those who can. (Sadly that's not me)
I am the God of darkness and corruption.
viewtopic.php?f=14&t=4250
User avatar
petri
Posts: 1917
Joined: Thu Mar 01, 2012 4:58 pm
Location: Finland

Re: Dungeon Editor Suggestions

Post by petri »

John's ideas are in line what we have been thinking about.

The biggest change will be the component system itself. It is now much easier to build custom objects from existing components. Also all object properties can now be modified from scripts. Regarding sounds, you can use a sound component to control the playback of sounds attached to an object, so there is no need for sound handles. Also, you can retexture models by forcing a material. This will replace all materials with the forced material. This is not as flexible as John's idea, but it's better for performance to have only one material per model anyway.
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: Dungeon Editor Suggestions

Post by Drakkan »

not sure if mentioned somewhere before, but I would definitely welcome possibility to add videos / pictures trough the game, not just intro / outro. I know it could be done with some lua scripting, but its quite difficult.
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
antti
Posts: 688
Joined: Thu Feb 23, 2012 1:43 pm
Location: Espoo, Finland
Contact:

Re: Dungeon Editor Suggestions

Post by antti »

Drakkan wrote:not sure if mentioned somewhere before, but I would definitely welcome possibility to add videos / pictures trough the game, not just intro / outro. I know it could be done with some lua scripting, but its quite difficult.
In Grimrock 2 cutscenes will be done with videos (using the open source VP8 video format) and modders can play the videos at any point they want to.
Steven Seagal of gaming industry
User avatar
Neikun
Posts: 2457
Joined: Thu Sep 13, 2012 1:06 pm
Location: New Brunswick, Canada
Contact:

Re: Dungeon Editor Suggestions

Post by Neikun »

I thought there was a blog post that confirmed that already, but I can't find it now.

Edit: Ninja'd by Antti haha
"I'm okay with being referred to as a goddess."
Community Model Request Thread
See what I'm working on right now: Neikun's Workshop
Lead Coordinator for Legends of the Northern Realms Project
  • Message me to join in!
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: Dungeon Editor Suggestions

Post by Drakkan »

so no pictures at all ? or you can choose video / cutscenes to be inserted any time trough the game ?
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
Neikun
Posts: 2457
Joined: Thu Sep 13, 2012 1:06 pm
Location: New Brunswick, Canada
Contact:

Re: Dungeon Editor Suggestions

Post by Neikun »

You can make a picture slideshow into video format. Even with only one image.
"I'm okay with being referred to as a goddess."
Community Model Request Thread
See what I'm working on right now: Neikun's Workshop
Lead Coordinator for Legends of the Northern Realms Project
  • Message me to join in!
User avatar
antti
Posts: 688
Joined: Thu Feb 23, 2012 1:43 pm
Location: Espoo, Finland
Contact:

Re: Dungeon Editor Suggestions

Post by antti »

We probably won't support the old lua scriptable cutscenes. So if you want to make a cutscene out of images, there's plenty of video editing suites that should be able to do the trick much better than our old half-assed scriptable system ever could :)
Steven Seagal of gaming industry
Post Reply