Jump to content

Dev Blog 2/25/2018 - Interface and Networking Updates!


panda

Recommended Posts

984549685492.png

 

Interface and Networking Updates!

Feb. 25th 2018

 

Network Status

I've gone an added a server status label to the main menu that displays the server status.

 

3b56e3195da5da652d4354a7ca26194a.png2aa114ae3c3a15f47b7ccc5600a9db35.png


If the client has yet to try to connect to the server it will display "Unknown".
If it's in the middle of an attempt it will display "Connecting...".
If it currently has a connection to the server it will display "Online".
It will display "Offline" if it does not have a connection to the server (but will keep trying to connect to the server).
If the server is online but an error is encountered when trying to approve a client connection the client will display "Network Error".
All of these labels of course are translatable, and are listed in the "Server" string group in the Beta 5 Client localization files.

When the client and server do not match in versions (i.e. client is Beta 4.8.1 and the server is Beta 5.0.0) the client will just display "Offline". This is also the case if the client is Beta 5.0.0 and the server is Beta 5.0.1. I plan on discussing with JC whether or not we will make every version change breaking or if we will make Major/Minor version differences breaking instead, but at least for the time being build/revision differences will also matter. One caveat however is that I do not plan on having the client report which version the server is currently on in the event of a version mismatch, partly because I'm not sure I can get any messages from the client to the server in this case, but also because if someone discovers a vulnerability in a particular server version I would rather them not know which version the server is. While this won't be of much help at the moment if they know which version of the client corresponds to the server, if we do make version numbers not need to match entirely this will at least slow them down.

In addition to the server status label, if the client can't connect to the server the Login and Register buttons will also be temporarily disabled until the client is able to connect.


Server status and disabled Login/Register buttons when the client is connecting or failed to connect to the server.

eedeb10eb8f918649abc29f3c3518aae.png


Server status and enabled Login/Register buttons when the client has connected to the server.

a291ad42e6b8e3f799b70befaa351e72.png
 

In-game Interface Updates

In Beta 5 there are also two significant interface changes to in-game, the first being the removal of the options and exit buttons and the introduction of a menu button. The default graphic for this button is the three horizontal bars in the bottom right-hand corner of this screenshot. Clicking that, or by default pressing the Escape key will open the Menu. The options screen is accessible from here, as is the Exit to Desktop button. The close button is there for closing the menu without the escape key. All of these strings are translatable in the "IngameMenu" section of the client localization files.

In addition to these there are also two presently disabled buttons, "Go to Character Select" and "Log out". For the time being these are disabled because we do not have code to facilitate either of those actions, and I'm not sure just how much code needs to be changed at the moment (it's at least more than I've done so far) so they're on the back burner for now (with no guarantee they will be in Beta 5).

e82a4735d6cac9f9bd4a1ad66a37c0ad.png

The second major change to the in-game interface is the addition of the map name to the player box in the top left. Because of this the level label has been moved to the left side by default, but there is also a combined name and level label that is disabled by default that can be made visible instead of the name and level being in separate labels. The combined label is a special translation label, and its only real usage is to control the number of spaces between the name and the level. The level string is used regardless for translation, and the formatted value (i.e. "Lv. 100") is passed in as argument {01} in the NameAndLevel string (with name being {00}). The name itself is just the plain player/entity name though, so it doesn't have a string entry in the translation file.

4967dba2274dbd64cdf203c1367e27ed.png

The Level and Name labels separately.
48564d076c9cba100ea5cfdb793527b0.png


The combined name and level label.

6d05c76f4fd0ca95566535112bf6d156.png



What's Next

I plan on making some changes to the network code, hopefully to allow for logout, and make more improvements to the interface code. If I make the changes I have in mind to facilitate logout more easily, I am also considering exploring adding in a JSON server statistics API that can be queried in real-time. JC is also looking into database changes in order to add MySQL support to the server, but the jury is still out on whether or not we will end up implementing this in Beta 5, or whether it will need to wait for Beta 6. I still intend to look into import and export functionality for keybindings, and other UI improvements.
 

As always, feel free to post comments and questions below! We are excited to hear your thoughts on our progress!

 

-The Intersect Development Team

Link to comment
Share on other sites

21 hours ago, panda said:

 

 

3b56e3195da5da652d4354a7ca26194a.png2aa114ae3c3a15f47b7ccc5600a9db35.png




The second major change to the in-game interface is the addition of the map name to the player box in the top left. Because of this the level label has been moved to the left side by default, but there is also a combined name and level label that is disabled by default that can be made visible instead of the name and level being in separate labels. The combined label is a special translation label, and its only real usage is to control the number of spaces between the name and the level. The level string is used regardless for translation, and the formatted value (i.e. "Lv. 100") is passed in as argument {01} in the NameAndLevel string (with name being {00}). The name itself is just the plain player/entity name though, so it doesn't have a string entry in the translation file.
 


The combined name and level label.

6d05c76f4fd0ca95566535112bf6d156.png


 

 

 

Thats sweeeeeeeeeeet. Little things that makes huge difference, nice job!

Link to comment
Share on other sites

This is a good new feature, but I think MapName has a better place in the right or mid side of the screen, for example, if the map has a big name (ex.: Great Hall of Giant Kings of the Florest 1-1), so it will not fit well in the little space of the player info. One option it to give the creators the choice of where to place the MapName using some string type option. 

Link to comment
Share on other sites

28 minutes ago, StrikerMDD said:

This is a good new feature, but I think MapName has a better place in the right or mid side of the screen, for example, if the map has a big name (ex.: Great Hall of Giant Kings of the Florest 1-1), so it will not fit well in the little space of the player info. One option it to give the creators the choice of where to place the MapName using some string type option. 

Like everything else in the UI you have full control over positioning.

Link to comment
Share on other sites

1 hour ago, StrikerMDD said:

Can we control where it be place too? For example, in the bottom of the Speed Actions Menu instead of the player status? Or we can only change the position "inside" the domains of the player info window?

 

I believe what you are referring to will require a source edit, an easy one. However, I could be wrong. 

Link to comment
Share on other sites

1 hour ago, panda said:

Like everything else in the UI you have full control over positioning.

 

1 hour ago, StrikerMDD said:

Can we control where it be place too? For example, in the bottom of the Speed Actions Menu instead of the player status? Or we can only change the position "inside" the domains of the player info window?

 

Panda misspoke. Without a quick source edit it can only be relocated within the player's entity box.

Link to comment
Share on other sites

1 minute ago, jcsnider said:

 

 

Panda misspoke. Without a quick source edit it can only be relocated within the player's entity box.

I didn't entirely misspeak -- they can define how large they want the box to be, and can effectively put it anywhere.

Link to comment
Share on other sites

53 minutes ago, SoggyCow said:

Very excellent! One small issue, any of you have a 4K monitor? Window Mode in 4K makes everything in the game very small hard to see. Scaling options would be awesome for those that have big monitors. Fullscreen is great though ;) 

I got an extended HDMI cable to plug into my 4K TV to work on this but I have yet to do so.

Link to comment
Share on other sites

  • 1 month later...

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...