Jump to content

[REPORTED]S_EVENT_PLAYER_ENTER_UNIT not fired in MP setup


Recommended Posts

A scripting engine issue...

 

In a multi player setup (MPS), when a player enters any unit from a client connected PC, the event S_EVENT_PLAYER_ENTER_UNIT is not fired on the server!

 

When a player enters a slot (a plane) from a client connected PC, the S_EVENT_BIRTH is fired on the server, which is okay. But again, no S_EVENT_PLAYER_ENTER_UNIT is fired on the server.

 

When a player enters an already alive unit using the CA module (so on the map, select a unit and press ALT-J) on a client connected PC, the S_EVENT_PLAYER_ENTER_UNIT is not fired on the server.

 

This is a problem, because there is no CPU efficient way to know when a player enters a unit in a MPS.

 

The event S_EVENT_PLAYER_ENTER_UNIT is correctly working in a SP setup though. As a workaround, the only way now for me to know if a player is in a unit or not, is to iterate through the set of units and check the player name, and do this continuously. This is not ideal ...

 

I will leave it up to DCS developer team to evaluate the urgency of this issue. I can imagine that testing and fixing this may require some effort.

 

FC


Edited by BIGNEWY
TITLE

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

So we had a conversation after this on slack and working around the problem is possible with some game overhead. But I wanted to lead the discussion into where the design is going with DCS, because we, as second guessers are quite blind in this regard. To develop a framework without having access to the specific product direction can just be hit or miss and wasteful because tomorrow some things might just be... GONE. And HAS occurred in DCS history (hello/goodbye client:destroy()), welcome API net.kick(id, message). I saw this 18 months ago: https://forums.eagle.ru/showthread.php?t=158634

 

Let's talk about Dedicated server, the API introduced in 1.5 and ED's design direction here.

 

"Product manager hat goes on."

 

WISH:

"I want to build a product that is better suited to managing server side operations, that handles players in a multiplayer environment and provides tools for admins to control missions without there being risk to player experience. This is to satisfy my multiplayer community, which is important to me for growth of the more complex areas of the sim."

 

COUNTER: "Dedicated server is expensive in dev time to do and has less impact on my target market, the single player experience."

 

PROPOSAL: "Give the community a set of tools they can do it themselves with...saves money."

 

What have we seen? 2015, release of 1.5 from 1.2 - a set of API tools appear that allow management to the server specifically giving access to slots, connections, players now with UIDs. Ciribob made part of this completely accessible to non skilled mission designers and customisable. Yet look at the post reads? 3-400? That's your bog standard forum reader bumping into it. You can tell from the forums what sells and where your market is. "A-10C has a graphical defect with the rivets under the number 1 pylon." 1000's of views. "Multiplayer arguments over balancing in PvP" a lot of views, but not as many. "Single player missions" high, "Multiplayer how to scripting for admins that make MP better" bleh....several hundreds of views. representatively, theres how you spend your budget, it's oversimplified but the figures are there.

 

So where is DCS headed? Wherever it is in the case of Multiplayer, history says it's going slow. I've been here 10 years and my hair is starting to go grey and not just on my head.

 

The events firing for entering on multiplayer sit somewhere between, "Pointless, because the API supports what the community has asked for, with MP" and "Legacy because we are developing something the enhance it more server side, just very, very slowly". I don't see it being fixed because the point is from ED's side, "Who needs to assess and count clients outside of managing entrance and exit to the server from the server side?" And that subset of people number dozens worldwide.

 

Rhetorical question to ED here, "Do you see the consumer benefit to fixing this and what is the effort level required?"

 

Our question: "Has ED developed server tools with the API to replace many of the traditional functions in the game?"

 

Answer is, we CAN see where this is headed. Look at the development of the API and documentation since November 2015. Look at the number of GameGui.lua scripts we can see populating servers now. I just checked the API again for the first time in ages and it's pretty much a tutorial. Someone payed for that effort in dev time and that's the only development that's really active at this time.

 

Unfortunately our problem exists in communicating with the two different LUA environments. As it says in the API, that environment can only see "states". The design of it is for server management, but there's not much taking into account doing more clever things with it and putting them into games bar moving flags around, which seems almost archaic.

 

Now we CAN workaround being unable to detect the event of a player being in a unit inside the game only, but I expect it to fall into decay for the historical explanation above and the direction ED has already taken in design. But my advice would be to build a moose connector for the player activities that can manage the information between the states, rather than rely on these MP events which are clearly being deprecated.

 

Until then, Players will have to have less than optimal scripting that may impact their performance if they want dynamic content based on what slot they jump to on a server.

 

As a side note, ED, the question above, about benefits to the end user, the answer is that we want players to join a multiplayer server and have content tuned for the slot they take. We don't want fighters spawning when they take an A-10C slot, we want ships for Viggens, low threat vehicles and transport for helicopters, fighters for Mirages and so on. But not at once, since the engine can't handle that.and neither can players.

 

 

 

 

A scripting engine issue...

 

In a multi player setup (MPS), when a player enters any unit from a client connected PC, the event S_EVENT_PLAYER_ENTER_UNIT is not fired on the server!

 

When a player enters a slot (a plane) from a client connected PC, the S_EVENT_BIRTH is fired on the server, which is okay. But again, no S_EVENT_PLAYER_ENTER_UNIT is fired on the server.

 

When a player enters an already alive unit using the CA module (so on the map, select a unit and press ALT-J) on a client connected PC, the S_EVENT_PLAYER_ENTER_UNIT is not fired on the server.

 

This is a problem, because there is no CPU efficient way to know when a player enters a unit in a MPS.

 

The event S_EVENT_PLAYER_ENTER_UNIT is correctly working in a SP setup though. As a workaround, the only way now for me to know if a player is in a unit or not, is to iterate through the set of units and check the player name, and do this continuously. This is not ideal ...

 

I will leave it up to DCS developer team to evaluate the urgency of this issue. I can imagine that testing and fixing this may require some effort.

 

FC

___________________________________________________________________________

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

Link to comment
Share on other sites

Find the following VIDEO showing what the error is about and how to simulate it.

 

 

The demonstration missions to re-simulate this error can be found here:

https://github.com/FlightControl-Master/BUG_REPORT_MISSIONS/tree/master/BUG-001%20-%20S_EVENT_PLAYER_ENTER_UNIT

We hope that feedback can be given what is the root cause of this, and if this can be fixed soon.

 

Sven


Edited by FlightControl

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

Steps to reproduce:

1. Run the attached mission as a server-host in multiplayer.

2. Enter a unit and shoot and leave a unit. Regard messaging and logs.

3. Observe the S_EVENT_PLAYER_ENTER_UNIT event is fired and recorded by the ED event handler

4. Connect to the same server as a second client only.

5. Repeat the tests. Notice that this different client no longer fires the enter unit event, but continues to show birth, death and other events as normal.

 

Also present on 2.0 live.

BUG-001 - S_EVENT_PLAYER_ENTER_UNIT - DCS 1.5.6.4818.miz


Edited by Pikey
numbering. can't count :)

___________________________________________________________________________

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

Link to comment
Share on other sites

  • ED Team

Hi guys

 

and thanks for the effort and PM.

 

This one is reported internally already,

 

I will see what I can do, but no promises

 

#0026597

  • Like 1

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

  • ED Team
Find the following VIDEO showing what the error is about and how to simulate it.

 

 

The demonstration missions to re-simulate this error can be found here:

https://github.com/FlightControl-Master/BUG_REPORT_MISSIONS/tree/master/BUG-001%20-%20S_EVENT_PLAYER_ENTER_UNIT

We hope that feedback can be given what is the root cause of this, and if this can be fixed soon.

 

Sven

 

 

I have added your youtube video to the report, BN is looking into more info as well. Its been around for quite a while, will see if we can poke the hive :D

64Sig.png
Forum RulesMy YouTube • My Discord - NineLine#0440• **How to Report a Bug**

1146563203_makefg(6).png.82dab0a01be3a361522f3fff75916ba4.png  80141746_makefg(1).png.6fa028f2fe35222644e87c786da1fabb.png  28661714_makefg(2).png.b3816386a8f83b0cceab6cb43ae2477e.png  389390805_makefg(3).png.bca83a238dd2aaf235ea3ce2873b55bc.png  216757889_makefg(4).png.35cb826069cdae5c1a164a94deaff377.png  1359338181_makefg(5).png.e6135dea01fa097e5d841ee5fb3c2dc5.png

Link to comment
Share on other sites

I did some testing with your test mission FS and it appears to me that it might be a unit based bug. I am testing in DCS 2.0.5.3889, I am a single server client and when I jump into a CA unit I get the same results that you show in your video where the get user name is a blank string.

 

 

MlXg2Yk.jpg

 

Then I edited your mission to include a spit, mustang, f86, and gazelle. In those units my client name appears. This might explain why it was believed to be fixed in previous versions.

 

Zfs5poP.jpg

 

MZOM2h9.jpg

 

gvv6690.jpg

 

kMMMDNA.jpg

 

I am not sure what this means, I'll continue to host this mission if anyone else wants to log in and test for themselves as I do not own another machine to log into the server so I can not test it as an isolated client at the moment.

 

Server name: DoW Test Server

Password: dow


Edited by Whiplash

[sIGPIC][/sIGPIC]

"Adulthood is like looking both ways before you cross the street and then getting hit by an airplane."

Dogs of War Dedicated WWII Server Thread

Link to comment
Share on other sites

All this is directly on the server, no clients involved. I know. Try now to connect a client to the machine. No event is fired.

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

  • 2 weeks later...

Yes I noticed such a problem on that event a few month ago when writing the very early version of ATME ; same for S_EVENT_PLAYER_LEAVE_UNIT in last 2016 but now fixed by ED. So I think the best way is to have another approach than using thoses events.

 

Here is my thread : https://forums.eagle.ru/showthread.php?t=173505


Edited by sunski34
Link to comment
Share on other sites

Yes I noticed such a problem on that event a few month ago when writing the very early version of ATME ; same for S_EVENT_PLAYER_LEAVE_UNIT in last 2016 but now fixed by ED. So I think the best way is to have another approach than using thoses events.

 

Here is my thread : https://forums.eagle.ru/showthread.php?t=173505

 

No avail for the the other approach. For ground units, the Unit:getPlayerName() returns a blank string ...

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

Just use coalition.getPlayers(...) to have all players in a mission when needed.

After, a basic logic has to be written to manage that combined with S_EVEN_BIRTH

 

That's working.

 

As you can see, I reported such a same problem in Sept 2016 so ... wait and see


Edited by sunski34
Link to comment
Share on other sites

Just use coalition.getPlayers(...) to have all players in a mission when needed.

After, a basic logic has to be written to manage that combined with S_EVEN_BIRTH

 

That's working.

 

As you can see, I reported such a same problem in Sept 2016 so ... wait and see

 

Wait, spare the work. Tanks DO have an event birth, but you cannot use the event birth to detect if a person entered a tank...

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

I didn't test that with CA. So actually, I never know if a player took the control of a AI unit. But of course, S_EVENT_BIRTH is not good in that case.

 

Did S_EVENT_PLAYER_ENTER_UNIT work in that case in the past, before DCS 1.5.4 or that event was already limited to aircrafts ?

Link to comment
Share on other sites

I didn't test that with CA. So actually, I never know if a player took the control of a AI unit. But of course, S_EVENT_BIRTH is not good in that case.

 

Did S_EVENT_PLAYER_ENTER_UNIT work in that case in the past, before DCS 1.5.4 or that event was already limited to aircrafts ?

 

Since the release of 1.5.0, this event stopped working, which now about

 

.... 2 years?

 

Sven

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...

So this is the answer:

 

From BIGNEWY:

 

https://forums.eagle.ru/showthread.php?p=3260553#post3260553

 

Reported already 0026597

 

It is on the list but has a lower priority then other issues currently

 

Please do not make new threads for the same issue

 

https://forums.eagle.ru/showthread.p...YER_ENTER_UNIT

 

thanks

 

Okay, is there a good understanding what is the impact of this error at ED?

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

  • ED Team
So this is the answer:

 

From BIGNEWY:

 

https://forums.eagle.ru/showthread.php?p=3260553#post3260553

 

 

 

Okay, is there a good understanding what is the impact of this error at ED?

 

 

We have a large bug list, blocks / crashes come first then major issues, these are dealt with before minor issues, and this is currently a minor issue.

 

ED a fully aware of the impact, but it does not stop users from enjoying MP currently.

 

I understand your frustration however your favourite bugs are in a queue like all the other bugs.

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

It never worked actually. It never did.

 

On top:

 

getPlayerName() is returning a blank string for CA units in MP. So you don't know WHO is in the CA unit.

 

I will post a test mission to resimulate this problem in MP.

One that clearly demonstrates why this is needed, which is:

 

1. One cannot detect which player is in which CA unit, which impact the scoring.

2. Menus and other settings are generated upon the S_EVENT_PLAYER_ENTER_UNIT event, which is not detected, and therefore, no menus are generated.

 

I have tried every workaround imaginable that i could think off. And it just is not doable to work around this issue.

 

1. BIRTH events are working for planes, but are not valid for CA units, as they are already alive.

2. getPlayer returns a blank string, which means that you can detect that there IS a player in the CA unit, but you don't know WHO.

3. coalition.getPlayers() is neither returning the player.

 

So, in a nuttshell. Until this issue is fixed, ground operations support in MOOSE will be very limited...

 

- No scoring for players hitting and destroying CA units.

- No group menus set for players entering a CA unit.

- No messages upon specific events directed to CA groups where the player is in.

 

In other words, tasking for CA units is simply not working and is not functional. Only for planes and helicopters.

 

...

[TABLE][sIGPIC][/sIGPIC]|

[/TABLE]

Link to comment
Share on other sites

  • ED Team
It never worked actually. It never did.

 

I understand, I did not say it did work.

 

On top:

 

getPlayerName() is returning a blank string for CA units in MP. So you don't know WHO is in the CA unit.

 

I will post a test mission to resimulate this problem in MP.

One that clearly demonstrates why this is needed, which is:

 

1. One cannot detect which player is in which CA unit, which impact the scoring.

2. Menus and other settings are generated upon the S_EVENT_PLAYER_ENTER_UNIT event, which is not detected, and therefore, no menus are generated.

 

I have tried every workaround imaginable that i could think off. And it just is not doable to work around this issue.

 

1. BIRTH events are working for planes, but are not valid for CA units, as they are already alive.

2. getPlayer returns a blank string, which means that you can detect that there IS a player in the CA unit, but you don't know WHO.

3. coalition.getPlayers() is neither returning the player.

 

So, in a nuttshell. Until this issue is fixed, ground operations support in MOOSE will be very limited...

 

- No scoring for players hitting and destroying CA units.

- No group menus set for players entering a CA unit.

- No messages upon specific events directed to CA groups where the player is in.

 

In other words, tasking for CA units is simply not working and is not functional. Only for planes and helicopters.

 

...

 

Scoring for CA is a known issue and will be addressed in the future.

 

As mentioned the S_EVENT_PLAYER_ENTER_UNIT event is reported, I can not do a lot more.

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

  • 3 weeks later...

Lack of priority regarding S_EVENT_PLAYER_ENTER_UNIT bug

 

So I have noticed ED is aware of the issue covered in this thread , and I assume they have knowledge to fix it. So its "boiling down" to priority.

 

Many of us is developing missions in a multiplayer environment, and want to make task oriented missions due to dynamic attendance. Its hard to predict how many players are joining into a mission. Having a way to determine if a player is present in a multi player environment, is essential to make missions scaled to current presentation of players.

 

I do realize this bug is not directly seen by the common players, but for mission makers its quite frustrating. However it is in all interests that dedicate mission makers have their tools intact in order to make good missions for the common multiplayer. The bug has been around for some time, and I now think it is proper to address my concern about this, with hope ED is listening, and gives this issue an other priority.

 

Regards...

 

:)

Moose framework contributor

Link to comment
Share on other sites

  • Recently Browsing   0 members

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