Author Topic: Where I am taking TNet  (Read 7513 times)

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Where I am taking TNet
« on: October 07, 2015, 08:09:01 PM »
Originally TNet started as a simple networking library I needed for Windward, but it has evolved greatly since then. The addition of the DataNode class greatly improved object serialization and not only allows anyone to send entire tree hierarchies of objects, but also save them to disk and load them later, in both text and binary formats.

Over the past while I've been taking it further still. Currently the TNet library on my Windward dev branch is able to serialize entire game object hierarchies into DataNode, which can then be saved to disk or sent across the network. What can be serialized? Right now, quite a bit. User scripts, renderers, entire meshes, textures... everything can be serialized automatically.

Just as a test, I am currently using it in Windward to export entire ships into tiny LZMA compressed formats -- complete with all the meshes (vertices, skinning info, etc), the materials, textures referenced by those materials, colliders and of course all user script values -- all saved to one complete file. Sort of like an Asset Bundle, but that can be created at run time and parsed easily. DataNode can even serialize references -- references to prefabs, references to game objects, components in the scene, etc. Have you ever wanted to take a snapshot of your entire scene at run time in a stand-alone game, then load it in the Editor? Well, this addition should make it possible.

Better yet, since it's all saved in the DataNode format, you can easily send it via any RFC.

In fact, the only thing I am not able to serialize properly right now are particle systems, but that's due to a major limitation in Unity -- most values you see in inspector when selecting the particle system are simply not exposed to scripting at all (which I believe finally gets fixed in Unity 5.3 sometime? not sure...).

Anyway, what I am trying to say is that TNet has evolved way beyond its "networking" scope and is currently more of an editor extension for handling robust means of data serialization with a networking support option. So as such I will be changing it to that in the Asset Store in the near future, which also means that it will be licensed per-seat like NGUI. Hopefully this will happen around the same time I'll release an expanded set of video tutorials covering all the new features and how to use them.

Thoughts/comments? Let me know!
« Last Edit: October 07, 2015, 08:16:54 PM by ArenMook »

devomage

  • Sr. Member
  • ****
  • Thank You
  • -Given: 7
  • -Receive: 67
  • Posts: 250
    • View Profile
Re: Where I am taking TNet
« Reply #1 on: October 08, 2015, 04:10:07 PM »
an in depth tutorial on the "correct" way to sync character controllers and animations (multi-player) would be very helpful.  i've read many threads (and replies) on this topic and there has never been a decent tutorial and/or examples.

i'm anxious to check out the new direction of this package!  i would recommend hesitation from jumping out of the realm of networking - TNET is by far the best package available in the networking category.

raptorx81

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Posts: 12
    • View Profile
Re: Where I am taking TNet
« Reply #2 on: October 12, 2015, 02:36:51 AM »
I agree with devomage, I'm excited as well to see what your planning with TNet. I also agree that TNet is the best Unity networking package by a mile. It's so much more flexible and powerful than any other package I've tried. So as long as the networking aspect of the package continues to be supported, then I totally support the change.

Rogdor

  • Newbie
  • *
  • Thank You
  • -Given: 4
  • -Receive: 0
  • Posts: 14
    • View Profile
Re: Where I am taking TNet
« Reply #3 on: October 21, 2015, 06:57:41 PM »
I'll chime in as well. I keep trying other network solutions (including UNet) and I keep coming back to TNet for a variety of reasons. The data serialization features are more icing on the cake.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Where I am taking TNet
« Reply #4 on: October 24, 2015, 05:20:03 AM »
Here's a video showing what's possible using TNet: https://www.youtube.com/watch?v=UE40pLt1VLw

In short, I added modding support to Windward by using TNet to export entire prefabs. The same prefabs can be uploaded to the server then instantiated at run-time like any other prefab, making it possible to add content to the game without updating it.

LightSky

  • Jr. Member
  • **
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Posts: 56
    • View Profile
Re: Where I am taking TNet
« Reply #5 on: October 30, 2015, 01:11:45 PM »
an in depth tutorial on the "correct" way to sync character controllers and animations (multi-player) would be very helpful.  i've read many threads (and replies) on this topic and there has never been a decent tutorial and/or examples.

I think this at the moment is one of the larger deterrents of the package.  Most of the tutorials are incredibly basic and TNet has implemented many new features which are not included in the tutorials.  I would love to see an example of a proper third person controller with TNet.  Unity has a sample package that would make for a nice tutorial.
Otherwise I love TNet, I keep coming back to it because it is a very flexible and lightweight networking framework that is "battle-tested".  Meanwhile most other frameworks are suffering from the "we are in beta forever" syndrome or the developers basically give up on it (cough Bolt cough).

Bradamante3D

  • Jr. Member
  • **
  • Thank You
  • -Given: 2
  • -Receive: 0
  • Posts: 79
    • View Profile
Re: Where I am taking TNet
« Reply #6 on: November 10, 2015, 12:02:08 PM »
I am a happy customer of TNet right now and I do like the new direction. I did not leave NGUI when uGUI came out and I did not leave TNet when the new Unity multiplayer comes out. However I do agree that lack of documentation or lack of a good example project is a bit of a problem right now. Especially the integration of other Unity assets (uFrame, PoolManager for example) is very unclear to me.

On that note, I am shaking my head at the tendency among developers to post video tutorials. Are those really less work than a written tut with screenshots? Whatever happened to a printable PDF? So I can only encourage you to consider written guides and example projects. And before you say that a example project would lead to people just copy&paste-ing code ... they are doing that already.
#301224014, #301432336, #302399130

Quan

  • Newbie
  • *
  • Thank You
  • -Given: 1
  • -Receive: 0
  • Posts: 21
    • View Profile
Re: Where I am taking TNet
« Reply #7 on: November 10, 2015, 01:31:48 PM »
After bouncing around almost every other multiplayer frame out out there I have returned to TNet as it is by far the easiest and most flexible framework for me. It just makes sense and allows me to add multiplayer to all the game prototypes I build.

It is fantastic to see it continue development in directions other frameworks aren't going. I had a few regrets in the past with other unity asset purchases but TNet hasn't been one of them.

Rogdor

  • Newbie
  • *
  • Thank You
  • -Given: 4
  • -Receive: 0
  • Posts: 14
    • View Profile
Re: Where I am taking TNet
« Reply #8 on: November 10, 2015, 07:56:39 PM »
In short, I added modding support to Windward by using TNet to export entire prefabs. The same prefabs can be uploaded to the server then instantiated at run-time like any other prefab, making it possible to add content to the game without updating it.

This is exciting to me. It makes me want to put a mod browser in-game and let users pick and choose without having to exit the game at all.

I've also been keeping my eye on that level editor (Giles: https://www.youtube.com/watch?v=s26_rW8-zNg ) that the ProBuilder team has been working on and I wonder if I can reasonably combine that with this.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Where I am taking TNet
« Reply #9 on: November 10, 2015, 08:41:32 PM »
@Rodgor: Heh funny... I actually made a similar system for the upcoming space game. It automatically creates previews of all the objects (and spins them like in his video) and supports drag & drop and snapping logic with an assortment of attachment points. The list itself handles category-based sorting as well. I wasn't making it as a level builder though, but a spaceship builder. Drag & drop spaceship parts to create your custom spaceship. Thinking about it, same system can be easily adopted to be a level builder though.

@Bradamante3D: Video tutorials let you visually follow all actions, so they tend to be better for learning. It's the best way to have a "what you see is what you get" experience.

Quan

  • Newbie
  • *
  • Thank You
  • -Given: 1
  • -Receive: 0
  • Posts: 21
    • View Profile
Re: Where I am taking TNet
« Reply #10 on: January 22, 2016, 05:13:25 PM »
Is there a upgrade cost to existing owners of Tnet 2.x.

I am looking forward to 3.0+

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Where I am taking TNet
« Reply #11 on: January 25, 2016, 10:54:29 PM »
Upgrade from TNet 2 to TNet 3 will be $25-30.