![]() ![]() PUBG has many kinds of weapons in its loot pool.I also heard about an alternative for every game mode in the works, which now doubles the amount of stats. It would default to the player's most active region during the latest season. So, it should be an opt-in interaction that defaulted to the most common use-case. I decided to prepare for this by adding a filter to change the season in combination with the region.Ī user would rarely need to change this filter, unless looking at old data or a secondary region. PUBG had planned to start a new season, which involved resetting all player stats. Without getting delayed by unimportant stats. I had to design the player overview page so the user could read these specific stats for each game mode. I then discussed it with professional players and tournament organizers.Īfter my research, I found there were only a few stats of interest: I checked out community discord servers to see which stats most players were using. ![]() But, I needed to know exactly which stats were most important so I could focus on them in the design. It was clear that the user wanted to see the stats for a specific player. Then I could optimize the design for better user experience. It was important to understand how this page was being used. So, I started to focus my time on improving the user interface and experience.Ī player's profile page was the most visited page on the website. Player's were already spreading their profile links like wildfire. Now the website was able to handle large amounts of users, it was time to work on growing the site. This was very useful for displaying up-to-date leaderboards. So, as the collection grew to millions of documents, it was still quick to sort and query the data. I designed these indexes around the main queries used by the website. I then created Compound Indexes in MongoDB. The page was now able to render using fresh data. ![]() One of the worker servers would now pick up this job, fetch the latest stats for that player and update MongoDB. When the page rendering server needed fresh data, it would add a job to the queue for that specific player. I used this queue to manage the status of fetching new stats across multiple Node.js instances. I now added Kue to the project, which is a priority job queue for Node.js backed by Redis. It added unnecessary bloat to the process of querying and rendering stats. I also decided to remove Mongoose data modeling for game data. I could now create more workers as I needed more data, without scaling the page rendering servers too. I decided to split the WebSocket connection into a worker server. Having everything running on a single back-end instance was a bad idea. And would only fetch new stats if the MongoDB data had reached a certain age. After fetching stats from this connection, it would store the data in MongoDB. Players that cared about stats gave up on the game's main menu and used the website instead.įor the MVP, I used a single WebSocket connection in the Node.js backend. The game was continuing to grow at an unexpected rate. It was clear the PUBG community wanted a website for stats. And included the player's steam avatar so the page was more personal: I added a very basic design so it looked more like a branded website instead of a bootstrap demo. You could see an overview of their stats for the region they played on the most. To further improve UX, I also checked which region the player had most matches on so I could default to that view. So, there was no need to overcomplicate things by combining region data. The majority of players would only play on a single region's server. For example, you could now view a Europe/Overview page. This page collates the most important data from all game modes for a specific region. I solved this issue by creating an overview page. What if they only played duo games on Europe servers? would you have to check every combination to find this out? Not only would you need to figure out which region they played on, but also which game modes they played. Because there were 3 game modes and 5 regions, every player had 15 pages of stats. Such as the player's stats for Europe/Solo, Asia/Duo or North America/Squad.īut there was a major UX issue here. These pages allowed the user to view a specific region/game mode combination. I started by recreating the detailed stats pages which were available in-game.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |