Jump to content
nanos GbR


Popular Content

Showing content with the highest reputation since 12/09/15 in all areas

  1. 20 points
    Hey guys, Welcome to our first weekly development blog on the journey to a Just Cause 3 multiplayer modification. First of all we want to thank you for your support, for spreading the word and all the nice suggestions. We really appreciate that. For those who do not know us or have joined us lately we are the former team of GTA:MP, an alternative sandbox multiplayer modification for Grand Theft Auto V. Sadly we were not able to release our project due to being told to stop by GTAs publisher Take2 Interactive. We are glad that we have found a great game to fulfill our dreams of an open-sandbox multiplayer with Just Cause 3 and we are sure it could be the perfect next-generation successor to the scriptable multiplayer modifications based on GTA San Andreas such as SA-MP or MTA:SA. We have put a lot of thought into our plans for JC3:MP and will therefore try to deliver a similar concept as we would have with GTA:MP. This means serverside and clientside scripting with NodeJS (create your own gamemodes such as freeroam, deathmatch, race…), the use of CEF to display HTML5 interfaces or even full homepages, transferring data from the server to the client (e.g. changed handling files, replacing models or textures) and more. As for roleplay servers it will be of course possible to disable stuff like the wingsuit or the grappling hook. We know that not all of this can be achieved with the first version but we want to make it clear from the beginning that this is the final goal we’d like to achieve. As said before, we have been contacting Avalanche and Square Enix. We have not yet come to a "deal" with them (conditions on which we can develop our modification) but nevertheless we have decided to start coding the modification already. This is not because we want to bypass them but only to show what we are capable of in a very short time (we are developing only since thursday). Also we have already started as we want to finish this mod as soon as possible for you. We are still waiting for an agreement with them and if they do not want a multiplayer modification for their game we will not continue with this project. Two questions we have been asked very often in the past days were if we would go open-source (if Avalanche/Square Enix allows us to) and when the mod is going to be released. We are planning go open-source at a certain point although some parts of the mod will not be shared with the general public. This is also related to the DENUVO security methods in regards to piracy - as with GTA:MP we will do everything we can do to avoid people pirating the game. This means we will also protect and obfuscate certain modules/plugins of our modification at the release. About the release we can only say that it is planed to be sometime in 2016 - We are not yet able to pinpoint an exact month in which it will happen. This week we have been working hard on reversing the internal game structure and getting to know the overall structure of the game, as this is a game we are not really familiar with. During that we have also identified a major problem which is currently limiting us in the ability to debug our code while running in the game. This is caused by DENUVO, the anti-tampering solution used in the game. We are working hard to figure out a way to be able to debug the game, but this is probably going to take some more time. But there is also good news, as patch 1.02 gives us more information included in the games executable. We had to modify one of our tools to properly parse this information. One type of this new information is the RTTI information, which allows us to better understand what some parts of the game are doing, as in this information we can see the proper naming for many classes used in the game. We are also working heavily on modifying some systems from GTA:MP and the NANOS FRAMEWORK to work with Just Cause 3. We have achieved so far to create functions to disable ambient traffic and peds, control weather, disable the timecycle and set the time time. All this functions have already been implemented into the client. In addition to that we have also finished a working D3D11 hook (injection, present, CEF integration from GTA:MP modified so that now works with JC3). Last but not least we have added custom clientside settings (loaded from our own config file) and cleaned up/refactored our GTA:MP server for use within JC3:MP. At the moment we are working on spawning entities and bypassing DENUVO completely in order to debug properly. We are also currently working on structuring our code in a more clever way. In addition to the stuff we are already working on we are also planning on disabling the internal scripting engine (missions etc.) and savegame loading. We would also like to thank “hamzadams” for his great UI ideas and mockups. We are eager to see more ideas to the modification by you and other people of the community. As stated in todays community blog we are looking for new developers (C++ knowledge, NDA/CLA agreement) working with us together on this project. We are also looking for web developers (HTML5, PHP, UI, CSS, JavaScript & linux administration) You may apply with the contact-form on our website. So, that’s it for this weeks development blog. Have a great sunday and see you soon! Be also sure to follow us on social media: https://www.facebook.com/justcause3mp https://twitter.com/justcause3_mp https://www.reddit.com/r/justcause3mp Read out latest community blog: https://community.nanos.io/index.php?/topic/33-1st-community-blog/
  2. 16 points
    Heyho, the preview is getting closer and closer and as you can see there are no new dev blogs at the moment. We're pretty busy with fixing bugs and preparing everything for the press&partner preview on friday, so there will be no development blog this week as well. Instead of a development blog we're holding a community contest, where you can win...: 4x one invite code for the early community preview on 31st august 3x one nanos tshirt of your choice (here are some pictures: click) 3x one nanos mug of your choice (here are some pictures: click) To participate on this contest you have to do 3 things: Share this forum post as a link on Twitter or Facebook Make a screenshot of your post Post the screenshot in this thread The contest will end on the 28th August and the winners will be selected and announced on the 29th August.
  3. 15 points
    The past weeks have not been easy for us: We have been fixing bugs, implementing features, listened to your feedback and worked hours and hours to make the modification as enjoyable as possible. We are very excited to finally announce our very first larger-scale testing sessions. Within the next few weeks many of you will be able to get your hands on nanos Just Cause 3 Multiplayer and will be able to enjoy and test the modification together with us and your friends. WATCH THE ANNOUNCEMENT TRAILER FAQ When does the preview take place? The public preview will take place on the weekend of 9th September. Specific times and dates will be communicated via the forums and/or our Discord server. Selected people from YouTube and the press will be able to join us in a smaller-scale test on the weekend of 26th August. What will I be able to test? We, as Nanos, will be providing several servers for you to play on. Besides basic freeroam, in which you will be able to spawn cars and drive around with your friends, you will be able to play on servers with deathmatch and race gamemodes created via our public scripting-API. Will we be able to create a server for me and my friends? The first preview will not feature the possibility to host a server on your own. We are planning to release a "Script Development Preview" for interested people intending to create their own gamemodes shortly after the open testing weekend. Information on that will follow later. I want to participate at the "Press & Partners Preview" If you are a YouTube content creator or editor for a gaming magazine and want to take part in the pre-release testing contact us until the 22nd August via e-mail at [email protected] We can't guarantee that we can provide you access to the preview but we will be looking at all inquiries we will receive. I have other questions. Where can I get in touch with the team? The easiest way to contact us is via Discord: https://discord.gg/0gyoeMRbp166GviN
  4. 15 points
    Welcome to the 9th nanos JC3:MP development blog. As you may have already seen by the image above we have some great news to share. After being in contact with Square Enix and Avalanche in the past weeks we are happy to announce that we've been given an official permission to create this modification. We would also like to take this moment as a chance to publically thank everyone at Avalanche, Square Enix and especially Lee from Square Enix for the great, professional but also very open communication in the past weeks. We certainly think that it was possible to discuss every important aspects on how we are planning our modification and what's possible for us to do in the upcoming weeks and months. Nowadays this way of open communication between the community, the developers and the publisher is definitely extraordinary so we certainly think we need, yet again, to thank you for this great chance! Let's get to the actual development news of last week. Vehicle Synchronisation Last weeks video was a great success (already nearly 20.000 views on YouTube, gaming sites reporting on it, etc.) and shows that there is indeed a big potential and interest in a modification like nanos JC3:MP. We can definitely say that your ongoing support motivates our development team every day. This week we have continued on our vehicle synchronisation by first fixing bugs related to entry/exit animations of the remote players. Also a bug that vehicles could explode clientside has been fixed so vehicle health is completely handeled by the server as of now. The rotor blades of helicopters are now also properly synced. A big addition this week was implementing synchronised vehicle weapons. Be sure to check out the attached WebMs from this weeks playtests. Link: http://imgur.com/a/mZalf Freecam In addition to the scriptable camera functions we have also implemented a freecam feature this week. This will not only come in handy in our next video but will also make it even easier for scripters to create stuff like a spectator mode or a map editor. Chat Our clientside chat has been fully rewritten (vue.js instead of JQuery) which not only improves it performance, but also makes the underlying code more beautiful. The chat is still completely editable by the user as all it's components are stored open-source in the data folder. kNet We are currently working on replacing RakNet with the kNet, which is part of our nanos Multiplayer Framework. The kNet implementaiton is currently still on a very experimental Git branch but we are hoping to merge it into our master branch in the upcoming days. - Other Changes Various small bugs, glitches and crashes have been fixed and the steam save files have been disabled (so the mod is no longer relying on your ingame progress). Las tbut not least parts of the code have been cleaned up. So, that's it for this weeks development blog. We hope that you enjoyed it and are looking forward to your feedback. Until next week!
  5. 15 points
    Hello and welcome to this weeks development blog! First of all we are happy to say that XForce received fresh cookies from Amazon. They tasted very good and therefor we really need to talk about it with you. After that important information let's get straight to this weeks changes. Nametags With the addition of nametags it is now possible to difference between the players on the server. We have chosen a similar design to those on GTA:MP as we had already gotten great feedback on it. They still need some small fixes before being perfect though. (lagging at the moment - we are aware of that issue) Synchronisation We have done a lot progress on our synchronisation and have implemented player velocity and animation states (jumping, enter/exit vehicles, …). Furthermore we have implemented a basic vehicle synchronisation (position, velocity). Here is some footage created while we were working on the sync in the past two weeks. Please note that everything shown was not made online and does not represent the current state of our synchronisation (some stuff not implemented in our netcode). The first video shows early testing of the character animation state, the second one a local vehicle sync test and the third one the mandatory abusing of the velocity functions. We are currently still not satisfied with how the sync looks (missing stuff, no interpolator which means lagging) but we have always been transparent, as with GTA:MPs livestreams, which is why we also want to show you the first impressions from todays testing nevertheless. Click the picture to get to the video Oh and by the way: this happened right after taking the video Starting your game One of the biggest issues with JC3 are the long load times. AaronLad has done great work on speeding up the start of the game to less than 10 seconds on a modern SSD. Character functions/variables We have successfully reversed the characters bone variables (BoneTransform & BonePosition) making it possible to get every single bones (+ facial features) position. UI function We have started reversing the UI functions to disable stuff like rebel drops and being able to set mission objectives. Internal changes We have fixed a lot of internal code (changes to pointers, std::list/std::vector) and applied fixes to the variable delta serializer. That was this weeks development blog. We are very excited for you feedback so feel free to comment. Until next week!
  6. 14 points
    Hello and welcome to our third development blog, We are happy to be fully back at work after the christmas holidays and have therefor done a lot of great stuff last week, which we would like to show you right now. Reverse engineering Let’s start with the less exciting stuff first. At the beginning of last week we have done (yet again) a lot of reverse engineering and reversed how the game handles entities internally, how it processes and manages them. We have also reversed stuff like the camera manager (later used for camera scripting functions) and were able to understand the games rendering ‘blocks’ (e.g. vegetation, water - see the screenshot below), D3D11 implementation, DXGI and Direct8Input implementation. Don't mind the "Grand Theft Auto Multiplayer" in these screenshots. This was only added to test the CEF rendering implementation. Gameplay functions We are currently able to change the timescale, lock the controls of a player, load scenes (pre-render parts of the map before the player is actually there) and we are also able to control the environment (setting the time, the weather, the clouds and the climate). Most of these gameplay functions will be used for serverside and clientside scripting functions. At the moment we are only focusing on the most important parts of the game. So don't worry, more functions will follow shortly. Spawning entities The first really big breakthrough of this week was being finally able to spawn any entity of Just Cause 3. With this we are able to spawn vehicles, characters (players & npcs) and even objects. A big issue were the games internal limits, which we were able to break, allowing us to use our own streamer with higher limits. Internal fixes in modules We have fixed our nanos kLogger library (not a keylogger - it’s a logger library which is able to handle quite a huge amount of message and prints them). We also rewrote parts of our crash-dialog (uploading your crash-reports to our servers), optimized our graphics module (fixed resizing the games window and resolution) and improved our internal handling of WndProc (windows internal ‘input’ callback). Graphical mouse We have implemented a new graphical mouse for all UI overlays, which means that we do not have to create a own mouse for every overlay, saving us a lot of clutter. Scripting module The scripting module has been improved and it is now even easier and more convenient to add support for multiple scripting langues (Lua, Squirrel,...) in addition to our current NodeJS implementation. Cleaning-up the game We do believe that JC3 can be the perfect sandbox for any gamemode and should be as customizeable as possible. This is why we have disabled some of the main games features such as the crashreporter (replaced by our own as said above), the vehicle UI (speedometer), the region info (left upper corner) and more. In case a server owner for example decides to re-add a speedometer or to re-implement the region info it is of course easily possible to recreate those parts with our clientside scripting-API. Steam integreation We have updated our steam integration from GTA:MP and will probably implement more features to it, such as joining directly on your friends server via the friends-list, very shortly. Patcher While we have previously used a nightly page to distribute the latest builds to our quality assurance team, we are now using our very own patcher which automatically checks the used version and updates it from our build servers. Networking & streaming Full networking (clientside & serverside scripting, communication, sync, chat, …) has been implemented into our modification. We have also improved our serverside streamer from GTA:MP to support higher cell-sizes and a improved streaming-distance in neighbour-cells. It’s also a lot faster now. Basic synchronisation This is probably the part you’ve waited the most for. As of today we have implemented a very basic player synchronisation. Characters are created once a player connects, his current position is set via an interpolator and the character is destroyed again once the player disconnects. The next tasks will be implementing the blender (animations) and then implementing special tasks such as the parachute and the grappling hook. As this has only been achived today we are sadly not able to provide you a full video so far. We hope to be able to show you more progress on it next week though. Applications We are very thankfull for all your applications we have received so far. Please take the chance and apply until wednesday if you have not applied so far, as we will start evaluating all applications from there on. We are still looking for C++ developers, reverse engineerers and web developers (JavaScript, HTML5, CSS3). Quality assurance/Early access We are currently not looking for people joining our QA team, but will be soon. Everybody, who wants to participate in helping us testing the mod has to register at our forums and link his steam account (the one you bought JC3 on) with your forums account (you can do that here: https://community.nanos.io/?app=core&module=system&controller=settings&area=profilesync&service=Steam). We will open an application formular in which you will have to sign in to join the early-access list. We will be selecting people from it by time to time (it has not been decided if random or first-come, first-serve) and will therefor roll the modification out step-by-step. JC2-MP, the other JC3-MP team Yes we do know that the JC2-MP team has announced their own JC3-MP modification 3 days ago (obviously they have been working privately on it for some weeks, from what is obvious when watching the video). We want to be honest and must say, that the synchronisation of the team around Trix looks really good so far so the only thing left to say is: congrats on your progress fellas! Many of you asked us about a cooperation between the two teams, but currently we can’t say if that will be possible. First, we have to wait for the the decision of Square Enix and Avalanche Studios. Afterwards, we will contact Trix and his team to discuss wether a full or partly cooperation is possible. What we do not want at all is a fight as we have with GTA:MP and FiveM, or like MTA:SA and SA-MP have it. If we are not cooperating with eachother in the end, a good and productive concurrence is in our best interest. GTA V vs JC3 We know that most of you still want a GTA V multiplayer modification from us but we have stated more than once why this is not possible. GTA V has a great and huge modding community but we do think that Just Cause 3 is an awesome game which opens whole new paths for modders. We want to show the PC (modding) community that JC3 is a great game and we want to convince as many (GTA) players to try this game out and to support the developers. We think that together with the whole JC3 modding community, we can make this game and its engine perfect as a base for literally everything you can imagine. The modding community had always the most craziest ideas and we are sure we will see many of them realised in the near future. Unpacking the games files. Commit Log Last but not least we want to share our commit page (again), in which you can always see the latest changes our developers have done on the different JC3:MP modules. Be sure to check it out whenever you can, as it often shows what's going to be in the next development blog: http://just-cause.mp/commits/ So that's it for this week. We would also like to thank all donators, sharers and followers at this point. Also we were impressed by your UI concepts we have received so far. We will show them very shortly to the whole community. We hope you enjoyed our very latest development blog. Be sure to leave a comment.
  7. 11 points
    Hello and welcome to our 11th development blog. You may have already seen us advertising this devblog with the slogan "something big is coming" and as a matter of fact this development blog is going to be big in terms of what we'll be showing you today. On-foot synchronisation We are very happy to share today, for the first time ever on JC3, gameplay footage of on-foot player synchronisation. Our basic player synchronisation is now pretty much done. To make this possible we had to rewrite the whole player creation code. This allowed us to use the Rico model (changing the model will be possible) and to perform complex animations on him. Additionally, as you can see in the video, we have added look-at position, vehicle-surfing (1 or more players on the same vehicle) and work in progress weapon synchronisation. Vehicle synchronisation With the knowledge we got from the on-foot sync we have also improved our vehicle synchronisation by directly syncing the players keys. Scripting We have added several weapon functions to our scripting API. - GiveWeapon (function) - RemoveWeapon (function) - RemoveAllWeapons (function) - HasWeapon (function) - SetWeaponAmmo(function) - GetWeaponAmmo (function) - .selectedWeapon (property - int) - .unlimited Ammo (property - bool) - .aimPosition (property - vector3) Other Changes We have fixed an UI issue that damage indicators were not removed and changed the internal player-death/respawn handlers to make them more reliable and crash-free. Early-Acess/STA Some weeks ago we have first talked about a limited, but free early-access program to make our mod available to a bigger amount of people while we are still polishing it for the very first release. Since then we have had a lot of discussions internally on how to actually choose who would be eligable for getting the mod earlier than the general public - without satisfying results. Back at GTA:MP we had something called "STA", short for "Script Test Application" available for everybody to already start working on their gamemodes. This was, additionally to the early acess program, something we wanted to provide to everybody who wants to start working on their servers. We came to the conclusion that running 2 different preview-programs, resulting in a split community, is something we do not want to do. We believe that everybody should be able to work on their server with the same tools, which is why we are dropping our early-access plans and will be instead rolling out a public Script Test Preview (STP) with a limited server and client in the upcoming weeks/months. This limited release will allow everybody to start diving into our modification, to help us fixing bugs and to prepare their servers for the full launch of our modification. New developer Last but not least we would like to give a warm welcome to Nathan "Unix" J. as a new web/ui developer for nanos JC3:MP. He's a very talented developer from the UK and will for sure help us in developing the modification a lot. So that's it for this week. Be sure to leave a comment and see you next week!
  8. 11 points
    Hey guys, Welcome to the second development blog. This week was Christmas, so some of us have spent some time with our families and friends and did not work on the modification that much. Nevertheless we have done some progress. DENUVO Yes, we have found a way to properly debug the game, but unfortunately there is still one small issue left. Do note that none of this code to circumvent DENUVO anti-tamper is going to be included in the released version nor will be made open source. Rendering This week we have identified a few issues in our current rendering-implementation which could cause some things not being rendered properly. In addition to that we have fixed a possible crash when resizing the window. We have also improved our mouse cursor implementation to be faster and more responsive, fixing basically a leftover issue from GTA-MP. We’ve also disabled the start sequences of the game, thus improving load times and added straight spawning into the game instead of going to the main menu automatically. Reverse engineering Of course this point is a must-have in this week's development blog. We are heavily working on reversing the game-engine in order to find out which techniques were used in detail by the development team at Avalanche Studios (ways of rendering, entity spawning, assets,...). As you can imagine this can take quite a while but we have already made a lot of progress so far (shader/texture replacement, modifying rendering blocks,...). All of this reverse engineering is required to gain a solid knowledge on how the game works and how to prevent blockers, crashes and issues in the future. Cleanups As we are going along with the development we are always improving our code base, which often involves cleanups. This week we have done exactly that and improved some old, mostly very ugly, code. Applications We would like to thank you for all of your applications. As some of us have spent some time with the family and friends, we have not started evaluating your applications yet. We will do so in the first week of january 2016. We are still looking for talented C++ developers and reverse engineers to join our team. Contact with Square Enix and Avalanche Studios We have no new information on this matter to share with you guys at the moment. As you can imagine, a lot of their employees are currently on holidays and therefor are enjoying christmas and new year. We expect an answer in the first 1-2 weeks of january. We are working very hard on showing you more of our progress, giving you first glimpses on our modification but those things often take a considerable amount of time. We do hope that we have some more to share for next week. Until then, See you!
  9. 10 points
    Hello and welcome to the 14th development blog! First of all we need to tell you something, which should not have happened at all. Due to a technical error at XForces development setup we lost most of last weeks and this weeks progress on parachute and wingsuit sync. We have discussed quite a while if we should go public with that but we always said that development blogs should be as transparent as possible. This of course means that we will have to postpone most of our internal milestones by about 2 weeks. We learnt from this mistake and I am quite positive that something like that is not going to happen again. This week Jan has further worked on our buildserver for compiling and packing our linux builds for different distros. Changes this week included the ability to promote builds to different channels of our updater (e.g. nightly, stable, rc, ...). Furthermore Jan has been focusing on adding missing functions, properties and events to the scripting functions, e.g. setting a vehicles health, which was already synced but not setable via our API. This week we have also had to use a lot of time on transitioning from our bitbucket setup to the open source gitlab software. This meant reconfiguring gclient, changing stuff at the hooker and overall performance testing. Last but not least, as most of you have probably already read today we had our very first #nanos_workday. As one agenda item of this workday we have discussed on whats planned to be included in our first preview release. So without further ado, let's get to the planned features. Synchronisation On-Foot Synchronisation (moving, parachute, wingsuit, grappling-hook, weapons) Weapon Synchronisation ( + vehicle weapons) Passenger functionality Script API Clientside & Serverside Scripting CEF Control over: - - Players ( + weapons) - - Vehicles - - Checkpoints - - Map markers - - Objects - - Nametags - - Camera We will not include triggered explosive (sticky-bombs), tethering things together via the grappling hook and synced world damage (e.g. guard towers) in the first preview release. We certainly think that with these features we will be able to provide the most essential things to both players and server owners. So that's it for this week. Until next time!
  10. 10 points
    Hello and welcome to this February's first development blog. While we did not have a lot to show last week we are very happy to announce something great today: We are excited to present you our almost finished vehicle movement and rotation synchronization for 1.0. We have put a lot of work into making it as smooth as precise as possible and are extremly satisfied with the outcome. We have prepared a small video for you to show you first impressions, so without further ado get your popcorn and enjoy it! Masterlist This week we have started work on our masterlist backend. By now it is possible to add and remove your server on the fly, to set a server description and to add a image (e.g. a serverlogo, 610x250). Servers are updated on runtime (player count, description, etc.) and of course time-out automaticly once they have been stopped. Announcing your server on the masterlist will require a free authentification key to ensure security for our players. Nametags We have implemented a serverside nametag plugin so you are now able to change them via serverside scripting functions (font, size, color, text, hiding healthbar...). So that's it for this week. We hope you've enjoyed this weeks devblog. Be sure to give us your feedback by leaving a comment! Until next week!
  11. 9 points
    Another week, another devblog. Scripting API We have improved our PlayerDeath event so that also kills from weapons like RPGs are properly detected by the server. We have also made it possible to apply forces to GameObjects, which means you can throw them around or let barrels explode that way. Camera issues, parachute and wingsuit In the past weeks we have been trying to sync the parachute and wingsuit, but ran into an issue with the local players camera once a remote player started to use either the wingsuit or parachute. Fortunately, AaronLad was able to fix this issue today which is why we can finally say that we have taken yet another big step towards finishing the sync for the first preview version. Be sure to check out footage from todays testing showcasing the parachute in action: http://imgur.com/FmckkAS Interview with SuperRebel & Vadact Today we have had a great conversation with SuperRebel and Vadact, two YouTubers focusing on Just Cause 3, and were even able to present them some live gameplay footage of our team. They have reached to us for doing a small Q&A together with their communities some weeks ago and we do think that we have answered quite a lot of stuff that might be interesting to all of you guys aswell. So be sure to keep an eye on their channels, as the videos should be coming shortly. Other changes Jan has focused on finishing our build server. We're now fully using it for creating our internal (linux) builds, which makes creating and sharing testing binaries a lot easier. Last but not least we have disabled a lot of singleplayer stuff such as starting missions to prevent clients desyncing the multiplayer experience. So, that's it for this time. We hope you enjoyed our development blog. Until next Sunday!
  12. 9 points
    Merry Christmas, everyone! We know you guys love to see progress. In the past, we had a donators-only commit log. A commit can basically be summarized as some change in our code. The page I'll link below shows you when we made the last commit to each repository. It gets refreshed automatically every 10 minutes. Link to the Commit page: http://just-cause.mp/commits/ We would like to thank everybody for their support over the past few weeks. Now have some nice holidays! Sincerely, Your nanos Mutliplayer Framework Team.
  13. 9 points
    Hello and welcome to our 6th development blog. As always, we have some some great news to share so without further ado let’s get straight to the latest changes. (Game) UI This week we have fully disabled the games UI (button hints, heat/zone information, ESC menu, ComLink - TAB, …). These menus will be replaced with selfmade UI or via customizable clientside scripts. We have also reversed most of the UI functions (FadeScreenOut, FaceScreenIn, ShowWorld) and reversed the different render phases (HAL (Scaleform etc.)). This also helped us fixing the laggy nametags seen in the last video - they are now 100% as smooth as butter. Game Loading The default loading screen has also been hidden at startup and will be replaced with our own very shortly. Furthermore we have, yet again, looked into the startup times of JC3 and were able to make loading even faster (on an SSD 4 seconds until the game is ready, 8 seconds until the map is streamed in). Synchronisation We have continued working on our vehicle sync and have implemented the velocity, door states and component states into our networking. We have also replaced the games interpolation with our own (better and more efficient). We are still working on finishing our interpolator (for example rotation interpolation has been added) and ironing out last bugs occuring but do hope that this will be finished very shortly. Scripting This week we have also focused on a lot of new features for the scripters out there. It is now possible to control the games cameres (creating, setting position, rotation, fov, neardof & fardov). The build is newer than 16th January - the build-tag sometimes needs a full recompile to update Furthermore we have implemented a proper way to preload scenes (map parts), implemented hash functions (for game-hashes), included various math functions such as quaternions (qlerp, lerp, dot) and added natives to freeze or unfreeze the player. New events such as death and scripting-controlled respawn (player.Respawn()) have been added aswell. Bugfixes The steam integration has been fixed (invalid pointers) and various crashes (like when the game was not focused at startup) were resolved. ZSettings & ZLanguage Two new modules have been added to the modifcation enabling us to load & control the settings with our own config files and to edit every text ingame. Those functions will be implemented in the scripting API very soon. Other Changes Improvemens to our own threaded job-system enabling more opcodes in the same time and an overall internal code structure cleanup (moved dependencies to vendor/ -, styleguide fixes) were made. We have also improved our own hooking system and did small changes to our UI updater. So that’s it for this week. We hope that you enjoyed the development blog and are happy to see you next Sunday again.
  14. 8 points
    Hello there! This is actually my first development blog for Just Cause 3 if I remember correctly. Anyway, let's just go straight to the new and awesome stuff. Are you guys shutting the mod down? No. You might have read that the creators of the JC2 Multiplayer Mod discontinued their mod for Just Cause 3. We are still working hard to deliver our modification this year. All-New, Shiny, Client UI This week we've spent a lot of time on the new Main UI. As you might have seen in earlier videos or our stream, we did not have a proper UI for nJC3:MP. There was only our chat. As we are getting somewhat closer to the first Previews, we wanted to tackle this issue. @SKULLY submitted some drafts for a JC3:MP UI a long time ago and this is what we used as a basis for our new UI. @Alexander G. and I actually met for the first time in 4 years and worked 8 hours straight to get the UI <-> C++ interface working properly: We're pretty happy with the result and prepared a short video showcasing the current UI functionality for you: Keep in mind that the UI isn't 100% finished right now. The Settings still need to be implemented as well as some other, minor, stuff. The current public client-default-package is also not working anymore as we completely rebuilt the CEF <-> C++ communication. Sharper than ever We fixed a bug that we basically did not pay attention to since we started GTA:Multiplayer: the whole UI looked a bit 'blurry'. We could work with that but starting today, the bug was fixed and the UI looks sharper than ever before. It actually still feels weird now that it looks so different. The underlying problem was that our rendered CEF Texture was always slightly warped after an initial resize event. This also means that resizing the client no longer yields weird UI scaling bugs like before. Masterlist Server & Package As you might have seen in the video above, the Server Browser is working properly and listing the connected servers. We needed to modify quite a lot of code in our masterlist server and the package that is used in the jc3mp server. We also used this as an opportunity to explore some options of hosting our masterlist server "in the cloud" and settled with a DigitalOcean 2 droplet setup (one for postgres, one for the actual masterlist server): Steam Integration We are now able to check whether you own Just Cause 3 on Steam. You are also now able to retrieve the Steam ID of each connected client on the Server. On top of that, it is also possible for us now to check which DLCs you own. This will come in handy when we get to the point where Servers can decide which DLCs they require/allow. "We managed to sync Wingsuits, Checkpoints can't be that hard to do, can they?" Actually, it turns out that checkpoints are really complicated. Aaron worked on checkpoints for the whole week and we are still experiencing weird issues and bugs related to checkpoints. Here are some screenshots @Aaron K. posted in our Slack:
  15. 8 points
    Hello and welcome to the 31st weekly development blog! Without further ado, let's get straight to the update. Havok physics bug Since the beginning of syncing vehicles we have always had an issue related to the Havok physics engine resulting in remote-controlled vehicles getting completely stuck mid-driving and also resulting in a massive FPS drop. After hours of testing and reproducing we were finally able to overcome this issue. Serverbrowser/Masterlist This week we have also been continuing to work on our main UI, which we already showed in the last development blog. This week some important fixes regarding the announced playercount and the server automatically re-announcing to the masterlist on timeouts have been implemented. Steam API We have continued working on our Steam API and have now implemented serverside verification via Steam auth tickets (pretty secure method compared to simply sending the SteamID). This allows servers to check DLC ownership of remote clients and to more safely use the players Steam ID for e.g. banning or authentification methods. Script API changes Work on checkpoints has been continued by adding serverside events when people are entering them. There were also functions implemented to show/hide POIs and checkpoints per player in addition to the current server-wide properties. As said last week, due to changes in our CEF implementation we broke all scripts using communication between clientside-packages and CEF. We have therefor updated the default resources and scripting documentation on our gitlab to replace the deprecated functions with the new ones. For those who have missed the links to them, which we posted a couple of weeks ago, please look below. https://gitlab.nanos.io/jc3mp/server-default-package https://gitlab.nanos.io/jc3mp/client-default-package https://gitlab.nanos.io/jc3mp/scripting-docs Other changes We have implemented a small fix regarding player-weapons acting weird after respawning. Also a crash which could occured when people timed out while being in a vehicle has been fixed. Last but not least a small screenshot from todays testing. So, that's it for this week. Until next Sunday! ;)
  16. 8 points
    Welcome to the 13th development blog, Sebastian apologizes for not writing the development blog today, but unfortunately his Windows decided not to boot anymore after hybernate mode. Today we decided to get more into detail on what issues we have been working on the past week/what issues we have encountered while working on some new stuff. Besides having worked on fixing some issues with the weapon sync, we have also worked on a few important things missing from the current sync implementation, such as the wingsuit and parachute. For the parachute it was quite easy to get the player into a state to replicate the control movement of the parachute, as seen here: So, what about the actual parachute? Well, let’s say that’s more difficult than it sounds like. The issues we have encountered so far range from weird position offsets, not opening parachute to not closing slightly behind the player parachute This can be seen here: Some of these issues are probably related to the way we have implemented the player creation, which is a part we have to investigate further the following week. We are quite confident that we can resolve those issues in the next few days and move on. The wingsuit however opening and closing correctly is currently not really nice to look at We have also worked on some things for our internal infrastructure. Buildserver We have put a lot of time into creating a proper build service for our products. As we want to have nightlies built for multiple GNU/Linux distributions (such as Debian, Ubuntu, CentOS), we decided to use docker images as build containers. The program controlling those automated builds is written in Golang. We still did not finish all of this yet but the build process itself is done. We also get some pretty neat Slack notifications for new builds: Automatic deployment of our websites We ran into some problems with the way we deploy our websites. Previously, the files have just been lying on our server and were updated manually via a SFTP connection. As we want to limit the access to our servers, we decided to organize the websites into Git repositories and deploy the master branch automatically. We could not find a simple tool that does this job without requiring a lot of effort to install some weird service which is why we decided to write a small tool in Go that automates this process using POST Webhooks. We also decided to make this small tool open source (MIT licensed). You can find it here: https://development.nanos.io/projects/NANOS/repos/hooker/browse I hope you liked this week devblog and I hope we see you next week, hopefully with some nice stuff that is working properly.
  17. 8 points
    Hello and welcome to the 10th development blog. As always, let's get straight to this weeks changes. Ingame functions We have added new functions to manipulate the players game including getting and setting the timescale, full player weapon control (giving weapons, getting and setting their ammo, ...) and attaching player to vehicle stunt positions. With newly added UI function it is now possible to show/hide parts of the UI and to use the games scaleform functions to show custom messages. This enables scripters, who are not familiar with using CEF & HTML to simply show basic information on the clients screen. These ingame functions will be added to our scripting API very shortly. Chat The new chat, which we first talked about last week, has been updated to only show a scrollbar when the chat input is active. This has been a requested feature by our testers as it makes the chat less prominent on the players screen. Leaderboards We have fully disabled leaderboards from the multiplayer modification as they could be easily faked via our scripting functions. Death/Respawn The death system has been completely hooked which means the respawn is now fully controlled by the server. This not only means more customization abilities for scripters but also the removal of the loading screen when respawning for players, resulting in a fast respawning for e.g. multiplayer deathmatch sessions. Default script Work on the default script shipping with our server has been started. The script features a extensible command system and event autoregistration making it into a powerful base for every newly written gamemode. You can get the script on our Git page: https://development.nanos.io/projects/JCMP/repos/server-default-package/browse That's it for this week, See you soon!
  18. 8 points
  19. 7 points
    Hey Folks! We want to hear from you what you expect from us and JC3MP (asset import, map editing, map editor etc.). Feel free to write anything down you can imagine (even if it's the stupiest or most craziest idea)
  20. 7 points
    The year 2017 was a very special year for us. This year we have successfully released our first Steam App, namely Just Cause 3 Multiplayer, together with our partners at Square Enix. Since then we have reached over 170.000 downloads and have announced our very first game. Let's recap everything which has happened last year and afterwards let's look into the future: To make it clear, we are definitely not finished with what we're doing. JC3:MP - Beta Release After our "administrative issues" of the 20th December 2016 (about which we still can't talk, sorry pals) we were finally able to release our first Just Cause 3 Multiplayer beta on the 6th of January 2017. Despite initial performance issues we were initially able to maintain a high player- and download count, which resulted at the end of our Beta at around 160.000 unique downloads. Overall we are happy about the success of the Beta: Thanks to the great amount of crash dumps, which we could gather with your help, we were able to polish the modification, improve performance by a lot and make it overall more stable. Also, thanks to the many suggestions we received from you, we were not only able to add a lot of new features but also learned a lot for future projects. For us as the team behind nanos the 6th January was a really important day. It was one of the biggest milestones in our recent history, which we celebrated after a year of hard work. nanos team party After the first public beta and about a year of hard work we decided to celebrate together: More precisely, we did that between the 20th and 22nd January at our lead developers, Alex 'meow' Güttler, home in Norther Germany. This was the very first meeting of our whole team, which meant people from all around Europe (Wales, England, Austria and Germany) came together and met for the first time in reality. This weekend was of course not only used for partying, but also for planning our next steps and improving parts of our code base. It was also used for a bit of live-communication with the community. For me this was one of the highlights of the past year, because I could meet many of my team colleagues in private for the very first time - and of course also for the great memories of our launch party We are planning another meeting this March, hopefully again with all team members (including the many new ones). Some impressions right from Alex's place: London This year Malte and me went to London for 3 times to visit our friends at Square Enix and the Just Cause team to talk about potential plans, discuss about problems and to socialize together. The visit of the Square Enix office and the meetings held there was really special for us as "beginners" in the gaming-business. We want to thank all of the great people there for their hospitality and certainly hope to see you guys again soon! Despite product meetings, smaller live streams and gaming sessions, we were also enjoying some visits to restaurants and bars with our friends from Square Enix. We could also use our time in London to meet some of you guys from the community, namely YouTuber Superrebel and the creator of our Trailer, Mp3Charlie. Below you can find some impressions: JC3:MP - Steam release After about one and a half years of work something happened on the 20th July 2017: Square Enix made it possible to release our very first app on Steam, which was one of the biggest milestones on our way to make multiplayer development and development of the technologies behind them to our real job. After working on 4 different modifications within 6 years the Steam release of JC3:MP was THE highlight for us all in the year of 2017. This was a big step, which really meant a lot to us. Now, about 5 months later, we can already thank you for about 170.000 downloads over Steam. We were also able to get a lot of feedback from you guys to further improve our modification. Of course, we are not finished with the development of JC3:MP. We are aiming to treat you with great things in the year 2018 - starting with our 1.1 release, which will include the long awaited tethering. The future Let's focus on what's coming up next: This November we gave you a sneak peak on our very own game -nanos world- which is a project we will continue to work on in 2018. Besides the nanos world developments blogs, which will start very soon, we will most likely release our very first version of the technology behind our projects: the nanos multiplayer framework. In addition to that we have already planned some community related events and ways on how the community can work together with us on what's coming next. So stay tuned. To conclude: 2017 was a very great and exciting year for us, despite some ups and downs. We have achieved quite a lot and experienced many things, which is why I want to thank all of you for your support, for your criticism, your honest opinion and all the moments we shared together: You helped us to push Nanos forward, regardless whether you were a fanboy or a harsh critic. You kept us motivated to keep pursuing what we do. To sum it up: A big thank you to all of you. We hope we can share a lot of moments with you together next year. We wish you and your families a wonderful Christmas, a great start into the new year and overall a lot of luck for 2018. Let's rock the next year, together!
  21. 7 points
    Welcome to our 34th development blog and our very first one in August. Internal development Jan has worked hard in the past weeks to finish our brand new tagbot, which will be used internally by our development team. The tagbot allows us to tag a version over Slack (e.g. via " @tagbot update and tag develop as preview-v0.3.0 ") which is then built automatically. It can update all our submodules (in the jcmp repo) to a given branch and/or create a tag, which then, as said before, triggers our build server. It does all that by using enhanced magical spells. Jan has also finished working on a system to automatically build the client-ui and masterlist-package for easier internal distribution. Synchronisation One the one hand, Aaron has continued working on our issue with playerdamage, which we talked about last week. While playtesting we have found out that last weeks fix did reenable damage by most weapons, but not by vehicles or RPGs. This issue has now been resolved aswell. Alex on the other hand further continued working on the vehicle interpolation and further improved it to be less jerky. Also rotation has now been made smoother. Not directly related to synchronisation but to the underlying codebase we have continued working on kNet, our very own netcode hopefully replacing RakNet in our modification entirely. We are currently aiming to finish this alongside our very first final release of JC3:MP. New video This Thursday we have released a new video, which was made during our latest testing sessions. If you haven't watched it yet be sure to check it out right now! https://www.youtube.com/watch?v=SxZBUhoinNE So, that's it for this week. I also want to take this as an opportunity to say goodbye to you for the next 2 development blogs as I will be on holidays from next weekend on. I am sure you will enjoy our next two development blogs by one of my colleagues anyways! ;)
  22. 7 points
    Welcome to our 32nd development blog! To start it of let's go straight to the most important change this week: Jan is currently renovating his place so this week he removed a wall from his room. I guess you might be interested to know that. ;) Now that this is done let's get to the real changes for this week! Vehicle synchronisation This week we have started to implement passenger synchronisation. It is now possible to drive with multiple people in the same vehicle. There are no animations yet, however we will be working on that and implement it later on. Furthermore we are currently investigating how we could improve our vehicle synchronisation interpolation to make it more accurate and smooth. Script API We have updated Node to version 6.3.1 and fixed intervals and timeouts not executed when being called from C++ callbacks (e.g. events when a player joins, a vehicle gets destroyed etc.) This week we have also added the ability to restart packages on the server. Other changes We have fixed some issues with building linux builds, which means linux servers are now again available for our latest test-builds. So, that's it for this week. Until next time!
  23. 7 points
    Hello and welcome to the 22nd development blog. This week we have done a lot of work on very different parts of our modification so without further ado let's go into the details. Parachute sync This week work on the parachute sync has been continued and we have been able to get it pretty much working - except it's not that pretty yet: We are still experiencing some issues regarding the parachute not opening when using the grappling hook before (so you have to open your wingsuit and then go back to parachuting to make sure that everybody sees your parachute). Checkpoints We have been starting to work on checkpoint functions for our serverside scripting API. While this is still early work in progress implementation, e.g. checkpoints only showing when forcing the game into a "race mode" we have decided to show you some screenshots we took while testing. Grappling hook Besides working on checkpoints we have also started reversing grappling hooks. For now, we are not using the gathered data for sync as we want to finish stuff like the parachute/wingsuit implementation first, but we have already managed to do some cool stuff like changing the color emmited by the hooks. Prepare to see that as scripting function in the upcoming weeks. Crashfixes This week we have also concentrated on fixing a lot of gamebreaking issues. Some crashes when disconnecting and respawning have been found in this weeks testing sessions and have therefor been fixed aswell. An issue with objects, which's positions were only updated once the player touched them, has been fixed aswell. We have cleaned up our launcher and fixed a crash occuring, when setting or changing your game directory and then starting the game for the first time. Also the steam-checks (to check if Steam is running) have been removed for now, as the implementation failed under certain circumstances. This will be rewritten and added in a later point of development. Other changes When opening the main menu the game no longer get's paused, which should prevent people exploiting pausing the game when they are for example being shot by other players. We also added a check when setting a players position, to only spawn the player once the ground below him has fully loaded (preventing him to fall into the abyss.) Last but not least we have the disabled JC3 default crashreporter to not only not send nanos JC3:MP crashes to Avalanche (which they are not able to reproduce or fix anways ), but also to directly debug crashes happening while developing. So, that's it for this week. We hope you enjoyed our development blog. Until next Sunday!
  24. 7 points
    Hello everybody and welcome to the 16th development blog! Parachute Sync We have yet again worked on syncing the parachute and grapple hook. Unfortunately we could not finish it so far. We have uploaded a small clip showcasing one of the problems we are currently dealing with. Script API As you might have seen on our updated scripting-documentation we have been adding functionality to set weather, time and timescale. Below you can find two small clips showcasing what is possible with this. That's it for this week! Be sure to leave a comment and to give us feedback on our devblog.
  25. 6 points
    Heyho from your administrative issues and welcome back to another #helloworld blog! Today, we will again explain the idea behind nanos world, we will tell you about the current state of our prototype and introduce you to a new team member you might not know yet! How does nanos world differ from other sandbox games? After our announcement we received several questions regarding our idea: What is the difference between existing multiplayer modifications and nanos world? How does nanos world differ from other sandbox games? These are justified questions. Let's start with the answer to both of those questions: Existing multiplayer modifications and also other sandbox games are predominantly built upon an already existing game or an engine which was not meant to be a sandbox game. In nanos world we don’t build a modification upon a game, we build a game upon our multiplayer technology. It is much easier to script a game like a web page within a proven framework than building upon a new and adopted system. In our development we don’t have to reverse engineer any game functions, which were primarily developed with focus on single player, and we are not restricted by an engine or game we don’t know in detail. If we or also you want to extend the engine or enable functions, which are included in the engine, we can easily access these functions and make them useful in nanos world for you! If you are bound to a game, enabling and establishing new functions is often a complex issue. This is why we provide an easy way to realize your own game ideas. Scripting in Lua is easy to learn, there are many available tutorials and it is a proven scripting language for our purpose. Considering the fact that a lot of other multiplayer projects and games use Lua, there are many creative and talented scripters out there you can team up with. We aim to have a community where everyone feels at home and where scripters and players, independent of their knowledge, are welcome, can discuss with other people and improve their skills. Apart from Lua’s simplicity, we also decided to use it, because embedding Lua results in less overhead compared to JavaScript. To further improve the usability, we will additionally provide an integrated class system for our Lua implementation and more advanced development tools so you can work as comfortable as you’re used to with JavaScript. The discussions on our Discord the previous weeks, seemed to give the impression that we might integrate JavaScript as a second language in a future version as well. To clarify this: We are currently not planning on integrating JavaScript. The main reason is that the differences between Lua and JavaScript are not significant enough to justify the fragmentation of the scripting community into two parties and the additional maintenance costs. The Prototype We also received many questions about the current state of our prototype. As you might know our prototype is built upon nanos framework which contains all of our multiplayer power. Currently, we are linking the framework to Unreal Engine 4. The largest segment of the work on the package system is almost complete and we are now focusing on getting our network library ready for synchronizing basic movement of characters. Robert - the nanos newbie Finally, we want to introduce you to one of our new team members working on nanos world and related (still not announced) projects: Robert. Robert “MegaThorx” Bitschnau is 21 years old and works as an IT-technician most of his time. He does a lot of IT related stuff in his freetime aswell; next to his position at nanos and nanos world, he’s developing the german “eXo roleplay” gamemode for the GTA San Andreas modification “MTA”. He’s also currently building his very own 3D printer. Robert is one of our web developers and is responsible for the nanos world project and all nanos world related project and managing pages.

Important Information

By using this site, you agree to our Terms of Use.