Over the last few years I’ve been (slowly!) working on an MMO platform. Most of that time has gone into designing (and re-designing, and re-designing again) backend systems and a new ES. Over the weekend I finally had a chance to do a major code haul and managed to get enough pieces playing together nicely to stream entity/asset data and have things actually show up on screen. The following is my test account’s (not exactly PBR ) avatar:
Yeah, I realize that rendering an unshaded plane is about 5 lines of code in good ol’ stock JME, but this is going through a few more steps (~10k-ish lines of code, probably most of which are necessary for this to run) . After the user logs in, the server fetches the entity data for the user’s avatar, adds it into the server’s ES, and caches (assets are permanently stored en masse in a mirrored backend cluster) any assets referenced by that entity (in this case, a planar mesh). After the login process is complete, the server starts streaming entity data to the client, which is also running its own ES locally (non-authoritative duplicate of the server’s ES). The client also has a local asset cache, and as entity data comes in it loads or downloads assets on demand.
I’ve been focused largely on the server/asset system/ES up to now, so the client is really needing some love. My next projects are probably adding some developer tool and inventory UIs to the client.
This is the first screenshot I’ve posted since virtually all of my work has been backend/server stuff, but from now on I’m going to try to have some at least marginally interesting screenshots to show off each month.
Fun fact: If the upper-left textfield is empty, the button right below it is an insta-crash button!