Jump to content
YouGroove

Plugins for editor :

Recommended Posts

I've seen a Youtube video showing LE3 new material editor, really cool !

My question is will it be possible to write our own panels for the editor , like some plugins ? something similar to Unity 3D addons ?

Share this post


Link to post

Probably not. If I implemented some kind of plugin system, people would probably not be happy with whatever I did. it's easier just to decide what it should do and write it that way from the start, instead of trying to tack on additional functionality after the fact.

Share this post


Link to post

You can't possibly implement all custom needs what the community wants, so there should be a simple way to call a Lua script from an menu option and to add more menu options for multiple Lua scripts, just like it's done now with thingoids.

 

The only problem with thingoids is that the only way to control them, is via keyboard shortcuts, and when you have like 10 thingoids running at the same time, you run soon out of keys. So the menu option would only replace the need to press a key which activates the thingoid.

Share this post


Link to post

Well the best option for custom tools if needed i think remains some C# with panels with windows interface and engine running in a window !

Share this post


Link to post

I don't think I can provide as good of an experience with the editor if I am trying to code it to support a bunch of unspecified behavior. It would always have shortcomings and support less than people request, and the tacked-on functionality would not work as well as having it all built in from the beginning. I want the L3 editor to be more like 3D World Studio, in terms of design style.

Share this post


Link to post

Provide good inherent functionality in the Editor for everything you think is important by all means ... but you will never provide everything that people want though Josh. A plug-in architecture can make up for that and empower community inventiveness. Yes you'll get good and bad plug-ins but people are pretty good at differentiating between the two and discarding the bad! I would seriously give consideration to a plug-in architecture as I think it opens up a lot of possibilities.

Share this post


Link to post

As much as I'm for a plugin system, maybe in 3.5 or something :) Adding it later shouldn't require to much change to the editor. The big thing would be expose everything to the plugins. Give the plugins full control over menus, options, drawing screen etc.

Share this post


Link to post

I wish plugins system.

As other people said, Unity IDE is so much appreciated since it has a great plugin system.

This will even create a new market, since some people create custom plugins, and everyone gains something:

1) LE users gain more functionalities\

2)plugin developers gain some money :-)

 

Furthermore, Josh, since you already created an asset store (great job!), I think we could add also an area for plugins (Unity3D and its "Unite" area docet).

Edited by Alessandro

Share this post


Link to post

I'm not making a poor man's unity. Things like AI, flowgraphs, and CSG are being built into the editor from the start. I don't believe in tacking on functionality after the fact. It never works as well as an integrated solution.

Share this post


Link to post

I've changed my mind on this, but we're going about it our own unique way and it may not be in the first release.

 

Instead of a rigid "plugin" design that attempts to anticipate every possible use, I think a hook/script system is better.

 

1. The editor runs all scripts in the "Scripts/Start" folder at startup.

 

2. Scripts can add a hook. Hooks can be added for an event, or they can be added for a bunch of predetermined points in the program. For example:

AddHook(HOOK_MATERIALEDITOR_OPEN,"MyMaterialPluginInit")
AddHook(HOOK_EMITEVENT,"MyMaterialPluginHook")
AddHook(HOOK_MATERIALEDITOR_SAVE,"MyMaterialPluginSave")

You can add a menu action the user can add to the menu to call your plugin:

function AIEventHook(event)
if event.id==EVENT_MENUACTION
	if GadgetExtra(event.source)=="OpenAIEditor"
		aiwindow=CreateWindow("AI Editor",0,0,800,600,mainwindow,WINDOW_CENTER|WINDOW_TITLEBAR)
		okbutton=CreateButton("OK",20,20,80,30,aiwindow)
	end
end
if event.id==EVENT_WINDOWCLOSE
	if event.source==aiwindow
		ActivateGadget(mainwindow)
		HideGadget(aiwindow)
	end
end
end]

CreateMenuAction("AI Editor","OpenAIEditor")
AddHook(HOOK_EMITEVENT,"AIEventHook")

So instead of being a "plugin" system, it's more like the editor is semi-open source, while remaining more structured than an open-source program, and preventing the branching that always occurs with open source stuff.

 

It seems almost too good to be true, but as far as I can tell it seems like this would allow for unlimited flexibility, without screwing up the editor source code. You could use this to add a plugin with an interface for PureLight, or any number of other things, and everything would occur right in the editor, within the same interface.

Share this post


Link to post

I'm really glad you've had a change of heart on this Josh and yes, I don't really care how its implemented so long as it allows us to add functionality. Your suggested methodology looks a good one so it's a big 'thumbs up' from me.

 

I have no issues with the timing of this as I don't feel there is any need for it in early releases of the engine.

 

we're going about it our own unique way

isn't that what makes Leadwerks stand out from the crowd :)

Share this post


Link to post

Soon we shall start an empire and destroy unity mwuhahahHa

Semi open source is nice LE just keeps getting better and better

Next thing we need is dmm or physx then dynamic weather

Share this post


Link to post

Wow! I'm very happy! I came back from holidays just now, and I found this great news!

I think this will be a good promising year for us ;-)

Share this post


Link to post

Wow great news :(

 

In fact by plugin, the goal is not to replace the egine functionnality but lot more to alow each programmer to make unique tools for unique tasks.

 

For example someone could make some special panels dedicaced to quickly create a top down Third person Shooter , with on panels :

buttons, sliders etc ... to adujst anything like : spawning , speed, life , special zones on the level etc ...

 

Or it could be a special tool for special needs like extended entitie management and placement with new attributes things, why not a field like

"Class Name" say this entitie will be ruled by that class ...

Or something like Unity someone could perhaps achieve to create some "visual logic editor" (some thing for non programmers at all) product , why not ?

Even more why not some visual physic editors fro anything like solids, rope system etc ....

 

 

I think it can only boost LeadWerks interest and popularity :(

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...