Dashboard

STORMANCER

Multiplayer game platform for developers

  • Build faster

    Our libraries and server infrastructure hide the low level logic required to run modern realtime multiplayer games. Focus on your game, we do the rest.

  • Deploy and manage easily

    Never again fear putting new features online. Get up to date information about your software. Stay confident: You are in charge.

  • Scale to millions of users

    Our cloud infrastructure is able to scale with your user requirements. Benefit from every opportunity as your user base grows.

Get started - it's free

Registration takes less than 2 minutes.
  • Multiplayer
  • Chat
  • Realtime action
  • Quizz
  • Turn based
  • Cross platform
  • HTML
  • Facebook
  • Unity
  • Windows
  • Analysis
  • Realtime metrics
  • Aggregated data
  • Custom metrics
  • Detailed logging
  • Customize
  • SDKs and web API
  • Local, scriptable tools
  • Instant deployment
  • Full server customization

Stormancer is currently available as a preview. Our hosting platform has already demonstrated its robustness, but doesn't integrate every feature we want to see in the final product. Try it and tell us what you think!

1: Code your client

                            //Create a Stormancer client for the live platform (you have an emulator too!)
                            var client = $.stormancer(Stormancer.Configuration.forAccount("accountId", "app"));
                            
                            //Connect to a scene using custom user infos (server authoritative data is possible)
                            client.getPublicScene(  'scene_name', userInfos, 
                            function (scene) {                                
                                
                                //Subscribe to the 'move' realtime server events with the onMove callback.
                                scene.onMessage('move', onMove);
                                
                                //Connect to the scene
                                scene.connect();
                        
                                //Send player avatar position to the server.
                                scene.send('move', { X: x, Y: y });
                            });
                    
                            var client = new Stormancer.Client(ClientConfiguration.ForAccount("accountId", "app"));
                            //prepare a connection to a scene with custom user data. 
                            //It's also possible to provide server authoritative data.
                            var scene = await client.GetPublicScene("scene_name", userData);
                            
                            //Subscribe to the 'move' realtime server events with the OnMove method.
                            scene.OnMessage<PositionUpdate>("move").Subscribe(OnMove);
                             
                            //Connect to the scene and start listening to server messages.
                            await scene.Connect();
                            //Send player avatar position to the server.
                            scene.send('move', new PositionUpdate(x,y));
                    

2: Write some server code

                            private Task Move(RequestMessage<PositionUpdate> message)
                            {
                                //Retrieve the user data (as specified when calling getScene in the client application)
                                var user = message.Connection.GetUserData<User>();
                                var msg = message.Content;
                                msg.UserId = user.Id;
                                //Broadcast the position update to all connected players.
                                return AssociatedObject.Broadcast("move", msg);
                            }
                    

3: Publish on Stormancer.

>stormancer deploy

You are done.

Get more samples on Github

Our technology

Network engine

Stormancer uses a cross platform network engine optimized for performance. It handles all the complexity of establishing connectivity between different devices, whether mobile, web or desktop based.

Currently the default transport for application is websocket based (TCP). TCP is the perfect solution for games like Quizz, turn based games, or even most of more fast-paced gameplays.

[WIP] However, it's not enough for FPS or fast-paced massively multiplayer titles. For these cases, you will need UDP. Currently this network technology is being tested in Stormancer. We will definitely tell you more about it.

Subscribe if you want to be notified by email about the updates.

Distributed cloud based engine

Stormancer is built from the ground up for the cloud. When we started the project, we had several core objectives.

The first was scalability, making sure that developers using the platform would be able to build great scalable multiplayer games. The core hosting infrastructure is a distributed system able to host your games transparently on several servers, according to your configuration. When developing games for Stormancer, you just don't have to care about synchronizing servers or load balancing your game sessions.

The second was customization. Stormancer is not just a service. It's a platform for your code. We like very much the work made on modern cloud web hosting platforms, so we’ve taken our inspiration from them. You can deploy through a command, then rollback securely if something goes wrong. We handle everything to make sure it happens smoothly.

The last was security. All the applications are isolated. Stormancer nodes (hosting apps) are isolated too, and all the network communication between your app and the exterior are filtered by the distributed platform. The web API themselves and the websocket communications are secured through SSL and symmetric key authentication.

Open source & standards

To make sure that Stormancer is as easy to integrate with outside technologies as possible, we make extensive use of standards or common technologies, whenever possible (if we forgot something, don't hesitate to remind us about it). Managing applications and monitoring them can be completely automated through a web API. The authentication process is mostly powered by OAuth (some work is required in this area) and our serialization protocol is the awesome MessagePack. Our communication protocol is proprietary as nothing adequate existed, but the specifications are available on request (and on our website in the near future).

We think that open source is today a core part of a great development experience. We have opensourced many libraries and components on GitHub and intend to add more in the future. All of our turnkey components including chat, virtual shop, turn-based engine will be open source.

C# based, fully non blocking server scripting

Recently someone asked us this very question: Why the hell is Stormancer scripting done in C#? Why not Javascript? We have several answers. The first is a single keyword (two actually) async await.

The asynchronous development capabilites of C# 5 are awesome. We like JavaScript promises very much, but they just can't compete. It's very easy to write fully non blocking and highly scalable code with C#, and the Stormancer platform leverages that fully. And you can, too. The second answer is shorter: why not. ;)


Get started - it's free

Registration takes less than 2 minutes.

Demos

Some javascript samples and components using Stormancer. Source code available on Github.

  • Chat
    A simple chat, easy to integrate in any web app.
  • Unity
    An action game based on Angrybots. Built using Unity 3D. See our tutorial to discover how to do it yourself.
  • 3D webgl
    Built using Babylon.js & Game FX. Thanks a lot to the GameFX team for the original sample.

Pricing

Tools and libraries available free of charge.

  • Free
    Low performance mutualized hosting. Ideal for prototyping and testing.
  • Standard
    Billed per compute hours.
    20€/Month per compute unit.
    More information available soon
  • Custom
    Customized solution with dedicated servers
    Contact us and we will work a custom solution for you!

News

Team

We love technology, game development and good cooking (We are French after all). As a team, we are thriving passionately to build the product you really need, not the one we think you should (maybe) need.

Our motto: Make the developer's life easier
  • Jean-Michel
    Our enthousiastic cloud stirrer. However, 42 ideas per minute can sometimes be too much to bear. Thankfully we make him shut up by giving him even more work to do.
    Florie
    She can do almost anything, and what she can't, she learns fast (Maybe too fast, we fear she could get dangerous). And she makes sure everyone does what they have to. And do it RIGHT NOW.
    Jean-Noel
    Our big teddy bear. He codes a lot, grumbles a little, but he also loves speaking passionately with game developers about their job, learning eagerly about what they need.