Experience Serverless Physics. Focus on Game Design, We Handle the Rest.
The magic
behind AYYO
Thank you for signing up! We will be in touch soon.
"Serverless Physics" abstracts the complexities of physics simulation, empowering developers to focus on game logic and design. Experience a scalable, high-performance backend that manages physics calculations, collision detections, and more. Say goodbye to server management, scalability concerns, and performance optimization.
Mantra is a versatile Javascript game development framework that lets you focus on game logic and design.
You development your game using the Mantra framework, and then deploy your game to Yantra's serverless physics platform.
View SDK Examples and Example Worlds Live DemosGame development is evolving, and so should the tools you use. Yantra offers a revolutionary approach to game physics, allowing you to create immersive virtual worlds without the hassle of server management, scalability issues, or high costs. Our serverless physics platform gives you a high-performance backend that scales automatically, ensuring your players get a seamless experience every time.
Let us handle the physics. You focus on creating engaging gameplay.
Yantra scales automatically based on demand, ensuring smooth gameplay even during peak times.
Only pay for the compute time you consume. Say goodbye to expensive server setups.
With high-speed global-scale websocket connections, offer real-time gameplay to players worldwide.
Our SDK is designed for developers, by developers. Integrate Yantra into your game with just a few lines of code. Experience the power of serverless physics today.
Run the SDK locally to see how it works. Deploy your serverless functions to our cloud platform for ultra low-latency.
Yantra is a serverless platform, so it works with any game engine or programming language. We provide a simple JSON based state API that you can use to create and update physics bodies.
In local development, you will need to create a WebSocket connection to a Yantra server.
In production, your Docker container will automatically connect to our cloud platform for low-latency game physics.
Connect players worldwide with high-speed websocket connections. Experience shared virtual spaces with minimal latency.
Experience real-time physics simulation with our high-performance serverless backend.
Reduce bandwidth usage and improve performance with our binary data compression.
Yantra will only broadcast differential state updates and uses delta compression for all integers.
Yantra supports client-side prediction for all physics bodies.
Yantra supports server reconciliation for all physics bodies.
Yantra supports interpolation for all physics bodies.
Yantra supports rewind, replay, and time-travel for all physics bodies.
Yantra uses a custom and configurable Int2Float encoding to reduce bandwidth usage.
<script src="https://yantra.gg/mantra.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
let game = new MANTRA.Game();
// optionally use plugins like Bullet
game.use('Bullet');
game.start();
});
</script>
<script src="https://yantra.gg/mantra.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
let game = new MANTRA.Game({
physics: 'matter', // enum, 'physx', 'matter'
graphics: ['babylon', 'phaser'], // array enum, 'babylon', 'phaser', 'css'
camera: 'center', // enum, 'follow', 'center'
keyboard: true, // boolean or `Keyboard` config object
mouse: true, // boolean or `Mouse` config object
collisions: false, // boolean, toggles global entity collisions
lifetime: true, // boolean, enables `lifetime` property
width: 1600, // number
height: 900, // number
protobuf: false, // boolean, toggles protobuf compressions
msgpack: false, // boolean, toogles msgpack compressions
deltaCompression: false, // boolean
deltaEncoding: true // boolean
});
game.start();
});
</script>
<script src="https://yantra.gg/mantra.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
let game = new MANTRA.Game();
// Use Plugins to extend the game
game
.use('Bullet')
.use('Block')
.use('Border', { autoBorder: false })
.use('StarField')
.use('Editor')
.use('ControlsGUI');
game.start(function () {
game.createEntity({
type: 'BLOCK',
width: 500,
height: 500,
depth: 200,
position: {
x: 0,
y: -500
},
});
game.systems.border.createBorder({
height: 2000,
width: 2000
});
});
});
</script>
npm install -g @yantra-core/cli
mkdir my-awesome-world
cd my-awesome-world
yantra init
yantra login
yantra deploy