Search Unity

[Released] Bolt, The new generation of networking solution for unity!

Discussion in 'Assets and Asset Store' started by fholm, May 30, 2014.

  1. RayKatz

    RayKatz

    Joined:
    Oct 18, 2013
    Posts:
    13
    I'm not sure if somebody else already got that problem, but whenever I destroy a BoltEntity with BoltNetwork.Destroy(boltEntity) i get the following exception and the connection crashes:

    Code (CSharp):
    1. UnityEngine.MissingReferenceException: The object of type 'BoltEntity' has been destroyed but you are still trying to access it.
    2. Your script should either check if it is null or you should not destroy the object.
    3. UnityEngine.Debug:LogError(Object)
    4. Unity:Error(String) (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltLog2.cs:152)
    5. BoltLog:Exception(Exception) (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltLog2.cs:329)
    6. BoltConnection:PacketReceived(BoltPacket) (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltConnection.cs:389)
    7. BoltCore:PollNetwork() (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltNetworkCore.cs:471)
    8. BoltCore:FixedUpdate() (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltNetworkCore.cs:602)
    9. BoltPoll:FixedUpdate() (at c:/Users/Fredrik/Documents/GitHub/bolt/src/bolt/bolt/BoltPoll.cs:10)
    10.  
    The entity in question was instantiated in an event and gets destroyed when it collides with something. It says I'm trying to access it, but this isn't the case.

    Edit: I submitted my problem in the Support Forum.
     
    Last edited: Sep 20, 2014
  2. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Hey!

    Are you using the latest (0.3.x) version of Bolt?
     
  3. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    I replied in the bolt forum thread, all you need to do is to check "entity.isOwner" before calling BoltNetwork.destroy
     
  4. ronjart

    ronjart

    Joined:
    May 16, 2013
    Posts:
    101
    I want to host a game over the internet and let remote users connect to my game (Ideally without a master server). What is the easiest way to do this? Everything works fine over the LAN, and as a novice my first thought was to just use the public IP of the host computer - which is not working.

    Should I use a program like "logmein Hamachi"? Seems cumbersome to use an external tool/setup. Does bolt support NAT punchthrough (I remember you mentioning it)? And would that solve the problem?

    Any help is appreciated.
     
  5. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Bolt 0.3.4

    Fixed: Resolved a bug which would cause compilation to crash unity by loading too many assets.
    Fixed: Bolt will no longer let non-owners destroy proxy objects.
    Fixed: There is now a slight delay between the scene being done loading and Bolt invoking the callbacks, this should resolves several issues with objects being destroyed prematurely.

    Changed: Build script has been updated to work better on OS X (again).
    Changed: The BoltInit script now always uses the port from the debug settings.
    Changed: The port used by the BoltInit script is now visible on Unity Free also.
    Changed: All raycasting methods have been moved from BoltPhysics to BoltNetwork.
    Changed: Default port is now 25000 instead of 40000
    Changed: The menu items have been re-arranged

    • Bolt/Compile is now located at Assets/Compile Bolt Assets
    • Bolt/Install is now located at Edit/Install Bolt

    Feature: Bolt now has alpha-level PlayStation 4 support.
    Feature: BoltNetwork now exposes a property called globalObject which contains the Bolt global game object.
    Feature: We have made a brand new tutorial for Bolt, which focuses more on teaching you how to build a game and less on the technical specifics. The tutorial is available here: github.com/BoltEngine/bolt_tutorial.
     
  6. Chrisad

    Chrisad

    Joined:
    Mar 12, 2013
    Posts:
    55
    Hello everyone,

    For an indie project, I want use a middleware for networking. I hesitate between Photon Pun+ and BoltEngine. Both have goods arguments but the difference I noticed is Pun manages the server part (lobby, room, load balancing) but I need to pay if I need more CCU. Boltengine has no limit CCU but manages nothing in the server part.
    But acutally, Boltengine seems more downloaded than Pun and I dont know why. Somebody who use both engine can explain to me information so I can make a choice?
     
  7. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Hey!
    '
    So obviously I am biased here, but I want to start of by saying that you are correct in your observation on Photon PUN+ vs. Bolt Engine, PUN+ can handle the server part of you, but as you say you need to pay more the more CCU's you get. Bolt does not handle the server parts and lets you host your own machines (or let your players host their own servers).

    But the big thing that Bolt does which PUN is missing (or any other networking solution for unity other then Bolt also misses) is that it will take care of every low level detail for you, this includes automatic synchronization of transforms, animations and other tasks which are usually complex to implement if you don't know how.
     
  8. Chrisad

    Chrisad

    Joined:
    Mar 12, 2013
    Posts:
    55
    Thanks for the fast answer Fholm.
    Concerning the server part, if I choose Bolt, created a lobby and room system will be difficult? And if I have, for example, a server running a debian instance. Can I use it easily like my masterserver?
     
  9. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    We are working on providing a complete master server for Bolt, it should be available within a month or so. All existing bolt users will receive the master server for free, but it will also sold as a separate piece of software as it can be used with other networking solutions to.
     
  10. RGravity

    RGravity

    Joined:
    Jul 4, 2012
    Posts:
    30
    I'll second this question :)
     
  11. ronjart

    ronjart

    Joined:
    May 16, 2013
    Posts:
    101
    I think the master server product fholm mentioned will solve this problem. From what I understand the master server will route traffic and do the NAT punch-through. This is just speculation from a noob trying to understand the whole networking thing, so hopefully someone who actually knows what they are talking about will chime in.
     
  12. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    I was reading the docs about events when I came across this:
    Which confused me a bit. I assume that the first bold text is a typo? Currently it says the same thing but denies each other
     
  13. RGravity

    RGravity

    Joined:
    Jul 4, 2012
    Posts:
    30
    Guys I think you're better off asking questions in the jabbr chatroom - much more likely to get a quick response.
    One thing that worries me is that the dev may have bitten off more than he can chew - master server etc has been on the 'horizon' for ages now and still nothing, if you check out the chat room it seems he is mega-busy with other things in his life too.
    I appreciate that Bolt is very good but it is also very unfinished, no complete tutorials, still in beta etc - worrying.
     
  14. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    On the other hand, Bolt is on version 0.3.4. I too am waiting on the Master server. Actually, I'd love the decoupled Master server (not needing the Unity runtime), but it was clear from the beginning this would take a long, long time.

    It's version 0.3.4, let's give it some more time before we cry foul.
     
  15. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Ideally, Bolt probably should have been brought a little closer to maturity before being offered to customers for sale. Once it was up for sale, a ton of time went into answering questions, making tutorials, updating documentation, and so on. I think the original estimations for getting some of these missing features going were made without taking all this extra effort into account.

    So it will be slow going, perhaps, but more features will be arriving this fall, and a lot of bug testing and enhancement is going on, so it's not all bad.

    My main complaint is that the code base changes faster than the tutorial / documentation can be created, so the tutorial becomes out of date even while it is being written. heh
     
  16. RGravity

    RGravity

    Joined:
    Jul 4, 2012
    Posts:
    30
    Hopeful, couldn't have put it better myself, it should have been brought closer to maturity before being offered for sale. Trying to build even a prototype without proper documentation and samples is tough going.
    And knowing that once it has been done it will probably have to be redone to match whatever refactoring has gone on in the base code is kind of annoying.
    When I look in on the jabbr chatroom and people are having long conversations with the author about assembly injection and other arcane subjects I can't help but think let the guy get on with Bolt!
    Having said all that I do like the way Bolt works and it has a very nice integration with Unity etc so I'm loathe to move elsewhere.
    I just hope the author can get a version together with proper docs and a code-base not so liable to change.
     
    hopeful likes this.
  17. 10FootGames

    10FootGames

    Joined:
    Oct 3, 2014
    Posts:
    2
    I am sure after buying Bolt and playing around with it, I could determine answers to these, but I thought I'd just try and ask you all first. :)

    I am looking for a solution that:

    1. Supports C# as its server-side extensibility language.
    2. Uses a true client-server (not peer-to-peer) model - central dedicated servers manage the data flow for example.
    3. Does NOT use the Unity engine on the server - I see no need for this overhead.
    4. Supports UDP for fast transmission of data and includes some level of reliable delivery (whether it be TCP or reliable UDP).

    Bottom line: while avoiding a peer-to-peer model, I'd like something that I can leverage my C# skills to (for example) extend to store state information in a SQL Server I host.

    Does Bolt currently support this or should I look to Photon (which I am pretty sure does the above).

    Thanks!
    Dave
     
  18. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    352
    hey fholm just noticed you haven't updated the unity asset in a while but your website has many more updates on it. Do you plan on pushing updates to unity or just your site from now on? Also any progress on the master and lobby servers?

    Thanks man keep up the awesome work!
     
  19. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    I think updates will be in Github for a while, at least until some major milestone occurs. There aren't even any updates on the Bolt site any more. It's all on Github.

    So there's probably not a whole lot of impetus to update in the asset store while Bolt is still in beta.
     
  20. ronjart

    ronjart

    Joined:
    May 16, 2013
    Posts:
    101
  21. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    I've been following the bolt networking solution with interest and evaluated both uLink and TNet. Firstly, as we all know building a networking solution is not a small undertaking especially if it is going to support decent tool set including forms of diagnostics. If i'm seriously looking at going to market with my RPG game in less than a year is the Bolt solution just too new to properly support that kinda project? I know you say you support mecanim and transform synchronization but i remember your Mecanim networking example did alot of that ?. I also remember the big heated debate over reliable UDP with TNet, has Bolt included this feature? Will the level of documentation be good enough to support bigger projects and although i would not expect it to be as good as uLinks documentation it still requires a good level so that teams can feel comfortable with the more intricate details. The judgement is still out on this for me but looks exciting work to follow.
     
  22. fredr92

    fredr92

    Joined:
    Jul 8, 2013
    Posts:
    292
    Hi, i just got Bolt and downloaded the latest Version from Your site.
    And i followed the documentation exactly, but i keep getting an error in Chapter 2.

    Time to create our first script, in our own tutorial folder create a script called TutorialPlayerCallbacks.cs in the folder tutorial/Scripts/Callbacks.

    using this code from the documentation tutorial.

    using UnityEngine;

    [BoltGlobalBehaviour("Level2")]
    public class TutorialPlayerCallbacks : Bolt.GlobalEventListener {
    public override void SceneLoadLocalDone(string map) {
    // this just instantiates our player camera,
    // the Instantiate() method is supplied by the BoltSingletonPrefab<T> class
    PlayerCamera.Instantiate();
    }
    }

    i do that exactly like it says, and i get this error.

    Assets/tutorial/Scripts/TutorialPlayerCallbacks.cs.cs(4,40): error CS0246: The type or namespace name `Bolt' could not be found. Are you missing a using directive or an assembly reference?
     
  23. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Hi!

    Send your invoice number and github username to support@boltengine.com and I will invite you to our internal pre-release of 0.4 (the version the tutorial is written for)
     
  24. fredr92

    fredr92

    Joined:
    Jul 8, 2013
    Posts:
    292
    Thanks for the fast answere, but when can we find the newest version on the download manager in unity?

    Im very new to network Programming and have a noob question.

    Im making a first person multiplayer game, in most modern fps games the character have a full body as the local player, and the same full body character that the other players can see (Sometimes a lower poly Version).

    But heres comes the question, i dont use a full body, the local player only see he's own arms witch is not connected to a full body.
    Just like for example in Counterstrike. I want to make it so that the other players see a different Version than the local player does. To begin With just a capsule and later a full body character With animations. So will it be very difficult to do this if i follow the tutorial?
     
  25. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Bolt is still in the beta development stage, and there are frequent updates and hotfixes. It probably averages out to a code update every other day, or maybe daily. GitHub is a better place for that sort of activity than the Unity asset store, just as the Bolt support forum is probably a better place to get questions seen and answered by people working intensively with Bolt.
     
  26. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Hi!

    You really should get the bolt beta from github, if you don't feel like that would work for you I can provide a private drop-box link for now to you. Hopeful is correct, the best place is getting builds from github and using the Bolt forums or bolt jabbr chat (linked on the forum index).
     
  27. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    We are trying to get an update to the asset store, but we've had some issues getting the updates accepted since we are doing some unorthodox things with Unity :) No fear tho, a new build will be up soon.
     
  28. DenisFernandes

    DenisFernandes

    Joined:
    Apr 16, 2014
    Posts:
    12
    Some newbie questions..

    Bolt can handle self-hosted game servers and sub-servers? like a .exe that keeps running in my datacenter?

    Does bolt have the features of your old FPS Multiplayer Kit (like hitboxes,etc ?)
     
  29. IndieLegion

    IndieLegion

    Joined:
    Jul 6, 2014
    Posts:
    6
    I purchased a Bolt license on the 16th of August but didn't get a chance to have a look at it until recently. Unfortunately I didn't download it at the time and I didn't receive an email with a download link. How do I go about downloading it now? I emailed support and didn't get a response.
     
  30. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Any news on when the new update will be ready?

    Edit: Forgot to ask:
    Is it possible to create a text chat and video chat for multiple players using Bolt?
     
    Last edited: Nov 15, 2014
  31. psychicsoftware

    psychicsoftware

    Joined:
    Jul 11, 2012
    Posts:
    17
    What is the best way to replicate fast-moving info that I want to be UDP/unreliable (for a car game)? - as far as I can see, it's better to use entity events (which are unreliable) rather than states (which are reliable).. is this correct?

    I see that sending Transform as part of a state gives you the possibility of dead reckoning (which is nice).. I can't find anywhere any mention of this being sent unreliable though, even though it makes sense that it would be. Are Transforms in a state sent reliable or unreliable?

    edit: I found this buried in your forums: "State updates are not reliable in the way that everything comes in the exact order you change it (aka TCP style reliability), but they are reliable in the way that all changes will eventually make it across, even if they are lost on the first attempt." So I guess everything is handled automatically and I really should be using states for fast-moving info?

    I honestly find your documentation a bit infuriating.. there's loads of out of date and contradictory information all over your wiki and tutorials. The coding of Bolt is clearly excellent, but your documentation is poor.
     
    Last edited: Nov 15, 2014
  32. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Keep in mind that Bolt is in beta, and typically several incremental changes are made on a daily basis. (Bolt v0.4.0.22 was released 7 hours ago.) That means the documentation slides out of date fairly quickly. Attempts are made to keep the docs up to date, but working on the docs slows down the development process.

    So ... I agree with you, for us customers it's a frustrating situation. All the customer questions, documentation and tutorial updating and so forth - while necessary - have slowed the rate of development to where the NAT punch-through, which (IIRC) was originally slated for late July, slid to August, then September, then October, and frankly, I'm not sure it will be done in November. (Ah, I see it has now slid to December!)

    In my view, Bolt should have been taken a bit further along in development before people were invited to buy in, but - with luck - having all the questions and play testing and so forth will in the end make for a more thoughtful and robust product.

    If you want the latest builds, the latest docs, and the latest tutorial information, be sure to obtain your invitation from fholm to access it on GitHub. And if you have questions, be sure to sign up with the official Bolt forum.
     
  33. lighting

    lighting

    Joined:
    Dec 21, 2011
    Posts:
    42
    Hi. I've question related to using of Bolt in massive scale strategic game. In previous post, I've read that one instance of Bolt server may handle up to 128 players. Is it somehow feasible to connect these server in cluster ? What I intend to reach is to have 100 vs 100 players match using one map. Does the Bolt have any kind of load balancing between server instances to make this goal feasible ?

    Thank you
     
  34. ghost012

    ghost012

    Joined:
    Jan 3, 2013
    Posts:
    13
    I'm following the tutorial, but when i launch the "game" and chose serve. i get level1 and rigidbodylevel. these 2 exist no where. and i dont see my own level's
     
  35. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,684
    Best to ask this sort of question on the Bolt support forum.
     
  36. jaybennett

    jaybennett

    Joined:
    Jul 10, 2012
    Posts:
    165
    This is not currently supported out of the box. The player limitation is due to the bolt simulation running as a Unity instance and Unity has a single main thread. Of course this has many benefits, but the drawback is that the Unity main thread can only take you so far.

    There is potentially a seamless server transfer feature in the pipeline, but it may not happen for some time.
     
    Last edited: Jan 6, 2015
  37. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Bolt 0.4.1.7 was just released:

    Patch notes here: http://boltsite.azurewebsites.net/release-notes/beta-0-4-1-7/
    Download here: http://boltsite.azurewebsites.net/download/

    If you purchased through PayPal and have not received a license key in your email in the past 24 hours, email support@boltengine.com and we'll sort you out.

    This release also marks the end to the issues with the asset store version being out of sync, and stuff only being available on GitHub, etc. From now on all releases will be uploaded to the asset store, and all releases will also be available on your downloads page.
     
    GCatz, Tiny-Tree, John-G and 2 others like this.
  38. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    John-G and OnePxl like this.
  39. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    I don't suppose there's any way for those of us who have purchased through your site to be able to download via the Unity Asset Store?
     
  40. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Hi!

    Sorry there's not, I have talked to Unity about this and there's nothing I can do currently. The best way to download is simply here: http://www.boltengine.com/download/
     
    mimminito likes this.
  41. Arcanor

    Arcanor

    Joined:
    Nov 4, 2009
    Posts:
    283
    Thanks for trying. Have a great day today. :)
     
  42. devandart

    devandart

    Joined:
    Jun 7, 2013
    Posts:
    144
    I import the latest version of Bolt and can only open the "Bolt Remotes" Window...
    Then the console says the first line.
    When I try to open the Bolt Settings window for e.g. the second line appears.

    bolt_error.PNG

    I have to remove the bolt asset, only then I can close these windows.
    Can you tell me, what's the problem here?
     
  43. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    devandart: Hey! You need to make sure to run "Edit/Install Bolt", have you checked the tutorials?
     
  44. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    crandellbr, GCatz and OnePxl like this.
  45. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    Thanks for the update. 4 IP addresses?! Oof!
     
  46. devandart

    devandart

    Joined:
    Jun 7, 2013
    Posts:
    144
    I'm sorry, I missed that point (facepalm). Thank you, now it works perfect! :)
     
  47. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Well the 4 addresses is for doing the best possible NAT punching, you can get away with 3 or even 2 if you want to.
     
  48. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Ha ha ha... Bolt and Zeus. Love the names. ;)
     
  49. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    :)
     
  50. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Just letting all of you know that there will be a small update, 0.4.2.2 of bolt and 0.1.2.0 of zeus later today to fix some lingering issues