It’s a long time ago that we have talked about the previously announced 1.1 update in a blog entry. It’s a long time ago that you have received information on its development status, on when the update is going to come out and on why we communicate and work the way we currently do.
Let’s address the biggest question first:
Why is this all taking so long?
Well. As many of you know, Just Cause 3 Multiplayer is a hobby project which, despite nanos being a company, is done without payment in our free time. Everyone of us, whether in management or development, is looking to invest as much time as possible into our projects. Sadly there are also times where neither of us is able to invest as much time as they want to, for example due to job reasons. This was exactly the case: Alex, our lead developer, was, quickly after the announcement of 1.1, unexpectedly and indefinitely more involved in his job - this meant it was not possible to finish 1.1 on time. Since we did not know when he had the capacity to fully come back we decided on putting the release date on “soon”. Nowadays we know that this was a clear mistake, which even turned into a kind of running gag for the community.
Many of you have noticed that our team is not that small and that we should have enough resources for a speedy development of Just Cause 3 Multiplayer. That may be the case on first sight, but in reality it’s a different story. There are only 3 developers working on JC3:MP, namely Alex, Jan and Aaron. The latter two had to pause due to job reasons shortly after the 1.0 release on Steam, which meant that Alex was the only one left. This would not have been a problem if he hadn’t run into the same issue shortly after. Not a good situation, for both us and you-
Many of you also raised the question why we are not shifting away resources from other projects, such as the Framework or nanos world, to Just Cause 3 Multiplayer. There are two simple reasons:
- Every project at nanos, whether its publicly announced or not, are internally fully independent - something that we want to keep that way. This means: If there are issues in one project it should not and will not affect any other project. This is important for us since we want to guarantee a constant workflow in as many projects at possible. This is also so each team can specialize on each project, ensuring highest quality standards.
- Development would be halted for a period of time anyways, even if she shifted resources. Developers working on other projects neither know the code and resources of Just Cause 3, nor the codebase of our multiplayer modification. Learning to work with it would take a serious amount of time which can be used more effectively elsewhere - since the development-take-over would anyhow be just temporary till Alex fully comes back.
Another reason on why it takes so long is the size of the update: Despite the many new features we have announced the whole client has been rewritten, including a brand new main menu. This leads to the next question...
Why are you rewriting the client anyways?
Legitimate question, which we can answer by looking at our core values. If we find a way on how to make our code more clear, performant and stable we use that as a chance to improve on our product. For some this might be vanity, but we think it is necessary for maintaining a quality standard you deserve. For the end-user it is pretty clear that a rewrite is the right choice: Better performance, more stability and, in the future, faster updates. We managed to prove that already with the server-code and we are confident to do so with the client as well.
Another important fact is that our code is based on an idea starting in the years 2013 and 2014. The base was created for our former project, GTA:MP. In the beginning of JC3:MP we ported it over, so it could be used with Just Cause 3. Nevertheless, the code had a lot of features and code prepared, which could not be used or was simply deemed irrelevant over the following months of development. This meant that in the end our code was feature rich, but messy: Something we fixed in the server and are currently doing in the client.
At this point we want to show you how our main menu will look like in the future. We could already gather a lot of feedback and improved on our previous preview:
Okay, nice. But what are the other features the update will include?
Some of you already know it, but the most requested feature will be finally available - so let’s talk about it again: Tethering!With 1.1 it will be possible to link objects, vehicles or players to each other. You can find some videos on that on our social media channels and on our previous blogs.
Other features include.
- Option to use different skins (bye bye, army of Ricos
- Placing objects in the world
- Even more nice Scripting API functions enabling server to do more nice things
- WebGL support for WebUI
- Controller Support for our Main UI
- Updated node and cef to their respective latest versions
- Probably some more I can't think of right now (This was alex)
Nice! So how far you with the update and when can we finally enjoy it?
A question we are receiving multiple times every day and which we could never clearly answer. So let’s finally clear it up: SOON
Jokes aside, let’s talk facts:
The new base is looking good already. There is a new render backend for CEF which means improved performance. Thanks to the great CEF community we were able to include a patch which makes it possible to bypass the CPU when rendering resulting in the possibility of using WebGL and further reducing input latency.
Looking at the game itself we have finished our new API which we use to communicate internally with the JC3 base game. At the moment all 1.0 features are working, including some new ones. The new API was realised with less layers between our code and JC3 which results in less points of failure and improved performance. We also no longer need to write a wrapper for each feature, which mostly took us time to work on the feature itself.
Tethering is looking really good so far despite some issues with physics and vehicles. We hope to resolve that really quickly.
We have already implemented some new API functions but we have not reached the limit: More are soon to come. The scripting API is most of the time the easiest part to expand because we only need some lines of code to link internal functions with the API. That means it’s usually the last thing we do.
At the moment we are really working on ironing out bugs before we give a first version out to our broader testing team. There are still some features for 1.1 that need some more time or do not function correctly - e.g. problems with skins (wingsuit causing crashes) and with objects (still moveable after spawning, therefor desyncing). There is still some work let to do, bugs to iron out and crashes to fix.
Overall we are very near, after extensive internal testing, on releasing a beta. At the moment we are aiming for a beta release for interested users somewhere in August - provided that there not any major issues occuring. *gg*
The last thing to say: We are very sorry on how everything went till now. Our intention was certainly not to put you off with “soon” for a very long time. Our intention was to inform you on progress as soon as we knew development was going forward and to then release regular updates as we used to in the past. I really hope that I could give you a big and deep insight into the current situation. I hope we could make clear why the patch has been delayed and that work is resuming at a normal pace again. If you have any questions about 1.1 please post them directly into this thread - I am glad to give you all the answers you may need. I still have to announce that there will be no further blog updates on 1.1 till the public preview version since we do not want to interrupt the flow of information in case of another unexpected job related development halt.
your Community Manager aka. master of the pugs