Jump to content

Recommended Posts

Posted (edited)

Obsidian has promised that the game will be moddable - a smart move if they can do that with limited extra effort, as it will probably extend the lifespan of the game quite a lot.

 

However, they have not said anything about just what can (or cannot) be changed or added, so I am offering some speculations, based on a few assumptions.

 

The assumptions are the following:

  • Obsidian is not going to do anything to specifically prevent modding or make it unnecessarily difficult to access or modify the various assets of the game, like encrypting the assets.
  • Obsidian is going to implement a significant chunk of the game through scripts, instead of hardcoding.
  • Obsidian will make examples, documentation and some file format information available to modders.

However,

  • Obsidian is not going to release anything resembling a full-blown toolkit.
  • Obsidian's workflow will use professional tools that only a minority of modders may have access to.
  • Obsidian might release utilities or plugins for converting original assets to whatever form the game uses, but those plugins might be only for the professional tools mentioned above.
  • Obsidian will not write utilities for converting assets from their "in-game" format back to the original versions.

Based on experience with past games, I think those are realistic expectations, so what does this mean for the various categories of game "stuff"? Below is my list of various categories - an updated and revised version of a list I had posted elsewhere.

 

SCRIPTS

 

I am going to assume the scripts will be like in several older games - they can be triggered when you enter/exit an area, when you interact with objects, or when certain dialogue options are chosen (and so on).

 

Anyone wanting to add/or modify quests, companions, (or the ever-popular "romances", to name a few examples) will need to be able to modify the existing scripts. Depending on how things are implemented, it might even be possible to add new classes or modify the existing classes significantly.

 

The big question here is if the scripts will be stored in source format or as some sort of compiled bytecode. In the first case, things are much easy - it should be trivial to extract/replace/add/modify them as needed - If we get tools from Obsidian, fine - otherwise we'll write them.

 

In the second case, we have a bit of a problem - the community might have to write a decompiler, or Obsidian would have to release the script source separately for it to be possible to modify the game behaviour.

 

Another issue is which script language will be used. If it is Obsidian's own language, we would appreciate a language reference document, but perhaps they will just use one of the languages already supported by Unity3D (personally I think it would by kind-of appropriate if the used "Boo", but perhaps that's just my warped sense of humour).

 

DIALOGUE

 

I am going to assume we will have support for extensive dialogue trees, with conditions that can enable/disable certain branches. I expect the dialogue will be separate from the scripts (but you will be able to execute scripts as a result of dialogue selections). Obsidian will presumably have some kind of a dialogue editor - I think there is a fairly good chance they will make it available. If not, the community can write one. if we receive (or reverse-engineer) the file format.

 

ITEMS/LOOT

 

It should be very easy to add new items using existing models, but having special abilities, lore or stats. As for adding items with new models, see below....

 

MODELS

 

Compared to games like NWN2 and DA:O there will presumably be relatively few models included with the game - most of the models created for the game will have been "baked" into the bitmap backgrounds. It is possible that Obsidian might release some of those models, but I would not bet on it.

 

What we will have in-game will be models for items (armours, weapons and such), characters and monsters. Perhaps Obsidian will provide information on the file format - if not, it can be reverse-engineered with minimal effort. Now, Obsidian will presumably have some utility for converting models from whatever 3D modeling tool they use to the in-game format - something like a 3DS Max plugin, for example, and if there are no legal/licensing issues, they might well release that tool.

 

What Obsidian will not have, however, will be any tools for converting game models back into something that can be edited in a 3D modelling tool. The community will have to develop that. It should be relatively trivial to make the tools for reskinning existing models, but (as always), handling animations might be complicated and take time.

 

In other words, it should be very easy to reskin armour and weapon models. and possible to to add new ones.

 

MODEL ANIMATIONS

 

Animated models have been more of a hassle than static ones, and if Obsidian uses some of the more advanced Unity features, like Mecanim (which is a part of the soon-to-be-released Unity 4), things might get even more complicated for modders.

 

It should be relatively easy to reskin existing monsters, though - to get the "pink giant spiders of doom", or make minor changes like converting horses into unicorns.

 

Right now, I really don't know how difficult it will be to add new animated creatures, or modify the animations of the existing ones. I expect we will hear something about this when Obsidian starts talking to people interested in the modding aspect.

 

I do not expect it will be feasible at all to implement reactive animations (characters dodging enemy blows and such). Forget about that!

 

 

TEXTURES

 

Textures for the in-game models should be relatively straight-forward, but again, as the models will be relatively few in number, so will the textures. I expect the textures to be of pretty high resolution, so I see limited need for a high-res mod.

 

AREAS

 

This is the big one. Making the game moddable requires us to be able to modify existing areas - for example to add new interactive objects, or to add new exits. For this we need file format information - we can reverse-engineer the files, but getting the information from Obsidian would save a lot of time.

 

We also need to be able to make new areas. Now, perhaps we will be able to use the free version of Unity for that - but keep in mind that the free version has some limitations compared to the pro version - for example regarding shadows.

 

Initially, however, I expect people might be recycling existing areas, but replacing creatures and NPCs.

 

Also, Obsidian uses professional tools for the rendering, with artists applying "touch-up"s afterwards. That may not be feasible for individual modders, which is one reason why I expect to see most of the larger mods to be released by groups.

 

It is very easy create things like trigger zones and walkmeshes in the Unity scene editor, but (and that is a pretty big "but") I have no idea how easy it will be to convert such scenes into a working game area - I can only hope that Obsidian will provide any necessary conversion tools or file format information.

 

AUDIO

 

This should be a relatively problem-free area. I expect Obsidian to use some standard file format (mp3/wav/ogg) and to provide information on how to add new sound effects, music and such.

 

CUTSCENES

 

I have a big question mark here. We have no idea how important cutscenes will be in the game or what tools will be used to make them - so anything I might say would be utter speculation.

Edited by Frisk
  • Like 2
  • 3 weeks later...
Posted

Moreso than PE, W2 or SRR, I'd dearly love top see an updated NWN style game get KSed. Good mod tools should be standard with any good CRPG. Imagine, Fallout, Baldur's Gate, etc. would have 1000s of adventures today and would still be played regularly. I could honestly care less about all the stretch goals they made for this game - I'd happily trade them all for a good, easy to use editor.

  • Like 1

Midget soothsayer robs bank. Small medium at large!

  • 4 weeks later...
Posted

I think you're forgetting that Unity itself is a free download. Now, while Obsidian is pretty unlikely to provide modders with the raw game project to rebuild with their changes, they could provide a template project. The template could include raw game assets like models, textures etc. and provide hooks to in game events and code objects. When you're done and have built it and then drop it in a specific directory and the engine picks it up as an add-on module.

  • Like 1

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Posted

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Posted (edited)

I think you're forgetting that Unity itself is a free download. Now, while Obsidian is pretty unlikely to provide modders with the raw game project to rebuild with their changes, they could provide a template project. The template could include raw game assets like models, textures etc. and provide hooks to in game events and code objects. When you're done and have built it and then drop it in a specific directory and the engine picks it up as an add-on module.

 

No, I didn't forget about Unity - in fact, a while ago I got http://www.amazon.co...ment essentials and have been playing a bit with it. I did not think of this template project you suggested - I'm not sure if it would work, but if it is doable, it would be pretty neat.

Edited by Frisk
Posted

Unity itself can also be used to create level editors... (see vid) I wouldn't worry about it too much. These guys are pros, and they know what the community wants from their RPGs. They're likely working on making their own level editor in the engine to speed up in-house level creation. Modifying that for community use probably won't be the kind of work that making the NWN editors was. With Unity providing the engine and full professional suite of building tools they're saving tons of time. There's also a host of 3rd party plugins out there for Unity they can license. Chances are better than not that they can find a host of modder friendly tools already.

 

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Posted

Oh, forgot to mention that when I mentioned template... I wasn't talking about creating a game template. I meant a game asset template that you can then modify export from unity. The game itself would need to import this at runtime. I don't know if this can be done, but it's plausible.

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Posted

Oh, forgot to mention that when I mentioned template... I wasn't talking about creating a game template. I meant a game asset template that you can then modify export from unity. The game itself would need to import this at runtime. I don't know if this can be done, but it's plausible.

 

Hmmm...OK, but I don't know Unity well enough yet to say if this is possible/feasible, so I'll just wait and see.

  • 2 weeks later...
Posted

Yes, I did some reading tonight and I think it's entirely possible through something called a prefab, which is basically a game-object generic. They could attach scripts to a ModderPrefab that load the details from a file and then call an Instantiate function to place the object in the scene. We could look at the prefab and see all the events, delegates and constants (read: hooks in NWScript) that exist for say, an actor, but not the main loop code or scene processing code outside of the handlers in the prefab. You then essentially add your own mesh, texture, dialogue, location and transform value (facing direction) and it reads it from file and drops it into the scene.

 

Now, the scripting is a more difficult subject. Being able to add complex logic really depends on whether or not they're going to acquire a run-time script processor, which some 3rd party Unity developers have made specifically for allowing modder access to your game. Or, if they're willing to come up with their own rudimentary configuration language that's parsed into generics at startup. There are run-time script processors available for most languages including LUA in the Unity add-on store. But, the real gem for this if it's there, and live in Unity's MonoDevelop engine is something called compiler as a service. If that is functional at run-time, which it's most definitely not on iOS, but I don't know about windows; that will be the real entry point for anything you would want to do.

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Posted

The excitement over this game made me go and buy GoG's D&D pack, and I've been dicking around with the Aurora Toolkit.

It's probably too much to hope for to have a toolkit as or more robust than that thing, right?

Posted (edited)

This looks promising, provided that this class can be called at runtime. i.e. If it's not just for making Unity Editor plugins...

 

Editor Window Class

 

As a matter of fact, some other classes FileUtil, Instantiate and Generics could make for dynamic content loading at runtime (mods). If scripts can be imported this way we're golden. Even if the compiler-as-a-service isn't able to crunch at runtime we could always download monodevelop or Unity Free and crunch them there.

Edited by Luridis

Fere libenter homines id quod volunt credunt. - Julius Caesar

 

:facepalm: #define TRUE (!FALSE)

I ran across an article where the above statement was found in a release tarball. LOL! Who does something like this? Predictably, this oddity was found when the article's author tried to build said tarball and the compiler promptly went into cardiac arrest. If you're not a developer, imagine telling someone the literal meaning of up is "not down". Such nonsense makes computers, and developers... angry.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...