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.”
“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.”
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.
“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.”
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.”
“Unapologetic analyst. Infuriatingly humble coffee evangelist. Gamer. Unable to type with boxing gloves on. Student. Entrepreneur.”