maine-imre / handwaver

A gesture-based mathematical making environment from the University of Maine
http://www.imrelab.org
8 stars 2 forks source link

Networking Infrastructure #15

Closed camden-bock closed 5 years ago

camden-bock commented 5 years ago

Is your feature request related to a problem? Please describe. We currently allow for multiple players in the same space, but we want to be able to align networked space that exists in the same physical space. We also need to support voice and hands better for users that do not share a physical space.

Describe the solution you'd like We need a solution using PUN that represents avatars in a way that is usable in shared and unshared physical spaces. We also need a simple mechanism to create public and private rooms and to enter those rooms.

As we implement these, we should consider what parts of this support could help develop a way to replay a user's experience in the environment.

Describe alternatives you've considered We've tried a Unity UNet implication before, but PUN 2 seems to be much easier to work with. Unity is coming out with new network support that we will consider in the future.

Additional context There are two scenes for initial networking support.

Basic Infrastructure

Improve Avatars - basically, we want to have something that is representative enough to be workable but doesn't attract attention.

This part of the work would be a good first task for someone when @nsgnn figures out the stuff above.

camden-bock commented 5 years ago

Our current implementation needs to be optimized, it is too choppy on the client machine. Consider execution order. Consider

Learning from this, when we integrate with the Geometry Kernel, we should consider running separate threads on the server and an event-based update system.

camden-bock commented 5 years ago

Consider Discord Rich Presence for room selection

camden-bock commented 5 years ago

As a modification for schools, we could allow for a room code in the launcher (-room UMaine-Bock). A teacher might use their name combined with their school's name. If application is launched without a room code, it would join a random public room

camden-bock commented 5 years ago

Consider using discord integration to resolve voice networking. Less of an issue for schools if they are sharing space

camden-bock commented 5 years ago

PUN should be integrated into the template provided in our fork https://github.com/maine-imre/discord-rpc, and then customized in an inherited script. (if we go this route)

camden-bock commented 5 years ago

@nsgnn What do you think about breaking this into two networking issues.

[1] get done the networking work that is required for research. [2] leave room management and voice as a separate issue

@jkdimmel the direction to go here might depend (1) on research plans (2) the importance of releasing the dodgeball game and (3) other labor that is available.

camden-bock commented 5 years ago

We will no longer be supporting networking for the scale and dimension study.

Use of the discord API for voice sharing will be addressed in another issue.