whs.js icon indicating copy to clipboard operation
whs.js copied to clipboard

Alpha-Network-Module Continuation

Open noahcoetsee opened this issue 7 years ago • 7 comments

Hey guys and gals! Programmers, contributors, everyone who's been around for a while, could you listen up for a second?

I'm the leader of a special module being developed for WHS called the Network-Module. You can see it's branch under "Alpha-Network-Module", and it's still under heavy development. I'm asking for you guys to help me out a bit. There is a list of things that I need some help with underneath this message. I'd really appreciate it if you guys take a look at this list and comment below if you plan on uptaking one of the many tasks that I need help with! xD

This module has a basic layout. We are trying to take a one script does both server and client approach to this (kind of like Unity's approach).

Here's a little example:

const app = new WHS.App([
  new WHS.app.NetworkModule("localhost", "80", "http"),
  new WHS.app.ElementModule(),
  new WHS.app.SceneModule(),
  new WHS.app.CameraModule({
    position: new THREE.Vector3(0, 0, 50)
  }),
  new WHS.app.RenderingModule({bgColor: 0x162129}),
  new WHS.app.ResizeModule()
]);

let sphere = new WHS.Sphere({
  geometry: {
    radius: 3,
    widthSegments: 32,
    heightSegments: 32
  },

  material: new THREE.MeshBasicMaterial({
    color: 0xF2F2F2
  }),

  position: [0, 10, 0],

  modules: [
    new WHS.Networking.NetworkIdentity(), // To be accessible by the networking
    new WHS.Networking.NetworkTransform() // To not be static
  ]
});

As you can see, the Network Identity and Network Transform go on objects in a scene that you want to be in contact with the server (the server will be able to communicate changes to other clients)

NETWORK IDENTITY: An initial kind of thing. It's creation is communicated across the server and it's destruction is. That's it. No other changes will be communicated across clients. It's a lightweight form of initial scene creation of some sort.

NETWORK TRANSFORM: This, in all simplicity, will transmit all transform changes, geometry changes, etc to the server.

  • [ ] Finish Official Module integration with the App.
  • [ ] Create Network Transform (which goes on any mesh or particle object)
  • [x] Network Identity (which can go on almost anything)
  • [ ] Integrate Network Identity/Network Transform with original module (Network-Module) on app
  • [ ] Ask me what's next!

Thanks, Noah

Version:
  • [x] v2.x.x
  • [ ] v1.x.x
Issue type:
  • [ ] Bug
  • [x] Proposal/Enhancement
  • [ ] Question
  • [x] Discussion

Tested on: Alpha-Network-Module Branch
Desktop
  • [x] Chrome
  • [ ] Chrome Canary
  • [ ] Chrome dev-channel
  • [ ] Firefox
  • [ ] Opera
  • [ ] Microsoft IE
  • [ ] Microsoft Edge
Android
  • [x] Chrome
  • [ ] Firefox
  • [ ] Opera
IOS
  • [x] Chrome
  • [ ] Firefox
  • [ ] Opera

noahcoetsee avatar Nov 28 '17 13:11 noahcoetsee

Hey, @TheCodeCrafter sorry for late response. You better contact me in discord and we discuss the future of this module + implementation. I’m ready to help and would love you to help me with some other tasks as well

sasha240100 avatar Dec 01 '17 17:12 sasha240100

Ask to be assigned to this by commenting!

noahcoetsee avatar Dec 04 '17 13:12 noahcoetsee

@sasha240100 I'm sorry to mention you here instead of Github, but can you merge the base branch into Alpha, so I can continue to work on it without it being behind on commits from dev?

noahcoetsee avatar Feb 06 '18 15:02 noahcoetsee

@TheCodeCrafter Merged. Not sure if there are no conflicts. Should work, check please.

sasha240100 avatar Feb 07 '18 16:02 sasha240100

I will check! Each year my schoolwork only gets more time-consuming, but I still hope to at least finish this module before I take a long leave.

noahcoetsee avatar Feb 09 '18 17:02 noahcoetsee

@sasha240100 Once again, sorry about contacting you here instead of Discord, but I have finished some implementations and we actually could begin testing soon. I just need help with finishing up some stuff in the tools/networking/server.js dependencies (and other WHS local files), as well as finalizing the module itself.

noahcoetsee avatar Mar 02 '18 14:03 noahcoetsee

@sasha240100 When is the best time to contact you? (Please include the timezone!)

noahcoetsee avatar Aug 24 '18 11:08 noahcoetsee