Weekly Update 52 7-3-2017
Hi everybody, this is Flavien. Keith is away on a trip for a bit more than a week so today and next week I'll handle the weekly updates.
On my plate this week, more work on networking and.. physics. I've found a "stuttering" issue in the way we currently handle our multi-threaded physics and spent a few days fixing it. Unfortunately it half-broke my networking prototype, so I had to redo a bunch of stuff that was working last week. Speaking of networking prototype, I feel that I should elaborate on what the state of networking is, as Keith only mentionned a few words about it in the past weeks.
When I started working on the new networking model, I created a new independent prototype ( surprisingly called "networking experiment" ) which recreates some of the gameplay.. in 2D. It is client-server based just like the real game, but the top-down 2D view allows a much easier understanding of what's going on in terms of networking updates and physics. Although the view is in 2D, the actual simulation remains 3D. In this prototype I already implemented client side prediction, lag compensation, smooth actors paths interpolation and bandwidth compression. I also downloaded a small utility called "clumsy" which allows to simulate various latencies, packet drops and other typical failures. I've also tested the new prototype in real conditions between EU & US under a 150 ms ping.
The results so far are very encouraging, and much better than the currently available build. However, because it remains a prototype, it's still going to take time before the code is cleaned and "plugged in" ( basically a huge copy/paste ) into the new code branch. Once this is done, I'll still have to do some work on server-side collisions ( especially with the planets ), as everything is now mostly server-sided. Then the next step is to resume work on gameplay, which will include the new resource system, new weapons, controls/flight changes and maybe an initial implementation for capital ships.
Factory hangar module WIP
Needless to say, the alpha release is not going to happen any time soon; we're probably at least 2 months away, if not 3, from that happening. To be honnest this is pretty disapointing to me as I was anticipating faster progress. Also on a private note, I am going to relocate to a new but cheaper place in Brussels some time in April, which is probably going to cut a good week of work at a critical timing. I apologize for that.
Keith is still working on the new user interface code. He's been in "shader hell" for a week now, and from what he told me he had to convert a dozen of shaders ( from which 2 or 3 are massive, and very complicated ) from the paper he's been using. Before he left for his trip he finished that work, so when he's back he'll resume work on the font rendering. We're using a "path" rendering system for the GUI ( a big word to say we can rasterize curves ) in the hopes that it'll bring a higher quality than what most games are utilizing ( bitmaps ) which do not work well with anti aliasing and zooming. As we can use "vector art" directly, we should get really good anti aliasing and high text quality at various resolutions and screen sizes.
Corvette render with ambient occlusion
On the art side, Jan has imported the new bobbleheads as assets to the editor, so they're now ready to be used in game. I'm not sure when we'll have time to make a new build; we'll have to experiment with springs for the bobblehead physics ( probably around beta ), so in a first step the bobblehead will likely be a static 3D model standing somewhere in the cockpit. Jan has also been producing a bunch of short video clips of our 3 main ships ( interceptor, bomber and corvette ) and started to help Kristian on the factory assets like level-of-detail experiments.
A factory module in the editor
Kristian is still busy on the factory assets, modelling and texturing modules as he goes. Some of the modules will have an in-game function and be destructible in game ( the nuclear reactor provides energy to the factory; the gun tower defenses; the sensor tower allows to detect incoming hostiles, etc.. ). We are hoping to model a "destroyed" state of those modules when their hitpoints reach zero, but we'll probably lack time to do that before beta, so in the alpha version we'll simply swap those models with some kind of placeholder dirt/blast material.
Finally, Dan's making good progress on the global shape and plating on the destroyer, but it's still to early to show anything yet That's all I have for now, I'll bring you more news next week,
-Flavien