Jump to content

Mission builders and script authors: What are you looking for in a mission editor?


FSFIan

Recommended Posts

I am making a mission editor for DCS: World that is linked to a running mission so you can check in 3D exactly where the unit you just placed ended up. (You can follow my experiments over here.; Update: Here's a walkthrough video)

 

To know what other features to focus on (you'll need to switch back to the DCS mission editor for anything else), I'd appreciate your comments on any of the following:

 

What tasks take the most time when building a mission? What annoys you the most?

 

What features (besides editing groups and units) would the editor need to support so that you could use it for the majority of your editing?

 

How do you use the trigger system and/or custom lua scripts? Which do you prefer? If you have tried to learn one of the two systems and then given up: why? Could you imagine a better alternative?

 

Script authors: I know that some scripts have people place a dummy group into the mission just so they can use the waypoints to define a polygon. I could add a feature to my editor that lets the user define a polygon and make the coordinates available in a global Lua variable in the mission.

Are there other such hacks out there that could be solved in a cleaner way?

 

I'd also like to add a GUI for adding and configuring third-party scripts. If you have written such a script: what types of configuration variables (besides integer/string/unit name/group name) does it require? Would you be willing to maintain a small JSON file describing those parameters for the GUI?

Are there configuration parameters that are best handed per-unit/group instead of globally?

 

Are there scripts that require more complex initialization than calling a function from a TIME IS MORE (1) trigger?

 

And finally, unrelated to the "mission editor" part: If you could add a web-based GUI to your mission script instead of the F10 radio menu, what would you use it for?


Edited by [FSF]Ian
Link to comment
Share on other sites

Ian;2115666']And finally' date=' unrelated to the "mission editor" part: If you could add a web-based GUI to your mission script instead of the F10 radio menu, what would you use it for?[/quote']

 

If I understand correctly then I would like to head to a web-based GUI that shows with charts for example how many factories are destroyed in the mission ,how many units etc and a map that shows real time the red and blue occupied areas.

 

Also maybe see a map with flashing areas in which the battle is hot.

 

Finally to get somehow the ability to fly recon missions about SAM & strategic targets and then get this info in the web-based Gui.

 

Dynamic campaign stuff :thumbup:

 

 

What tasks take the most time when building a mission? What annoys you the most?

-The task that takes most of my time is to connect each unit or group to a script (for example a chopper transport script).

I would love to see an interface where you can link with an easy way the groups and units to scripts.

 

-The other thing that takes much time is when you try to see if you have placed correctly units or structures inside a mission.DCS mission editor does not have a real time 3d view inside the game when you are in the editor.

 

I will try to come up with more later.


Edited by gregzagk

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

I am not sure if I got this right, but I think, it would be important that a mission editor is separate from any "game logic enhancement".

 

The mission editor should allow to get 100% compatible missions that can run completely without the presence of the new tool. It should enable the mission designer to easier lay out and design the mission, but the player later should not need to install and run anything to fly the mission.

 

Game enhancements, as I understood the possibility to inject new "meta objects" into the running mission (unit independent route definitions, dynamic stuff, etc.) or completely new functionalities ("dynamic campaign" logic, recon mission equipment, etc.) all sound great, but should be optional and should not require an external tool to be running (if it can be implemented by using scripts that will be included into the mission, then of course, it would be great! :o)


Edited by Flagrum
Link to comment
Share on other sites

If I could interface any of my scripts with your web based map it would be awesome. Some examples:

- For my Medevac script: show on the map all current medevac requests and hospitals so the players could easier plan and share the tasks between them.

- For my GCI script: show available fighters and coverage.

 

I haven't had time to look at your work yet, but it reminds me of something similar I did for ARMA I 5 years ago. Your work is impressive and I like the idea of using the JSON-library.

 

Edit: My 1000th post!

DCS AJS37 HACKERMAN

 

There will always be bugs. If everything is a priority nothing is.

Link to comment
Share on other sites

gregzagk: Yes, you understand correctly, the web interface you describe can be done. I'll have to think about how to expose it to mission designers in a way that does not require modifying the JavaScript side of things, but after reading your post I have a rough design in mind. There would be a lua function to set a data structure on the server and you could specify a HTML template with some custom tags (implemented as angular.js directives) to display that data as tables, charts or as a custom map layer.

 

-The task that takes most of my time is to connect each unit or group to a script (for example a chopper transport script).

I would love to see an interface where you can link with an easy way the groups and units to scripts.

That feature was already on my list, but I thought of it to get people who are afraid of lua to add those scripts to their missions. I didn't realize it still takes a lot of time for those already familiar with it -- you just moved it near the top of the priority list :thumbup:.

 

How would a good user interface for that look like? Would it be enough to be able to define a unit/group list with a certain name, then have a checkbox on each unit/group to specify if it is a member of that list? (The list would be available as a global lua variable in the mission.)

 

-The other thing that takes much time is when you try to see if you have placed correctly units or structures inside a mission.DCS mission editor does not have a real time 3d view inside the game when you are in the editor.

That's the first feature I started with, and moving existing units already works. Good point about static objects, I'll need to add those. Adding/deleting units and groups and editing group properties will also be implemented.

 

Flagrum: The mission editor will always produce missions that will run in regular DCS. Some features (such as separate routes that can be assigned to multiple groups) will require a different intermediate representation, but in the end the editor can just copy the route to each group it has been assigned to.

 

Eventually, I plan to have the mission editor work from a "project folder".

That folder could look like this:

 

template.miz: a regular DCS mission. Edit with the regular DCS editor to specify anything that you cannot edit in the witchcraft one (I probably won't bother to implement an interface to edit the weather settings if I could use that time on a more interesting/useful feature)

 

witchcraft_mission.json: a file where the witchcraft mission editor stores its data.

 

scripts_0: any .lua file in this folder would be executed as an init script

 

scripts_1: any .lua file in this folder would be executed from a TIME IS MORE(1) trigger and could rely on MiST being available

 

files/: Any file in this folder would be included in the final .miz file. Custom sound files would go here, for example.

 

The editor would then have a "compile" button that would produce two output files:

mission.miz: the final mission, compatible with vanilla DCS (unless you explicitly added witchcraft-only features)

edit.miz: You would load this file into DCS to use the mission editor. It would include the trigger that starts witchcraft and all units would not have any waypoints and be set to invisible and invulnerable, so they wouldn't move away or get shot.

Link to comment
Share on other sites

Ian;2115666']I am making a mission editor for DCS: World that is linked to a running mission so you can check in 3D exactly where the unit you just placed ended up. (You can follow my experiments over here.; Update: Here's a walkthrough video)

 

Very nice demonstration, it helps clarify things.

 

Ian;2115666']

To know what other features to focus on (you'll need to switch back to the DCS mission editor for anything else), I'd appreciate your comments on any of the following:

 

What tasks take the most time when building a mission? What annoys you the most?

 

What features (besides editing groups and units) would the editor need to support so that you could use it for the majority of your editing?

 

This project in my opinion has 2 ways -

1. Editor for simple mission editing assistance via a web browser, which by itself, is an excellent and great thing.

But aside of this great option which allows us to see the units live in the mission ,edit upon 3d visiuals and run lua scripts with the console, the ED mission editor by itself is a very effective and comfterable tool for simple mission editing which your tool now completes.

 

2. Live mission planner via web browser, now this IMO, is the biggest achivment this tool will give us, the impact of editing missions live and while online is a game changer, it will allow us great things!

 

Ian;2115666']

How do you use the trigger system and/or custom lua scripts? Which do you prefer? If you have tried to learn one of the two systems and then given up: why? Could you imagine a better alternative?

 

This is a hard question to answer, both are different essencially.

Obviously anyone who edits missions and uses the trigger system would be glad to be able to do custom lua scripts for his missions, the problem is that it is a very hard thing to do unless you know programming or have a good technical knowledge of computers.

 

To try and answer -

The trigger system is very straight forward and easy to use, for simple conditions it is the best way.

Custom lua scripts are much harder to do, there are simple scripts you can put in missions like the MIST functions and also use some built custom scripts but eventually these kind of things are usually used when we want to achive extra options in our missions, stuff that the trigger system is not capable of doing easily.

 

Ian;2115666']

And finally, unrelated to the "mission editor" part: If you could add a web-based GUI to your mission script instead of the F10 radio menu, what would you use it for?

 

-Map/Campaign registration.

-Voice communication.

-Side commander automatic controls.

-Creating flights.

-Controling supply/Resources of my coalition. For example, pointing more resources to rebuild a certain facility like a radar station or a factory that has armament/fuel resources.

-Controling airplane/chopper allocation per airbase.

 

Just off the top of my head :)

 

I really think the editor is awesome, and it will give us great options to editing the missions and testing scripts, but moving it at the direction of online mission planner and adding the above features would be amazing to have in DCS, it will let us open a new way of having campaigns.

Link to comment
Share on other sites

the ED mission editor by itself is a very effective and comfterable tool for simple mission editing which your tool now completes.

 

The main feature of the editor, live editing of ground units, has the goal of eliminating the time spent waiting for the mission to load over and over again. If you have to switch back to the regular DCS editor a lot, that goal will not be accomplished, so the editor has to be able to edit everything that changes semi-frequently. I also want to add some UI that helps configure third-party scripts like IADScript, Medevac, and so on.

 

2. Live mission planner via web browser, now this IMO, is the biggest achivment this tool will give us, the impact of editing missions live and while online is a game changer, it will allow us great things!

The mission planner will never be able to work on a live mission because you cannot change waypoints of client units while the mission is running.

 

-Map/Campaign registration.

Wouldn't a separate web app that is not tied to a DCS world server be better suited for that?

 

-Voice communication.

I guess you could build something on top of WebRTC, but that wouldn't do anything that TeamSpeak does not already do better.

 

-Creating flights.

Not possible for player-controlled aircraft. Maybe for AI.

 

-Controling supply/Resources of my coalition. For example, pointing more resources to rebuild a certain facility like a radar station or a factory that has armament/fuel resources.

-Controling airplane/chopper allocation per airbase.

That would be possible, subject to the limitation that you can't really mess with client aircraft from Lua.

 

btw - the walklthrough video is not available anymore for some reason.

 

Still works from here (I tried different machines and different browsers).

Link to comment
Share on other sites

Ian;2116457']

How would a good user interface for that look like? Would it be enough to be able to define a unit/group list with a certain name, then have a checkbox on each unit/group to specify if it is a member of that list? (The list would be available as a global lua variable in the mission.)

 

Yes that would be great! :thumbup:

 

Another thing that it's not so related with your new project but mostly with the online mission planner is that it's a must for a dynamic campaign the ability to save the current status of spawned groups .

 

Now it's possible to save only the status/position of the groups that were initially placed in the start of the mission.If you spawn or clone groups they won't be saved in the missionstate.

Would this be possible to add in this project or the old one?

Thanks in advance!

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

The main feature of the editor, live editing of ground units, has the goal of eliminating the time spent waiting for the mission to load over and over again. If you have to switch back to the regular DCS editor a lot, that goal will not be accomplished, so the editor has to be able to edit everything that changes semi-frequently. I also want to add some UI that helps configure third-party scripts like IADScript, Medevac, and so on.

 

TBH, switching back and forth is not that big a deal, especially when you have 2 instances open.

I usually have one on the Editor and one with the mission working, then edit in the mission reload in the other window, obviously this web based editor while the mission is online to test scripts and edit further is a great advancement but IMO is not the primary addition that I will take from it, using it as a live planner is far more important for getting large scale missions which is my personal goal in DCS.

 

The mission planner will never be able to work on a live mission because you cannot change waypoints of client units while the mission is running.

 

Do you have to change the WPs? maybe establish a grid of WPs in advance for the ground forces or air units and just move the units between those WPs on demand?

I'm pretty sure there's also an option to add WPs with MIST.

 

Wouldn't a separate web app that is not tied to a DCS world server be better suited for that?

 

That's a good question, it might be better to have it in the planner but then there's also needs to be a way to limit who joins the server, this interface might be a great way with registration, otherwise you are kicked.

 

I guess you could build something on top of WebRTC, but that wouldn't do anything that TeamSpeak does not already do better.

 

TS is obviously better, but the thing is, if you put up a server, the chances that all the participants will join your TS are slim to none.

Getting something to work like the IVC that works with falcon will be an awesome addition which will seal the deal for an online server.

Maybe even find a way to work with the IVC and DCS.

 

Not possible for player-controlled aircraft. Maybe for AI.

 

It is possible by creating all the flights in advanced, for example, each airbase will have all the slots ready in advance with a continues deactivate group action, only once the airplane is opened and the WPs entered in the web based planner, then the flight is released.

This is a workaround until we have a way to create slots in a running mission.

 

That would be possible, subject to the limitation that you can't really mess with client aircraft from Lua.

 

I was thinking more on the line of airbases/warehouses resources while custom counting enemy shot events and weapon usage, I can contribute in creating a script that would count the weapons that have been used other than guns.

The problem is getting into the resource info of the airbases/warehouses, maybe the G_ output has some informaiton on it, I saw something in a thread that showed the export of that table which indicates we might be able to alter the resource levels there.

 

 

Video seems to be working again, most of been a local problem.

Link to comment
Share on other sites

TS is obviously better, but the thing is, if you put up a server, the chances that all the participants will join your TS are slim to none.

Getting something to work like the IVC that works with falcon will be an awesome addition which will seal the deal for an online server.

Maybe even find a way to work with the IVC and DCS.

 

IVC works without Falcon also.You just put it up in a server and then whoever has the client can speak with it with the default keys (I think it was F1 and F2) . If you could somehow change the frequences from inside the aircraft or with another way (but not by alt tabbing and do it through the IVC interface :D ) then you have your online communication :)

"ARGO" DCS UH-1H DLC SP Campaign

373vFS DCS World squadron (Greece) - www.buddyspike.net

"ARGO 2.0 Project Phoenix" UH-1H DLC Campaign - WIP

Link to comment
Share on other sites

Another thing that it's not so related with your new project but mostly with the online mission planner is that it's a must for a dynamic campaign the ability to save the current status of spawned groups .

IIRC MiST keeps a list of those (mist.DBs.dynAddUnits or something), so that should be easy to add. I can't say for sure if MiST gets confused when there are pre-existing groups in the mission that follow the naming scheme for dynamically added groups, but it from a quick glance at its source code it looks like it already handles that case.

 

We will probably know more in the last two weeks of September. I will be done with my exams then and plan to spend at least one week programming on witchcraft. I am gathering suggestions now (great ideas so far, btw!) so that by the time I can start to put significant effort into the project, the back of my mind will already have figured out how the different parts can fit together.

 

TS is obviously better, but the thing is, if you put up a server, the chances that all the participants will join your TS are slim to none.

Those who won't bother to join your TS will also not bother to open up whatever web-based voice communication tool you provide.

 

only once the airplane is opened and the WPs entered in the web based planner, then the flight is released.

You cannot change anything about a client aircraft (other than deactivate the slot, which will just kick the player back to spectators and not even remove the slot from the list). The only way we would ever get the ability to mess with client aircraft slots in a running mission would be for ED to make a pretty significant change to the multiplayer architecture, which is very unlikely to happen IMO. The problem is that the clients take all their information about the client slots from their local copy of the mission file which they fetch once when connecting to the server.

 

 

The problem is getting into the resource info of the airbases/warehouses

You can read the information, but I suspect that you cannot set the resource levels. I remember looking into this before I wrote the mission planner, when I was still considering building an AI-driven dynamic campaign.

Update: looks like you can't even get at the current warehouse values, only the initial ones (through env.warehouses, which is a copy of the "warehouses" file from the mission).


Edited by [FSF]Ian
Link to comment
Share on other sites

Those who won't bother to join your TS will also not bother to open up whatever web-based voice communication tool you provide

 

I'll explain the idea, you know Falcon if I recall correctly, having a voice Com working when you connect to a server through DCS is different.

For example I might join a server with a friend but we would be in my TS and therefore won't join the servers TS, if it was built in while you join the server, the result would be different I assure you.

 

 

You cannot change anything about a client aircraft (other than deactivate the slot, which will just kick the player back to spectators and not even remove the slot from the list). The only way we would ever get the ability to mess with client aircraft slots in a running mission would be for ED to make a pretty significant change to the multiplayer architecture, which is very unlikely to happen IMO. The problem is that the clients take all their information about the client slots from their local copy of the mission file which they fetch once when connecting to the server.

 

That's exactly what I tried to explain, having all the slots up front and deactivating constantly the slots which are not available, this will make the slots available by our control which can be manipulated by resources count or "creating" flights.

It is a possibility although not a good one due to the current way slots work.

 

You can read the information, but I suspect that you cannot set the resource levels. I remember looking into this before I wrote the mission planner, when I was still considering building an AI-driven dynamic campaign.

Update: looks like you can't even get at the current warehouse values, only the initial ones (through env.warehouses, which is a copy of the "warehouses" file from the mission).

 

That is unfortunate, the only workaround I can see here is counting through a script and whenever the mission is saved to update the resource levels in the bases and FARPs as well as saving the unit positions.

Link to comment
Share on other sites

We could ignore the built-in resource system entirely. We can get the current ammo of a unit with Unit.getAmmo().

 

Once you take off, deduct the ammunition you have loaded from your airbase. If you land, add whatever you are still carrying to your airbases resources (we can extend this to ground units to allow transport of larger ammo quantities).

 

If you have loaded something that your airbase should not have access to, you get a warning. If you take off regardless, your slot just gets deactivated so you get kicked back to spectators.

Link to comment
Share on other sites

That's an option, but from expirience, people tend to ignore messages and won't understand why they are getting thrown off the plane (probably will think they have a problem with DCS and stop flying with it :)).

 

Is it possible to edit the miz file and change the resources levels of each airbase, FARP and Warehouse?

I would suspect it is possible otherwise how the the mission has these parameters.

If this is possible, we can save it with the mission save and take it to the next mission that we run.

 

 

 

Also, about the Voice Comms, I think that if for example, TARs has a way to use the in game freq that I set, then we can probably use that and set the freq of IVC, it is just a matter of getting the correct commands to run vs the IVC client.

Do you know how to export the freq I'm tuning to? if so we can write a script which should not be too complicated.

Link to comment
Share on other sites

Being able to build static unit templates and/or mixed static and normal unit templates with embedded scripts. Populating airfields/ports etc to give them life is a very tedious job at present. Being able to select multiple units and cut and paste them also would be useful (did Ajax's editor addon do this already? can't remember and I'm at work).

 

For instance I often want to put down some static aircraft and vehicles as well as 23mm AAA units and some trucks, etc which go about the airfield using mist.groundpatrol scripts as scenery in missions but this quickly becomes very painful indeed. In fact just storing units and other objects with their scripts would be nice. This would tend to make the mission building more "component" based. eg if I could open a list of components and say pick a flak zone and drop it on the map and then have a properties dialogue to set the radius, tgt side, skill, type of flak (vector, addtgt, movvec etc) and number of guns/batteries that would really speed up things. Even if the properties thing is too hard just being able to store a set of components which might include a blue high skill addtgt flak zone etc. Add the ability to select something/s on the map in the editor and add it to the component list as a population method.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...