Jump to content

Mission design under valued by ED?


FubarBundy

Recommended Posts

Besides LUA Predicate, the issues you have with LUA have absolutely nothing to do with LUA. What you describe sounds like you are talking about the DCS API which is separate from LUA.

 

I'm not talking about the language, but about the API. Please check the reference, and what FlighControl was referring to:

 

My biggest gripe is the lack of documentation. There's just not enough information available and you know it's bad when google doesn't help.

 

My second biggest gripe is that lua really doesn't do a whole lot - i mean yeah you can respawn some units and setup patrols but it's really really limited in what it can do. In fact you can do almost anything you need to in game with triggers, there isn't a whole lot that lua has a purpose for unless you are building mods where the support is better.

 

Third is the general unstableness of mission design in general - one day it will work, the next day it wont.

 

As I understand it, this post was aimed at how Lua intefaces with DCS, not the language in itself. I certainly have some gripes with the language, but this is not the current topic, and it fits the bill in the DCS context so no problem there :)

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

Hello Redglyph,

 

Yes and no.

 

If you know those frameworks, then i think you know what they provide and do, good for you!

 

But I get your view on DCS. Yes, it has limitations, many.

However, DCS is still a fantastic simulator, isn't it?

[...]

I never said otherwise. So, same answer as before:

I'm just pointing out a few simple improvements, in answer to a previously asked question.

 

And lua predicates, if you think that is a problem;

who still needs that? Some lines of code hidden deeply in your mission file?

Well, then why provide Lua to mission designers at all? I'm not sure I'm following you. Being able to insert scripts is a powerful tool, you are not forced to use it if you don't want to.

 

It's not more hidden than the rest, a GUI-based development is always awkward in nature when it comes to easily getting the whole picture and reading back the code. Granted, the small text boxes don't make for easy reading, I usually copy/paste them from separate files I keep (in a revision system and so on). You could have the whole Lua code in a separate file - even if that's pretty awkward at the moment in the ME, and only put one function call per DO SCRIPT or LUA PREDICATE.

 

There are other ways of dealing with lua code in missions: Frameworks:

1 mission lua file contains all.

No triggers in your miz files

No lua predicates in your miz files

No waypoint lua code in your miz files

No configuration of options etc on waypoints, but dynamically set.

Copy/paste code

Upgrade, release

Except you can't access the cockpit, and probably some other features. But otherwise, yes, why not. Personally I prefer to use a mix of both for efficiency and get the best of both worlds. For instance I'm not keen on writing down the coordinates of the waypoints, triggers and so on, then coding them in Lua code (I've done it in some case, it's a bit tedious).

 

So, I understand what you're saying, and you're probably a good lua coder too, but had to read behind the lines to get that context.

 

Just an additional question, you find LUA an awkward language. What is not an awkward language according to you?

May I remind you that LUA is the de-facto standard in the gaming industry for scripting?

 

FC

 

I'm not a good Lua programmer, just began using it. And sorry, I'm not getting involved in a debate over programming languages here, it would quickly get out of topic ;)

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

@RedGlyph,

 

Some smiles appeared :-) Not going into details. Lets leave it by this.

 

Just fyi, the LUA predicate thing is since the introduction of 1.5 out of order.

About 1,5 years now.

 

Fc

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

I'm not talking about the language, but about the API. Please check the reference, and what FlighControl was referring to:

 

 

 

As I understand it, this post was aimed at how Lua intefaces with DCS, not the language in itself. I certainly have some gripes with the language, but this is not the current topic, and it fits the bill in the DCS context so no problem there :)

 

Ah, Redglyhph, I was referring to that other users post but replied to your reply of it but was intended for the original poster and not you. You were basically saying the same thing as me I think. I should have gone back to the original post to quote that!! My bad.

Link to comment
Share on other sites

@RedGlyph,

 

Some smiles appeared :-) Not going into details. Lets leave it by this.

 

Just fyi, the LUA predicate thing is since the introduction of 1.5 out of order.

About 1,5 years now.

 

Fc

Hehe, I saw that on the known scripting engine issues. Hopefully it'll get fixed at some point.

 

It's not always easy to convey one's point of view in posts. Don't get me wrong, I find DCS a great sim environment and community. But I've started building missions more seriously for a few weeks and found it a very frustrating and tedious experience, so I'm simply trying to identify a few simple ways to improve the possibilities.

 

Ah, Redglyhph, I was referring to that other users post but replied to your reply of it but was intended for the original poster and not you. You were basically saying the same thing as me I think. I should have gone back to the original post to quote that!! My bad.

 

I thought it was a bit confusing :D All sorted then :)

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

Whilst not being an elegant solution, DAWS savestate has been saving mission states for quite a long time now. The next iteration will bring it into the UI of DCS for simplicity. Yes , its a mod, but then without it, you can't save a mission. I don;t know that it's simple, as you say, the code runs into thousands of lines, so I think the developer would like to defend the view that it's simple, as he has worked on it for many months, but then i'm sure you used the word in a throwaway sense.

 

Regarding the persistence, it should really be something that does not require the user to modify DCS (specifically, removing the sanitizeModule in MissionScripting.lua). If a developer wants to share missions, those should be independant from the installation; requiring the users to modify files they may not understand, and to do it after each update, is an awkward solution.

 

For accessing cockpit this gets into a different design kettle of fish, access to affect clients from the server side is not allowed, the reasons seem obvious to me, the thought of allowing talented coders access to my controls in Multiplayer are quite scary. This applies to adjusting a helicopters weight in MP too at one level. Nevertheless access to positions and indicators is possible and is done in all the tutorials for start up that you see, so unsure what the limitation you need resolved is.

 

The functionality is already there, so I don't think making it available in Lua scripts would endanger anything. I've already mentioned one use-case that could greatly benefit from this improved API, yes it's possible to access the positions and highlight indicators, but not from a script. So if you want your tutorial to check a group of switches and show the one that is wrong, you have to write tens of triggers which is a nightmare - I know, I've done it ;) Whereas it would only take a few lines in Lua, would be easier to maintain and extend, and much simpler to port to other missions.

 

LUA Predicate is often spoken of. I'm not finding a need for it, you can trigger LUA in other ways, it's just a defunct box until resolved, if at all. If you need to run Lua there are conditions and so on that cover the use case, but I haven't thought of one that doesn't match.

 

The alternative is a separate continuous trigger that sets a flag. It's awkward, impacts the performances, and is more difficult to understand or debug. As for the rest, I'm not sure I understand what you are saying, actually :D Anyway, if it's there and often spoken of, there's a reason, it would make life easier for those who need such a link between Lua and the triggers (link that must be there, since it's not possible to access the cockpit and other things from Lua). ;)

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

Can you run me through a LUA predicate example, please? What's wrong with the DO SCRIPT? I genuinely don't come across the need, perhaps I can join the support.

 

As for the additional comments, I'm not sure where the point is going now or what you are trying to make understood about LUA. I think I was responding to the comment about LUA being less than ideal, but it seems a little distant and hazy now, feel free to elaborate on your original point, I don't share the view as I understood it.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

we have to face the fact that ED's focus is not on mission design (or I should say a game play), their focus is on detailed implementation of aircraft. This sim is about aircraft selection and quality. The mission aspect is a secondary thing. It's given to us in a form of mission editor and scripting means, but we are pretty much left there alone.

i5-9600K@4.8GHz 32Gb DDR4 Asus TUF rtx3080 OC Quest Pro Warthog on Virpil base

Link to comment
Share on other sites

we have to face the fact that ED's focus is not on mission design (or I should say a game play), their focus is on detailed implementation of aircraft. This sim is about aircraft selection and quality. The mission aspect is a secondary thing. It's given to us in a form of mission editor and scripting means, but we are pretty much left there alone.

 

Well, yes. You are stating the obvious and the start of this whole thread. I think the point of this whole discussion is that mission design tools and possibilities, features of the editor and support for mission makers is under valued and could use some love. I feel that everyone making missions, including myself, has "faced it" multiple times, but it is infuriating to have something that breathes so much life and continued enjoyment so low on the priority list. And when you feel that steps are beeing taken to actually make your life as a mission designer harder, well, you kind of want to talk about it.

If it only was a detailed sim with a map and the oficial missions this simulator would be dead a long time ago, hence the feeling of under value.

 

For the record, I know ED is not trying to make mission designers lives miserable on purpose.

Link to comment
Share on other sites

Can you run me through a LUA predicate example, please? What's wrong with the DO SCRIPT? I genuinely don't come across the need, perhaps I can join the support.

 

I know several people were using something like this in a predicate:

 

if not Group.getByName('whatever') then

return true

end

 

Then with the action a do script for whatever they want. Its just a different way of doing things that is quasi UI with scripting. Perhaps its easier for them to wrap their head around than just doing it all with a script. I used it occasionally out of sheer laziness because it made it really easy to mix triggers and scripting for whatever purposes I needed it for.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Damn, I thought we were talking about the LUA predicate in the advanced waypoint actions, didnt realise there was two of them. In which case seems like a somewhat powerful condition and now makes sense on why it would have to be run continuous as above. That's a shame. It's right on the border of writing a while loop or an entire script, I can see how this dropped inbetween, since it kind of suggests, hey If I can write lua, what do I need a GUI interface for?

 

I think a lot of us were 'brought up' on one-liner scripting with MIST and do the hybrid thing, I certainly do, which is an interesting point on how DCS mission editing has evolved.

I know several people were using something like this in a predicate:

 

if not Group.getByName('whatever') then

return true

end

 

Then with the action a do script for whatever they want. Its just a different way of doing things that is quasi UI with scripting. Perhaps its easier for them to wrap their head around than just doing it all with a script. I used it occasionally out of sheer laziness because it made it really easy to mix triggers and scripting for whatever purposes I needed it for.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Can you run me through a LUA predicate example, please? What's wrong with the DO SCRIPT? I genuinely don't come across the need, perhaps I can join the support.

 

I know several people were using something like this in a predicate:

 

if not Group.getByName('whatever') then

return true

end

 

Then with the action a do script for whatever they want. Its just a different way of doing things that is quasi UI with scripting. Perhaps its easier for them to wrap their head around than just doing it all with a script. I used it occasionally out of sheer laziness because it made it really easy to mix triggers and scripting for whatever purposes I needed it for.

 

I had two cases where I wanted to use that recently.

 

In the first one, I had a test that was a bit too complex to code in trigger conditions. I was using a trigger zone to determine when an aircraft was North/South/East/West of it, for example for a circuit without many zones all around to get the same effect. The test would typically check "is that North of the zone?" and when it's the case, proceed to the next mission step.

 

I replaced that by a continuous action that sets flags to tell whether it's N/S/E/W, but it had the disadvantages I said earlier.

 

In the second test, I needed to test whether an aircraft was parked in any of several spots at TTR. Doing that with zones would just be a nightmare, so I gathered all the coordinates of the spots in a simple Lua list, that I'm checking against the unit's coordinates to return a "yes, it's in one of those", and optionally which one for the action part ("good, you are in spot ...").

 

Again, I had to split that. Trouble is that this test is a loop over all the spots, and having to run it continuously is a bit of a shame, so I have to guard those dummy continuous actions with yet another flag... it's just a bit messy, where a simple LUA PREDICATE would have been so much easier and cleaner.

 

If course, perhaps it's possible to do it entirely by code, inserting a check in a scheduled task that verifies the condition in Lua, and removes itself when necessary to emulate a ONCE. So there are work-arounds, they're just more complicated.

 

In general, I'm not keen on huge trigger condition lists (especially the OR which is awkward to handle since there is no parenthesis and you have to repeat the conditions), and sometimes it's much easier to express in a LUA PREDICATE. Except when it comes to cockpit or avionics checks, since we can't access them from the API, otherwise it would be another powerful combination.

 

You teach this guy to start an A-10C or a Mig-21bis, for example, and you want to check that he's correctly set-up before doing something serious like starting the engine, taking off, or to make sure he's within the correct enveloppe during the landing phase. Just compare how much effort it takes with either method and you should be convinced :) In Lua I'd just call a function with a list of arguments/value pairs to check, it would verify and highlight or say what is wrong. In the current system, it would require at least one trigger/condition/action set by cockpit element, probably in double to highlight them / mention what parameter has to be taken care off (too low for landing, too slow, too fast, ...). You quickly end up with big drawings on your walls and pulling your hair out :D

 

It's been said that mixing code and "GUI-oriented" design is not optimal ("hidden code"). Sure, it's never perfect, but I believe that if a developer has a method and remains consistent, it should not be a problem. For example the function library can be kept in a file, or in the first "DO SCRIPT" of the mission, and the other triggers only call those functions, keeping them quite simple to read, understand and modify if necessary. The GUI part has enormous advantages like presenting the waypoints, the map, list of aircraft, zones. The visual aspect helps, I don't see myself doing the whole mission in pure code, but that's a personal preference. It's most probably shared by many while the pure code approach is preferred by many others. In most cases it's a winning combination, but I think those 2-3 simple items I mentioned would amplify the possibilities and make it easier.

 

Anyway.

 

That being said, there are great campaigns out there with no Lua script. But I guess there are always people trying to peek and poke in the engine to bring new types of events in the missions, and that's what is great about DCS.

 

Even with non-Lua'ed missions, taking care of the ME (and I've seen very nice and helpful improvements lately, discreete though they might seem), the AI, the infrastructure..., is in favour of a larger and better DLC choice. And I'm convinced aircraft alone don't make a (military) sim, it's great to learn one... for a while, then you want to do something with what you've learned.

 

But that must be hard to sort out relative priorities between that, the graphics and weather, to the terrains, the aircraft, the DLCs, the bugs ... I don't believe mission design is under-valued, I just think the team is stretched thin over all the huge current developments.


Edited by Redglyph

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

I know several people were using something like this in a predicate:

 

if not Group.getByName('whatever') then

return true

end

 

Then with the action a do script for whatever they want. Its just a different way of doing things that is quasi UI with scripting. Perhaps its easier for them to wrap their head around than just doing it all with a script. I used it occasionally out of sheer laziness because it made it really easy to mix triggers and scripting for whatever purposes I needed it for.

 

By the way, what happened to the hoggit wiki? :shocking: Hope it's just a temporary glitch, such a helpful resource :)

System specs: Win7 x64 | CPU: i7-4770K | RAM: 16 GB | GPU: GTX 980 Ti 6 GB | Thrustmaster HOTAS | MFG rudder pedals | SATA3 SSD | TrackIR

Link to comment
Share on other sites

By the way, what happened to the hoggit wiki? :shocking: Hope it's just a temporary glitch, such a helpful resource :)

 

It is back up now. It occasionally goes down, its just a matter of messaging the guy that runs it. I put all the documentation on there because the ED wiki wasn't editable for a long period of time. Now that the ED wiki is back I should probably start transferring documentation over there at least as a backup.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

  • 5 months later...
I know several people were using something like this in a predicate:

 

if not Group.getByName('whatever') then

return true

end

 

Then with the action a do script for whatever they want. Its just a different way of doing things that is quasi UI with scripting. Perhaps its easier for them to wrap their head around than just doing it all with a script. I used it occasionally out of sheer laziness because it made it really easy to mix triggers and scripting for whatever purposes I needed it for.

 

Grimes, is this working for you? It doesn't for me since 1.5.

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

  • Recently Browsing   0 members

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