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

Bolt is a new generation of networking middleware for the Unity3D game engine. It revolutionizes development of multiplayer games in Unity by exposing several complex features behind a simple to use visual interface. Bolt allows you to replicate both transform and mecanim animations automatically, but on top of that it also allows you to define your own state properties which too will be replicated automatically for you across the network.

Features

Powerful Event System - Bolt has a built-in event system which automatically distributes the event to the correct receivers, highly configurable of course. Events can also be targeted at a specific game object or globally. Three delivery modes: Unreliable, Unreliable Synced and Reliable.

Authoritative movement - Built-in support for input and player controller state synchronization allows you to easily implement custom authoritative movement that suits your game.

Both dedicated and listen server - Bolt supports both the classic dedicated server and listen servers where the server is just another player.

Prioritization and scoping - Bolt supports both scoping of entities (which entities should a player be aware of) and prioritization of scoped entities (of two entities A and B that are scoped, which one is the most important for a player).

Hit-box recording - Bolt has built-in support for recording hit-boxes and rewinding and ray-casting against them, allowing you to implement complex techniques like lag compensation in first person shooters in just a few lines of code.

Synchronized map loading - Bolt support loading maps from the server and have all the clients load the same map, and then provide custom hooks telling the server when the client is ready and vice verse.

Full source code - Bolt comes with full source code, including all project files and other utilities for modifying and building Bolt binaries yourself.

Supports all major unity platforms - Bolt runs on Windows, OSX, iOS and Android. Support for Linux and Windows Phone 8 coming soon.

Does not require Unity Pro - Bolt does not require Unity Pro for any platform and will run without problems on the free iOS and Android version of Unity.

Videos

Purchase

You can purchase directly from us: http://www.boltengine.com/Buy.aspx, or through the asset store: https://www.assetstore.unity3d.com/en/#!/content/18358 The current price during the beta is $65.

Information

Want more information on how bolt works and what you can do with it? Check out our lengthy tutorial over at http://www.boltengine.com/Tutorial.aspx or our API documentation http://www.boltengine.com/Api.aspx.

hi,

Would this be easy to get working with company firewalls/proxies…?
(we have tried photon cloud, but cannot get it to connect…ports are open, but there is no clear info if/what else is needed to open/allow…)

and is the beta price still available in asset store?

(also, some kind of lobby demo scene or tutorial could be nice…to save some time)

We are launching NAT punch through before the final version goes live, but sadly company firewalls and proxies are notoriously difficult to handle since they often block everything, it’s a case-by-case basis if it works or not.

The price will be the same in the asset store, yes. We are waiting for the asset store approval process.

There is a long tutorial on the main site, www.boltengine.com which goes through everything there is to know about Bolt top to bottom.

This looks pretty cool. I’m going to have to start digging into the docs. :slight_smile:

Hey looks promising.

But is there any authorative movement Demo? As I found no documentation about it. Would prefer some information before buy :).

There is a huge tutorial which can be found on www.boltengine.com: http://www.boltengine.com/Tutorial.aspx The movement implemented there is example of an authoritative setup, specifically this section http://www.boltengine.com/Tutorial.aspx#Ownership__Replication___Control

Okay thanks. Gonna order it later when at home.

It is looking really really great fholm - as soon as i get some more time on my hand i will certainly buy it and play around with it.

Thanks, I hope you’ll get some good use out of it :slight_smile:

this look really great, the inspector, the callback methods, the demo scene, you raised the bar high and left tnet and photon far away.

will you provide a generic server executable?

will you manage with built in functions pooling/spawn/despawn?

do you have something equivalent to room and player custom properties from photon?

any roadmap?

Thank you for the kind words :slight_smile:

Bolt is intended to run both the server and client inside of Unity, maybe in the future we could look at building an external executable.

We intend to expose the internal create/destroy mechanism so that you can plug any pooling system into Bolt and use whatever you want. This is one of the first things on our “TODO” list, and it will be ready in a few weeks.

Bolt doesn’t have the concept of a ‘room’, so nothing there. For player properties you can just spawn a separate prefab entity in bolt without a model, etc. and turn of the transform and mecanim replication and just define your own properties there, which will be synced to all others connected.

This look like a nice network solution, do you think streaming using this system http://forum.unity3d.com/threads/247647-Asset-Store-Asset-Streaming-Plugin would be possible using your network assett?

I see no reason that the streaming system would not work with Bolt, as long as all the network prefabs are in the main executable/non-streamed part, it should be fine.

will you provide a way to define region ?
like player A and B are in region (1: it has monster 1A) player C is in region (2) A and B and monster 1A receive mutual sync but not C

Currently you would have to define this yourself by overloading two methods called InScope and CalculatePriority on the BoltEntitySerializer object which lets you do completely custom scoping and priority.

We are planning to have a pre-packaged solution for this before the final release (which is scheduled at some point in august), so you can define regions in your scene and calculate PVS data for it.

Woo!!
Bookmarked. Congrats for the release. :sunglasses:
BTW, you should keep the link to your GitHub in your signature.

Any smart solution for load-balancing on the road map? :smile:

“Synchronized map loading - Bolt support loading maps from the server and have all the clients load the same map, and then provide custom hooks telling the server when the client is ready and vice verse.”

What database solution does this use like mysql?
What method do you us to save data?
How will this support player created maps? Saving and loading them?

I think I’ve been unclear with this text, bolt has a concept called “maps” in tandems with scenes, this simply lets you load a scene in a specific way which makes sure it is synchronized on the server and all clients. It has nothing to do with mysql, databases or player created content.

Great to see your knowledge on networking is being put into a complete server,
any info yet on the CCU it can hold ?