September 16, 2021


Technology/Tech News – Get all the latest news on Technology, Gadgets with reviews, prices, features, highlights and specificatio

Let’s Play: How does a cloud role-playing platform work

Building a video game, from the ground up. A fantasy that many developers will never realize. Jonathan Prevost took on this single assignment 30 months ago. Let’s Role, the project he’s working on, is actually more than just a video game. It’s an online platform that allows you to play any tabletop role-playing game (like Dungeons and Dragons, or The Call of Cthulhu).

“Players get together in a small group, and one of them takes on the role of the playmaker, and they create an adventure together. The playmaker rules the universe, and each player plays their own character,” says Jonathan Prevost. roliste long ago. “Let’s Role is support for these parts, via a whole suite of tools, such as character sheets, virtual dice rolls, images or music to illustrate these parts.”

The world of video game development isn’t entirely new to Jonathan Prévost. A few years ago, he had already developed small prototypes of video games in ActionScript and Flash. And that’s before majoring in full web development. Enough to work independently, in an agency and with end clients for a few years, practicing JavaScript, or even PHP/Symfony.

“I did it all, database architecture, front and back code, integrations, developers”

Then comes the idea and the desire to move on. And to set up not an online role-playing game, but actually a platform that allows you to play any role-playing game. with the struggle. He lived for a long time on unemployment benefits to devote all his time to it. With the success of Kickstarter (287 thousand euros)He was recently able to become an employee of Let’s Role. “I did it all, database architecture, front and back code, integrations, developers.”

See also  With nearly 50 matches, Keno scored the thirteenth goal as an Atletico MG shirt

With what art stack? NodeJS; MariaDB, for processes that need ACID transactions (store, users, etc.); Cassandra, for storing exponentially larger data (dice rolls, chat messages, …); ElasticSearch, when full-text search is important; Redis, for sessions and part of the MariaDB and Cassandra lighten cache.

“Maria DB is a relational database, which allows you to do this in real time. This means that when you make a purchase in the store, the transaction is recorded immediately. But its problem is that this database cannot store large amounts of data” explains a developer. “For large amounts of data, I use Cassandra. We should have a million dice rolls saved quickly, and potentially grow to billions of dice rolls to store in the database. Thanks to her dice system, Cassandra can be hosted on multiple servers. So It can store a lot of data. After that with Cassandra, there’s a write delay. So you can’t use it for very sensitive data, like a store.”

All in cloud mode.

What are computer languages? “Javascript is the obvious language for real-time web application development. I looked into TypeScript and was instantly convinced. The writing, interfaces and all the object-oriented features are invaluable in such a large project, for keeping the code structured and not mixing everything up,” Jonathan points out Prevost. “The backend is developed in NodeJS + Typescript and the front end is in TypeScript. For the front end I don’t use JavaScript framework but I use my own MVC with dependency injection in TypeScript, with the help of”.

“The other advantage of Typescript is that I can share interfaces or classes between the foreground code and the back code and make sure they are always in sync. It’s a bonus but it’s very valuable.”

See also  Old, Lakers? Milo understands and enjoys the media

Increase in load and performance, the two big challenges

However, the transition from alpha to beta, available in the fall, poses new challenges.

“The two main challenges are increased load on the one hand, and performance on the other,” explains Jonathan Prevost. “Let’s Role in real time, the number of calls to the server is much higher than what would be expected from a classic web application. You have to plan your cache and database access strategies accordingly,” -he said.

Let’s role beta workflow.

The challenge was because the websites he had worked on up until then were more stable, and thus all or part of the pages could easily have been cached, via Varnish or other.

But in the case of an online video game, the information is too dynamic to play that way. “And as the number of our users is increasing exponentially, we have to prepare the ground well so that we don’t end up with charging problems. Improving all of this is one of the big projects.”

Performance-wise, on the front end, the main challenge is the level of display in the browser. Jonathan Prevost explains: “The game interface is in HTML/CSS/Javascript, in addition to displaying the table in a large HTML element, and another WebGL Canvas running on top to display 3D dice.” “You could also have WYSIWYG editors or YouTube videos running on top of all of that. And all these lovely people should run at 60 frames per second or higher. Performance reporting tools in Chrome and Firefox told me they helped keep the app running smoothly, without compromising with jobs.”

See also  Rodriguinho analyzes Bahia's game sequence and values: 'We'll need everyone' | Bahia