Jump to content
  • 0

Improving Avorion’s loading experience


pixtim

Suggestion

Hi Avorion team and community

 

Avorion is my favourite sandbox space-sim RPG. It seamlessly combines creation, exploration, combat, strategy and multiplayer. It is the game I’ve been dreaming about since childhood and I’m looking forward to playing it as it matures. The game delivers a comprehensive polished experience beyond what one would expect from an early access title. I would like to thank Boxelware for building such an amazing product.

 

I’d like to suggest the following features to improve Avorion’s loading experience:

 

Minimize upfront loading and rather stream content as needed

 

My understanding is that the Avorion client downloads compressed sector files up-front. It includes meta-data around object location, type, geometry, etc. The file has to be downloaded, decompressed, parsed and instantiated on the client side before the player can be presented with a playable game. Server-side however, the player is already loaded into the sector and simulation continues as normal. It appears that real-time content is still streamed to the client while the sector is being downloaded. Sectors containing many fighters load significantly slower compared to empty ones. Fighter meta-data and geometry is non-critical and should not keep the player out of the game.

 

I would like to suggest reducing what needs to be downloaded upfront and separating out content that could be streamed on-demand. We could download a sector “schema” that details object meta-data without non-critical data such as geometry, velocity, item fitting, etc. Only include basic data such as type, bounding box, etc. Objects that are not streamed  could be rendered as bounding boxes, faded out, or not rendered at all. The client could prioritize streaming nearby objects as bandwidth allows. This feature could be configurable: “download upfront”, “stream as bandwidth allows”, “lazy streaming on-demand”. This feature would benefit all players. It would especially benefit low bandwidth players and servers. Having ultra-short loading times would go a long way in improving player immersion.

 

Provide feedback on loading progression

 

One starts worrying about “infinite loading screens” when the 10nth hint is displayed. I would like to suggest adding a representative progress bar, estimated time of completion and percentage to the loading screen. Showing the player that there is a definitive end to the loading screen would boost player confidence on the stability of the game and make the loading screens more tolerable when they are needed.

 

Treat loading players as between-sectors (still in hyperspace)

 

Dying in a loading screen is rather disheartening. There are posts on the forum where player loading protection has been mentioned as a feature. I’m not sure if it’s already implemented but it appears that the latest stable branch does not protect the player while in a loading screen. It would be helpful to unload ships from the server as soon as the player leaves the sector. Player ships should be only be reloaded when entering a sector. The protection should be active server-side irrespective of the loading screen state on the client side. The feature should function for privately owned ships and alliance ships.

 

Conclusion

 

I realize that streaming content may be a massive feature. If it's not possible to implement it soon or on the long run then it would be cool to have a representative indicator of  progress on the loading screen with player protection in effect. The latter features may be cheaper to implement and would add significant value.

 

Thank you for taking the time to read my suggestions.

 

Kind regards

Pixtim

loading.thumb.jpg.5cb650f19739729c39a22da633a5add7.jpg

Link to comment
Share on other sites

4 answers to this suggestion

Recommended Posts

  • 0

Yikes, that's 8 minutes of loading time? I'm sorry for you, dude... if I had those kind of loading times, I would have a much rougher time modding the game...

 

I like most of your suggestions. They would definitely add a great deal of value to the game. Even if "the loading screen" seems like such a low-priority feature, it really isn't. You're gonna be seeing that thing at least once every time you play the damn game. In that sense it's as, and perhaps even a lot more, important as the main menu.

 

It would be helpful to unload ships from the server as soon as the player leaves the sector. Player ships should be only be reloaded when entering a sector.
This, however, is potentially problematic. Server scripts check constantly for the player; if you suddenly "didn't have" a ship, i.e. it was unloaded, you might end up getting put in a Mining Drone, or triggering the "Your ship was destroyed. You have been returned to your Reconstruction Site." behaviour. At least, that's how it is currently.

 

However! There may be a "best of both worlds" approach that's actually incredibly easy to implement, code-wise at least.

desc.invincible = true

This simple piece of code, when using local desc = EntityDescriptor() in combination with Sector():createEntity(desc), turns Entities into invulnerable objects. For example, Gates are created as Invincible Entities.

In fact, you may not even need EntityDescriptor() at all. The entitydbg.lua script shows us that you can simply call Entity().invincible = true to render an Entity Invincible at run-time.

 

So a possible solution/hotfix to what you request could be to instantly onSectorChanged() perform a

Player(playerIndex).craft.invincible = true

, and wait for the Sector to finish loading. Once it has, simply toggle Invincibility back off before dropping the loading screen.

 

For other players / AI, the player loading into the Sector might be a waste of torpedoes as they're currenly Invincible, but at least this gives you that Loading Screen Protection you crave. Perhaps you could even show some special graphics while Invincible is on in this manner, for example a green shimmer, or indeed, not even render the loading player's ship at all until loading has finished.

Link to comment
Share on other sites

  • 0

You may have a phenomenally crappy hard disk to have such long loading times, or you may be running into a rare bug :o.

Even I, who had a rig skimming all minimal requirements by a slim to inexistant margin and a old, wheezy hard disk, had loading times around 2 minutes for the most complicated sectors.

The "dying in a loading screen" has been fixed and the invincibility has been implemented, but your case seems to be so extreme the current workaround fails.

 

Shrooblord's idea is excellent ! It calls back to EVE Online's cynosural cloak: when jumping into a system the ship is cloaked for an amount of time until the player does something :). Maybe it will be implemented once cloaking is implemented :D !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...