Jump to content

DISCUSSION: Asteria and 2.3


  • You cannot reply to this topic

15 replies to this topic

#1 Odyssey

Odyssey

    Member

  • Members
  • 306 posts

Posted 05 May 2014 - 01:57 PM

The problem with Asteria loading in 2.3 appears to lie with the ship status system. From what I understand, this entity is handled by LUA scripting and applies itself to every map on load. This generates a table of variables that change based on input from other entities that are scripted to take advantage of it. If the features aren't implemented, the system is essentially inert with all the values set to 0, but the table still exists and the values count as entities.

Asteria is an extremely advanced map with an entity count that pushes the upper limits of what rpgxEF can handle. It can't load in 2.3 because this universal table is counting entities towards the limit that didn't exist in RPG-X 2.2 beta 8.4.x. While the most obvious solution would be to use an older version of RPG-X, developments in 2.3 have gone a long way towards achieving stability and increasing overall map compatibility, aside from Asteria. It would be a shame to sacrifice these advances just to use one map.

A new iteration of the rpgxEF engine or a re-design of the ship status system may be necessary to address the problem we currently face. In the meantime, however, would it be possible to release a version of 2.3 that temporarily disables this feature?


Posted Image

#2 Richard Evans

Richard Evans

    {S31} Admirals' Team

  • Members
  • 172 posts

Posted 05 May 2014 - 07:52 PM

It's a shame that Asteria doesn't work in 2.3 :/


follow.png

 

Richard Evans

Risa - The Star Trek Social Media Website

http://goo.gl/gJsMU9


#3 GSIO01

GSIO01

    UberGames Developer

  • UberGames Developer
  • 1,021 posts

Posted 06 May 2014 - 07:27 AM

We are working on it. But it might need some time to find out what the issue is.

 

The ship health system does not use any entities automatically. It's only there if the mapper implemented it in the maps script file. We don't run any Lua scripts automatically, just the maps script file if it is available.



#4 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 08 May 2014 - 12:18 PM

I've already taken a look at it, and from what I gather, the issue lies somewherer in the client connect functions. A dedi runs fine with asteria, however while recieving the gamestate message the client locks up. Since it is most likely that either selfestruct or shiphealth, both of which send a base message at game start, cause the lockup, I'll look at it over the weekend.



#5 ~TF~

~TF~

    Advanced Member

  • RPG-X Tester
  • PipPipPip
  • 41 posts

Posted 08 May 2014 - 05:58 PM

When I developed the Station Vanderbilt map I faced the same problem, I think.

Especially at the newer versions of the station and RPG-X 2.3 I had the problem, that the clients simply 'locked up', as Harry said. Sometimes only, when a certain number of clients connected to the map. I had the problem solved by as I had cut up some out of the map. I had reduced the .locations and the .usables file to a minimum, I had replaced many entities with Lua functions (especially target_speakers, which were a lot on the map) and then I did many 'stress tests' with more people on servers, so that I could release a more or less stable version again. (the last version)

That are my experiences about this problem.

sig_nujil2.jpg


#6 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 09 May 2014 - 05:47 PM

Okay, I've been mocking around with the code, and this is what I came up with:

 

On the Game Side, The Client is recognised as connected, so the G_ClientConnect in G_client.c runs trough. However, down the road, G_Client_Begin is not called. 

So I did some Research an traced down the function that listens for the gamestate: GetConfigString in cl_ui.c. Since ti does not recieve an OffSet it turns itself in an infinite loop, causing the locked up screen. 

 

The question I'm wondering now is: Does the server actually send the gamestate out? Since I don't yet know where to find that some more research is up tomorrow.



#7 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 11 May 2014 - 11:21 PM

Okay, I have some good and some bad news: The good news is: We did not mess up the network Protocoll, the server is still sending the packets. The bad news: Neither the selfdestruct, nor the shiphealth system are the coulprid. Both only affect the game state when spawned and only take effect after the client has finished spawning. On Asteria, we're not there remotely...

 

I still believe it has something to do with the gamestate being corrupted in one way or another. Still have to figure taht out...



#8 Odyssey

Odyssey

    Member

  • Members
  • 306 posts

Posted 12 May 2014 - 08:41 PM

Could it have something to do with the sheer number of entities Asteria is utilizing? Maybe it can't keep track of the gamestate. As far as I know, no other map has come this close to the rpgxEF entity limit.


Posted Image

#9 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 12 May 2014 - 11:04 PM

I could happily live with that if it wouldn't beg the question: Why is it running in 2.2.8, but not in 2.3.x, there's no change in the limits there



#10 Odyssey

Odyssey

    Member

  • Members
  • 306 posts

Posted 12 May 2014 - 11:22 PM

Aside from enabling LUA, /reloadtorpedos (which is still kind of broken, by the way), and self-destruct, what systems were changed in 2.3?


Posted Image

#11 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 13 May 2014 - 08:59 AM

Shiphealth has, however none of these systems hook into the game during gamestate if not enabled. In turn, that means it is one of the underlying changes we made to the code. Tracing that could take a very long time.

 

Also, Lua in it's current form has been enabled in 2.2.8 and only recieved some touch-ups, so it is doubtful that it could be the issue.



#12 Odyssey

Odyssey

    Member

  • Members
  • 306 posts

Posted 14 May 2014 - 03:47 PM

It was definitely a change made between 2.2 beta 8.4.6 and 2.3 beta 1 that caused Asteria to break. That's about all I can contribute at this point. Hope you manage to find the cause!

EDIT: I just had an epiphany. Between 2.2 beta 8.4.6 and 2.3 beta 1, I believe there was a fix to the code that prevented the "Signal 11" server crash error on maps like DH_RPG_USSAurora and RPG_Runabout. That error has something to do with map segments being loaded into memory, doesn't it? Maybe it's that change to the code that isn't playing nicely with Asteria.


Posted Image

#13 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 01 June 2014 - 11:24 PM

It wasn't so much loading tha map, as that is loaded into memory on connect. In fact it was decoys with an indefined class being the issue, crashing everyone that had the Radar-UI from the Tricorder or the Rifle. good sugestion tho.

 

I'm having a week off, so I'll take a look at this again, see if I can figure it out



#14 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 04 June 2014 - 12:28 PM

It is the entity count!

After Griffin send me the entity statistic I tried to disable various spawn functions to lower the total amount of entities. After some iterations I found out, that there can currently be no more than 1404 entities on any given map, including clients. The game just can't register them any more.

Now why this is now, but has not been in 2.2.8 I don't know. Looking at how instable those versions could be, I don't think it's a bad thing.

I've already told Griffin and showed where entities could be saved without comopromising the maps functionality. It's his decition on where to go from here.



#15 GSIO01

GSIO01

    UberGames Developer

  • UberGames Developer
  • 1,021 posts

Posted 07 June 2014 - 07:31 PM

I have some things in mind that could be the cause but it needs to evaluated.



#16 Harry Young

Harry Young

    Ubergames Lead Lua Coder

  • UberGames Developer
  • 291 posts

Posted 22 June 2014 - 06:35 PM

On another note: RPO has tried to use the map in Plot, and only a max of 4 Clients were able to connect. As it stands, this map is unplayable.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users