July 2nd 2018 by SDGNelson
RCON, UI stuff and summer plans...
The contents of this post was meant to be done last week, but other things came up. It's been a busy three weeks!
From the 18th through the 21st (which was extended through the 22nd due to a cancelled layover) I was away visiting the development team of a secret unannounced Unturned project. Unfortunately their marketing department said I can't tease anything, but I'm excited to say more later this year. 😀
There have been a bunch of important 3.x updates to focus on recently, but the last major one on my radar at the moment is hopefully upgrading the Unity version. I've seen a lot of requests to put my time back on 4.0, and I can't wait to get back up to full production either!
Improving server admin tools is a high priority, so a couple weeks back I began implementing remote-console support. This ended up taking two forms:
- RCON Protocol
- JSON HTTP API
The first is fairly similar to other games, allowing you to execute admin commands without being connected to the server. One useful difference (and this is true for the web API too) is that you can assign multiple RCON keys with different permissions, rather than one global password for the server.
I think the second will be really useful for custom web control panels. It allows the game server to receive HTTP requests, parse them into commands (e.g. /rcon/teleport?key=XYZ&from=player1&to=player2) and return the results as JSON. For example a custom web page could show a player list with buttons to kick, ban, etc.
In the versions of 4 so far I'd made some simple widgets for input buttons in UMG, but this past week I converted them to Slate (to boost performance) and introduced some new features:
One of the most useful features I added is inline input prompts, so that text messages can contain these. For example the above image is formatted using:
Look around with <Axis2D X="Look_Yaw" Y="Look_Pitch"/> and use <Axis2D X="Move_Right" Y="Move_Forward"/> to move Press <Action Name="Reload"/> to reload or <Axis Name="Zoom"/> to zoom
Buttons are animated to press in as you press the physical one, and the controller thumbsticks wiggle around when you move them. It switches between keyboard and controller icons based on what you used most recently if you're using both.
The style is a little wonky right now between flat colors vs gradients. I've already touched on these icons a few times so I decided to hold off until the game UI style is more stable.
Sadly this summer is super busy so I probably won't be able to work on 4 full time until sometime mid-August, but after that I think everything will be clear to start plowing through new features like the good old days!
From July 3rd to the 11th I'll be road-tripping out to PEI to visit family, and then from the 15th to the 21st I'm back to Calgary to look for a cheaper apartment (my GF's school in Toronto didn't pan out). Some of the last week of July will be spent preparing the next timed curated map for 3 (likely Carpat by BATTLEKOT), and then early August will be the move to Calgary. At the moment I'm expecting to get some progress on 4 in that end of July - start of August time.