Multiplayer Mod Update

123578

Comments

  • GwailoGwailo Join Date: 2017-09-04 Member: 232808Members
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.
  • garathgarath Texas Join Date: 2017-02-08 Member: 227730Members
    Gwailo wrote: »
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.

    It is currently in very early development. Likely, only the programmers working on it know how to install for testing.
  • supertiger2340supertiger2340 Eugene OR USA Join Date: 2017-07-21 Member: 231956Members
  • DontTouchMyHoHosDontTouchMyHoHos Join Date: 2012-11-07 Member: 167916Members
    garath wrote: »
    Gwailo wrote: »
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.

    It is currently in very early development. Likely, only the programmers working on it know how to install for testing.

    The github has instructions but its kinda vague and you have to understand somethings by reading between the lines. If anyone can make sense of the instructions, mind fleshing it out a bit more?
  • DontTouchMyHoHosDontTouchMyHoHos Join Date: 2012-11-07 Member: 167916Members
    garath wrote: »
    Gwailo wrote: »
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.

    It is currently in very early development. Likely, only the programmers working on it know how to install for testing.

    The github has instructions but its kinda vague and you have to understand somethings by reading between the lines. If anyone can make sense of the instructions, mind fleshing it out a bit more?

    Sitting at #4 atm and kinda stumped :\
  • 0x6A72320x6A7232 US Join Date: 2016-10-06 Member: 222906Members
    garath wrote: »
    Gwailo wrote: »
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.

    It is currently in very early development. Likely, only the programmers working on it know how to install for testing.

    The github has instructions but its kinda vague and you have to understand somethings by reading between the lines. If anyone can make sense of the instructions, mind fleshing it out a bit more?

    Sitting at #4 atm and kinda stumped :\

    You should be able to Google that ("how to use dnspy to inject code into Unity Assembly-Csharp.dll")
  • DontTouchMyHoHosDontTouchMyHoHos Join Date: 2012-11-07 Member: 167916Members
    0x6A7232 wrote: »
    garath wrote: »
    Gwailo wrote: »
    Hey I don't know if this has been asked yet but can someone provide me instructions as to how to play this mod? I'm kinda list.

    It is currently in very early development. Likely, only the programmers working on it know how to install for testing.

    The github has instructions but its kinda vague and you have to understand somethings by reading between the lines. If anyone can make sense of the instructions, mind fleshing it out a bit more?

    Sitting at #4 atm and kinda stumped :\

    You should be able to Google that ("how to use dnspy to inject code into Unity Assembly-Csharp.dll")

    I've tried goolging it already
  • nesrak1nesrak1 Places Join Date: 2016-12-04 Member: 224536Members
    The instructions are vague on purpose. As others have mentioned, the mod is currently for developers only. We are not looking for beta testers yet, and most likely you don't know how to constantly pull when there are updates. The only reason that the repo is up is for people to help code the project, not to only install it to play with friends. If we wanted anyone to play, we would've provided clearer instructions and one of the two installers for it.
  • DontTouchMyHoHosDontTouchMyHoHos Join Date: 2012-11-07 Member: 167916Members
    edited September 2017
    nesrak1 wrote: »
    The instructions are vague on purpose. As others have mentioned, the mod is currently for developers only. We are not looking for beta testers yet, and most likely you don't know how to constantly pull when there are updates. The only reason that the repo is up is for people to help code the project, not to only install it to play with friends. If we wanted anyone to play, we would've provided clearer instructions and one of the two installers for it.

    Well learning isnt restricted to developers only. Why make it public if you want only developers to do it. Me installing it doesnt screw with anything but my own game and im curious to learn how to install it.
  • DontTouchMyHoHosDontTouchMyHoHos Join Date: 2012-11-07 Member: 167916Members
    MarijnS95 wrote: »
    Let me try to word that differently.

    The current tartget audience for this mod are people who know how to code, so that they can help get this mod released faster, and make it better overall.

    The instructions are written at a level that is understandable for these so called contributors; compiling, injecting and reverse engineering are common tasks in mod development. Knowledge on these subjects are a must if you want to tackle anything significant on our TODO list. Without these, there's almost nothing else that can be done for the mod, if at all.

    I hope by now you understand that we are still working really hard to get this mod released ASAP, and we're far from done. As we don't want people to have a bad experience with this pre alpha multiplayer implementation, we choose to keep the installers from the public for a while. The instructions can't be made more clear, because this is what's involved with "setting up a development environment for Nitrox" (is there "playing multiplayer" anywhere in that sentence?), and they are not representative of the instructions for installing a released version.

    If you want help from the mod developers, you've got to prove us that you understand what it takes, and are dedicated to contributing. If you just "want to learn" (aka get early access and not help us out at all), we will not be helping you; why should you be entitled to the mod right now, when everyone else has to wait till at least October?

    Last but not least: if you are willing to code, and want to help us make this mod better and release faster, then go for it. Study the instructions, learn about the parts that you are not familiar with, and file a pull request once you have something we should add to the mod.
    And if not, the beginning of October, when we are planning our first public release (with an easy installer), is not very far anymore.

    Me wanting to learn how to install it has nothing with wanting to play multiplayer.
  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    Me wanting to learn how to install it has nothing with wanting to play multiplayer.
    Then I assume you want to contribute after installing?

    Otherwise there's no point in learning how to install this mod specifically.

  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    nesrak1 wrote: »
    The instructions are vague on purpose. As others have mentioned, the mod is currently for developers only. We are not looking for beta testers yet, and most likely you don't know how to constantly pull when there are updates. The only reason that the repo is up is for people to help code the project, not to only install it to play with friends. If we wanted anyone to play, we would've provided clearer instructions and one of the two installers for it.

    Could I help with coding it? I have a week or so of unity under my belt, And I've created a mobile game with save/load functionality. It also includes Changing the image on a button via code, and enabling and disabling canvases. I'm still learning, but shouldn't be any bother. I did ask @sunrunner if I could help, but he hasn't responded.
  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    Recursion wrote: »
    Could I help with coding it? I have a week or so of unity under my belt, And I've created a mobile game with save/load functionality. It also includes Changing the image on a button via code, and enabling and disabling canvases. I'm still learning, but shouldn't be any bother. I did ask @sunrunner if I could help, but he hasn't responded.
    Of course you can, no need to ask :smile:

    Look at the GitHub repo, and for now at the Trello (we will be transitioning that to GitHub projects soon because of integration and whatnot). Start off with the instructions on setting up your dev environment and try to get the mod built and into the game. Then it's a matter of finding something that's missing which you think you can tackle, or look at the Trello what's still left to do.

    Some people (me for instance) are working on things that are not on Trello or have not assigned themselves, so it might be a good idea to ask whether someone is already working on a feature before you start working on it.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    MarijnS95 wrote: »
    Recursion wrote: »
    Could I help with coding it? I have a week or so of unity under my belt, And I've created a mobile game with save/load functionality. It also includes Changing the image on a button via code, and enabling and disabling canvases. I'm still learning, but shouldn't be any bother. I did ask @sunrunner if I could help, but he hasn't responded.
    Of course you can, no need to ask :smile:

    Look at the GitHub repo, and for now at the Trello (we will be transitioning that to GitHub projects soon because of integration and whatnot). Start off with the instructions on setting up your dev environment and try to get the mod built and into the game. Then it's a matter of finding something that's missing which you think you can tackle, or look at the Trello what's still left to do.

    Some people (me for instance) are working on things that are not on Trello or have not assigned themselves, so it might be a good idea to ask whether someone is already working on a feature before you start working on it.

    Thanks. I might not do much actual developing, I might just hang about suggesting things. And I was thinking, With saving, given that everything is one world, The computers could just work together making the save file, but with the english.Json player position missing, the finished file could get copied to all the computers, and each computer could add in their own player position. This could reduce saving time.
  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    edited September 2017
    Recursion wrote: »
    Thanks. I might not do much actual developing, I might just hang about suggesting things. And I was thinking, With saving, given that everything is one world, The computers could just work together making the save file, but with the english.Json player position missing, the finished file could get copied to all the computers, and each computer could add in their own player position. This could reduce saving time.

    This may sound rude, but in my opinion it is really, really hard to assist in development when you have little knowledge of game internals and/or coding in general. In other words, I suggest you to practice and familiarize with those points if you really want to help us out. We aren't doing anything in the Unity editor, everything is code (C#), and involves 'reverse engineering' the game (we interact with Unity through C#, of course).

    Just start off with something simple and work your way up from there. For instance, an item on the list is sound effects: we synced quite some stuff in terms of movement and animations, but 'forgot' about the sounds. It's a relatively 'simple' task that touches a lot of parts involved in Nitrox, coding and modding in general: you have to figure out what we sync, and which of those is missing sound effects. Then dive into the game code and figure out where it triggers the sound, and what the identifier of that sound is. Then, going through the multiplayer system, figure out where the packet of that action ends up, and trigger the sound there :sunglasses:

    English.json is a language file (providing English 'translations' for internal strings), and has nothing to do with the player position. Instead, we get that (and many other variables) from internal data structures directly (and modify them to make the mod 'work'). Sunrunner is currently working on a headless server, among which persistence at some point. If you're interested, take a look here: https://github.com/SubnauticaNitrox/Nitrox/compare/headless_server.

    However, maybe later on we want to do things with modifying 3D models and textures and such, which besides figuring out how to inject those into the game at runtime, require some non-coding skills, which I completely lack.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    MarijnS95 wrote: »
    Recursion wrote: »
    Thanks. I might not do much actual developing, I might just hang about suggesting things. And I was thinking, With saving, given that everything is one world, The computers could just work together making the save file, but with the english.Json player position missing, the finished file could get copied to all the computers, and each computer could add in their own player position. This could reduce saving time.

    This may sound rude, but in my opinion it is really, really hard to assist in development when you have little knowledge of game internals and/or coding in general. In other words, I suggest you to practice and familiarize with those points if you really want to help us out. We aren't doing anything in the Unity editor, everything is code (C#), and involves 'reverse engineering' the game (we interact with Unity through C#, of course).

    Just start off with something simple and work your way up from there. For instance, an item on the list is sound effects: we synced quite some stuff in terms of movement and animations, but 'forgot' about the sounds. It's a relatively 'simple' task that touches a lot of parts involved in Nitrox, coding and modding in general: you have to figure out what we sync, and which of those is missing sound effects. Then dive into the game code and figure out where it triggers the sound, and what the identifier of that sound is. Then, going through the multiplayer system, figure out where the packet of that action ends up, and trigger the sound there :sunglasses:

    English.json is a language file (providing English 'translations' for internal strings), and has nothing to do with the player position. Instead, we get that (and many other variables) from internal data structures directly (and modify them to make the mod 'work'). Sunrunner is currently working on a headless server, among which persistence at some point. If you're interested, take a look here: https://github.com/SubnauticaNitrox/Nitrox/compare/headless_server.

    However, maybe later on we want to do things with modifying 3D models and textures and such, which besides figuring out how to inject those into the game at runtime, require some non-coding skills, which I completely lack.

    Ah. I just assumed the player position was kept in the english.json, as all the other things in the save game were just entity cells, baked batch cells, and compiled octrees cells. However, I do have a bit of experience with art manipulation programs, so I might be able to help with modifying textures and stuff.
  • RezcaRezca United States Join Date: 2016-04-28 Member: 216078Members
    edited September 2017
    MarijnS95 wrote: »

    Last but not least: if you are willing to code, and want to help us make this mod better and release faster, then go for it. Study the instructions, learn about the parts that you are not familiar with, and file a pull request once you have something we should add to the mod.
    And if not, the beginning of October, when we are planning our first public release (with an easy installer), is not very far anymore.

    Makes me wish I knew anything about programming (Besides bare basics in Ruby and Python) or game design. I mean I spent a little time toying with Unity a few years ago, but I'm in no way qualified to even begin talking about what working with Unity is like, let alone contribute to an extensive project like this :disappointed:



  • adel_50adel_50 Join Date: 2016-09-01 Member: 221973Members
    Rezca wrote: »
    MarijnS95 wrote: »

    Last but not least: if you are willing to code, and want to help us make this mod better and release faster, then go for it. Study the instructions, learn about the parts that you are not familiar with, and file a pull request once you have something we should add to the mod.
    And if not, the beginning of October, when we are planning our first public release (with an easy installer), is not very far anymore.

    Makes me wish I knew anything about programming (Besides bare basics in Ruby and Python) or game design. I mean I spent a little time toying with Unity a few years ago, but I'm in no way qualified to even begin talking about what working with Unity is like, let alone contribute to an extensive project like this :disappointed:



    We all wish that programming was easy so that we can make our own games but hey nothing is easy.
    Now I'm working with unreal and got a lot of the basics done and you my friend might get unity down someday (if you're into programming)
  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    edited September 2017
    Recursion wrote: »
    Ah. I just assumed the player position was kept in the english.json, as all the other things in the save game were just entity cells, baked batch cells, and compiled octrees cells. However, I do have a bit of experience with art manipulation programs, so I might be able to help with modifying textures and stuff.
    The player position, inventory, and afaik placed items and bases are stored in global-objects.bin, which is in the slots folder as well.
    Rezca wrote: »
    Makes me wish I knew anything about programming (Besides bare basics in Ruby and Python) or game design. I mean I spent a little time toying with Unity a few years ago, but I'm in no way qualified to even begin talking about what working with Unity is like, let alone contribute to an extensive project like this :disappointed:
    That is a great start though. And you're more qualified than I am: I've never touched Unity (aside from hacking into it's script structures while working on Nitrox). Python is a perfect and easy language to learn the concept of programming (and has some awesome syntactical features making code much more concise), and Ruby I haven't even gotten to learn yet :tongue:
    adel_50 wrote: »
    We all wish that programming was easy so that we can make our own games but hey nothing is easy.
    Now I'm working with unreal and got a lot of the basics done and you my friend might get unity down someday (if you're into programming)
    Well everything is easy, as long as you spend (or have spent) enough time practicing. For me it makes a lot of sense after all these years, but I still learn new things every day :sunglasses:

    This mod being open-source means no-strings-attached. I invite you all (that is, if you're interested) to look at the code and decide for yourself if you want to start learning and eventually help us out. It would be very beneficial to the project (and your own knowledge), but there are no obligations whatsoever. With the recent attention this pre-alpha mod got we expected some more programmers to show up and help us out, but sadly we're still with very few people. I checked github and my latest commit is 9 (!?!) days ago, so I can't really count myself as an active contributor either - I just haven't had the time for it these days.
    So once more, if you are interested, check out my comment a little up this page; start simple, and work your way up. If you have enough free time you'll see how fast you can learn programming :wink:
  • jeodjeod Stuck in Aperture Join Date: 2017-04-12 Member: 229591Members
    @MarijnS95
    You good sir (or ma'am) have inspired me
    I feel the power of all coding from those before me rush into my soul.
    I have been inspired
    Inspirational
  • masterblaster221masterblaster221 Join Date: 2017-09-26 Member: 233238Members
    i need help Inject NitroxPatcher into Assembly-CSharp:
    Load up dnspy;
    Find a suitable method that gets executed before the actual game starts(GameInput Awake());
    Inject startup code: NitroxPatcher Main.Execute(). so how to i do this
  • lordoffilinglordoffiling Join Date: 2017-08-10 Member: 232342Members
    My *extended* wish list for multiplayer in Subnautica, whether by Nitrox or by Subnautica devs:

    1) At game start, all players create a character. Select gender, face, skin tone, hairstyle.

    2) All players to evacuate the Aurora gather in a room to board an escape pod. Game does not start until everyone is in a lifepod.
    2a)In Survival mode, players may freely join and leave any open game. Games may be password locked or friend-restricted, depending.
    2b) In hardcore mode, only the original players who launched from the ship are the players for that game instance, new players cannot join later. Also in hardcore mode if a player dies, the game continues but that player cannot re-enter. Game is over when everyone is dead.

    3) 2 players per lifepod go to the surface. If more than 2 players, multiple lifepods.

    4) VoIP. Add effects depending on whether player is in the water. Players cannot VoIP past 500m, begins to static up after that, similar to the camera drone.

    5) If a player scans, learns, or gathers PDA data, only that player has that data.
    5a) New base component: Central Database. All data gathered by players is stored here. Players can periodically dump their data here, and return to the database to get new data.
    5b) Upgrade to Central Database: Data Relay. Player scanners will automatically transmit gathered data to the Central Database, which will then automatically transmit it to all other players. Also acts as base locator in ping manager.
    5c) Upgrade to Central Database: Quantum Communication. (Precursor tech?) Removes distance restriction on VoIP.

    6) Only one player needs to be cured to disable cannon.
    6a) Different endings depending on if players leave while someone still infected.

    7) All players must be aboard the rocket and strapped in before launch sequence will start.
  • garathgarath Texas Join Date: 2017-02-08 Member: 227730Members
    i need help Inject NitroxPatcher into Assembly-CSharp:
    Load up dnspy;
    Find a suitable method that gets executed before the actual game starts(GameInput Awake());
    Inject startup code: NitroxPatcher Main.Execute(). so how to i do this

    As has been said before, the instructions are a sort of test. If you can't follow the instructions on your own, then you don't have the necessary skills to help code the mod. The mod is only in a coding stage, and the only people who get to do *anything* at all with the mod right now are the exceptionally bright folks who are giving of their time to help code this awesome mod. So, please don't ask for help. Instead, wait for the mod like the rest of us. :)


  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    edited September 2017
    @lordoffiling Those are some story elements I haven't even thought about yet! Would definitely be cool to see that happen some day, but for now we're working on getting all the game elements synced and working properly. Story things will be tackled somewhere after that.

    For now we're probably sticking with player-hosted servers, so no global servers and/or server browser (at least I assume the other Nitrox modders think the same). In these types of games I haven't had an all too good experience with random people. They've either never played played the game before (and are not keen to learn) or just want to annoy you; usually it's better to play with friends or find likeminded people on the forum to start a game session with.

    One of the modders is currently working on persistence, but I assume that we'll just let players drop in/out whenever they wish. We might get to limiting hardcore sessions later on.
    We already put players in different escape pods, but for now we have 50 players per lifepod as it's not finished yet :tongue: . A spawn room would require someone with modelling skills, so for now we'll just dump the players in the lifepod directly :tongue:

    VoIP is the least likely to make it in, as it requires a completely separate voice part in the client and server. There are so many communication tools available that this is not a priority (even though positional VoIP with effects would be pretty cool). Maybe we'll get to it after the mod is finished, or a developer joins in that wants to build it :smile: (this is open source after all, so everyone is free to decide what they want to build, as long as it fits with the software and adheres to some quality/coding standards).

    Don't take the above things as a hard "no" though: if someone is willing to build it and has the time to do so, it'll happen :sunglasses:

    @masterblaster221 Are you trying to set up your development environment for Nitrox? If so, what do you plan on contributing to the project? What are your previous experiences with programming, (game) development, modding, and multiplayer development?
  • masterblaster221masterblaster221 Join Date: 2017-09-26 Member: 233238Members
    WHERE DO I INJECT THIS CODE (GameInput Awake());
    Inject startup code: NitroxPatcher Main.Execute()
  • MarijnS95MarijnS95 Netherlands Join Date: 2017-06-27 Member: 231390Members
    edited September 2017
    WHERE DO I INJECT THIS CODE (GameInput Awake());
    Inject startup code: NitroxPatcher Main.Execute()

    Let me ask you again:
    MarijnS95 wrote: »
    @masterblaster221 Are you trying to set up your development environment for Nitrox? If so, what do you plan on contributing to the project? What are your previous experiences with programming, (game) development, modding, and multiplayer development?

    If not, then there's no point in installing this mod just yet. It's still in development and work in progress. It will break your game and saves.
    I've so far advised everyone who's not a programmer and not willing to contribute, to just wait for a release that's easy to install and guaranteed to be stable-ish. At that point, we hope to actually have a fun playing experience instead of lacking a lot of basic functionality. But for now, just have some patience like everyone else, it'll pay off.

    We are in the middle of a significant change in server architecture, which makes it take longer but has extra features and stability in return :smiley:. If you are checked out on master, your build is hopelessly outdated :#
  • 0x6A72320x6A7232 US Join Date: 2016-10-06 Member: 222906Members
    edited September 2017
    @all: When the coders want playtesters, I'm sure they'll post an easy-to-install version. Until then, it's Neo-level only! (OK, maybe not quite that, but you need to have at least taken the red pill!)

    latest?cb=20060831032053

    qzen7k.gif
  • elfcrisiselfcrisis Join Date: 2017-05-13 Member: 230466Members
    @masterblaster221 Other people have kind of made this point already, but I want to see if I can clarify.

    With a fan-mod such as this, there is no support. They're doing this on their own time already and don't have the resources to walk someone through getting it set up. If you want to figure this out on your own and experiment with it, more power to you, but as others have pointed out, it's not something you can just activate and mess with. If you do the research and find out what it means to set up a development environment, you'll see what I mean.

    Also, I want to say that I'm not a developer myself, but I work in IT and support dev teams regularly. Plus I've taken some classes and done a little coding on my own here and there, so I like to think I know what I'm talking about. So when I see what these folks are doing, adding multiplayer to a game that was never intended to have it, it kind of blows my mind.

    This is not a project for a hobbyist. I can only imagine that some, if not all, of the people doing this are already professionals in some capacity, and that's why they're having any success with it at all. x.x
Sign In or Register to comment.